mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 21:38:05 -05:00
Move BeaconBlockNil Checker Function to Consensus-Types/Wrapper Package (#10731)
* beacon block is nil wrapper * gaz Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
This commit is contained in:
@@ -66,6 +66,7 @@ go_library(
|
|||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
"//consensus-types/interfaces:go_default_library",
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
|
"//consensus-types/wrapper:go_default_library",
|
||||||
"//crypto/bls:go_default_library",
|
"//crypto/bls:go_default_library",
|
||||||
"//encoding/bytesutil:go_default_library",
|
"//encoding/bytesutil:go_default_library",
|
||||||
"//math:go_default_library",
|
"//math:go_default_library",
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
|
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
@@ -168,7 +169,7 @@ func (s *Service) notifyNewPayload(ctx context.Context, postStateVersion int,
|
|||||||
if blocks.IsPreBellatrixVersion(postStateVersion) {
|
if blocks.IsPreBellatrixVersion(postStateVersion) {
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(blk); err != nil {
|
if err := wrapper.BeaconBlockIsNil(blk); err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
body := blk.Block().Body()
|
body := blk.Block().Body()
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
ethpbv1 "github.com/prysmaticlabs/prysm/proto/eth/v1"
|
ethpbv1 "github.com/prysmaticlabs/prysm/proto/eth/v1"
|
||||||
"github.com/prysmaticlabs/prysm/time/slots"
|
"github.com/prysmaticlabs/prysm/time/slots"
|
||||||
@@ -117,7 +118,7 @@ func (s *Service) saveHead(ctx context.Context, headRoot [32]byte, headBlock int
|
|||||||
if headRoot == bytesutil.ToBytes32(r) {
|
if headRoot == bytesutil.ToBytes32(r) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(headBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(headBlock); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if headState == nil || headState.IsNil() {
|
if headState == nil || headState.IsNil() {
|
||||||
@@ -190,7 +191,7 @@ func (s *Service) saveHead(ctx context.Context, headRoot [32]byte, headBlock int
|
|||||||
// root in DB. With the inception of initial-sync-cache-state flag, it uses finalized
|
// root in DB. With the inception of initial-sync-cache-state flag, it uses finalized
|
||||||
// check point as anchors to resume sync therefore head is no longer needed to be saved on per slot basis.
|
// check point as anchors to resume sync therefore head is no longer needed to be saved on per slot basis.
|
||||||
func (s *Service) saveHeadNoDB(ctx context.Context, b interfaces.SignedBeaconBlock, r [32]byte, hs state.BeaconState) error {
|
func (s *Service) saveHeadNoDB(ctx context.Context, b interfaces.SignedBeaconBlock, r [32]byte, hs state.BeaconState) error {
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cachedHeadRoot, err := s.HeadRoot(ctx)
|
cachedHeadRoot, err := s.HeadRoot(ctx)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
)
|
)
|
||||||
|
|
||||||
var errBlockNotFoundInCacheOrDB = errors.New("block not found in cache or db")
|
var errBlockNotFoundInCacheOrDB = errors.New("block not found in cache or db")
|
||||||
@@ -49,7 +49,7 @@ func (s *Service) getBlock(ctx context.Context, r [32]byte) (interfaces.SignedBe
|
|||||||
return nil, errors.Wrap(err, "could not retrieve block from db")
|
return nil, errors.Wrap(err, "could not retrieve block from db")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, errBlockNotFoundInCacheOrDB
|
return nil, errBlockNotFoundInCacheOrDB
|
||||||
}
|
}
|
||||||
return b, nil
|
return b, nil
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||||
"github.com/holiman/uint256"
|
"github.com/holiman/uint256"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
|
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
|
||||||
"github.com/prysmaticlabs/prysm/time/slots"
|
"github.com/prysmaticlabs/prysm/time/slots"
|
||||||
@@ -38,7 +38,7 @@ import (
|
|||||||
// # Check if `pow_block` is a valid terminal PoW block
|
// # Check if `pow_block` is a valid terminal PoW block
|
||||||
// assert is_valid_terminal_pow_block(pow_block, pow_parent)
|
// assert is_valid_terminal_pow_block(pow_block, pow_parent)
|
||||||
func (s *Service) validateMergeBlock(ctx context.Context, b interfaces.SignedBeaconBlock) error {
|
func (s *Service) validateMergeBlock(ctx context.Context, b interfaces.SignedBeaconBlock) error {
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
payload, err := b.Block().Body().ExecutionPayload()
|
payload, err := b.Block().Body().ExecutionPayload()
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/async"
|
"github.com/prysmaticlabs/prysm/async"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/transition"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/transition"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
"github.com/prysmaticlabs/prysm/time/slots"
|
"github.com/prysmaticlabs/prysm/time/slots"
|
||||||
@@ -80,7 +80,7 @@ func (s *Service) verifyBeaconBlock(ctx context.Context, data *ethpb.Attestation
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if b.Block().Slot() > data.Slot {
|
if b.Block().Slot() > data.Slot {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/crypto/bls"
|
"github.com/prysmaticlabs/prysm/crypto/bls"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
||||||
@@ -92,7 +93,7 @@ var initialSyncBlockCacheSize = uint64(2 * params.BeaconConfig().SlotsPerEpoch)
|
|||||||
func (s *Service) onBlock(ctx context.Context, signed interfaces.SignedBeaconBlock, blockRoot [32]byte) error {
|
func (s *Service) onBlock(ctx context.Context, signed interfaces.SignedBeaconBlock, blockRoot [32]byte) error {
|
||||||
ctx, span := trace.StartSpan(ctx, "blockChain.onBlock")
|
ctx, span := trace.StartSpan(ctx, "blockChain.onBlock")
|
||||||
defer span.End()
|
defer span.End()
|
||||||
if err := helpers.BeaconBlockIsNil(signed); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signed); err != nil {
|
||||||
return invalidBlock{err}
|
return invalidBlock{err}
|
||||||
}
|
}
|
||||||
b := signed.Block()
|
b := signed.Block()
|
||||||
@@ -330,7 +331,7 @@ func (s *Service) onBlockBatch(ctx context.Context, blks []interfaces.SignedBeac
|
|||||||
return nil, nil, errWrongBlockCount
|
return nil, nil, errWrongBlockCount
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := helpers.BeaconBlockIsNil(blks[0]); err != nil {
|
if err := wrapper.BeaconBlockIsNil(blks[0]); err != nil {
|
||||||
return nil, nil, invalidBlock{err}
|
return nil, nil, invalidBlock{err}
|
||||||
}
|
}
|
||||||
b := blks[0].Block()
|
b := blks[0].Block()
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
prysmTime "github.com/prysmaticlabs/prysm/time"
|
prysmTime "github.com/prysmaticlabs/prysm/time"
|
||||||
@@ -270,7 +271,7 @@ func (s *Service) originRootFromSavedState(ctx context.Context) ([32]byte, error
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return originRoot, errors.Wrap(err, "could not get genesis block from db")
|
return originRoot, errors.Wrap(err, "could not get genesis block from db")
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(genesisBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(genesisBlock); err != nil {
|
||||||
return originRoot, err
|
return originRoot, err
|
||||||
}
|
}
|
||||||
genesisBlkRoot, err := genesisBlock.Block().HashTreeRoot()
|
genesisBlkRoot, err := genesisBlock.Block().HashTreeRoot()
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ go_library(
|
|||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
"//consensus-types/interfaces:go_default_library",
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
|
"//consensus-types/wrapper:go_default_library",
|
||||||
"//crypto/bls:go_default_library",
|
"//crypto/bls:go_default_library",
|
||||||
"//crypto/hash:go_default_library",
|
"//crypto/hash:go_default_library",
|
||||||
"//encoding/bytesutil:go_default_library",
|
"//encoding/bytesutil:go_default_library",
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
"github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/attestation"
|
"github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/attestation"
|
||||||
"go.opencensus.io/trace"
|
"go.opencensus.io/trace"
|
||||||
@@ -25,7 +26,7 @@ func ProcessAttestationsNoVerifySignature(
|
|||||||
beaconState state.BeaconState,
|
beaconState state.BeaconState,
|
||||||
b interfaces.SignedBeaconBlock,
|
b interfaces.SignedBeaconBlock,
|
||||||
) (state.BeaconState, error) {
|
) (state.BeaconState, error) {
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
body := b.Block().Body()
|
body := b.Block().Body()
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/crypto/bls"
|
"github.com/prysmaticlabs/prysm/crypto/bls"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
"github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/attestation"
|
"github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1/attestation"
|
||||||
@@ -25,7 +26,7 @@ func ProcessAttestationsNoVerifySignature(
|
|||||||
beaconState state.BeaconState,
|
beaconState state.BeaconState,
|
||||||
b interfaces.SignedBeaconBlock,
|
b interfaces.SignedBeaconBlock,
|
||||||
) (state.BeaconState, error) {
|
) (state.BeaconState, error) {
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
body := b.Block().Body()
|
body := b.Block().Body()
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ func ProcessBlockHeader(
|
|||||||
beaconState state.BeaconState,
|
beaconState state.BeaconState,
|
||||||
block interfaces.SignedBeaconBlock,
|
block interfaces.SignedBeaconBlock,
|
||||||
) (state.BeaconState, error) {
|
) (state.BeaconState, error) {
|
||||||
if err := helpers.BeaconBlockIsNil(block); err != nil {
|
if err := wrapper.BeaconBlockIsNil(block); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
bodyRoot, err := block.Block().Body().HashTreeRoot()
|
bodyRoot, err := block.Block().Body().HashTreeRoot()
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/crypto/hash"
|
"github.com/prysmaticlabs/prysm/crypto/hash"
|
||||||
"github.com/prysmaticlabs/prysm/time/slots"
|
"github.com/prysmaticlabs/prysm/time/slots"
|
||||||
)
|
)
|
||||||
@@ -31,7 +31,7 @@ func ProcessRandao(
|
|||||||
beaconState state.BeaconState,
|
beaconState state.BeaconState,
|
||||||
b interfaces.SignedBeaconBlock,
|
b interfaces.SignedBeaconBlock,
|
||||||
) (state.BeaconState, error) {
|
) (state.BeaconState, error) {
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
body := b.Block().Body()
|
body := b.Block().Body()
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ go_library(
|
|||||||
"//beacon-chain/state:go_default_library",
|
"//beacon-chain/state:go_default_library",
|
||||||
"//config/fieldparams:go_default_library",
|
"//config/fieldparams:go_default_library",
|
||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
"//container/slice:go_default_library",
|
"//container/slice:go_default_library",
|
||||||
"//container/trie:go_default_library",
|
"//container/trie:go_default_library",
|
||||||
|
|||||||
@@ -6,31 +6,10 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
"github.com/prysmaticlabs/prysm/time/slots"
|
"github.com/prysmaticlabs/prysm/time/slots"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ErrNilSignedBeaconBlock = errors.New("signed beacon block can't be nil")
|
|
||||||
var ErrNilBeaconBlock = errors.New("beacon block can't be nil")
|
|
||||||
var ErrNilBeaconBlockBody = errors.New("beacon block body can't be nil")
|
|
||||||
|
|
||||||
// BeaconBlockIsNil checks if any composite field of input signed beacon block is nil.
|
|
||||||
// Access to these nil fields will result in run time panic,
|
|
||||||
// it is recommended to run these checks as first line of defense.
|
|
||||||
func BeaconBlockIsNil(b interfaces.SignedBeaconBlock) error {
|
|
||||||
if b == nil || b.IsNil() {
|
|
||||||
return ErrNilSignedBeaconBlock
|
|
||||||
}
|
|
||||||
if b.Block().IsNil() {
|
|
||||||
return ErrNilBeaconBlock
|
|
||||||
}
|
|
||||||
if b.Block().Body().IsNil() {
|
|
||||||
return ErrNilBeaconBlockBody
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// BlockRootAtSlot returns the block root stored in the BeaconState for a recent slot.
|
// BlockRootAtSlot returns the block root stored in the BeaconState for a recent slot.
|
||||||
// It returns an error if the requested block root is not within the slot range.
|
// It returns an error if the requested block root is not within the slot range.
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ go_library(
|
|||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
"//consensus-types/interfaces:go_default_library",
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
|
"//consensus-types/wrapper:go_default_library",
|
||||||
"//crypto/bls:go_default_library",
|
"//crypto/bls:go_default_library",
|
||||||
"//crypto/hash:go_default_library",
|
"//crypto/hash:go_default_library",
|
||||||
"//encoding/bytesutil:go_default_library",
|
"//encoding/bytesutil:go_default_library",
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ import (
|
|||||||
e "github.com/prysmaticlabs/prysm/beacon-chain/core/epoch"
|
e "github.com/prysmaticlabs/prysm/beacon-chain/core/epoch"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/epoch/precompute"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/epoch/precompute"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/execution"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/execution"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/time"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/time"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/math"
|
"github.com/prysmaticlabs/prysm/math"
|
||||||
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
||||||
"github.com/prysmaticlabs/prysm/runtime/version"
|
"github.com/prysmaticlabs/prysm/runtime/version"
|
||||||
@@ -52,7 +52,7 @@ func ExecuteStateTransition(
|
|||||||
if ctx.Err() != nil {
|
if ctx.Err() != nil {
|
||||||
return nil, ctx.Err()
|
return nil, ctx.Err()
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(signed); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signed); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ func ProcessSlots(ctx context.Context, state state.BeaconState, slot types.Slot)
|
|||||||
|
|
||||||
// VerifyOperationLengths verifies that block operation lengths are valid.
|
// VerifyOperationLengths verifies that block operation lengths are valid.
|
||||||
func VerifyOperationLengths(_ context.Context, state state.BeaconState, b interfaces.SignedBeaconBlock) (state.BeaconState, error) {
|
func VerifyOperationLengths(_ context.Context, state state.BeaconState, b interfaces.SignedBeaconBlock) (state.BeaconState, error) {
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
body := b.Block().Body()
|
body := b.Block().Body()
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/altair"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/altair"
|
||||||
b "github.com/prysmaticlabs/prysm/beacon-chain/core/blocks"
|
b "github.com/prysmaticlabs/prysm/beacon-chain/core/blocks"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/transition/interop"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/transition/interop"
|
||||||
v "github.com/prysmaticlabs/prysm/beacon-chain/core/validators"
|
v "github.com/prysmaticlabs/prysm/beacon-chain/core/validators"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/crypto/bls"
|
"github.com/prysmaticlabs/prysm/crypto/bls"
|
||||||
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
||||||
"github.com/prysmaticlabs/prysm/runtime/version"
|
"github.com/prysmaticlabs/prysm/runtime/version"
|
||||||
@@ -160,7 +160,7 @@ func ProcessBlockNoVerifyAnySig(
|
|||||||
) (*bls.SignatureBatch, state.BeaconState, error) {
|
) (*bls.SignatureBatch, state.BeaconState, error) {
|
||||||
ctx, span := trace.StartSpan(ctx, "core.state.ProcessBlockNoVerifyAnySig")
|
ctx, span := trace.StartSpan(ctx, "core.state.ProcessBlockNoVerifyAnySig")
|
||||||
defer span.End()
|
defer span.End()
|
||||||
if err := helpers.BeaconBlockIsNil(signed); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signed); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ func ProcessOperationsNoVerifyAttsSigs(
|
|||||||
signedBeaconBlock interfaces.SignedBeaconBlock) (state.BeaconState, error) {
|
signedBeaconBlock interfaces.SignedBeaconBlock) (state.BeaconState, error) {
|
||||||
ctx, span := trace.StartSpan(ctx, "core.state.ProcessOperationsNoVerifyAttsSigs")
|
ctx, span := trace.StartSpan(ctx, "core.state.ProcessOperationsNoVerifyAttsSigs")
|
||||||
defer span.End()
|
defer span.End()
|
||||||
if err := helpers.BeaconBlockIsNil(signedBeaconBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signedBeaconBlock); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ func ProcessBlockForStateRoot(
|
|||||||
) (state.BeaconState, error) {
|
) (state.BeaconState, error) {
|
||||||
ctx, span := trace.StartSpan(ctx, "core.state.ProcessBlockForStateRoot")
|
ctx, span := trace.StartSpan(ctx, "core.state.ProcessBlockForStateRoot")
|
||||||
defer span.End()
|
defer span.End()
|
||||||
if err := helpers.BeaconBlockIsNil(signed); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signed); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ go_library(
|
|||||||
],
|
],
|
||||||
deps = [
|
deps = [
|
||||||
"//beacon-chain/core/blocks:go_default_library",
|
"//beacon-chain/core/blocks:go_default_library",
|
||||||
"//beacon-chain/core/helpers:go_default_library",
|
|
||||||
"//beacon-chain/db/filters:go_default_library",
|
"//beacon-chain/db/filters:go_default_library",
|
||||||
"//beacon-chain/db/iface:go_default_library",
|
"//beacon-chain/db/iface:go_default_library",
|
||||||
"//beacon-chain/state:go_default_library",
|
"//beacon-chain/state:go_default_library",
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/io/file"
|
"github.com/prysmaticlabs/prysm/io/file"
|
||||||
bolt "go.etcd.io/bbolt"
|
bolt "go.etcd.io/bbolt"
|
||||||
"go.opencensus.io/trace"
|
"go.opencensus.io/trace"
|
||||||
@@ -34,7 +34,7 @@ func (s *Store) Backup(ctx context.Context, outputDir string, permissionOverride
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(head); err != nil {
|
if err := wrapper.BeaconBlockIsNil(head); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// Ensure the backups directory exists.
|
// Ensure the backups directory exists.
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/db/filters"
|
"github.com/prysmaticlabs/prysm/beacon-chain/db/filters"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
@@ -84,7 +84,7 @@ func (s *Store) updateFinalizedBlockRoots(ctx context.Context, tx *bolt.Tx, chec
|
|||||||
tracing.AnnotateError(span, err)
|
tracing.AnnotateError(span, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(signedBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signedBlock); err != nil {
|
||||||
tracing.AnnotateError(span, err)
|
tracing.AnnotateError(span, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
|
|
||||||
"github.com/golang/snappy"
|
"github.com/golang/snappy"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state/genesis"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state/genesis"
|
||||||
state_native "github.com/prysmaticlabs/prysm/beacon-chain/state/state-native"
|
state_native "github.com/prysmaticlabs/prysm/beacon-chain/state/state-native"
|
||||||
@@ -664,7 +663,7 @@ func (s *Store) slotByBlockRoot(ctx context.Context, tx *bolt.Tx, blockRoot []by
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(wsb); err != nil {
|
if err := wrapper.BeaconBlockIsNil(wsb); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
return b.Block.Slot, nil
|
return b.Block.Slot, nil
|
||||||
|
|||||||
@@ -584,7 +584,7 @@ func (bs *Server) GetBlockRoot(ctx context.Context, req *ethpbv1.BlockRequest) (
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Internal, "Could not retrieve blocks for genesis slot: %v", err)
|
return nil, status.Errorf(codes.Internal, "Could not retrieve blocks for genesis slot: %v", err)
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(blk); err != nil {
|
if err := wrapper.BeaconBlockIsNil(blk); err != nil {
|
||||||
return nil, status.Errorf(codes.NotFound, "Could not find genesis block: %v", err)
|
return nil, status.Errorf(codes.NotFound, "Could not find genesis block: %v", err)
|
||||||
}
|
}
|
||||||
blkRoot, err := blk.Block().HashTreeRoot()
|
blkRoot, err := blk.Block().HashTreeRoot()
|
||||||
@@ -598,7 +598,7 @@ func (bs *Server) GetBlockRoot(ctx context.Context, req *ethpbv1.BlockRequest) (
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Errorf(codes.Internal, "Could not retrieve block for block root %#x: %v", req.BlockId, err)
|
return nil, status.Errorf(codes.Internal, "Could not retrieve block for block root %#x: %v", req.BlockId, err)
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(blk); err != nil {
|
if err := wrapper.BeaconBlockIsNil(blk); err != nil {
|
||||||
return nil, status.Errorf(codes.NotFound, "Could not find block: %v", err)
|
return nil, status.Errorf(codes.NotFound, "Could not find block: %v", err)
|
||||||
}
|
}
|
||||||
root = req.BlockId
|
root = req.BlockId
|
||||||
@@ -793,7 +793,7 @@ func handleGetBlockError(blk interfaces.SignedBeaconBlock, err error) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return status.Errorf(codes.Internal, "Could not get block from block ID: %v", err)
|
return status.Errorf(codes.Internal, "Could not get block from block ID: %v", err)
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(blk); err != nil {
|
if err := wrapper.BeaconBlockIsNil(blk); err != nil {
|
||||||
return status.Errorf(codes.NotFound, "Could not find requested block: %v", err)
|
return status.Errorf(codes.NotFound, "Could not find requested block: %v", err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ go_library(
|
|||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
"//consensus-types/interfaces:go_default_library",
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
|
"//consensus-types/wrapper:go_default_library",
|
||||||
"//container/slice:go_default_library",
|
"//container/slice:go_default_library",
|
||||||
"//encoding/bytesutil:go_default_library",
|
"//encoding/bytesutil:go_default_library",
|
||||||
"//proto/prysm/v1alpha1:go_default_library",
|
"//proto/prysm/v1alpha1:go_default_library",
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/feed"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/feed"
|
||||||
blockfeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/block"
|
blockfeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/block"
|
||||||
statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state"
|
statefeed "github.com/prysmaticlabs/prysm/beacon-chain/core/feed/state"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/db/filters"
|
"github.com/prysmaticlabs/prysm/beacon-chain/db/filters"
|
||||||
"github.com/prysmaticlabs/prysm/cmd"
|
"github.com/prysmaticlabs/prysm/cmd"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
"github.com/prysmaticlabs/prysm/runtime/version"
|
"github.com/prysmaticlabs/prysm/runtime/version"
|
||||||
@@ -250,7 +250,7 @@ func (bs *Server) listBlocksForGenesis(ctx context.Context, _ *ethpb.ListBlocksR
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, strconv.Itoa(0), status.Errorf(codes.Internal, "Could not retrieve blocks for genesis slot: %v", err)
|
return nil, 0, strconv.Itoa(0), status.Errorf(codes.Internal, "Could not retrieve blocks for genesis slot: %v", err)
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(genBlk); err != nil {
|
if err := wrapper.BeaconBlockIsNil(genBlk); err != nil {
|
||||||
return []blockContainer{}, 0, strconv.Itoa(0), status.Errorf(codes.NotFound, "Could not find genesis block: %v", err)
|
return []blockContainer{}, 0, strconv.Itoa(0), status.Errorf(codes.NotFound, "Could not find genesis block: %v", err)
|
||||||
}
|
}
|
||||||
root, err := genBlk.Block().HashTreeRoot()
|
root, err := genBlk.Block().HashTreeRoot()
|
||||||
@@ -393,7 +393,7 @@ func (bs *Server) chainHeadRetrieval(ctx context.Context) (*ethpb.ChainHead, err
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, status.Error(codes.Internal, "Could not get head block")
|
return nil, status.Error(codes.Internal, "Could not get head block")
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(headBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(headBlock); err != nil {
|
||||||
return nil, status.Errorf(codes.NotFound, "Head block of chain was nil: %v", err)
|
return nil, status.Errorf(codes.NotFound, "Head block of chain was nil: %v", err)
|
||||||
}
|
}
|
||||||
headBlockRoot, err := headBlock.Block().HashTreeRoot()
|
headBlockRoot, err := headBlock.Block().HashTreeRoot()
|
||||||
@@ -409,7 +409,7 @@ func (bs *Server) chainHeadRetrieval(ctx context.Context) (*ethpb.ChainHead, err
|
|||||||
}
|
}
|
||||||
// Retrieve genesis block in the event we have genesis checkpoints.
|
// Retrieve genesis block in the event we have genesis checkpoints.
|
||||||
genBlock, err := bs.BeaconDB.GenesisBlock(ctx)
|
genBlock, err := bs.BeaconDB.GenesisBlock(ctx)
|
||||||
if err != nil || helpers.BeaconBlockIsNil(genBlock) != nil {
|
if err != nil || wrapper.BeaconBlockIsNil(genBlock) != nil {
|
||||||
return status.Error(codes.Internal, "Could not get genesis block")
|
return status.Error(codes.Internal, "Could not get genesis block")
|
||||||
}
|
}
|
||||||
validGenesis = true
|
validGenesis = true
|
||||||
@@ -419,7 +419,7 @@ func (bs *Server) chainHeadRetrieval(ctx context.Context) (*ethpb.ChainHead, err
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return status.Errorf(codes.Internal, "Could not get %s block: %v", name, err)
|
return status.Errorf(codes.Internal, "Could not get %s block: %v", name, err)
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return status.Errorf(codes.Internal, "Could not get %s block: %v", name, err)
|
return status.Errorf(codes.Internal, "Could not get %s block: %v", name, err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import (
|
|||||||
fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams"
|
fieldparams "github.com/prysmaticlabs/prysm/config/fieldparams"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
|
enginev1 "github.com/prysmaticlabs/prysm/proto/engine/v1"
|
||||||
"github.com/prysmaticlabs/prysm/runtime/version"
|
"github.com/prysmaticlabs/prysm/runtime/version"
|
||||||
@@ -98,7 +99,7 @@ func (vs *Server) getExecutionPayload(ctx context.Context, slot types.Slot, vIdx
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(finalizedBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(finalizedBlock); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
switch finalizedBlock.Version() {
|
switch finalizedBlock.Version() {
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ go_library(
|
|||||||
visibility = ["//beacon-chain:__subpackages__"],
|
visibility = ["//beacon-chain:__subpackages__"],
|
||||||
deps = [
|
deps = [
|
||||||
"//beacon-chain/blockchain:go_default_library",
|
"//beacon-chain/blockchain:go_default_library",
|
||||||
"//beacon-chain/core/helpers:go_default_library",
|
|
||||||
"//beacon-chain/db:go_default_library",
|
"//beacon-chain/db:go_default_library",
|
||||||
"//beacon-chain/state:go_default_library",
|
"//beacon-chain/state:go_default_library",
|
||||||
"//beacon-chain/state/stategen:go_default_library",
|
"//beacon-chain/state/stategen:go_default_library",
|
||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
|
"//consensus-types/wrapper:go_default_library",
|
||||||
"//encoding/bytesutil:go_default_library",
|
"//encoding/bytesutil:go_default_library",
|
||||||
"@com_github_pkg_errors//:go_default_library",
|
"@com_github_pkg_errors//:go_default_library",
|
||||||
"@io_opencensus_go//trace:go_default_library",
|
"@io_opencensus_go//trace:go_default_library",
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/blockchain"
|
"github.com/prysmaticlabs/prysm/beacon-chain/blockchain"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state/stategen"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state/stategen"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
"go.opencensus.io/trace"
|
"go.opencensus.io/trace"
|
||||||
)
|
)
|
||||||
@@ -223,7 +223,7 @@ func (p *StateProvider) headStateRoot(ctx context.Context) ([]byte, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "could not get head block")
|
return nil, errors.Wrap(err, "could not get head block")
|
||||||
}
|
}
|
||||||
if err = helpers.BeaconBlockIsNil(b); err != nil {
|
if err = wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return b.Block().StateRoot(), nil
|
return b.Block().StateRoot(), nil
|
||||||
@@ -234,7 +234,7 @@ func (p *StateProvider) genesisStateRoot(ctx context.Context) ([]byte, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "could not get genesis block")
|
return nil, errors.Wrap(err, "could not get genesis block")
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return b.Block().StateRoot(), nil
|
return b.Block().StateRoot(), nil
|
||||||
@@ -249,7 +249,7 @@ func (p *StateProvider) finalizedStateRoot(ctx context.Context) ([]byte, error)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "could not get finalized block")
|
return nil, errors.Wrap(err, "could not get finalized block")
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return b.Block().StateRoot(), nil
|
return b.Block().StateRoot(), nil
|
||||||
@@ -264,7 +264,7 @@ func (p *StateProvider) justifiedStateRoot(ctx context.Context) ([]byte, error)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "could not get justified block")
|
return nil, errors.Wrap(err, "could not get justified block")
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return b.Block().StateRoot(), nil
|
return b.Block().StateRoot(), nil
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//beacon-chain/core/altair:go_default_library",
|
"//beacon-chain/core/altair:go_default_library",
|
||||||
"//beacon-chain/core/execution:go_default_library",
|
"//beacon-chain/core/execution:go_default_library",
|
||||||
"//beacon-chain/core/helpers:go_default_library",
|
|
||||||
"//beacon-chain/core/time:go_default_library",
|
"//beacon-chain/core/time:go_default_library",
|
||||||
"//beacon-chain/core/transition:go_default_library",
|
"//beacon-chain/core/transition:go_default_library",
|
||||||
"//beacon-chain/db:go_default_library",
|
"//beacon-chain/db:go_default_library",
|
||||||
@@ -33,6 +32,7 @@ go_library(
|
|||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
"//consensus-types/interfaces:go_default_library",
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
|
"//consensus-types/wrapper:go_default_library",
|
||||||
"//encoding/bytesutil:go_default_library",
|
"//encoding/bytesutil:go_default_library",
|
||||||
"//monitoring/tracing:go_default_library",
|
"//monitoring/tracing:go_default_library",
|
||||||
"//proto/prysm/v1alpha1:go_default_library",
|
"//proto/prysm/v1alpha1:go_default_library",
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
"go.opencensus.io/trace"
|
"go.opencensus.io/trace"
|
||||||
@@ -227,7 +227,7 @@ func (s *State) LastAncestorState(ctx context.Context, blockRoot [32]byte) (stat
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
"go.opencensus.io/trace"
|
"go.opencensus.io/trace"
|
||||||
)
|
)
|
||||||
@@ -94,7 +94,7 @@ func (c *CanonicalHistory) BlockForSlot(ctx context.Context, target types.Slot)
|
|||||||
// performing null/validity checks, and using CanonicalChecker to only pick canonical blocks.
|
// performing null/validity checks, and using CanonicalChecker to only pick canonical blocks.
|
||||||
func (c *CanonicalHistory) bestForSlot(ctx context.Context, hbs []interfaces.SignedBeaconBlock) ([32]byte, interfaces.SignedBeaconBlock, error) {
|
func (c *CanonicalHistory) bestForSlot(ctx context.Context, hbs []interfaces.SignedBeaconBlock) ([32]byte, interfaces.SignedBeaconBlock, error) {
|
||||||
for _, b := range hbs {
|
for _, b := range hbs {
|
||||||
if helpers.BeaconBlockIsNil(b) != nil {
|
if wrapper.BeaconBlockIsNil(b) != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
root, err := b.Block().HashTreeRoot()
|
root, err := b.Block().HashTreeRoot()
|
||||||
@@ -188,7 +188,7 @@ func (c *CanonicalHistory) ancestorChain(ctx context.Context, tail interfaces.Si
|
|||||||
msg := fmt.Sprintf("db error when retrieving parent of block at slot=%d by root=%#x", b.Slot(), b.ParentRoot())
|
msg := fmt.Sprintf("db error when retrieving parent of block at slot=%d by root=%#x", b.Slot(), b.ParentRoot())
|
||||||
return nil, nil, errors.Wrap(err, msg)
|
return nil, nil, errors.Wrap(err, msg)
|
||||||
}
|
}
|
||||||
if helpers.BeaconBlockIsNil(parent) != nil {
|
if wrapper.BeaconBlockIsNil(parent) != nil {
|
||||||
msg := fmt.Sprintf("unable to retrieve parent of block at slot=%d by root=%#x", b.Slot(), b.ParentRoot())
|
msg := fmt.Sprintf("unable to retrieve parent of block at slot=%d by root=%#x", b.Slot(), b.ParentRoot())
|
||||||
return nil, nil, errors.Wrap(db.ErrNotFound, msg)
|
return nil, nil, errors.Wrap(db.ErrNotFound, msg)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/altair"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/altair"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/execution"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/execution"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
prysmtime "github.com/prysmaticlabs/prysm/beacon-chain/core/time"
|
prysmtime "github.com/prysmaticlabs/prysm/beacon-chain/core/time"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/transition"
|
"github.com/prysmaticlabs/prysm/beacon-chain/core/transition"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/db/filters"
|
"github.com/prysmaticlabs/prysm/beacon-chain/db/filters"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
"github.com/prysmaticlabs/prysm/beacon-chain/state"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
||||||
"github.com/prysmaticlabs/prysm/runtime/version"
|
"github.com/prysmaticlabs/prysm/runtime/version"
|
||||||
@@ -146,7 +146,7 @@ func executeStateTransitionStateGen(
|
|||||||
if ctx.Err() != nil {
|
if ctx.Err() != nil {
|
||||||
return nil, ctx.Err()
|
return nil, ctx.Err()
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(signed); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signed); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ctx, span := trace.StartSpan(ctx, "stategen.executeStateTransitionStateGen")
|
ctx, span := trace.StartSpan(ctx, "stategen.executeStateTransitionStateGen")
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ go_library(
|
|||||||
importpath = "github.com/prysmaticlabs/prysm/beacon-chain/sync/backfill",
|
importpath = "github.com/prysmaticlabs/prysm/beacon-chain/sync/backfill",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//beacon-chain/core/helpers:go_default_library",
|
|
||||||
"//beacon-chain/db:go_default_library",
|
"//beacon-chain/db:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
"//consensus-types/interfaces:go_default_library",
|
||||||
"//consensus-types/primitives:go_default_library",
|
"//consensus-types/primitives:go_default_library",
|
||||||
|
"//consensus-types/wrapper:go_default_library",
|
||||||
"@com_github_pkg_errors//:go_default_library",
|
"@com_github_pkg_errors//:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@@ -19,7 +19,6 @@ go_test(
|
|||||||
srcs = ["status_test.go"],
|
srcs = ["status_test.go"],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
"//beacon-chain/core/helpers:go_default_library",
|
|
||||||
"//beacon-chain/db:go_default_library",
|
"//beacon-chain/db:go_default_library",
|
||||||
"//config/params:go_default_library",
|
"//config/params:go_default_library",
|
||||||
"//consensus-types/interfaces:go_default_library",
|
"//consensus-types/interfaces:go_default_library",
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewStatus correctly initializes a Status value with the required database value.
|
// NewStatus correctly initializes a Status value with the required database value.
|
||||||
@@ -81,7 +81,7 @@ func (s *Status) Reload(ctx context.Context) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(err, "error retrieving block for origin checkpoint root=%#x", cpRoot)
|
return errors.Wrapf(err, "error retrieving block for origin checkpoint root=%#x", cpRoot)
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(cpBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(cpBlock); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
s.end = cpBlock.Block().Slot()
|
s.end = cpBlock.Block().Slot()
|
||||||
@@ -105,7 +105,7 @@ func (s *Status) Reload(ctx context.Context) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(err, "error retrieving block for backfill root=%#x", bfRoot)
|
return errors.Wrapf(err, "error retrieving block for backfill root=%#x", bfRoot)
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(bfBlock); err != nil {
|
if err := wrapper.BeaconBlockIsNil(bfBlock); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
s.start = bfBlock.Block().Slot()
|
s.start = bfBlock.Block().Slot()
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
"github.com/prysmaticlabs/prysm/beacon-chain/db"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
|
|
||||||
@@ -235,7 +234,7 @@ func TestReload(t *testing.T) {
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
err: helpers.ErrNilSignedBeaconBlock,
|
err: wrapper.ErrNilSignedBeaconBlock,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "origin root found, block error",
|
name: "origin root found, block error",
|
||||||
@@ -298,7 +297,7 @@ func TestReload(t *testing.T) {
|
|||||||
},
|
},
|
||||||
backfillBlockRoot: goodBlockRoot(backfillRoot),
|
backfillBlockRoot: goodBlockRoot(backfillRoot),
|
||||||
},
|
},
|
||||||
err: helpers.ErrNilSignedBeaconBlock,
|
err: wrapper.ErrNilSignedBeaconBlock,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "origin root found, block found, backfill root found, backfill block random err",
|
name: "origin root found, block found, backfill root found, backfill block random err",
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/prysmaticlabs/prysm/async"
|
"github.com/prysmaticlabs/prysm/async"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/blockchain"
|
"github.com/prysmaticlabs/prysm/beacon-chain/blockchain"
|
||||||
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
p2ptypes "github.com/prysmaticlabs/prysm/beacon-chain/p2p/types"
|
p2ptypes "github.com/prysmaticlabs/prysm/beacon-chain/p2p/types"
|
||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/crypto/rand"
|
"github.com/prysmaticlabs/prysm/crypto/rand"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/ssz/equality"
|
"github.com/prysmaticlabs/prysm/encoding/ssz/equality"
|
||||||
@@ -335,7 +335,7 @@ func (s *Service) deleteBlockFromPendingQueue(slot types.Slot, b interfaces.Sign
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Defensive check to ignore nil blocks
|
// Defensive check to ignore nil blocks
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -394,7 +394,7 @@ func (s *Service) pendingBlocksInCache(slot types.Slot) []interfaces.SignedBeaco
|
|||||||
|
|
||||||
// This adds input signed beacon block to slotToPendingBlocks cache.
|
// This adds input signed beacon block to slotToPendingBlocks cache.
|
||||||
func (s *Service) addPendingBlockToCache(b interfaces.SignedBeaconBlock) error {
|
func (s *Service) addPendingBlockToCache(b interfaces.SignedBeaconBlock) error {
|
||||||
if err := helpers.BeaconBlockIsNil(b); err != nil {
|
if err := wrapper.BeaconBlockIsNil(b); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ func (s *Service) beaconBlockSubscriber(ctx context.Context, msg proto.Message)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := helpers.BeaconBlockIsNil(signed); err != nil {
|
if err := wrapper.BeaconBlockIsNil(signed); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/prysmaticlabs/prysm/config/params"
|
"github.com/prysmaticlabs/prysm/config/params"
|
||||||
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
"github.com/prysmaticlabs/prysm/consensus-types/interfaces"
|
||||||
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
types "github.com/prysmaticlabs/prysm/consensus-types/primitives"
|
||||||
|
"github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
"github.com/prysmaticlabs/prysm/encoding/bytesutil"
|
||||||
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
"github.com/prysmaticlabs/prysm/monitoring/tracing"
|
||||||
prysmTime "github.com/prysmaticlabs/prysm/time"
|
prysmTime "github.com/prysmaticlabs/prysm/time"
|
||||||
@@ -370,7 +371,7 @@ func isBlockQueueable(genesisTime uint64, slot types.Slot, receivedTime time.Tim
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getBlockFields(b interfaces.SignedBeaconBlock) logrus.Fields {
|
func getBlockFields(b interfaces.SignedBeaconBlock) logrus.Fields {
|
||||||
if helpers.BeaconBlockIsNil(b) != nil {
|
if wrapper.BeaconBlockIsNil(b) != nil {
|
||||||
return logrus.Fields{}
|
return logrus.Fields{}
|
||||||
}
|
}
|
||||||
return logrus.Fields{
|
return logrus.Fields{
|
||||||
|
|||||||
@@ -32,7 +32,10 @@ var (
|
|||||||
// ErrUnsupportedBlindedBellatrixBlock is returned when accessing a blinded bellatrix block from unsupported method.
|
// ErrUnsupportedBlindedBellatrixBlock is returned when accessing a blinded bellatrix block from unsupported method.
|
||||||
ErrUnsupportedBlindedBellatrixBlock = errors.New("unsupported blinded bellatrix block")
|
ErrUnsupportedBlindedBellatrixBlock = errors.New("unsupported blinded bellatrix block")
|
||||||
// ErrNilObjectWrapped is returned in a constructor when the underlying object is nil.
|
// ErrNilObjectWrapped is returned in a constructor when the underlying object is nil.
|
||||||
ErrNilObjectWrapped = errors.New("attempted to wrap nil object")
|
ErrNilObjectWrapped = errors.New("attempted to wrap nil object")
|
||||||
|
ErrNilSignedBeaconBlock = errors.New("signed beacon block can't be nil")
|
||||||
|
ErrNilBeaconBlock = errors.New("beacon block can't be nil")
|
||||||
|
ErrNilBeaconBlockBody = errors.New("beacon block body can't be nil")
|
||||||
)
|
)
|
||||||
|
|
||||||
// WrappedSignedBeaconBlock will wrap a signed beacon block to conform to the
|
// WrappedSignedBeaconBlock will wrap a signed beacon block to conform to the
|
||||||
@@ -159,3 +162,19 @@ func UnwrapGenericSignedBeaconBlock(gb *eth.GenericSignedBeaconBlock) (interface
|
|||||||
return nil, errors.Wrapf(ErrUnsupportedSignedBeaconBlock, "unable to wrap block of type %T", gb)
|
return nil, errors.Wrapf(ErrUnsupportedSignedBeaconBlock, "unable to wrap block of type %T", gb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BeaconBlockIsNil checks if any composite field of input signed beacon block is nil.
|
||||||
|
// Access to these nil fields will result in run time panic,
|
||||||
|
// it is recommended to run these checks as first line of defense.
|
||||||
|
func BeaconBlockIsNil(b interfaces.SignedBeaconBlock) error {
|
||||||
|
if b == nil || b.IsNil() {
|
||||||
|
return ErrNilSignedBeaconBlock
|
||||||
|
}
|
||||||
|
if b.Block().IsNil() {
|
||||||
|
return ErrNilBeaconBlock
|
||||||
|
}
|
||||||
|
if b.Block().Body().IsNil() {
|
||||||
|
return ErrNilBeaconBlockBody
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
coreHelper "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
|
|
||||||
wrapperv2 "github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
wrapperv2 "github.com/prysmaticlabs/prysm/consensus-types/wrapper"
|
||||||
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||||
"github.com/prysmaticlabs/prysm/testing/endtoend/helpers"
|
"github.com/prysmaticlabs/prysm/testing/endtoend/helpers"
|
||||||
@@ -61,7 +60,7 @@ func altairForkOccurs(conns ...*grpc.ClientConn) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := coreHelper.BeaconBlockIsNil(blk); err != nil {
|
if err := wrapperv2.BeaconBlockIsNil(blk); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if blk.Block().Slot() < fSlot {
|
if blk.Block().Slot() < fSlot {
|
||||||
@@ -106,7 +105,7 @@ func bellatrixForkOccurs(conns ...*grpc.ClientConn) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := coreHelper.BeaconBlockIsNil(blk); err != nil {
|
if err := wrapperv2.BeaconBlockIsNil(blk); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if blk.Block().Slot() < fSlot {
|
if blk.Block().Slot() < fSlot {
|
||||||
|
|||||||
Reference in New Issue
Block a user