Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native Blocks Ep. 2 - Switch usages to new package #10885

Merged
merged 46 commits into from
Aug 2, 2022
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
ffc7020
panic in SizeSSZ
rkapka Jun 13, 2022
3d8ece1
moving slowly
rkapka Jun 13, 2022
4fcff54
adapt old code to new interfaces
rkapka Jun 13, 2022
f865365
return interfaces from factory functions
rkapka Jun 13, 2022
d9be7bc
replace the rest of WrappedSignedBeaconBlock
rkapka Jun 13, 2022
59cb845
WrappedBeaconBlock
rkapka Jun 13, 2022
b99135f
WrappedBeaconBlockBody
rkapka Jun 13, 2022
0e489a8
miscellaneous
rkapka Jun 14, 2022
77e9d55
Test_BeaconBlockIsNil
rkapka Jun 14, 2022
940fa81
replace usages of BeaconBlockIsNil
rkapka Jun 14, 2022
ca8d2ba
replace usages of mutator
rkapka Jun 14, 2022
08c2ef3
fix all build errors
rkapka Jun 14, 2022
58b587f
fix some more issues
rkapka Jun 14, 2022
f8dc4cd
mutator changes
rkapka Jun 15, 2022
3085e96
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jun 15, 2022
dbe1550
relax assertions when initializing
rkapka Jun 15, 2022
267f728
revert changes in object_mapping.go
rkapka Jun 15, 2022
ecc84e4
allow calling Proto on nil
rkapka Jun 15, 2022
a554535
Revert "allow calling Proto on nil"
rkapka Jun 15, 2022
cede04b
modify Copy and Proto methods
rkapka Jun 16, 2022
da3c5df
remove unused var
rkapka Jun 16, 2022
31effdb
fix block batch tests
rkapka Jun 16, 2022
52b4a92
correct BUILD file
rkapka Jun 16, 2022
2f0ec41
Error when initializing nil objects
rkapka Jun 21, 2022
e050d02
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jun 21, 2022
66c8af5
one more error fix
rkapka Jun 21, 2022
6f5d84f
Merge branch 'develop' into native-blocks-swap-usage
rkapka Jun 21, 2022
91c2bec
add missing comma
rkapka Jun 21, 2022
28a94d5
rename alias to blocktest
rkapka Jun 23, 2022
b18ac61
add logging
rkapka Jun 23, 2022
5c65939
error when SignedBeaconBlock is nil
rkapka Jun 23, 2022
cbfb4eb
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jun 24, 2022
42368bc
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jun 24, 2022
5f2685b
fix last test
rkapka Jun 24, 2022
9064b3d
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jun 27, 2022
e220583
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jun 28, 2022
931b2a6
import fix
rkapka Jun 28, 2022
0eb4e0c
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jul 28, 2022
610937b
broken
rkapka Jul 28, 2022
88116c4
working
rkapka Jul 28, 2022
1356fe0
test fixes
rkapka Jul 28, 2022
903be1b
Merge branch '__develop' into native-blocks-swap-usage
rkapka Jul 28, 2022
03ea561
Merge branch '__develop' into native-blocks-swap-usage
rkapka Aug 2, 2022
af5b903
reduce complexity of processPendingBlocks
rkapka Aug 2, 2022
5def3c5
simplified
rkapka Aug 2, 2022
74a44ce
Merge branch '__develop' into native-blocks-swap-usage
rkapka Aug 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion api/client/beacon/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,9 @@ go_test(
deps = [
"//beacon-chain/state:go_default_library",
"//config/params:go_default_library",
"//consensus-types/blocks:go_default_library",
"//consensus-types/blocks/testing:go_default_library",
"//consensus-types/primitives:go_default_library",
"//consensus-types/wrapper:go_default_library",
"//encoding/ssz/detect:go_default_library",
"//network/forks:go_default_library",
"//proto/prysm/v1alpha1:go_default_library",
Expand Down
49 changes: 32 additions & 17 deletions api/client/beacon/checkpoint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import (
"net/url"
"testing"

"github.com/prysmaticlabs/prysm/consensus-types/wrapper"

"github.com/prysmaticlabs/prysm/beacon-chain/state"
"github.com/prysmaticlabs/prysm/consensus-types/blocks"
blocktest "github.com/prysmaticlabs/prysm/consensus-types/blocks/testing"
"github.com/prysmaticlabs/prysm/network/forks"
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
"github.com/prysmaticlabs/prysm/testing/util"
Expand Down Expand Up @@ -134,10 +134,14 @@ func TestDownloadWeakSubjectivityCheckpoint(t *testing.T) {
require.NoError(t, wst.SetFork(fork))

// set up checkpoint block
b, err := wrapper.WrappedSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, wrapper.SetBlockParentRoot(b, cfg.ZeroHash))
require.NoError(t, wrapper.SetBlockSlot(b, wSlot))
require.NoError(t, wrapper.SetProposerIndex(b, 0))
b, err := blocks.NewSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, err)
b, err = blocktest.SetBlockParentRoot(b, cfg.ZeroHash)
require.NoError(t, err)
b, err = blocktest.SetBlockSlot(b, wSlot)
require.NoError(t, err)
b, err = blocktest.SetProposerIndex(b, 0)
require.NoError(t, err)

// set up state header pointing at checkpoint block - this is how the block is downloaded by root
header, err := b.Header()
Expand All @@ -151,7 +155,8 @@ func TestDownloadWeakSubjectivityCheckpoint(t *testing.T) {
wRoot, err := wst.HashTreeRoot(ctx)
require.NoError(t, err)

require.NoError(t, wrapper.SetBlockStateRoot(b, wRoot))
b, err = blocktest.SetBlockStateRoot(b, wRoot)
require.NoError(t, err)
serBlock, err := b.MarshalSSZ()
require.NoError(t, err)
bRoot, err := b.Block().HashTreeRoot()
Expand Down Expand Up @@ -230,10 +235,14 @@ func TestDownloadBackwardsCompatibleCombined(t *testing.T) {
require.NoError(t, wst.SetFork(fork))

// set up checkpoint block
b, err := wrapper.WrappedSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, wrapper.SetBlockParentRoot(b, cfg.ZeroHash))
require.NoError(t, wrapper.SetBlockSlot(b, wSlot))
require.NoError(t, wrapper.SetProposerIndex(b, 0))
b, err := blocks.NewSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, err)
b, err = blocktest.SetBlockParentRoot(b, cfg.ZeroHash)
require.NoError(t, err)
b, err = blocktest.SetBlockSlot(b, wSlot)
require.NoError(t, err)
b, err = blocktest.SetProposerIndex(b, 0)
require.NoError(t, err)

// set up state header pointing at checkpoint block - this is how the block is downloaded by root
header, err := b.Header()
Expand All @@ -247,7 +256,8 @@ func TestDownloadBackwardsCompatibleCombined(t *testing.T) {
wRoot, err := wst.HashTreeRoot(ctx)
require.NoError(t, err)

require.NoError(t, wrapper.SetBlockStateRoot(b, wRoot))
b, err = blocktest.SetBlockStateRoot(b, wRoot)
require.NoError(t, err)
serBlock, err := b.MarshalSSZ()
require.NoError(t, err)
bRoot, err := b.Block().HashTreeRoot()
Expand Down Expand Up @@ -410,10 +420,14 @@ func TestDownloadFinalizedData(t *testing.T) {
require.NoError(t, st.SetFork(fork))

// set up checkpoint block
b, err := wrapper.WrappedSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, wrapper.SetBlockParentRoot(b, cfg.ZeroHash))
require.NoError(t, wrapper.SetBlockSlot(b, slot))
require.NoError(t, wrapper.SetProposerIndex(b, 0))
b, err := blocks.NewSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, err)
b, err = blocktest.SetBlockParentRoot(b, cfg.ZeroHash)
require.NoError(t, err)
b, err = blocktest.SetBlockSlot(b, slot)
require.NoError(t, err)
b, err = blocktest.SetProposerIndex(b, 0)
require.NoError(t, err)

// set up state header pointing at checkpoint block - this is how the block is downloaded by root
header, err := b.Header()
Expand All @@ -427,7 +441,8 @@ func TestDownloadFinalizedData(t *testing.T) {
sr, err := st.HashTreeRoot(ctx)
require.NoError(t, err)

require.NoError(t, wrapper.SetBlockStateRoot(b, sr))
b, err = blocktest.SetBlockStateRoot(b, sr)
require.NoError(t, err)
mb, err := b.MarshalSSZ()
require.NoError(t, err)
br, err := b.Block().HashTreeRoot()
Expand Down
8 changes: 5 additions & 3 deletions beacon-chain/blockchain/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ go_library(
"//config/features:go_default_library",
"//config/fieldparams:go_default_library",
"//config/params:go_default_library",
"//consensus-types/blocks:go_default_library",
"//consensus-types/interfaces:go_default_library",
"//consensus-types/primitives:go_default_library",
"//consensus-types/wrapper:go_default_library",
"//crypto/bls:go_default_library",
"//encoding/bytesutil:go_default_library",
"//math:go_default_library",
Expand Down Expand Up @@ -138,7 +138,8 @@ go_test(
"//beacon-chain/state/v3:go_default_library",
"//config/fieldparams:go_default_library",
"//config/params:go_default_library",
"//consensus-types/wrapper:go_default_library",
"//consensus-types/blocks:go_default_library",
"//consensus-types/blocks/testing:go_default_library",
"//container/trie:go_default_library",
"//encoding/bytesutil:go_default_library",
"//proto/prysm/v1alpha1:go_default_library",
Expand Down Expand Up @@ -191,7 +192,8 @@ go_test(
"//beacon-chain/forkchoice/types:go_default_library",
"//beacon-chain/p2p:go_default_library",
"//config/params:go_default_library",
"//consensus-types/wrapper:go_default_library",
"//consensus-types/blocks:go_default_library",
"//consensus-types/blocks/testing:go_default_library",
"//container/trie:go_default_library",
"//encoding/bytesutil:go_default_library",
"//proto/prysm/v1alpha1:go_default_library",
Expand Down
2 changes: 1 addition & 1 deletion beacon-chain/blockchain/chain_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ func (s *Service) HeadBlock(ctx context.Context) (interfaces.SignedBeaconBlock,
defer s.headLock.RUnlock()

if s.hasHeadState() {
return s.headBlock(), nil
return s.headBlock()
}

return s.cfg.BeaconDB.HeadBlock(ctx)
Expand Down
12 changes: 6 additions & 6 deletions beacon-chain/blockchain/chain_info_norace_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (

testDB "github.com/prysmaticlabs/prysm/beacon-chain/db/testing"
"github.com/prysmaticlabs/prysm/beacon-chain/state/stategen"
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
"github.com/prysmaticlabs/prysm/consensus-types/blocks"
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
"github.com/prysmaticlabs/prysm/testing/require"
"github.com/prysmaticlabs/prysm/testing/util"
Expand All @@ -17,7 +17,7 @@ func TestHeadSlot_DataRace(t *testing.T) {
s := &Service{
cfg: &config{BeaconDB: beaconDB},
}
b, err := wrapper.WrappedSignedBeaconBlock(util.NewBeaconBlock())
b, err := blocks.NewSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, err)
st, _ := util.DeterministicGenesisState(t, 1)
wait := make(chan struct{})
Expand All @@ -35,7 +35,7 @@ func TestHeadRoot_DataRace(t *testing.T) {
cfg: &config{BeaconDB: beaconDB, StateGen: stategen.New(beaconDB)},
head: &head{root: [32]byte{'A'}},
}
b, err := wrapper.WrappedSignedBeaconBlock(util.NewBeaconBlock())
b, err := blocks.NewSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, err)
wait := make(chan struct{})
st, _ := util.DeterministicGenesisState(t, 1)
Expand All @@ -51,13 +51,13 @@ func TestHeadRoot_DataRace(t *testing.T) {

func TestHeadBlock_DataRace(t *testing.T) {
beaconDB := testDB.SetupDB(t)
wsb, err := wrapper.WrappedSignedBeaconBlock(&ethpb.SignedBeaconBlock{})
wsb, err := blocks.NewSignedBeaconBlock(&ethpb.SignedBeaconBlock{Block: &ethpb.BeaconBlock{Body: &ethpb.BeaconBlockBody{}}})
require.NoError(t, err)
s := &Service{
cfg: &config{BeaconDB: beaconDB, StateGen: stategen.New(beaconDB)},
head: &head{block: wsb},
}
b, err := wrapper.WrappedSignedBeaconBlock(util.NewBeaconBlock())
b, err := blocks.NewSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, err)
wait := make(chan struct{})
st, _ := util.DeterministicGenesisState(t, 1)
Expand All @@ -76,7 +76,7 @@ func TestHeadState_DataRace(t *testing.T) {
s := &Service{
cfg: &config{BeaconDB: beaconDB, StateGen: stategen.New(beaconDB)},
}
b, err := wrapper.WrappedSignedBeaconBlock(util.NewBeaconBlock())
b, err := blocks.NewSignedBeaconBlock(util.NewBeaconBlock())
require.NoError(t, err)
wait := make(chan struct{})
st, _ := util.DeterministicGenesisState(t, 1)
Expand Down
12 changes: 7 additions & 5 deletions beacon-chain/blockchain/chain_info_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import (
v3 "github.com/prysmaticlabs/prysm/beacon-chain/state/v3"
fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams"
"github.com/prysmaticlabs/prysm/config/params"
"github.com/prysmaticlabs/prysm/consensus-types/blocks"
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
Expand Down Expand Up @@ -166,7 +166,7 @@ func TestHeadRoot_UseDB(t *testing.T) {
b := util.NewBeaconBlock()
br, err := b.Block.HashTreeRoot()
require.NoError(t, err)
wsb, err := wrapper.WrappedSignedBeaconBlock(b)
wsb, err := blocks.NewSignedBeaconBlock(b)
require.NoError(t, err)
require.NoError(t, beaconDB.SaveBlock(ctx, wsb))
require.NoError(t, beaconDB.SaveStateSummary(ctx, &ethpb.StateSummary{Root: br[:]}))
Expand All @@ -181,14 +181,16 @@ func TestHeadBlock_CanRetrieve(t *testing.T) {
b.Block.Slot = 1
s, err := v1.InitializeFromProto(&ethpb.BeaconState{})
require.NoError(t, err)
wsb, err := wrapper.WrappedSignedBeaconBlock(b)
wsb, err := blocks.NewSignedBeaconBlock(b)
require.NoError(t, err)
c := &Service{}
c.head = &head{block: wsb, state: s}

recevied, err := c.HeadBlock(context.Background())
received, err := c.HeadBlock(context.Background())
require.NoError(t, err)
assert.DeepEqual(t, b, recevied.Proto(), "Incorrect head block received")
pb, err := received.Proto()
require.NoError(t, err)
assert.DeepEqual(t, b, pb, "Incorrect head block received")
}

func TestHeadState_CanRetrieve(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions beacon-chain/blockchain/execution_engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import (
"github.com/prysmaticlabs/prysm/beacon-chain/execution"
"github.com/prysmaticlabs/prysm/beacon-chain/state"
"github.com/prysmaticlabs/prysm/config/params"
consensusblocks "github.com/prysmaticlabs/prysm/consensus-types/blocks"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not just use blocks here ?

Copy link
Member

@terencechain terencechain Jul 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's already /beacon-chain/core/blocks imported

"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
"github.com/prysmaticlabs/prysm/time/slots"
Expand Down Expand Up @@ -192,7 +192,7 @@ func (s *Service) notifyNewPayload(ctx context.Context, postStateVersion int,
if blocks.IsPreBellatrixVersion(postStateVersion) {
return true, nil
}
if err := wrapper.BeaconBlockIsNil(blk); err != nil {
if err := consensusblocks.BeaconBlockIsNil(blk); err != nil {
return false, err
}
body := blk.Block().Body()
Expand Down
Loading