Skip to content

Commit 4ecf0a0

Browse files
committed
Use envelope for p2p store
1 parent f0a505f commit 4ecf0a0

File tree

14 files changed

+282
-273
lines changed

14 files changed

+282
-273
lines changed

block/internal/executing/executor.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,10 +432,10 @@ func (e *Executor) produceBlock() error {
432432
// broadcast header and data to P2P network
433433
g, ctx := errgroup.WithContext(e.ctx)
434434
g.Go(func() error {
435-
return e.headerBroadcaster.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{SignedHeader: *header})
435+
return e.headerBroadcaster.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{Message: header})
436436
})
437437
g.Go(func() error {
438-
return e.dataBroadcaster.WriteToStoreAndBroadcast(ctx, &types.P2PData{Data: *data})
438+
return e.dataBroadcaster.WriteToStoreAndBroadcast(ctx, &types.P2PData{Message: data})
439439
})
440440
if err := g.Wait(); err != nil {
441441
e.logger.Error().Err(err).Msg("failed to broadcast header and/data")

block/internal/syncing/p2p_handler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func (h *P2PHandler) ProcessHeight(ctx context.Context, height uint64, heightInC
8686
}
8787
return err
8888
}
89-
header := &p2pHeader.SignedHeader
89+
header := p2pHeader.Message
9090
if err := h.assertExpectedProposer(header.ProposerAddress); err != nil {
9191
h.logger.Debug().Uint64("height", height).Err(err).Msg("invalid header from P2P")
9292
return err
@@ -99,7 +99,7 @@ func (h *P2PHandler) ProcessHeight(ctx context.Context, height uint64, heightInC
9999
}
100100
return err
101101
}
102-
data := &p2pData.Data
102+
data := p2pData.Message
103103
dataCommitment := data.DACommitment()
104104
if !bytes.Equal(header.DataHash[:], dataCommitment[:]) {
105105
err := fmt.Errorf("data hash mismatch: header %x, data %x", header.DataHash, dataCommitment)

block/internal/syncing/p2p_handler_test.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func p2pMakeSignedHeader(t *testing.T, chainID string, height uint64, proposer [
5050
sig, err := signer.Sign(bz)
5151
require.NoError(t, err, "failed to sign header bytes")
5252
hdr.Signature = sig
53-
return &types.P2PSignedHeader{SignedHeader: *hdr}
53+
return &types.P2PSignedHeader{Message: hdr}
5454
}
5555

5656
// P2PTestData aggregates dependencies used by P2P handler tests.
@@ -128,13 +128,13 @@ func TestP2PHandler_ProcessHeight_EmitsEventWhenHeaderAndDataPresent(t *testing.
128128
require.Equal(t, string(p.Genesis.ProposerAddress), string(p.ProposerAddr))
129129

130130
header := p2pMakeSignedHeader(t, p.Genesis.ChainID, 5, p.ProposerAddr, p.ProposerPub, p.Signer)
131-
data := &types.P2PData{Data: *makeData(p.Genesis.ChainID, 5, 1)}
132-
header.DataHash = data.DACommitment()
133-
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Header)
131+
data := &types.P2PData{Message: makeData(p.Genesis.ChainID, 5, 1)}
132+
header.Message.DataHash = data.Message.DACommitment()
133+
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Message.Header)
134134
require.NoError(t, err)
135135
sig, err := p.Signer.Sign(bz)
136136
require.NoError(t, err)
137-
header.Signature = sig
137+
header.Message.Signature = sig
138138

139139
p.HeaderStore.EXPECT().GetByHeight(mock.Anything, uint64(5)).Return(header, 0, nil).Once()
140140
p.DataStore.EXPECT().GetByHeight(mock.Anything, uint64(5)).Return(data, 0, nil).Once()
@@ -154,13 +154,13 @@ func TestP2PHandler_ProcessHeight_SkipsWhenDataMissing(t *testing.T) {
154154
ctx := context.Background()
155155

156156
header := p2pMakeSignedHeader(t, p.Genesis.ChainID, 7, p.ProposerAddr, p.ProposerPub, p.Signer)
157-
data := &types.P2PData{Data: *makeData(p.Genesis.ChainID, 7, 1)}
158-
header.DataHash = data.DACommitment()
159-
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Header)
157+
data := &types.P2PData{Message: makeData(p.Genesis.ChainID, 7, 1)}
158+
header.Message.DataHash = data.Message.DACommitment()
159+
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Message.Header)
160160
require.NoError(t, err)
161161
sig, err := p.Signer.Sign(bz)
162162
require.NoError(t, err)
163-
header.Signature = sig
163+
header.Message.Signature = sig
164164

