diff --git a/WORKSPACE b/WORKSPACE index e498355a744f..67d84d17d134 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -205,7 +205,7 @@ filegroup( url = "https://github.com/ethereum/EIPs/archive/5480440fe51742ed23342b68cf106cefd427e39d.tar.gz", ) -consensus_spec_version = "v1.3.0-rc.3" +consensus_spec_version = "v1.3.0-rc.4" bls_test_version = "v0.1.1" @@ -221,7 +221,7 @@ filegroup( visibility = ["//visibility:public"], ) """, - sha256 = "c56ea4e8fb2fea4b0b23d2191a87bc7e676738dd8a623b44ac847bfeaae5fe64", + sha256 = "519da3cbb181fe927e41b0d13c3aaad5f5f38fe0ba87ca51bd09a661c738bd6c", url = "https://github.com/ethereum/consensus-spec-tests/releases/download/%s/general.tar.gz" % consensus_spec_version, ) @@ -237,7 +237,7 @@ filegroup( visibility = ["//visibility:public"], ) """, - sha256 = "c97730b372b81e9ee698c4f09eafaec3fb4be177fab323b32e5ef78d0873fb5c", + sha256 = "894404302d3d4b0f3080d3221204c19de4e837f1b129f468a66747103174412e", url = "https://github.com/ethereum/consensus-spec-tests/releases/download/%s/minimal.tar.gz" % consensus_spec_version, ) @@ -253,7 +253,7 @@ filegroup( visibility = ["//visibility:public"], ) """, - sha256 = "bdd8255c8a536fa83366144aa32fcc3df92a4997401f88f7cda934d13e90d11c", + sha256 = "ca7a594a2f4be1103e01b5a1416f75a328b7555eae8b26308c07f80fa6d0f255", url = "https://github.com/ethereum/consensus-spec-tests/releases/download/%s/mainnet.tar.gz" % consensus_spec_version, ) @@ -268,7 +268,7 @@ filegroup( visibility = ["//visibility:public"], ) """, - sha256 = "f6539e19b8e4e45f45b80da39c87dfe7c61d9d7cb51fa7a3a36bdaca11a89693", + sha256 = "b4ed6c077c5f0857361412515b319fc8b26730c7d701d3245b5e6849b3974a4f", strip_prefix = "consensus-specs-" + consensus_spec_version[1:], url = "https://github.com/ethereum/consensus-specs/archive/refs/tags/%s.tar.gz" % consensus_spec_version, ) diff --git a/beacon-chain/blockchain/chain_info.go b/beacon-chain/blockchain/chain_info.go index 4e7fb16fa0c9..121ed7a89893 100644 --- a/beacon-chain/blockchain/chain_info.go +++ b/beacon-chain/blockchain/chain_info.go @@ -118,14 +118,6 @@ func (s *Service) CurrentJustifiedCheckpt() *ethpb.Checkpoint { return ðpb.Checkpoint{Epoch: cp.Epoch, Root: bytesutil.SafeCopyBytes(cp.Root[:])} } -// BestJustifiedCheckpt returns the best justified checkpoint from store. -func (s *Service) BestJustifiedCheckpt() *ethpb.Checkpoint { - s.ForkChoicer().RLock() - defer s.ForkChoicer().RUnlock() - cp := s.ForkChoicer().BestJustifiedCheckpoint() - return ðpb.Checkpoint{Epoch: cp.Epoch, Root: bytesutil.SafeCopyBytes(cp.Root[:])} -} - // HeadSlot returns the slot of the head of the chain. func (s *Service) HeadSlot() primitives.Slot { s.headLock.RLock() diff --git a/beacon-chain/forkchoice/doubly-linked-tree/BUILD.bazel b/beacon-chain/forkchoice/doubly-linked-tree/BUILD.bazel index a13fb997284a..dcca93bb98c1 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/BUILD.bazel +++ b/beacon-chain/forkchoice/doubly-linked-tree/BUILD.bazel @@ -65,7 +65,6 @@ go_test( "//beacon-chain/forkchoice/types:go_default_library", "//beacon-chain/state:go_default_library", "//beacon-chain/state/state-native:go_default_library", - "//config/features:go_default_library", "//config/params:go_default_library", "//consensus-types/blocks:go_default_library", "//consensus-types/primitives:go_default_library", diff --git a/beacon-chain/forkchoice/doubly-linked-tree/ffg_update_test.go b/beacon-chain/forkchoice/doubly-linked-tree/ffg_update_test.go index 9e442e20a34d..e5e1ba8ff2b7 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/ffg_update_test.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/ffg_update_test.go @@ -219,7 +219,6 @@ func setup(justifiedEpoch, finalizedEpoch primitives.Epoch) *ForkChoice { ctx := context.Background() f := New() f.store.justifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: justifiedEpoch, Root: params.BeaconConfig().ZeroHash} - f.store.bestJustifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: justifiedEpoch, Root: params.BeaconConfig().ZeroHash} f.store.finalizedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: finalizedEpoch, Root: params.BeaconConfig().ZeroHash} state, blkRoot, err := prepareForkchoiceState(ctx, 0, params.BeaconConfig().ZeroHash, [32]byte{}, params.BeaconConfig().ZeroHash, justifiedEpoch, finalizedEpoch) if err != nil { diff --git a/beacon-chain/forkchoice/doubly-linked-tree/forkchoice.go b/beacon-chain/forkchoice/doubly-linked-tree/forkchoice.go index 2d63d07e37d6..21c7ba03e6c0 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/forkchoice.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/forkchoice.go @@ -10,7 +10,6 @@ import ( "github.com/prysmaticlabs/prysm/v3/beacon-chain/forkchoice" forkchoicetypes "github.com/prysmaticlabs/prysm/v3/beacon-chain/forkchoice/types" "github.com/prysmaticlabs/prysm/v3/beacon-chain/state" - "github.com/prysmaticlabs/prysm/v3/config/features" fieldparams "github.com/prysmaticlabs/prysm/v3/config/fieldparams" "github.com/prysmaticlabs/prysm/v3/config/params" "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives" @@ -27,7 +26,6 @@ import ( func New() *ForkChoice { s := &Store{ justifiedCheckpoint: &forkchoicetypes.Checkpoint{}, - bestJustifiedCheckpoint: &forkchoicetypes.Checkpoint{}, unrealizedJustifiedCheckpoint: &forkchoicetypes.Checkpoint{}, unrealizedFinalizedCheckpoint: &forkchoicetypes.Checkpoint{}, prevJustifiedCheckpoint: &forkchoicetypes.Checkpoint{}, @@ -142,60 +140,18 @@ func (f *ForkChoice) InsertNode(ctx context.Context, state state.BeaconState, ro return err } - if !features.Get().DisablePullTips { - jc, fc = f.store.pullTips(state, node, jc, fc) - } + jc, fc = f.store.pullTips(state, node, jc, fc) return f.updateCheckpoints(ctx, jc, fc) } // updateCheckpoints update the checkpoints when inserting a new node. func (f *ForkChoice) updateCheckpoints(ctx context.Context, jc, fc *ethpb.Checkpoint) error { if jc.Epoch > f.store.justifiedCheckpoint.Epoch { - if jc.Epoch > f.store.bestJustifiedCheckpoint.Epoch { - f.store.bestJustifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: jc.Epoch, - Root: bytesutil.ToBytes32(jc.Root)} - } - if !features.Get().EnableDefensivePull { - currentSlot := slots.CurrentSlot(f.store.genesisTime) - if slots.SinceEpochStarts(currentSlot) < params.BeaconConfig().SafeSlotsToUpdateJustified { - f.store.prevJustifiedCheckpoint = f.store.justifiedCheckpoint - root := bytesutil.ToBytes32(jc.Root) - f.store.justifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: jc.Epoch, - Root: root} - if err := f.updateJustifiedBalances(ctx, root); err != nil { - return errors.Wrap(err, "could not update justified balances") - } - } else { - currentJcp := f.store.justifiedCheckpoint - currentRoot := currentJcp.Root - if currentRoot == params.BeaconConfig().ZeroHash { - currentRoot = f.store.originRoot - } - jSlot, err := slots.EpochStart(currentJcp.Epoch) - if err != nil { - return err - } - jcRoot := bytesutil.ToBytes32(jc.Root) - root, err := f.AncestorRoot(ctx, jcRoot, jSlot) - if err != nil { - return err - } - if root == currentRoot { - f.store.prevJustifiedCheckpoint = f.store.justifiedCheckpoint - f.store.justifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: jc.Epoch, - Root: jcRoot} - if err := f.updateJustifiedBalances(ctx, jcRoot); err != nil { - return errors.Wrap(err, "could not update justified balances") - } - } - } - } else { - f.store.prevJustifiedCheckpoint = f.store.justifiedCheckpoint - jcRoot := bytesutil.ToBytes32(jc.Root) - f.store.justifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: jc.Epoch, Root: jcRoot} - if err := f.updateJustifiedBalances(ctx, jcRoot); err != nil { - return errors.Wrap(err, "could not update justified balances") - } + f.store.prevJustifiedCheckpoint = f.store.justifiedCheckpoint + jcRoot := bytesutil.ToBytes32(jc.Root) + f.store.justifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: jc.Epoch, Root: jcRoot} + if err := f.updateJustifiedBalances(ctx, jcRoot); err != nil { + return errors.Wrap(err, "could not update justified balances") } } // Update finalization @@ -204,14 +160,6 @@ func (f *ForkChoice) updateCheckpoints(ctx context.Context, jc, fc *ethpb.Checkp } f.store.finalizedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: fc.Epoch, Root: bytesutil.ToBytes32(fc.Root)} - if !features.Get().EnableDefensivePull { - root := bytesutil.ToBytes32(jc.Root) - f.store.justifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: jc.Epoch, - Root: root} - if err := f.updateJustifiedBalances(ctx, root); err != nil { - return errors.Wrap(err, "could not update justified balances") - } - } return f.store.prune(ctx) } @@ -370,11 +318,6 @@ func (f *ForkChoice) SetOptimisticToValid(ctx context.Context, root [fieldparams return node.setNodeAndParentValidated(ctx) } -// BestJustifiedCheckpoint of fork choice store. -func (f *ForkChoice) BestJustifiedCheckpoint() *forkchoicetypes.Checkpoint { - return f.store.bestJustifiedCheckpoint -} - // PreviousJustifiedCheckpoint of fork choice store. func (f *ForkChoice) PreviousJustifiedCheckpoint() *forkchoicetypes.Checkpoint { return f.store.prevJustifiedCheckpoint @@ -434,7 +377,6 @@ func (f *ForkChoice) UpdateJustifiedCheckpoint(ctx context.Context, jc *forkchoi } f.store.prevJustifiedCheckpoint = f.store.justifiedCheckpoint f.store.justifiedCheckpoint = jc - f.store.bestJustifiedCheckpoint = &forkchoicetypes.Checkpoint{Epoch: jc.Epoch, Root: jc.Root} if err := f.updateJustifiedBalances(ctx, jc.Root); err != nil { return errors.Wrap(err, "could not update justified balances") } @@ -572,10 +514,6 @@ func (f *ForkChoice) ForkChoiceDump(ctx context.Context) (*v1.ForkChoiceDump, er Epoch: f.store.justifiedCheckpoint.Epoch, Root: f.store.justifiedCheckpoint.Root[:], } - bjc := &v1.Checkpoint{ - Epoch: f.store.bestJustifiedCheckpoint.Epoch, - Root: f.store.bestJustifiedCheckpoint.Root[:], - } ujc := &v1.Checkpoint{ Epoch: f.store.unrealizedJustifiedCheckpoint.Epoch, Root: f.store.unrealizedJustifiedCheckpoint.Root[:], @@ -602,7 +540,6 @@ func (f *ForkChoice) ForkChoiceDump(ctx context.Context) (*v1.ForkChoiceDump, er } resp := &v1.ForkChoiceDump{ JustifiedCheckpoint: jc, - BestJustifiedCheckpoint: bjc, UnrealizedJustifiedCheckpoint: ujc, FinalizedCheckpoint: fc, UnrealizedFinalizedCheckpoint: ufc, diff --git a/beacon-chain/forkchoice/doubly-linked-tree/forkchoice_test.go b/beacon-chain/forkchoice/doubly-linked-tree/forkchoice_test.go index a1513dea96d0..f9d0221314c1 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/forkchoice_test.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/forkchoice_test.go @@ -622,7 +622,6 @@ func TestForkChoice_UpdateCheckpoints(t *testing.T) { tests := []struct { name string justified *forkchoicetypes.Checkpoint - bestJustified *forkchoicetypes.Checkpoint finalized *forkchoicetypes.Checkpoint newJustified *forkchoicetypes.Checkpoint newFinalized *forkchoicetypes.Checkpoint @@ -636,7 +635,6 @@ func TestForkChoice_UpdateCheckpoints(t *testing.T) { name: "lower than store justified and finalized", justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, newJustified: &forkchoicetypes.Checkpoint{Epoch: 1}, newFinalized: &forkchoicetypes.Checkpoint{Epoch: 0}, wantedJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, @@ -646,7 +644,6 @@ func TestForkChoice_UpdateCheckpoints(t *testing.T) { { name: "higher than store justified, early slot, direct descendant", justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, newJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'b'}}, newFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'g'}}, @@ -657,7 +654,6 @@ func TestForkChoice_UpdateCheckpoints(t *testing.T) { { name: "higher than store justified, early slot, not a descendant", justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, newJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'c'}}, newFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'g'}}, @@ -665,59 +661,12 @@ func TestForkChoice_UpdateCheckpoints(t *testing.T) { wantedBestJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'c'}}, wantedFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, }, - { - name: "higher than store justified, late slot, descendant", - justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, - newJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'b'}}, - newFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'g'}}, - wantedJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'b'}}, - wantedFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, - wantedBestJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'b'}}, - currentSlot: params.BeaconConfig().SafeSlotsToUpdateJustified.Add(1), - }, - { - name: "higher than store justified, late slot, not descendant", - justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, - newJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'c'}}, - newFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'g'}}, - wantedJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - wantedFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, - wantedBestJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'c'}}, - currentSlot: params.BeaconConfig().SafeSlotsToUpdateJustified.Add(1), - }, - { - name: "higher than store finalized, late slot, not descendant", - justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, - newJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'c'}}, - newFinalized: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'h'}}, - wantedJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'c'}}, - wantedFinalized: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'h'}}, - wantedBestJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'c'}}, - currentSlot: params.BeaconConfig().SafeSlotsToUpdateJustified.Add(1), - }, - { - name: "Unknown checkpoint root, late slot", - justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'j'}}, - finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'f'}}, - newJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: [32]byte{'d'}}, - newFinalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'h'}}, - currentSlot: params.BeaconConfig().SafeSlotsToUpdateJustified.Add(1), - wantedErr: "could not determine ancestor root", - }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { fcs := setup(tt.justified.Epoch, tt.finalized.Epoch) fcs.store.justifiedCheckpoint = tt.justified fcs.store.finalizedCheckpoint = tt.finalized - fcs.store.bestJustifiedCheckpoint = tt.bestJustified fcs.store.genesisTime = uint64(time.Now().Unix()) - uint64(tt.currentSlot)*params.BeaconConfig().SecondsPerSlot st, blkRoot, err := prepareForkchoiceState(ctx, 32, [32]byte{'f'}, @@ -743,7 +692,6 @@ func TestForkChoice_UpdateCheckpoints(t *testing.T) { // restart justifications cause insertion messed it up fcs.store.justifiedCheckpoint = tt.justified fcs.store.finalizedCheckpoint = tt.finalized - fcs.store.bestJustifiedCheckpoint = tt.bestJustified jc := ðpb.Checkpoint{Epoch: tt.newJustified.Epoch, Root: tt.newJustified.Root[:]} fc := ðpb.Checkpoint{Epoch: tt.newFinalized.Epoch, Root: tt.newFinalized.Root[:]} @@ -756,8 +704,6 @@ func TestForkChoice_UpdateCheckpoints(t *testing.T) { require.Equal(t, tt.wantedFinalized.Epoch, fcs.store.finalizedCheckpoint.Epoch) require.Equal(t, tt.wantedJustified.Root, fcs.store.justifiedCheckpoint.Root) require.Equal(t, tt.wantedFinalized.Root, fcs.store.finalizedCheckpoint.Root) - require.Equal(t, tt.wantedBestJustified.Epoch, fcs.store.bestJustifiedCheckpoint.Epoch) - require.Equal(t, tt.wantedBestJustified.Root, fcs.store.bestJustifiedCheckpoint.Root) } }) } diff --git a/beacon-chain/forkchoice/doubly-linked-tree/node.go b/beacon-chain/forkchoice/doubly-linked-tree/node.go index cbf3510e1d68..7a2bb5f981f1 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/node.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/node.go @@ -5,7 +5,6 @@ import ( "context" "github.com/pkg/errors" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/config/params" "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives" v1 "github.com/prysmaticlabs/prysm/v3/proto/eth/v1" @@ -99,7 +98,7 @@ func (n *Node) updateBestDescendant(ctx context.Context, justifiedEpoch, finaliz // the ones in fork choice store should not be viable to head. func (n *Node) viableForHead(justifiedEpoch, currentEpoch primitives.Epoch) bool { justified := justifiedEpoch == n.justifiedEpoch || justifiedEpoch == 0 - if features.Get().EnableDefensivePull && !justified && justifiedEpoch+1 == currentEpoch { + if !justified && justifiedEpoch+1 == currentEpoch { if n.unrealizedJustifiedEpoch+1 >= currentEpoch && n.justifiedEpoch+2 >= currentEpoch { justified = true } diff --git a/beacon-chain/forkchoice/doubly-linked-tree/on_tick.go b/beacon-chain/forkchoice/doubly-linked-tree/on_tick.go index cb80f68ac2ad..3118963cfbbe 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/on_tick.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/on_tick.go @@ -4,7 +4,6 @@ import ( "context" "github.com/pkg/errors" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives" "github.com/prysmaticlabs/prysm/v3/time/slots" ) @@ -42,35 +41,8 @@ func (f *ForkChoice) NewSlot(ctx context.Context, slot primitives.Slot) error { } // Update store.justified_checkpoint if a better checkpoint on the store.finalized_checkpoint chain - bjcp := f.store.bestJustifiedCheckpoint - jcp := f.store.justifiedCheckpoint - fcp := f.store.finalizedCheckpoint - if bjcp.Epoch > jcp.Epoch { - finalizedSlot, err := slots.EpochStart(fcp.Epoch) - if err != nil { - return err - } - - // We check that the best justified checkpoint is a descendant of the finalized checkpoint. - // This should always happen as forkchoice enforces that every node is a descendant of the - // finalized checkpoint. This check is here for additional security, consider removing the extra - // loop call here. - r, err := f.AncestorRoot(ctx, bjcp.Root, finalizedSlot) - if err != nil { - return err - } - if r == fcp.Root { - f.store.prevJustifiedCheckpoint = jcp - f.store.justifiedCheckpoint = bjcp - if err := f.updateJustifiedBalances(ctx, bjcp.Root); err != nil { - log.Error("could not update justified balances") - } - } - } - if !features.Get().DisablePullTips { - if err := f.updateUnrealizedCheckpoints(ctx); err != nil { - return errors.Wrap(err, "could not update unrealized checkpoints") - } + if err := f.updateUnrealizedCheckpoints(ctx); err != nil { + return errors.Wrap(err, "could not update unrealized checkpoints") } return f.store.prune(ctx) } diff --git a/beacon-chain/forkchoice/doubly-linked-tree/on_tick_test.go b/beacon-chain/forkchoice/doubly-linked-tree/on_tick_test.go index 7c3ed5e2545c..640505de7bdb 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/on_tick_test.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/on_tick_test.go @@ -55,51 +55,41 @@ func TestStore_NewSlot(t *testing.T) { shouldEqual: false, }, }, - { - name: "Best justified on the same chain as finalized. Yes change", - args: args{ - slot: params.BeaconConfig().SlotsPerEpoch, - finalized: &forkchoicetypes.Checkpoint{Epoch: 1, Root: [32]byte{'a'}}, - justified: &forkchoicetypes.Checkpoint{Epoch: 2, Root: [32]byte{'b'}}, - bestJustified: &forkchoicetypes.Checkpoint{Epoch: 3, Root: bj}, - shouldEqual: true, - }, - }, } for _, test := range tests { - f := setup(test.args.justified.Epoch, test.args.finalized.Epoch) - state, blkRoot, err := prepareForkchoiceState(ctx, 0, [32]byte{}, [32]byte{}, [32]byte{}, 0, 0) - require.NoError(t, err) - require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // genesis - state, blkRoot, err = prepareForkchoiceState(ctx, 32, [32]byte{'a'}, [32]byte{}, [32]byte{}, 0, 0) - require.NoError(t, err) - require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // finalized - state, blkRoot, err = prepareForkchoiceState(ctx, 64, [32]byte{'b'}, [32]byte{'a'}, [32]byte{}, 0, 0) - require.NoError(t, err) - require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // justified - state, blkRoot, err = prepareForkchoiceState(ctx, 96, bj, [32]byte{'a'}, [32]byte{}, 0, 0) - require.NoError(t, err) - require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // best justified - state, blkRoot, err = prepareForkchoiceState(ctx, 97, [32]byte{'d'}, [32]byte{}, [32]byte{}, 0, 0) - require.NoError(t, err) - require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // bad + t.Run(test.name, func(t *testing.T) { + f := setup(test.args.justified.Epoch, test.args.finalized.Epoch) + state, blkRoot, err := prepareForkchoiceState(ctx, 0, [32]byte{}, [32]byte{}, [32]byte{}, 0, 0) + require.NoError(t, err) + require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // genesis + state, blkRoot, err = prepareForkchoiceState(ctx, 32, [32]byte{'a'}, [32]byte{}, [32]byte{}, 0, 0) + require.NoError(t, err) + require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // finalized + state, blkRoot, err = prepareForkchoiceState(ctx, 64, [32]byte{'b'}, [32]byte{'a'}, [32]byte{}, 0, 0) + require.NoError(t, err) + require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // justified + state, blkRoot, err = prepareForkchoiceState(ctx, 96, bj, [32]byte{'a'}, [32]byte{}, 0, 0) + require.NoError(t, err) + require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // best justified + state, blkRoot, err = prepareForkchoiceState(ctx, 97, [32]byte{'d'}, [32]byte{}, [32]byte{}, 0, 0) + require.NoError(t, err) + require.NoError(t, f.InsertNode(ctx, state, blkRoot)) // bad - require.NoError(t, f.UpdateFinalizedCheckpoint(test.args.finalized)) - require.NoError(t, f.UpdateJustifiedCheckpoint(ctx, test.args.justified)) - f.store.bestJustifiedCheckpoint = test.args.bestJustified + require.NoError(t, f.UpdateFinalizedCheckpoint(test.args.finalized)) + require.NoError(t, f.UpdateJustifiedCheckpoint(ctx, test.args.justified)) - require.NoError(t, f.NewSlot(ctx, test.args.slot)) - if test.args.shouldEqual { - bcp := f.BestJustifiedCheckpoint() - cp := f.JustifiedCheckpoint() - require.Equal(t, bcp.Epoch, cp.Epoch) - require.Equal(t, bcp.Root, cp.Root) - } else { - bcp := f.BestJustifiedCheckpoint() - cp := f.JustifiedCheckpoint() - epochsEqual := bcp.Epoch == cp.Epoch - rootsEqual := bcp.Root == cp.Root - require.Equal(t, false, epochsEqual && rootsEqual) - } + require.NoError(t, f.NewSlot(ctx, test.args.slot)) + bcp := test.args.bestJustified + if test.args.shouldEqual { + cp := f.JustifiedCheckpoint() + require.Equal(t, bcp.Epoch, cp.Epoch) + require.Equal(t, bcp.Root, cp.Root) + } else { + cp := f.JustifiedCheckpoint() + epochsEqual := bcp.Epoch == cp.Epoch + rootsEqual := bcp.Root == cp.Root + require.Equal(t, false, epochsEqual && rootsEqual) + } + }) } } diff --git a/beacon-chain/forkchoice/doubly-linked-tree/types.go b/beacon-chain/forkchoice/doubly-linked-tree/types.go index 92aea93f0617..58cea7ac1321 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/types.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/types.go @@ -23,7 +23,6 @@ type ForkChoice struct { // Store defines the fork choice store which includes block nodes and the last view of checkpoint information. type Store struct { justifiedCheckpoint *forkchoicetypes.Checkpoint // latest justified epoch in store. - bestJustifiedCheckpoint *forkchoicetypes.Checkpoint // best justified checkpoint in store. unrealizedJustifiedCheckpoint *forkchoicetypes.Checkpoint // best unrealized justified checkpoint in store. unrealizedFinalizedCheckpoint *forkchoicetypes.Checkpoint // best unrealized finalized checkpoint in store. prevJustifiedCheckpoint *forkchoicetypes.Checkpoint // previous justified checkpoint in store. diff --git a/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification.go b/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification.go index 1f7b7dec9af2..d418d045c857 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification.go @@ -7,7 +7,6 @@ import ( "github.com/prysmaticlabs/prysm/v3/beacon-chain/core/epoch/precompute" forkchoicetypes "github.com/prysmaticlabs/prysm/v3/beacon-chain/forkchoice/types" "github.com/prysmaticlabs/prysm/v3/beacon-chain/state" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/config/params" "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives" "github.com/prysmaticlabs/prysm/v3/encoding/bytesutil" @@ -51,19 +50,8 @@ func (f *ForkChoice) updateUnrealizedCheckpoints(ctx context.Context) error { if err := f.updateJustifiedBalances(ctx, f.store.justifiedCheckpoint.Root); err != nil { return errors.Wrap(err, "could not update justified balances") } - if !features.Get().EnableDefensivePull && node.justifiedEpoch > f.store.bestJustifiedCheckpoint.Epoch { - f.store.bestJustifiedCheckpoint = f.store.unrealizedJustifiedCheckpoint - } } if node.finalizedEpoch > f.store.finalizedCheckpoint.Epoch { - if !features.Get().EnableDefensivePull { - if f.store.unrealizedJustifiedCheckpoint.Epoch != f.store.justifiedCheckpoint.Epoch { - if err := f.updateJustifiedBalances(ctx, f.store.unrealizedJustifiedCheckpoint.Root); err != nil { - return errors.Wrap(err, "could not update justified balances") - } - f.store.justifiedCheckpoint = f.store.unrealizedJustifiedCheckpoint - } - } f.store.finalizedCheckpoint = f.store.unrealizedFinalizedCheckpoint } } diff --git a/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification_test.go b/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification_test.go index 697ac1a53d6b..b1f4e8fcf804 100644 --- a/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification_test.go +++ b/beacon-chain/forkchoice/doubly-linked-tree/unrealized_justification_test.go @@ -5,7 +5,6 @@ import ( "testing" forkchoicetypes "github.com/prysmaticlabs/prysm/v3/beacon-chain/forkchoice/types" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/config/params" "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives" "github.com/prysmaticlabs/prysm/v3/testing/require" @@ -196,11 +195,6 @@ func TestStore_NoDeadLock(t *testing.T) { // // D justifies and comes late. func TestStore_ForkNextEpoch(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - EnableDefensivePull: true, - }) - defer resetCfg() - f := setup(1, 0) ctx := context.Background() diff --git a/beacon-chain/forkchoice/interfaces.go b/beacon-chain/forkchoice/interfaces.go index 73485e0459d9..9a19530584e8 100644 --- a/beacon-chain/forkchoice/interfaces.go +++ b/beacon-chain/forkchoice/interfaces.go @@ -57,7 +57,6 @@ type Getter interface { JustifiedCheckpoint() *forkchoicetypes.Checkpoint PreviousJustifiedCheckpoint() *forkchoicetypes.Checkpoint JustifiedPayloadBlockHash() [32]byte - BestJustifiedCheckpoint() *forkchoicetypes.Checkpoint NodeCount() int HighestReceivedBlockSlot() primitives.Slot ReceivedBlocksLastEpoch() (uint64, error) diff --git a/beacon-chain/rpc/eth/beacon/config_test.go b/beacon-chain/rpc/eth/beacon/config_test.go index 94f8b9fce0d5..c428fa70ddc9 100644 --- a/beacon-chain/rpc/eth/beacon/config_test.go +++ b/beacon-chain/rpc/eth/beacon/config_test.go @@ -32,7 +32,6 @@ func TestGetSpec(t *testing.T) { config.HysteresisQuotient = 9 config.HysteresisDownwardMultiplier = 10 config.HysteresisUpwardMultiplier = 11 - config.SafeSlotsToUpdateJustified = 12 config.Eth1FollowDistance = 13 config.TargetAggregatorsPerCommittee = 14 config.RandomSubnetsPerValidator = 15 @@ -167,7 +166,7 @@ func TestGetSpec(t *testing.T) { case "HYSTERESIS_UPWARD_MULTIPLIER": assert.Equal(t, "11", v) case "SAFE_SLOTS_TO_UPDATE_JUSTIFIED": - assert.Equal(t, "12", v) + assert.Equal(t, "0", v) case "ETH1_FOLLOW_DISTANCE": assert.Equal(t, "13", v) case "TARGET_AGGREGATORS_PER_COMMITTEE": diff --git a/config/features/config.go b/config/features/config.go index ec5d428f9634..17b9874a0d95 100644 --- a/config/features/config.go +++ b/config/features/config.go @@ -62,8 +62,6 @@ type Flags struct { // EnableSlashingProtectionPruning for the validator client. EnableSlashingProtectionPruning bool - DisablePullTips bool // DisablePullTips disables experimental disabling of boundary checks. - EnableDefensivePull bool // EnableDefensivePull enables exerimental back boundary checks. EnableVectorizedHTR bool // EnableVectorizedHTR specifies whether the beacon state will use the optimized sha256 routines. DisableForkchoiceDoublyLinkedTree bool // DisableForkChoiceDoublyLinkedTree specifies whether fork choice store will use a doubly linked tree. EnableBatchGossipAggregation bool // EnableBatchGossipAggregation specifies whether to further aggregate our gossip batches before verifying them. @@ -193,15 +191,6 @@ func ConfigureBeaconChain(ctx *cli.Context) error { log.WithField(enableHistoricalSpaceRepresentation.Name, enableHistoricalSpaceRepresentation.Usage).Warn(enabledFeatureFlag) cfg.EnableHistoricalSpaceRepresentation = true } - if ctx.Bool(disablePullTips.Name) { - logEnabled(disablePullTips) - cfg.DisablePullTips = true - } - cfg.EnableDefensivePull = true - if ctx.Bool(disableDefensivePull.Name) { - logEnabled(disableDefensivePull) - cfg.EnableDefensivePull = false - } if ctx.Bool(disableStakinContractCheck.Name) { logEnabled(disableStakinContractCheck) cfg.DisableStakinContractCheck = true diff --git a/config/features/flags.go b/config/features/flags.go index 6d63d8d15c99..b9f2c6aed9dc 100644 --- a/config/features/flags.go +++ b/config/features/flags.go @@ -88,15 +88,6 @@ var ( " (Warning): Once enabled, this feature migrates your database in to a new schema and " + "there is no going back. At worst, your entire database might get corrupted.", } - disablePullTips = &cli.BoolFlag{ - Name: "experimental-enable-boundary-checks", - Usage: "Experimental enable of boundary checks, useful for debugging, may cause bad votes.", - } - disableDefensivePull = &cli.BoolFlag{ - Name: "disable-back-pull", - Usage: "Experimental disable of past boundary checks, useful for debugging, may cause bad votes.", - Hidden: true, - } disableVecHTR = &cli.BoolFlag{ Name: "disable-vectorized-htr", Usage: "Disables the new go sha256 library which utilizes optimized routines for merkle trees", @@ -171,14 +162,12 @@ var BeaconChainFlags = append(deprecatedBeaconFlags, append(deprecatedFlags, []c enableSlasherFlag, enableHistoricalSpaceRepresentation, disableStakinContractCheck, - disablePullTips, disableVecHTR, enableReorgLateBlocks, disableForkChoiceDoublyLinkedTree, disableGossipBatchAggregation, SaveFullExecutionPayloads, enableStartupOptimistic, - disableDefensivePull, enableFullSSZDataLogging, enableVerboseSigVerification, EnableOptionalEngineMethods, diff --git a/config/params/config.go b/config/params/config.go index 8b3e49e1494f..6a3482222084 100644 --- a/config/params/config.go +++ b/config/params/config.go @@ -62,7 +62,7 @@ type BeaconChainConfig struct { ShardCommitteePeriod primitives.Epoch `yaml:"SHARD_COMMITTEE_PERIOD" spec:"true"` // ShardCommitteePeriod is the minimum amount of epochs a validator must participate before exiting. MinEpochsToInactivityPenalty primitives.Epoch `yaml:"MIN_EPOCHS_TO_INACTIVITY_PENALTY" spec:"true"` // MinEpochsToInactivityPenalty defines the minimum amount of epochs since finality to begin penalizing inactivity. Eth1FollowDistance uint64 `yaml:"ETH1_FOLLOW_DISTANCE" spec:"true"` // Eth1FollowDistance is the number of eth1.0 blocks to wait before considering a new deposit for voting. This only applies after the chain as been started. - SafeSlotsToUpdateJustified primitives.Slot `yaml:"SAFE_SLOTS_TO_UPDATE_JUSTIFIED" spec:"true"` // SafeSlotsToUpdateJustified is the minimal slots needed to update justified check point. + DeprecatedSafeSlotsToUpdateJustified primitives.Slot `yaml:"SAFE_SLOTS_TO_UPDATE_JUSTIFIED" spec:"true"` // DeprecateSafeSlotsToUpdateJustified is the minimal slots needed to update justified check point. DeprecatedSafeSlotsToImportOptimistically primitives.Slot `yaml:"SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY" spec:"true"` // SafeSlotsToImportOptimistically is the minimal number of slots to wait before importing optimistically a pre-merge block SecondsPerETH1Block uint64 `yaml:"SECONDS_PER_ETH1_BLOCK" spec:"true"` // SecondsPerETH1Block is the approximate time for a single eth1 block to be produced. diff --git a/config/params/configset_test.go b/config/params/configset_test.go index 57a423a7da92..518e17e39ba6 100644 --- a/config/params/configset_test.go +++ b/config/params/configset_test.go @@ -112,7 +112,7 @@ func compareConfigs(t *testing.T, expected, actual *BeaconChainConfig) { require.DeepEqual(t, expected.ShardCommitteePeriod, actual.ShardCommitteePeriod) require.DeepEqual(t, expected.MinEpochsToInactivityPenalty, actual.MinEpochsToInactivityPenalty) require.DeepEqual(t, expected.Eth1FollowDistance, actual.Eth1FollowDistance) - require.DeepEqual(t, expected.SafeSlotsToUpdateJustified, actual.SafeSlotsToUpdateJustified) + require.DeepEqual(t, expected.DeprecatedSafeSlotsToUpdateJustified, actual.DeprecatedSafeSlotsToUpdateJustified) require.DeepEqual(t, expected.SecondsPerETH1Block, actual.SecondsPerETH1Block) require.DeepEqual(t, expected.ProposerScoreBoost, actual.ProposerScoreBoost) require.DeepEqual(t, expected.IntervalsPerSlot, actual.IntervalsPerSlot) diff --git a/config/params/loader_test.go b/config/params/loader_test.go index 1f518c8404d9..45cc3102f38f 100644 --- a/config/params/loader_test.go +++ b/config/params/loader_test.go @@ -37,7 +37,7 @@ func assertEqualConfigs(t *testing.T, name string, fields []string, expected, ac assert.Equal(t, expected.HysteresisUpwardMultiplier, actual.HysteresisUpwardMultiplier, "%s: HysteresisUpwardMultiplier", name) // Fork Choice params. - assert.Equal(t, expected.SafeSlotsToUpdateJustified, actual.SafeSlotsToUpdateJustified, "%s: SafeSlotsToUpdateJustified", name) + assert.Equal(t, expected.DeprecatedSafeSlotsToUpdateJustified, actual.DeprecatedSafeSlotsToUpdateJustified, "%s: SafeSlotsToUpdateJustified", name) // Validator params. assert.Equal(t, expected.Eth1FollowDistance, actual.Eth1FollowDistance, "%s: Eth1FollowDistance", name) diff --git a/config/params/mainnet_config.go b/config/params/mainnet_config.go index 98580c0e1a32..49a7aa38c056 100644 --- a/config/params/mainnet_config.go +++ b/config/params/mainnet_config.go @@ -111,7 +111,6 @@ var mainnetBeaconConfig = &BeaconChainConfig{ ShardCommitteePeriod: 256, MinEpochsToInactivityPenalty: 4, Eth1FollowDistance: 2048, - SafeSlotsToUpdateJustified: 8, // Fork choice algorithm constants. ProposerScoreBoost: 40, diff --git a/config/params/minimal_config.go b/config/params/minimal_config.go index facf82540bc7..f954e6059c0e 100644 --- a/config/params/minimal_config.go +++ b/config/params/minimal_config.go @@ -44,7 +44,6 @@ func MinimalSpecConfig() *BeaconChainConfig { minimalConfig.ShardCommitteePeriod = 64 minimalConfig.MinEpochsToInactivityPenalty = 4 minimalConfig.Eth1FollowDistance = 16 - minimalConfig.SafeSlotsToUpdateJustified = 2 minimalConfig.SecondsPerETH1Block = 14 // State vector lengths diff --git a/config/params/testnet_config_test.go b/config/params/testnet_config_test.go index 788f34457754..9f4285235cab 100644 --- a/config/params/testnet_config_test.go +++ b/config/params/testnet_config_test.go @@ -76,7 +76,7 @@ func compareConfigs(t *testing.T, expected, actual *params.BeaconChainConfig) { require.DeepEqual(t, expected.ShardCommitteePeriod, actual.ShardCommitteePeriod) require.DeepEqual(t, expected.MinEpochsToInactivityPenalty, actual.MinEpochsToInactivityPenalty) require.DeepEqual(t, expected.Eth1FollowDistance, actual.Eth1FollowDistance) - require.DeepEqual(t, expected.SafeSlotsToUpdateJustified, actual.SafeSlotsToUpdateJustified) + require.DeepEqual(t, expected.DeprecatedSafeSlotsToUpdateJustified, actual.DeprecatedSafeSlotsToUpdateJustified) require.DeepEqual(t, expected.SecondsPerETH1Block, actual.SecondsPerETH1Block) require.DeepEqual(t, expected.ProposerScoreBoost, actual.ProposerScoreBoost) require.DeepEqual(t, expected.IntervalsPerSlot, actual.IntervalsPerSlot) diff --git a/proto/eth/v1/beacon_chain.pb.go b/proto/eth/v1/beacon_chain.pb.go index 11676e816006..29f8ea7cb798 100755 --- a/proto/eth/v1/beacon_chain.pb.go +++ b/proto/eth/v1/beacon_chain.pb.go @@ -11,11 +11,11 @@ import ( sync "sync" _ "github.com/golang/protobuf/protoc-gen-go/descriptor" + timestamp "github.com/golang/protobuf/ptypes/timestamp" github_com_prysmaticlabs_prysm_v3_consensus_types_primitives "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives" _ "github.com/prysmaticlabs/prysm/v3/proto/eth/ext" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) const ( @@ -2173,7 +2173,6 @@ type ForkChoiceDump struct { JustifiedCheckpoint *Checkpoint `protobuf:"bytes,1,opt,name=justified_checkpoint,json=justifiedCheckpoint,proto3" json:"justified_checkpoint,omitempty"` FinalizedCheckpoint *Checkpoint `protobuf:"bytes,2,opt,name=finalized_checkpoint,json=finalizedCheckpoint,proto3" json:"finalized_checkpoint,omitempty"` - BestJustifiedCheckpoint *Checkpoint `protobuf:"bytes,3,opt,name=best_justified_checkpoint,json=bestJustifiedCheckpoint,proto3" json:"best_justified_checkpoint,omitempty"` UnrealizedJustifiedCheckpoint *Checkpoint `protobuf:"bytes,4,opt,name=unrealized_justified_checkpoint,json=unrealizedJustifiedCheckpoint,proto3" json:"unrealized_justified_checkpoint,omitempty"` UnrealizedFinalizedCheckpoint *Checkpoint `protobuf:"bytes,5,opt,name=unrealized_finalized_checkpoint,json=unrealizedFinalizedCheckpoint,proto3" json:"unrealized_finalized_checkpoint,omitempty"` ProposerBoostRoot []byte `protobuf:"bytes,6,opt,name=proposer_boost_root,json=proposerBoostRoot,proto3" json:"proposer_boost_root,omitempty" ssz-size:"32"` @@ -2228,13 +2227,6 @@ func (x *ForkChoiceDump) GetFinalizedCheckpoint() *Checkpoint { return nil } -func (x *ForkChoiceDump) GetBestJustifiedCheckpoint() *Checkpoint { - if x != nil { - return x.BestJustifiedCheckpoint - } - return nil -} - func (x *ForkChoiceDump) GetUnrealizedJustifiedCheckpoint() *Checkpoint { if x != nil { return x.UnrealizedJustifiedCheckpoint @@ -2425,9 +2417,9 @@ type GenesisResponse_Genesis struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GenesisTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - GenesisValidatorsRoot []byte `protobuf:"bytes,2,opt,name=genesis_validators_root,json=genesisValidatorsRoot,proto3" json:"genesis_validators_root,omitempty" ssz-size:"32"` - GenesisForkVersion []byte `protobuf:"bytes,3,opt,name=genesis_fork_version,json=genesisForkVersion,proto3" json:"genesis_fork_version,omitempty" ssz-size:"4"` + GenesisTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` + GenesisValidatorsRoot []byte `protobuf:"bytes,2,opt,name=genesis_validators_root,json=genesisValidatorsRoot,proto3" json:"genesis_validators_root,omitempty" ssz-size:"32"` + GenesisForkVersion []byte `protobuf:"bytes,3,opt,name=genesis_fork_version,json=genesisForkVersion,proto3" json:"genesis_fork_version,omitempty" ssz-size:"4"` } func (x *GenesisResponse_Genesis) Reset() { @@ -2462,7 +2454,7 @@ func (*GenesisResponse_Genesis) Descriptor() ([]byte, []int) { return file_proto_eth_v1_beacon_chain_proto_rawDescGZIP(), []int{0, 0} } -func (x *GenesisResponse_Genesis) GetGenesisTime() *timestamppb.Timestamp { +func (x *GenesisResponse_Genesis) GetGenesisTime() *timestamp.Timestamp { if x != nil { return x.GenesisTime } @@ -2945,7 +2937,7 @@ var file_proto_eth_v1_beacon_chain_proto_rawDesc = []byte{ 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0c, 0x77, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xc6, 0x05, 0x0a, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xf3, 0x04, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x4e, 0x0a, 0x14, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, @@ -2957,111 +2949,106 @@ var file_proto_eth_v1_beacon_chain_proto_rawDesc = []byte{ 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x57, 0x0a, 0x19, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, - 0x17, 0x62, 0x65, 0x73, 0x74, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x63, 0x0a, 0x1f, 0x75, 0x6e, 0x72, 0x65, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1d, - 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x63, 0x0a, - 0x1f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x1d, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x62, - 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x47, 0x0a, 0x1c, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, - 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x19, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x52, - 0x6f, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x08, - 0x68, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x4b, 0x0a, 0x11, 0x66, 0x6f, 0x72, 0x6b, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0xad, 0x07, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x59, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, 0x41, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, - 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x25, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, - 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x0b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, - 0x6f, 0x6f, 0x74, 0x12, 0x6f, 0x0a, 0x0f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, 0x82, 0xb5, - 0x18, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, - 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, - 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x52, 0x0e, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x6f, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, 0x82, - 0xb5, 0x18, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, - 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, - 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x84, 0x01, 0x0a, 0x1a, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, 0x82, 0xb5, 0x18, 0x42, + 0x63, 0x0a, 0x1f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6a, 0x75, + 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1d, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x63, 0x0a, 0x1f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1d, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x13, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x11, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x6f, + 0x74, 0x12, 0x47, 0x0a, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, + 0x19, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x09, 0x68, 0x65, + 0x61, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, + 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, + 0x4b, 0x0a, 0x11, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x66, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x03, + 0x10, 0x04, 0x22, 0xad, 0x07, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x59, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, + 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x12, 0x25, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x09, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, + 0x18, 0x02, 0x33, 0x32, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x6f, 0x74, + 0x12, 0x6f, 0x0a, 0x0f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, 0x82, 0xb5, 0x18, 0x42, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, + 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x33, + 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x52, 0x0e, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x6f, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, 0x82, 0xb5, 0x18, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x52, 0x18, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4a, 0x75, - 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x84, 0x01, 0x0a, - 0x1a, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x46, 0x82, 0xb5, 0x18, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, - 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x73, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x18, 0x75, 0x6e, 0x72, 0x65, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x73, 0x74, 0x69, 0x63, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, - 0x74, 0x69, 0x6d, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x38, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x12, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x43, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, - 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x52, 0x08, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x69, 0x74, 0x79, 0x2a, 0x40, 0x0a, 0x16, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, - 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x54, 0x49, 0x4d, - 0x49, 0x53, 0x54, 0x49, 0x43, 0x10, 0x02, 0x42, 0x7d, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x2e, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x10, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, + 0x63, 0x68, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x84, 0x01, 0x0a, 0x1a, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, 0x82, 0xb5, 0x18, 0x42, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, + 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x63, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, + 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, + 0x18, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4a, 0x75, 0x73, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x84, 0x01, 0x0a, 0x1a, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x46, + 0x82, 0xb5, 0x18, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, - 0x73, 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, - 0x76, 0x31, 0xaa, 0x02, 0x0f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x74, - 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5c, - 0x45, 0x74, 0x68, 0x5c, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x6d, 0x2f, 0x76, 0x33, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x18, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x73, 0x74, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6d, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x38, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x12, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x43, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, + 0x74, 0x79, 0x2a, 0x40, 0x0a, 0x16, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x09, 0x0a, 0x05, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x54, + 0x49, 0x43, 0x10, 0x02, 0x42, 0x7d, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x2e, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, + 0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0xaa, + 0x02, 0x0f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x74, 0x68, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x0f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5c, 0x45, 0x74, 0x68, + 0x5c, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3123,19 +3110,19 @@ var file_proto_eth_v1_beacon_chain_proto_goTypes = []interface{}{ (*GenesisResponse_Genesis)(nil), // 41: ethereum.eth.v1.GenesisResponse.Genesis (*StateRootResponse_StateRoot)(nil), // 42: ethereum.eth.v1.StateRootResponse.StateRoot (*StateFinalityCheckpointResponse_StateFinalityCheckpoint)(nil), // 43: ethereum.eth.v1.StateFinalityCheckpointResponse.StateFinalityCheckpoint - nil, // 44: ethereum.eth.v1.SpecResponse.DataEntry - (*Fork)(nil), // 45: ethereum.eth.v1.Fork - (ValidatorStatus)(0), // 46: ethereum.eth.v1.ValidatorStatus - (*ValidatorContainer)(nil), // 47: ethereum.eth.v1.ValidatorContainer - (*Committee)(nil), // 48: ethereum.eth.v1.Committee - (*Attestation)(nil), // 49: ethereum.eth.v1.Attestation - (*BeaconBlockHeader)(nil), // 50: ethereum.eth.v1.BeaconBlockHeader - (*BeaconBlock)(nil), // 51: ethereum.eth.v1.BeaconBlock - (*AttesterSlashing)(nil), // 52: ethereum.eth.v1.AttesterSlashing - (*ProposerSlashing)(nil), // 53: ethereum.eth.v1.ProposerSlashing - (*SignedVoluntaryExit)(nil), // 54: ethereum.eth.v1.SignedVoluntaryExit - (*Checkpoint)(nil), // 55: ethereum.eth.v1.Checkpoint - (*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp + nil, // 44: ethereum.eth.v1.SpecResponse.DataEntry + (*Fork)(nil), // 45: ethereum.eth.v1.Fork + (ValidatorStatus)(0), // 46: ethereum.eth.v1.ValidatorStatus + (*ValidatorContainer)(nil), // 47: ethereum.eth.v1.ValidatorContainer + (*Committee)(nil), // 48: ethereum.eth.v1.Committee + (*Attestation)(nil), // 49: ethereum.eth.v1.Attestation + (*BeaconBlockHeader)(nil), // 50: ethereum.eth.v1.BeaconBlockHeader + (*BeaconBlock)(nil), // 51: ethereum.eth.v1.BeaconBlock + (*AttesterSlashing)(nil), // 52: ethereum.eth.v1.AttesterSlashing + (*ProposerSlashing)(nil), // 53: ethereum.eth.v1.ProposerSlashing + (*SignedVoluntaryExit)(nil), // 54: ethereum.eth.v1.SignedVoluntaryExit + (*Checkpoint)(nil), // 55: ethereum.eth.v1.Checkpoint + (*timestamp.Timestamp)(nil), // 56: google.protobuf.Timestamp } var file_proto_eth_v1_beacon_chain_proto_depIdxs = []int32{ 41, // 0: ethereum.eth.v1.GenesisResponse.data:type_name -> ethereum.eth.v1.GenesisResponse.Genesis @@ -3167,20 +3154,19 @@ var file_proto_eth_v1_beacon_chain_proto_depIdxs = []int32{ 55, // 26: ethereum.eth.v1.WeakSubjectivityData.ws_checkpoint:type_name -> ethereum.eth.v1.Checkpoint 55, // 27: ethereum.eth.v1.ForkChoiceDump.justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint 55, // 28: ethereum.eth.v1.ForkChoiceDump.finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 55, // 29: ethereum.eth.v1.ForkChoiceDump.best_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 55, // 30: ethereum.eth.v1.ForkChoiceDump.unrealized_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 55, // 31: ethereum.eth.v1.ForkChoiceDump.unrealized_finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 40, // 32: ethereum.eth.v1.ForkChoiceDump.fork_choice_nodes:type_name -> ethereum.eth.v1.ForkChoiceNode - 0, // 33: ethereum.eth.v1.ForkChoiceNode.validity:type_name -> ethereum.eth.v1.ForkChoiceNodeValidity - 56, // 34: ethereum.eth.v1.GenesisResponse.Genesis.genesis_time:type_name -> google.protobuf.Timestamp - 55, // 35: ethereum.eth.v1.StateFinalityCheckpointResponse.StateFinalityCheckpoint.previous_justified:type_name -> ethereum.eth.v1.Checkpoint - 55, // 36: ethereum.eth.v1.StateFinalityCheckpointResponse.StateFinalityCheckpoint.current_justified:type_name -> ethereum.eth.v1.Checkpoint - 55, // 37: ethereum.eth.v1.StateFinalityCheckpointResponse.StateFinalityCheckpoint.finalized:type_name -> ethereum.eth.v1.Checkpoint - 38, // [38:38] is the sub-list for method output_type - 38, // [38:38] is the sub-list for method input_type - 38, // [38:38] is the sub-list for extension type_name - 38, // [38:38] is the sub-list for extension extendee - 0, // [0:38] is the sub-list for field type_name + 55, // 29: ethereum.eth.v1.ForkChoiceDump.unrealized_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint + 55, // 30: ethereum.eth.v1.ForkChoiceDump.unrealized_finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint + 40, // 31: ethereum.eth.v1.ForkChoiceDump.fork_choice_nodes:type_name -> ethereum.eth.v1.ForkChoiceNode + 0, // 32: ethereum.eth.v1.ForkChoiceNode.validity:type_name -> ethereum.eth.v1.ForkChoiceNodeValidity + 56, // 33: ethereum.eth.v1.GenesisResponse.Genesis.genesis_time:type_name -> google.protobuf.Timestamp + 55, // 34: ethereum.eth.v1.StateFinalityCheckpointResponse.StateFinalityCheckpoint.previous_justified:type_name -> ethereum.eth.v1.Checkpoint + 55, // 35: ethereum.eth.v1.StateFinalityCheckpointResponse.StateFinalityCheckpoint.current_justified:type_name -> ethereum.eth.v1.Checkpoint + 55, // 36: ethereum.eth.v1.StateFinalityCheckpointResponse.StateFinalityCheckpoint.finalized:type_name -> ethereum.eth.v1.Checkpoint + 37, // [37:37] is the sub-list for method output_type + 37, // [37:37] is the sub-list for method input_type + 37, // [37:37] is the sub-list for extension type_name + 37, // [37:37] is the sub-list for extension extendee + 0, // [0:37] is the sub-list for field type_name } func init() { file_proto_eth_v1_beacon_chain_proto_init() } diff --git a/proto/eth/v1/beacon_chain.proto b/proto/eth/v1/beacon_chain.proto index 41a27e35eccd..ae768dc8c607 100644 --- a/proto/eth/v1/beacon_chain.proto +++ b/proto/eth/v1/beacon_chain.proto @@ -307,12 +307,11 @@ message WeakSubjectivityData { } message ForkChoiceDump { + reserved 3; // Latest justified checkpoint in forkchoice store. Checkpoint justified_checkpoint = 1; // Latest finalized checkpoint in forkchoice store. Checkpoint finalized_checkpoint = 2; - // Best justified checkpoint in forkchoice store. - Checkpoint best_justified_checkpoint = 3; // Unrealized justified checkpoint in forkchoice store. Checkpoint unrealized_justified_checkpoint = 4; // Unrealized finalized checkpoint in forkchoice store. diff --git a/testing/spectest/mainnet/altair/forkchoice/BUILD.bazel b/testing/spectest/mainnet/altair/forkchoice/BUILD.bazel index 33f58a3756e5..1c2f4d9d33f4 100644 --- a/testing/spectest/mainnet/altair/forkchoice/BUILD.bazel +++ b/testing/spectest/mainnet/altair/forkchoice/BUILD.bazel @@ -10,7 +10,6 @@ go_test( ], tags = ["spectest"], deps = [ - "//config/features:go_default_library", "//runtime/version:go_default_library", "//testing/spectest/shared/common/forkchoice:go_default_library", ], diff --git a/testing/spectest/mainnet/altair/forkchoice/forkchoice_test.go b/testing/spectest/mainnet/altair/forkchoice/forkchoice_test.go index 3608391d038e..186c7c2cf242 100644 --- a/testing/spectest/mainnet/altair/forkchoice/forkchoice_test.go +++ b/testing/spectest/mainnet/altair/forkchoice/forkchoice_test.go @@ -3,16 +3,10 @@ package forkchoice import ( "testing" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/runtime/version" "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" ) func TestMainnet_Altair_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - EnableDefensivePull: false, - DisablePullTips: true, - }) - defer resetCfg() forkchoice.Run(t, "mainnet", version.Altair) } diff --git a/testing/spectest/mainnet/bellatrix/forkchoice/BUILD.bazel b/testing/spectest/mainnet/bellatrix/forkchoice/BUILD.bazel index 33f58a3756e5..1c2f4d9d33f4 100644 --- a/testing/spectest/mainnet/bellatrix/forkchoice/BUILD.bazel +++ b/testing/spectest/mainnet/bellatrix/forkchoice/BUILD.bazel @@ -10,7 +10,6 @@ go_test( ], tags = ["spectest"], deps = [ - "//config/features:go_default_library", "//runtime/version:go_default_library", "//testing/spectest/shared/common/forkchoice:go_default_library", ], diff --git a/testing/spectest/mainnet/bellatrix/forkchoice/forkchoice_test.go b/testing/spectest/mainnet/bellatrix/forkchoice/forkchoice_test.go index 8d69a2756814..095c83972a59 100644 --- a/testing/spectest/mainnet/bellatrix/forkchoice/forkchoice_test.go +++ b/testing/spectest/mainnet/bellatrix/forkchoice/forkchoice_test.go @@ -3,16 +3,10 @@ package forkchoice import ( "testing" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/runtime/version" "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" ) func TestMainnet_Bellatrix_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - EnableDefensivePull: false, - DisablePullTips: true, - }) - defer resetCfg() forkchoice.Run(t, "mainnet", version.Bellatrix) } diff --git a/testing/spectest/mainnet/capella/forkchoice/BUILD.bazel b/testing/spectest/mainnet/capella/forkchoice/BUILD.bazel index 1027f241bcb0..c0e853a7c435 100644 --- a/testing/spectest/mainnet/capella/forkchoice/BUILD.bazel +++ b/testing/spectest/mainnet/capella/forkchoice/BUILD.bazel @@ -10,7 +10,6 @@ go_test( ], tags = ["spectest"], deps = [ - "//config/features:go_default_library", "//runtime/version:go_default_library", "//testing/spectest/shared/common/forkchoice:go_default_library", ], diff --git a/testing/spectest/mainnet/capella/forkchoice/forkchoice_test.go b/testing/spectest/mainnet/capella/forkchoice/forkchoice_test.go index 7f015d931b0b..535e633b9063 100644 --- a/testing/spectest/mainnet/capella/forkchoice/forkchoice_test.go +++ b/testing/spectest/mainnet/capella/forkchoice/forkchoice_test.go @@ -3,17 +3,10 @@ package forkchoice import ( "testing" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/runtime/version" "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" ) func TestMainnet_Capella_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - // Experimental features are disabled by default for spec tests. - EnableDefensivePull: false, - DisablePullTips: true, - }) - defer resetCfg() forkchoice.Run(t, "mainnet", version.Capella) } diff --git a/testing/spectest/mainnet/phase0/forkchoice/BUILD.bazel b/testing/spectest/mainnet/phase0/forkchoice/BUILD.bazel deleted file mode 100644 index 33f58a3756e5..000000000000 --- a/testing/spectest/mainnet/phase0/forkchoice/BUILD.bazel +++ /dev/null @@ -1,17 +0,0 @@ -load("@prysm//tools/go:def.bzl", "go_test") - -go_test( - name = "go_default_test", - size = "enormous", - timeout = "short", - srcs = ["forkchoice_test.go"], - data = glob(["*.yaml"]) + [ - "@consensus_spec_tests_mainnet//:test_data", - ], - tags = ["spectest"], - deps = [ - "//config/features:go_default_library", - "//runtime/version:go_default_library", - "//testing/spectest/shared/common/forkchoice:go_default_library", - ], -) diff --git a/testing/spectest/mainnet/phase0/forkchoice/forkchoice_test.go b/testing/spectest/mainnet/phase0/forkchoice/forkchoice_test.go deleted file mode 100644 index f643e1fea69d..000000000000 --- a/testing/spectest/mainnet/phase0/forkchoice/forkchoice_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package forkchoice - -import ( - "testing" - - "github.com/prysmaticlabs/prysm/v3/config/features" - "github.com/prysmaticlabs/prysm/v3/runtime/version" - "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" -) - -func TestMainnet_Phase0_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - EnableDefensivePull: false, - DisablePullTips: true, - }) - defer resetCfg() - forkchoice.Run(t, "mainnet", version.Phase0) -} diff --git a/testing/spectest/minimal/altair/forkchoice/BUILD.bazel b/testing/spectest/minimal/altair/forkchoice/BUILD.bazel index cf84c6a81e0e..9bb5b8073fed 100644 --- a/testing/spectest/minimal/altair/forkchoice/BUILD.bazel +++ b/testing/spectest/minimal/altair/forkchoice/BUILD.bazel @@ -14,7 +14,6 @@ go_test( "spectest", ], deps = [ - "//config/features:go_default_library", "//runtime/version:go_default_library", "//testing/spectest/shared/common/forkchoice:go_default_library", ], diff --git a/testing/spectest/minimal/altair/forkchoice/forkchoice_test.go b/testing/spectest/minimal/altair/forkchoice/forkchoice_test.go index c42ab2afe78d..6d6bdebcdc0d 100644 --- a/testing/spectest/minimal/altair/forkchoice/forkchoice_test.go +++ b/testing/spectest/minimal/altair/forkchoice/forkchoice_test.go @@ -3,16 +3,10 @@ package forkchoice import ( "testing" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/runtime/version" "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" ) func TestMinimal_Altair_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - DisablePullTips: true, - EnableDefensivePull: false, - }) - defer resetCfg() forkchoice.Run(t, "minimal", version.Altair) } diff --git a/testing/spectest/minimal/bellatrix/forkchoice/BUILD.bazel b/testing/spectest/minimal/bellatrix/forkchoice/BUILD.bazel index cf84c6a81e0e..9bb5b8073fed 100644 --- a/testing/spectest/minimal/bellatrix/forkchoice/BUILD.bazel +++ b/testing/spectest/minimal/bellatrix/forkchoice/BUILD.bazel @@ -14,7 +14,6 @@ go_test( "spectest", ], deps = [ - "//config/features:go_default_library", "//runtime/version:go_default_library", "//testing/spectest/shared/common/forkchoice:go_default_library", ], diff --git a/testing/spectest/minimal/bellatrix/forkchoice/forkchoice_test.go b/testing/spectest/minimal/bellatrix/forkchoice/forkchoice_test.go index a60b37aed633..5cc2d5c80fc4 100644 --- a/testing/spectest/minimal/bellatrix/forkchoice/forkchoice_test.go +++ b/testing/spectest/minimal/bellatrix/forkchoice/forkchoice_test.go @@ -3,16 +3,10 @@ package forkchoice import ( "testing" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/runtime/version" "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" ) func TestMinimal_Bellatrix_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - EnableDefensivePull: false, - DisablePullTips: true, - }) - defer resetCfg() forkchoice.Run(t, "minimal", version.Bellatrix) } diff --git a/testing/spectest/minimal/capella/forkchoice/BUILD.bazel b/testing/spectest/minimal/capella/forkchoice/BUILD.bazel index 8edc85a6ac18..80aa0da87d16 100644 --- a/testing/spectest/minimal/capella/forkchoice/BUILD.bazel +++ b/testing/spectest/minimal/capella/forkchoice/BUILD.bazel @@ -14,7 +14,6 @@ go_test( "spectest", ], deps = [ - "//config/features:go_default_library", "//runtime/version:go_default_library", "//testing/spectest/shared/common/forkchoice:go_default_library", ], diff --git a/testing/spectest/minimal/capella/forkchoice/forkchoice_test.go b/testing/spectest/minimal/capella/forkchoice/forkchoice_test.go index c95f6a366b73..9cca8428c8a0 100644 --- a/testing/spectest/minimal/capella/forkchoice/forkchoice_test.go +++ b/testing/spectest/minimal/capella/forkchoice/forkchoice_test.go @@ -3,16 +3,10 @@ package forkchoice import ( "testing" - "github.com/prysmaticlabs/prysm/v3/config/features" "github.com/prysmaticlabs/prysm/v3/runtime/version" "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" ) func TestMinimal_Capella_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - EnableDefensivePull: false, - DisablePullTips: true, - }) - defer resetCfg() forkchoice.Run(t, "minimal", version.Capella) } diff --git a/testing/spectest/minimal/phase0/forkchoice/BUILD.bazel b/testing/spectest/minimal/phase0/forkchoice/BUILD.bazel deleted file mode 100644 index cf84c6a81e0e..000000000000 --- a/testing/spectest/minimal/phase0/forkchoice/BUILD.bazel +++ /dev/null @@ -1,21 +0,0 @@ -load("@prysm//tools/go:def.bzl", "go_test") - -go_test( - name = "go_default_test", - size = "enormous", - timeout = "short", - srcs = ["forkchoice_test.go"], - data = glob(["*.yaml"]) + [ - "@consensus_spec_tests_minimal//:test_data", - ], - eth_network = "minimal", - tags = [ - "minimal", - "spectest", - ], - deps = [ - "//config/features:go_default_library", - "//runtime/version:go_default_library", - "//testing/spectest/shared/common/forkchoice:go_default_library", - ], -) diff --git a/testing/spectest/minimal/phase0/forkchoice/forkchoice_test.go b/testing/spectest/minimal/phase0/forkchoice/forkchoice_test.go deleted file mode 100644 index fc32d0cb6ebd..000000000000 --- a/testing/spectest/minimal/phase0/forkchoice/forkchoice_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package forkchoice - -import ( - "testing" - - "github.com/prysmaticlabs/prysm/v3/config/features" - "github.com/prysmaticlabs/prysm/v3/runtime/version" - "github.com/prysmaticlabs/prysm/v3/testing/spectest/shared/common/forkchoice" -) - -func TestMinimal_Phase0_Forkchoice(t *testing.T) { - resetCfg := features.InitWithReset(&features.Flags{ - EnableDefensivePull: false, - DisablePullTips: true, - }) - defer resetCfg() - forkchoice.Run(t, "minimal", version.Phase0) -} diff --git a/testing/spectest/shared/common/forkchoice/builder.go b/testing/spectest/shared/common/forkchoice/builder.go index 845d5d046a95..997f94a89ab7 100644 --- a/testing/spectest/shared/common/forkchoice/builder.go +++ b/testing/spectest/shared/common/forkchoice/builder.go @@ -134,14 +134,6 @@ func (bb *Builder) Check(t testing.TB, c *Check) { got := bb.service.CurrentJustifiedCheckpt() require.DeepEqual(t, cp, got) } - if c.BestJustifiedCheckPoint != nil { - cp := ðpb.Checkpoint{ - Epoch: primitives.Epoch(c.BestJustifiedCheckPoint.Epoch), - Root: common.FromHex(c.BestJustifiedCheckPoint.Root), - } - got := bb.service.BestJustifiedCheckpt() - require.DeepEqual(t, cp, got) - } if c.FinalizedCheckPoint != nil { cp := ðpb.Checkpoint{ Epoch: primitives.Epoch(c.FinalizedCheckPoint.Epoch),