Skip to content

Commit

Permalink
working
Browse files Browse the repository at this point in the history
  • Loading branch information
rkapka committed Jul 28, 2022
1 parent 610937b commit 88116c4
Show file tree
Hide file tree
Showing 30 changed files with 226 additions and 124 deletions.
2 changes: 1 addition & 1 deletion beacon-chain/blockchain/execution_engine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -691,7 +691,7 @@ func Test_NotifyNewPayload(t *testing.T) {
},
},
}
b, err := wrapper.WrappedSignedBeaconBlock(blk)
b, err := consensusblocks.NewSignedBeaconBlock(blk)
require.NoError(t, err)
return b
}(),
Expand Down
6 changes: 3 additions & 3 deletions beacon-chain/blockchain/pow_block_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ func Test_validateMergeBlock(t *testing.T) {
},
},
}
b, err := blocks.NewSignedBeaconBlock(blk)
bk, err := blocks.NewSignedBeaconBlock(blk)
require.NoError(t, err)
require.NoError(t, service.validateMergeBlock(ctx, bk))

Expand Down Expand Up @@ -211,7 +211,7 @@ func Test_getBlkParentHashAndTD(t *testing.T) {
}

func Test_validateTerminalBlockHash(t *testing.T) {
wrapped, err := wrapper.WrappedExecutionPayload(&enginev1.ExecutionPayload{})
wrapped, err := blocks.WrappedExecutionPayload(&enginev1.ExecutionPayload{})
require.NoError(t, err)
require.NoError(t, validateTerminalBlockHash(1, wrapped))

Expand All @@ -224,7 +224,7 @@ func Test_validateTerminalBlockHash(t *testing.T) {
params.OverrideBeaconConfig(cfg)
require.ErrorContains(t, "parent hash does not match terminal block hash", validateTerminalBlockHash(1, wrapped))

wrapped, err = wrapper.WrappedExecutionPayload(&enginev1.ExecutionPayload{
wrapped, err = blocks.WrappedExecutionPayload(&enginev1.ExecutionPayload{
ParentHash: cfg.TerminalBlockHash.Bytes(),
})
require.NoError(t, err)
Expand Down
7 changes: 4 additions & 3 deletions beacon-chain/blockchain/process_block.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"github.com/prysmaticlabs/prysm/beacon-chain/state"
"github.com/prysmaticlabs/prysm/config/features"
"github.com/prysmaticlabs/prysm/config/params"
consensusblocks "github.com/prysmaticlabs/prysm/consensus-types/blocks"
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
"github.com/prysmaticlabs/prysm/crypto/bls"
Expand Down Expand Up @@ -589,7 +590,7 @@ func (s *Service) validateMergeTransitionBlock(ctx context.Context, stateVersion
if err != nil {
return invalidBlock{error: err}
}
isEmpty, err := wrapper.IsEmptyExecutionData(payload)
isEmpty, err := consensusblocks.IsEmptyExecutionData(payload)
if err != nil {
return err
}
Expand All @@ -605,11 +606,11 @@ func (s *Service) validateMergeTransitionBlock(ctx context.Context, stateVersion

// Skip validation if the block is not a merge transition block.
// To reach here. The payload must be non-empty. If the state header is empty then it's at transition.
wh, err := wrapper.WrappedExecutionPayloadHeader(stateHeader)
wh, err := consensusblocks.WrappedExecutionPayloadHeader(stateHeader)
if err != nil {
return err
}
empty, err := wrapper.IsEmptyExecutionData(wh)
empty, err := consensusblocks.IsEmptyExecutionData(wh)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions beacon-chain/blockchain/process_block_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1176,7 +1176,7 @@ func TestOnBlock_CanFinalize_WithOnTick(t *testing.T) {
require.NoError(t, err)
r, err := blk.Block.HashTreeRoot()
require.NoError(t, err)
wsb, err := wrapper.WrappedSignedBeaconBlock(blk)
wsb, err := consensusblocks.NewSignedBeaconBlock(blk)
require.NoError(t, err)
require.NoError(t, fcs.NewSlot(ctx, i))
require.NoError(t, service.onBlock(ctx, wsb, r))
Expand Down Expand Up @@ -1489,7 +1489,7 @@ func Test_getStateVersionAndPayload(t *testing.T) {
name: "bellatrix state",
st: func() state.BeaconState {
s, _ := util.DeterministicGenesisStateBellatrix(t, 1)
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(&enginev1.ExecutionPayloadHeader{
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(&enginev1.ExecutionPayloadHeader{
BlockNumber: 1,
})
require.NoError(t, err)
Expand Down
1 change: 0 additions & 1 deletion beacon-chain/core/blocks/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ go_test(
"//config/params:go_default_library",
"//consensus-types/blocks:go_default_library",
"//consensus-types/primitives:go_default_library",
"//consensus-types/wrapper:go_default_library",
"//container/trie:go_default_library",
"//crypto/bls:go_default_library",
"//crypto/hash/htr:go_default_library",
Expand Down
15 changes: 8 additions & 7 deletions beacon-chain/core/blocks/payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
"github.com/prysmaticlabs/prysm/beacon-chain/core/time"
"github.com/prysmaticlabs/prysm/beacon-chain/state"
"github.com/prysmaticlabs/prysm/consensus-types/blocks"
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
Expand Down Expand Up @@ -37,11 +38,11 @@ func IsMergeTransitionComplete(st state.BeaconState) (bool, error) {
if err != nil {
return false, err
}
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(h)
wrappedHeader, err := blocks.WrappedExecutionPayloadHeader(h)
if err != nil {
return false, err
}
isEmpty, err := wrapper.IsEmptyExecutionData(wrappedHeader)
isEmpty, err := blocks.IsEmptyExecutionData(wrappedHeader)
if err != nil {
return false, err
}
Expand All @@ -65,7 +66,7 @@ func IsExecutionBlock(body interfaces.BeaconBlockBody) (bool, error) {
return false, err
default:
}
isEmpty, err := wrapper.IsEmptyExecutionData(payload)
isEmpty, err := blocks.IsEmptyExecutionData(payload)
if err != nil {
return false, err
}
Expand Down Expand Up @@ -95,11 +96,11 @@ func IsExecutionEnabled(st state.BeaconState, body interfaces.BeaconBlockBody) (
// IsExecutionEnabledUsingHeader returns true if the execution is enabled using post processed payload header and block body.
// This is an optimized version of IsExecutionEnabled where beacon state is not required as an argument.
func IsExecutionEnabledUsingHeader(header *enginev1.ExecutionPayloadHeader, body interfaces.BeaconBlockBody) (bool, error) {
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(header)
wrappedHeader, err := blocks.WrappedExecutionPayloadHeader(header)
if err != nil {
return false, err
}
isEmpty, err := wrapper.IsEmptyExecutionData(wrappedHeader)
isEmpty, err := blocks.IsEmptyExecutionData(wrappedHeader)
if err != nil {
return false, err
}
Expand Down Expand Up @@ -206,11 +207,11 @@ func ProcessPayload(st state.BeaconState, payload interfaces.ExecutionData) (sta
if err := ValidatePayload(st, payload); err != nil {
return nil, err
}
header, err := wrapper.PayloadToHeader(payload)
header, err := blocks.PayloadToHeader(payload)
if err != nil {
return nil, err
}
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(header)
wrappedHeader, err := blocks.WrappedExecutionPayloadHeader(header)
if err != nil {
return nil, err
}
Expand Down
30 changes: 15 additions & 15 deletions beacon-chain/core/blocks/payload_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/prysmaticlabs/prysm/beacon-chain/core/time"
"github.com/prysmaticlabs/prysm/beacon-chain/state"
fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams"
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
consensusblocks "github.com/prysmaticlabs/prysm/consensus-types/blocks"
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
"github.com/prysmaticlabs/prysm/encoding/ssz"
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
Expand Down Expand Up @@ -150,7 +150,7 @@ func Test_IsMergeComplete(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
st, _ := util.DeterministicGenesisStateBellatrix(t, 1)
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(tt.payload)
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(tt.payload)
require.NoError(t, err)
require.NoError(t, st.SetLatestExecutionPayloadHeader(wrappedHeader))
got, err := blocks.IsMergeTransitionComplete(st)
Expand Down Expand Up @@ -255,7 +255,7 @@ func Test_IsExecutionEnabled(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
st, _ := util.DeterministicGenesisStateBellatrix(t, 1)
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(tt.header)
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(tt.header)
require.NoError(t, err)
require.NoError(t, st.SetLatestExecutionPayloadHeader(wrappedHeader))
blk := util.NewBeaconBlockBellatrix()
Expand Down Expand Up @@ -382,10 +382,10 @@ func Test_ValidatePayloadWhenMergeCompletes(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
st, _ := util.DeterministicGenesisStateBellatrix(t, 1)
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(tt.header)
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(tt.header)
require.NoError(t, err)
require.NoError(t, st.SetLatestExecutionPayloadHeader(wrappedHeader))
wrappedPayload, err := wrapper.WrappedExecutionPayload(tt.payload)
wrappedPayload, err := consensusblocks.WrappedExecutionPayload(tt.payload)
require.NoError(t, err)
err = blocks.ValidatePayloadWhenMergeCompletes(st, wrappedPayload)
if err != nil {
Expand Down Expand Up @@ -435,7 +435,7 @@ func Test_ValidatePayload(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
wrappedPayload, err := wrapper.WrappedExecutionPayload(tt.payload)
wrappedPayload, err := consensusblocks.WrappedExecutionPayload(tt.payload)
require.NoError(t, err)
err = blocks.ValidatePayload(st, wrappedPayload)
if err != nil {
Expand Down Expand Up @@ -485,14 +485,14 @@ func Test_ProcessPayload(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
wrappedPayload, err := wrapper.WrappedExecutionPayload(tt.payload)
wrappedPayload, err := consensusblocks.WrappedExecutionPayload(tt.payload)
require.NoError(t, err)
st, err := blocks.ProcessPayload(st, wrappedPayload)
if err != nil {
require.Equal(t, tt.err.Error(), err.Error())
} else {
require.Equal(t, tt.err, err)
want, err := wrapper.PayloadToHeader(wrappedPayload)
want, err := consensusblocks.PayloadToHeader(wrappedPayload)
require.Equal(t, tt.err, err)
got, err := st.LatestExecutionPayloadHeader()
require.NoError(t, err)
Expand Down Expand Up @@ -540,7 +540,7 @@ func Test_ProcessPayloadHeader(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(tt.header)
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(tt.header)
require.NoError(t, err)
st, err := blocks.ProcessPayloadHeader(st, wrappedHeader)
if err != nil {
Expand Down Expand Up @@ -593,7 +593,7 @@ func Test_ValidatePayloadHeader(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(tt.header)
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(tt.header)
require.NoError(t, err)
err = blocks.ValidatePayloadHeader(st, wrappedHeader)
require.Equal(t, tt.err, err)
Expand All @@ -604,7 +604,7 @@ func Test_ValidatePayloadHeader(t *testing.T) {
func Test_ValidatePayloadHeaderWhenMergeCompletes(t *testing.T) {
st, _ := util.DeterministicGenesisStateBellatrix(t, 1)
emptySt := st.Copy()
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(&enginev1.ExecutionPayloadHeader{BlockHash: []byte{'a'}})
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(&enginev1.ExecutionPayloadHeader{BlockHash: []byte{'a'}})
require.NoError(t, err)
require.NoError(t, st.SetLatestExecutionPayloadHeader(wrappedHeader))
tests := []struct {
Expand Down Expand Up @@ -645,7 +645,7 @@ func Test_ValidatePayloadHeaderWhenMergeCompletes(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(tt.header)
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(tt.header)
require.NoError(t, err)
err = blocks.ValidatePayloadHeaderWhenMergeCompletes(tt.state, wrappedHeader)
require.Equal(t, tt.err, err)
Expand All @@ -655,9 +655,9 @@ func Test_ValidatePayloadHeaderWhenMergeCompletes(t *testing.T) {

func Test_PayloadToHeader(t *testing.T) {
p := emptyPayload()
wrappedPayload, err := wrapper.WrappedExecutionPayload(p)
wrappedPayload, err := consensusblocks.WrappedExecutionPayload(p)
require.NoError(t, err)
h, err := wrapper.PayloadToHeader(wrappedPayload)
h, err := consensusblocks.PayloadToHeader(wrappedPayload)
require.NoError(t, err)
txRoot, err := ssz.TransactionsRoot(p.Transactions)
require.NoError(t, err)
Expand Down Expand Up @@ -696,7 +696,7 @@ func Test_PayloadToHeader(t *testing.T) {

func BenchmarkBellatrixComplete(b *testing.B) {
st, _ := util.DeterministicGenesisStateBellatrix(b, 1)
wrappedHeader, err := wrapper.WrappedExecutionPayloadHeader(emptyPayloadHeader())
wrappedHeader, err := consensusblocks.WrappedExecutionPayloadHeader(emptyPayloadHeader())
require.NoError(b, err)
require.NoError(b, st.SetLatestExecutionPayloadHeader(wrappedHeader))

Expand Down
12 changes: 6 additions & 6 deletions beacon-chain/db/kv/blocks.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,16 +273,16 @@ func (s *Store) SaveBlock(ctx context.Context, signed interfaces.SignedBeaconBlo
}

// SaveBlocks via bulk updates to the db.
func (s *Store) SaveBlocks(ctx context.Context, blocks []interfaces.SignedBeaconBlock) error {
func (s *Store) SaveBlocks(ctx context.Context, blks []interfaces.SignedBeaconBlock) error {
ctx, span := trace.StartSpan(ctx, "BeaconDB.SaveBlocks")
defer span.End()

// Performing marshaling, hashing, and indexing outside the bolt transaction
// to minimize the time we hold the DB lock.
blockRoots := make([][]byte, len(blocks))
encodedBlocks := make([][]byte, len(blocks))
indicesForBlocks := make([]map[string][]byte, len(blocks))
for i, blk := range blocks {
blockRoots := make([][]byte, len(blks))
encodedBlocks := make([][]byte, len(blks))
indicesForBlocks := make([]map[string][]byte, len(blks))
for i, blk := range blks {
blockRoot, err := blk.Block().HashTreeRoot()
if err != nil {
return err
Expand All @@ -298,7 +298,7 @@ func (s *Store) SaveBlocks(ctx context.Context, blocks []interfaces.SignedBeacon
}
return s.db.Update(func(tx *bolt.Tx) error {
bkt := tx.Bucket(blocksBucket)
for i, blk := range blocks {
for i, blk := range blks {
if existingBlock := bkt.Get(blockRoots[i]); existingBlock != nil {
continue
}
Expand Down
Loading

0 comments on commit 88116c4

Please sign in to comment.