165165
p.HeaderStore.EXPECT().GetByHeight(mock.Anything, uint64(7)).Return(header, 0, nil).Once()
166166
p.DataStore.EXPECT().GetByHeight(mock.Anything, uint64(7)).Return(nil, 0, errors.New("missing")).Once()
@@ -195,7 +195,7 @@ func TestP2PHandler_ProcessHeight_SkipsOnProposerMismatch(t *testing.T) {
195195
require.NotEqual(t, string(p.Genesis.ProposerAddress), string(badAddr))
196196

197197
header := p2pMakeSignedHeader(t, p.Genesis.ChainID, 11, badAddr, pub, signer)
198-
header.DataHash = common.DataHashForEmptyTxs
198+
header.Message.DataHash = common.DataHashForEmptyTxs
199199

200200
p.HeaderStore.EXPECT().GetByHeight(mock.Anything, uint64(11)).Return(header, 0, nil).Once()
201201

@@ -224,13 +224,13 @@ func TestP2PHandler_ProcessedHeightSkipsPreviouslyHandledBlocks(t *testing.T) {
224224

225225
// Height 6 should be fetched normally.
226226
header := p2pMakeSignedHeader(t, p.Genesis.ChainID, 6, p.ProposerAddr, p.ProposerPub, p.Signer)
227-
data := &types.P2PData{Data: *makeData(p.Genesis.ChainID, 6, 1)}
228-
header.DataHash = data.DACommitment()
229-
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Header)
227+
data := &types.P2PData{Message: makeData(p.Genesis.ChainID, 6, 1)}
228+
header.Message.DataHash = data.Message.DACommitment()
229+
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Message.Header)
230230
require.NoError(t, err)
231231
sig, err := p.Signer.Sign(bz)
232232
require.NoError(t, err)
233-
header.Signature = sig
233+
header.Message.Signature = sig
234234

235235
p.HeaderStore.EXPECT().GetByHeight(mock.Anything, uint64(6)).Return(header, 0, nil).Once()
236236
p.DataStore.EXPECT().GetByHeight(mock.Anything, uint64(6)).Return(data, 0, nil).Once()
@@ -247,13 +247,13 @@ func TestP2PHandler_SetProcessedHeightPreventsDuplicates(t *testing.T) {
247247
ctx := context.Background()
248248

249249
header := p2pMakeSignedHeader(t, p.Genesis.ChainID, 8, p.ProposerAddr, p.ProposerPub, p.Signer)
250-
data := &types.P2PData{Data: *makeData(p.Genesis.ChainID, 8, 0)}
251-
header.DataHash = data.DACommitment()
252-
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Header)
250+
data := &types.P2PData{Message: makeData(p.Genesis.ChainID, 8, 0)}
251+
header.Message.DataHash = data.Message.DACommitment()
252+
bz, err := types.DefaultAggregatorNodeSignatureBytesProvider(&header.Message.Header)
253253
require.NoError(t, err)
254254
sig, err := p.Signer.Sign(bz)
255255
require.NoError(t, err)
256-
header.Signature = sig
256+
header.Message.Signature = sig
257257

258258
p.HeaderStore.EXPECT().GetByHeight(mock.Anything, uint64(8)).Return(header, 0, nil).Once()
259259
p.DataStore.EXPECT().GetByHeight(mock.Anything, uint64(8)).Return(data, 0, nil).Once()

block/internal/syncing/syncer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -586,12 +586,12 @@ func (s *Syncer) processHeightEvent(event *common.DAHeightEvent) {
586586
g.Go(func() error {
587587
// broadcast header locally only — prevents spamming the p2p network with old height notifications,
588588
// allowing the syncer to update its target and fill missing blocks
589-
return s.headerStore.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{SignedHeader: *event.Header}, pubsub.WithLocalPublication(true))
589+
return s.headerStore.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{Message: event.Header}, pubsub.WithLocalPublication(true))
590590
})
591591
g.Go(func() error {
592592
// broadcast data locally only — prevents spamming the p2p network with old height notifications,
593593
// allowing the syncer to update its target and fill missing blocks
594-
return s.dataStore.WriteToStoreAndBroadcast(ctx, &types.P2PData{Data: *event.Data}, pubsub.WithLocalPublication(true))
594+
return s.dataStore.WriteToStoreAndBroadcast(ctx, &types.P2PData{Message: event.Data}, pubsub.WithLocalPublication(true))
595595
})
596596
if err := g.Wait(); err != nil {
597597
s.logger.Error().Err(err).Msg("failed to append event header and/or data to p2p store")

docs/guides/migrating-to-ev-abci.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ import (
4141
)
4242
```
4343

44-
2. Add the migration manager keeper to your app struct
45-
3. Register the module in your module manager
46-
4. Configure the migration manager in your app initialization
44+
1. Add the migration manager keeper to your app struct
45+
2. Register the module in your module manager
46+
3. Configure the migration manager in your app initialization
4747

4848
### Step 2: Replace Staking Module with Wrapper
4949

pkg/rpc/client/client_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ func TestClientGetNamespace(t *testing.T) {
253253

254254
func testSignedHeader(height uint64, ts time.Time) *types.P2PSignedHeader {
255255
return &types.P2PSignedHeader{
256-
SignedHeader: types.SignedHeader{
256+
Message: &types.SignedHeader{
257257
Header: types.Header{
258258
BaseHeader: types.BaseHeader{
259259
Height: height,
@@ -270,7 +270,7 @@ func testSignedHeader(height uint64, ts time.Time) *types.P2PSignedHeader {
270270

271271
func testData(height uint64, ts time.Time) *types.P2PData {
272272
return &types.P2PData{
273-
Data: types.Data{
273+
Message: &types.Data{
274274
Metadata: &types.Metadata{
275275
ChainID: "test-chain",
276276
Height: height,

pkg/rpc/server/server_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ func TestHealthReadyEndpoint(t *testing.T) {
629629

630630
func makeTestSignedHeader(height uint64, ts time.Time) *types.P2PSignedHeader {
631631
return &types.P2PSignedHeader{
632-
SignedHeader: types.SignedHeader{
632+
Message: &types.SignedHeader{
633633
Header: types.Header{
634634
BaseHeader: types.BaseHeader{
635635
Height: height,
@@ -646,7 +646,7 @@ func makeTestSignedHeader(height uint64, ts time.Time) *types.P2PSignedHeader {
646646

647647
func makeTestData(height uint64, ts time.Time) *types.P2PData {
648648
return &types.P2PData{
649-
Data: types.Data{
649+
Message: &types.Data{
650650
Metadata: &types.Metadata{
651651
ChainID: "test-chain",
652652
Height: height,

pkg/sync/da_hint_container.go

Lines changed: 0 additions & 64 deletions
This file was deleted.

pkg/sync/sync_service_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ func TestHeaderSyncServiceRestart(t *testing.T) {
7373
signedHeader, err := types.GetRandomSignedHeaderCustom(&headerConfig, genesisDoc.ChainID)
7474
require.NoError(t, err)
7575
require.NoError(t, signedHeader.Validate())
76-
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{SignedHeader: *signedHeader}))
76+
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{Message: signedHeader}))
7777

7878
for i := genesisDoc.InitialHeight + 1; i < 2; i++ {
7979
signedHeader = nextHeader(t, signedHeader, genesisDoc.ChainID, noopSigner)
8080
t.Logf("signed header: %d", i)
81-
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{SignedHeader: *signedHeader}))
81+
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{Message: signedHeader}))
8282
}
8383

8484
// then stop and restart service
@@ -109,7 +109,7 @@ func TestHeaderSyncServiceRestart(t *testing.T) {
109109
for i := signedHeader.Height() + 1; i < 2; i++ {
110110
signedHeader = nextHeader(t, signedHeader, genesisDoc.ChainID, noopSigner)
111111
t.Logf("signed header: %d", i)
112-
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{SignedHeader: *signedHeader}))
112+
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{Message: signedHeader}))
113113
}
114114
cancel()
115115
}
@@ -164,7 +164,7 @@ func TestHeaderSyncServiceInitFromHigherHeight(t *testing.T) {
164164
require.NoError(t, err)
165165
require.NoError(t, signedHeader.Validate())
166166

167-
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{SignedHeader: *signedHeader}))
167+
require.NoError(t, svc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{Message: signedHeader}))
168168
}
169169

170170
func TestDAHintStorageHeader(t *testing.T) {
@@ -215,7 +215,7 @@ func TestDAHintStorageHeader(t *testing.T) {
215215
require.NoError(t, err)
216216
require.NoError(t, signedHeader.Validate())
217217

218-
require.NoError(t, headerSvc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{SignedHeader: *signedHeader}))
218+
require.NoError(t, headerSvc.WriteToStoreAndBroadcast(ctx, &types.P2PSignedHeader{Message: signedHeader}))
219219

220220
daHeight := uint64(100)
221221
require.NoError(t, headerSvc.AppendDAHint(ctx, daHeight, signedHeader.Hash()))
@@ -306,7 +306,7 @@ func TestDAHintStorageData(t *testing.T) {
306306
},
307307
}
308308

309-
require.NoError(t, dataSvc.WriteToStoreAndBroadcast(ctx, &types.P2PData{Data: data}))
309+
require.NoError(t, dataSvc.WriteToStoreAndBroadcast(ctx, &types.P2PData{Message: &data}))
310310

311311
daHeight := uint64(100)
312312
require.NoError(t, dataSvc.AppendDAHint(ctx, daHeight, data.Hash()))

types/binary_compatibility_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ func TestSignedHeaderBinaryCompatibility(t *testing.T) {
1414
bytes, err := signedHeader.MarshalBinary()
1515
require.NoError(t, err)
1616

17-
var p2pHeader P2PSignedHeader
17+
p2pHeader := (&P2PSignedHeader{}).New()
1818
err = p2pHeader.UnmarshalBinary(bytes)
1919
require.NoError(t, err)
2020

21-
assert.Equal(t, signedHeader.Header, p2pHeader.Header)
22-
assert.Equal(t, signedHeader.Signature, p2pHeader.Signature)
23-
assert.Equal(t, signedHeader.Signer, p2pHeader.Signer)
21+
assert.Equal(t, signedHeader.Header, p2pHeader.Message.Header)
22+
assert.Equal(t, signedHeader.Signature, p2pHeader.Message.Signature)
23+
assert.Equal(t, signedHeader.Signer, p2pHeader.Message.Signer)
2424
assert.Zero(t, p2pHeader.DAHeightHint)
2525

2626
p2pHeader.DAHeightHint = 100
@@ -51,12 +51,12 @@ func TestDataBinaryCompatibility(t *testing.T) {
5151
bytes, err := data.MarshalBinary()
5252
require.NoError(t, err)
5353

54-
var p2pData P2PData
54+
p2pData := (&P2PData{}).New()
5555
err = p2pData.UnmarshalBinary(bytes)
5656
require.NoError(t, err)
5757

58-
assert.Equal(t, data.Metadata, p2pData.Metadata)
59-
assert.Equal(t, data.Txs, p2pData.Txs)
58+
assert.Equal(t, data.Metadata, p2pData.Message.Metadata)
59+
assert.Equal(t, data.Txs, p2pData.Message.Txs)
6060
assert.Zero(t, p2pData.DAHeightHint)
6161

6262
p2pData.DAHeightHint = 200

0 commit comments

Comments
 (0)