Documentation ¶
Overview ¶
Package state_native defines how the beacon chain state for Ethereum functions in the running beacon node, using an advanced, immutable implementation of the state data structure.
BeaconState getters may be accessed from inside or outside the package. To avoid duplicating locks, we have internal and external versions of the getter. The external function obtains a read lock, then calls the internal function. The internal function returns the required data without further locking, allowing it to be used by other package-level functions that already hold a lock. Hence the functions look something like this:
func (b *BeaconState) Foo() uint64 { // Read lock. b.lock.RLock() defer b.lock.RUnlock() // Internal getter. return b.foo() } func (b *BeaconState) foo() uint64 { (...) // Some processing logic. return b.foo }
Although it is technically possible to remove the short-circuit conditions from the external function, that would require every read to obtain a lock even if the data was not present, leading to potential slowdowns.
Index ¶
- Constants
- Variables
- func ComputeFieldRootsWithHasher(ctx context.Context, state *BeaconState) ([][]byte, error)
- func FinalizedRootGeneralizedIndex() uint64
- func InitializeFromProtoAltair(st *ethpb.BeaconStateAltair) (state.BeaconState, error)
- func InitializeFromProtoBellatrix(st *ethpb.BeaconStateBellatrix) (state.BeaconState, error)
- func InitializeFromProtoCapella(st *ethpb.BeaconStateCapella) (state.BeaconState, error)
- func InitializeFromProtoDeneb(st *ethpb.BeaconStateDeneb) (state.BeaconState, error)
- func InitializeFromProtoPhase0(st *ethpb.BeaconState) (state.BeaconState, error)
- func InitializeFromProtoUnsafeAltair(st *ethpb.BeaconStateAltair) (state.BeaconState, error)
- func InitializeFromProtoUnsafeBellatrix(st *ethpb.BeaconStateBellatrix) (state.BeaconState, error)
- func InitializeFromProtoUnsafeCapella(st *ethpb.BeaconStateCapella) (state.BeaconState, error)
- func InitializeFromProtoUnsafeDeneb(st *ethpb.BeaconStateDeneb) (state.BeaconState, error)
- func InitializeFromProtoUnsafePhase0(st *ethpb.BeaconState) (state.BeaconState, error)
- func NewValidator(v *ethpb.Validator) (state.ReadOnlyValidator, error)
- func ProtobufBeaconStateAltair(s interface{}) (*ethpb.BeaconStateAltair, error)
- func ProtobufBeaconStateBellatrix(s interface{}) (*ethpb.BeaconStateBellatrix, error)
- func ProtobufBeaconStateCapella(s interface{}) (*ethpb.BeaconStateCapella, error)
- func ProtobufBeaconStateDeneb(s interface{}) (*ethpb.BeaconStateDeneb, error)
- func ProtobufBeaconStatePhase0(s interface{}) (*ethpb.BeaconState, error)
- type BeaconState
- func (b *BeaconState) AppendBalance(bal uint64) error
- func (b *BeaconState) AppendCurrentEpochAttestations(val *ethpb.PendingAttestation) error
- func (b *BeaconState) AppendCurrentParticipationBits(val byte) error
- func (b *BeaconState) AppendEth1DataVotes(val *ethpb.Eth1Data) error
- func (b *BeaconState) AppendHistoricalRoots(root [32]byte) error
- func (b *BeaconState) AppendHistoricalSummaries(summary *ethpb.HistoricalSummary) error
- func (b *BeaconState) AppendInactivityScore(s uint64) error
- func (b *BeaconState) AppendPreviousEpochAttestations(val *ethpb.PendingAttestation) error
- func (b *BeaconState) AppendPreviousParticipationBits(val byte) error
- func (b *BeaconState) AppendValidator(val *ethpb.Validator) error
- func (b *BeaconState) ApplyToEveryValidator(f func(idx int, val *ethpb.Validator) (bool, *ethpb.Validator, error)) error
- func (b *BeaconState) BalanceAtIndex(idx primitives.ValidatorIndex) (uint64, error)
- func (b *BeaconState) Balances() []uint64
- func (b *BeaconState) BalancesLength() int
- func (b *BeaconState) BlockRootAtIndex(idx uint64) ([]byte, error)
- func (b *BeaconState) BlockRoots() [][]byte
- func (b *BeaconState) Copy() state.BeaconState
- func (b *BeaconState) CopyAllTries()
- func (b *BeaconState) CurrentEpochAttestations() ([]*ethpb.PendingAttestation, error)
- func (b *BeaconState) CurrentEpochParticipation() ([]byte, error)
- func (b *BeaconState) CurrentJustifiedCheckpoint() *ethpb.Checkpoint
- func (b *BeaconState) CurrentSyncCommittee() (*ethpb.SyncCommittee, error)
- func (b *BeaconState) CurrentSyncCommitteeGeneralizedIndex() (uint64, error)
- func (b *BeaconState) CurrentSyncCommitteeProof(ctx context.Context) ([][]byte, error)
- func (b *BeaconState) Defragment()
- func (b *BeaconState) Eth1Data() *ethpb.Eth1Data
- func (b *BeaconState) Eth1DataVotes() []*ethpb.Eth1Data
- func (b *BeaconState) Eth1DepositIndex() uint64
- func (b *BeaconState) ExpectedWithdrawals() ([]*enginev1.Withdrawal, error)
- func (b *BeaconState) FieldReferencesCount() map[string]uint64
- func (b *BeaconState) FinalizedCheckpoint() *ethpb.Checkpoint
- func (b *BeaconState) FinalizedCheckpointEpoch() primitives.Epoch
- func (b *BeaconState) FinalizedRootProof(ctx context.Context) ([][]byte, error)
- func (b *BeaconState) Fork() *ethpb.Fork
- func (b *BeaconState) GenesisTime() uint64
- func (b *BeaconState) GenesisValidatorsRoot() []byte
- func (b *BeaconState) HashTreeRoot(ctx context.Context) ([32]byte, error)
- func (b *BeaconState) HistoricalRoots() ([][]byte, error)
- func (b *BeaconState) HistoricalSummaries() ([]*ethpb.HistoricalSummary, error)
- func (b *BeaconState) Id() uint64
- func (b *BeaconState) InactivityPenaltyQuotient() (uint64, error)
- func (b *BeaconState) InactivityScores() ([]uint64, error)
- func (b *BeaconState) IsNil() bool
- func (b *BeaconState) JustificationBits() bitfield.Bitvector4
- func (b *BeaconState) LatestBlockHeader() *ethpb.BeaconBlockHeader
- func (b *BeaconState) LatestExecutionPayloadHeader() (interfaces.ExecutionData, error)
- func (b *BeaconState) MarshalJSON() ([]byte, error)
- func (b *BeaconState) MarshalSSZ() ([]byte, error)
- func (b *BeaconState) MatchCurrentJustifiedCheckpoint(c *ethpb.Checkpoint) bool
- func (b *BeaconState) MatchPreviousJustifiedCheckpoint(c *ethpb.Checkpoint) bool
- func (b *BeaconState) ModifyCurrentParticipationBits(mutator func(val []byte) ([]byte, error)) error
- func (b *BeaconState) ModifyPreviousParticipationBits(mutator func(val []byte) ([]byte, error)) error
- func (b *BeaconState) NextSyncCommittee() (*ethpb.SyncCommittee, error)
- func (b *BeaconState) NextSyncCommitteeGeneralizedIndex() (uint64, error)
- func (b *BeaconState) NextSyncCommitteeProof(ctx context.Context) ([][]byte, error)
- func (b *BeaconState) NextWithdrawalIndex() (uint64, error)
- func (b *BeaconState) NextWithdrawalValidatorIndex() (primitives.ValidatorIndex, error)
- func (b *BeaconState) NumValidators() int
- func (b *BeaconState) PreviousEpochAttestations() ([]*ethpb.PendingAttestation, error)
- func (b *BeaconState) PreviousEpochParticipation() ([]byte, error)
- func (b *BeaconState) PreviousJustifiedCheckpoint() *ethpb.Checkpoint
- func (b *BeaconState) ProportionalSlashingMultiplier() (uint64, error)
- func (b *BeaconState) PubkeyAtIndex(idx primitives.ValidatorIndex) [fieldparams.BLSPubkeyLength]byte
- func (b *BeaconState) PublicKeys() ([][fieldparams.BLSPubkeyLength]byte, error)
- func (b *BeaconState) RandaoMixAtIndex(idx uint64) ([]byte, error)
- func (b *BeaconState) RandaoMixes() [][]byte
- func (b *BeaconState) RandaoMixesLength() int
- func (b *BeaconState) ReadFromEveryValidator(f func(idx int, val state.ReadOnlyValidator) error) error
- func (b *BeaconState) RecordStateMetrics()
- func (b *BeaconState) RotateAttestations() error
- func (b *BeaconState) SetBalances(val []uint64) error
- func (b *BeaconState) SetBlockRoots(val [][]byte) error
- func (b *BeaconState) SetCurrentEpochAttestations(a []*ethpb.PendingAttestation) error
- func (b *BeaconState) SetCurrentJustifiedCheckpoint(val *ethpb.Checkpoint) error
- func (b *BeaconState) SetCurrentParticipationBits(val []byte) error
- func (b *BeaconState) SetCurrentSyncCommittee(val *ethpb.SyncCommittee) error
- func (b *BeaconState) SetEth1Data(val *ethpb.Eth1Data) error
- func (b *BeaconState) SetEth1DataVotes(val []*ethpb.Eth1Data) error
- func (b *BeaconState) SetEth1DepositIndex(val uint64) error
- func (b *BeaconState) SetFinalizedCheckpoint(val *ethpb.Checkpoint) error
- func (b *BeaconState) SetFork(val *ethpb.Fork) error
- func (b *BeaconState) SetGenesisTime(val uint64) error
- func (b *BeaconState) SetGenesisValidatorsRoot(val []byte) error
- func (b *BeaconState) SetHistoricalRoots(val [][]byte) error
- func (b *BeaconState) SetInactivityScores(val []uint64) error
- func (b *BeaconState) SetJustificationBits(val bitfield.Bitvector4) error
- func (b *BeaconState) SetLatestBlockHeader(val *ethpb.BeaconBlockHeader) error
- func (b *BeaconState) SetLatestExecutionPayloadHeader(val interfaces.ExecutionData) error
- func (b *BeaconState) SetNextSyncCommittee(val *ethpb.SyncCommittee) error
- func (b *BeaconState) SetNextWithdrawalIndex(i uint64) error
- func (b *BeaconState) SetNextWithdrawalValidatorIndex(i primitives.ValidatorIndex) error
- func (b *BeaconState) SetPreviousEpochAttestations(a []*ethpb.PendingAttestation) error
- func (b *BeaconState) SetPreviousJustifiedCheckpoint(val *ethpb.Checkpoint) error
- func (b *BeaconState) SetPreviousParticipationBits(val []byte) error
- func (b *BeaconState) SetRandaoMixes(val [][]byte) error
- func (b *BeaconState) SetSlashings(val []uint64) error
- func (b *BeaconState) SetSlot(val primitives.Slot) error
- func (b *BeaconState) SetStateRoots(val [][]byte) error
- func (b *BeaconState) SetValidators(val []*ethpb.Validator) error
- func (b *BeaconState) Slashings() []uint64
- func (b *BeaconState) Slot() primitives.Slot
- func (b *BeaconState) StateRootAtIndex(idx uint64) ([]byte, error)
- func (b *BeaconState) StateRoots() [][]byte
- func (b *BeaconState) ToProto() interface{}
- func (b *BeaconState) ToProtoUnsafe() interface{}
- func (b *BeaconState) UnrealizedCheckpointBalances() (uint64, uint64, uint64, error)
- func (b *BeaconState) UpdateBalancesAtIndex(idx primitives.ValidatorIndex, val uint64) error
- func (b *BeaconState) UpdateBlockRootAtIndex(idx uint64, blockRoot [32]byte) error
- func (b *BeaconState) UpdateRandaoMixesAtIndex(idx uint64, val [32]byte) error
- func (b *BeaconState) UpdateSlashingsAtIndex(idx, val uint64) error
- func (b *BeaconState) UpdateStateRootAtIndex(idx uint64, stateRoot [32]byte) error
- func (b *BeaconState) UpdateValidatorAtIndex(idx primitives.ValidatorIndex, val *ethpb.Validator) error
- func (b *BeaconState) ValidatorAtIndex(idx primitives.ValidatorIndex) (*ethpb.Validator, error)
- func (b *BeaconState) ValidatorAtIndexReadOnly(idx primitives.ValidatorIndex) (state.ReadOnlyValidator, error)
- func (b *BeaconState) ValidatorIndexByPubkey(key [fieldparams.BLSPubkeyLength]byte) (primitives.ValidatorIndex, bool)
- func (b *BeaconState) Validators() []*ethpb.Validator
- func (b *BeaconState) Version() int
- type MultiValueBalances
- type MultiValueBlockRoots
- type MultiValueInactivityScores
- type MultiValueRandaoMixes
- type MultiValueStateRoots
- type MultiValueValidators
Constants ¶
const ETH1AddressOffset = 12
Variables ¶
var ErrNilParticipation = errors.New("nil epoch participation in state")
var ( // ErrNilWrappedValidator returns when caller attempts to wrap a nil pointer validator. ErrNilWrappedValidator = errors.New("nil validator cannot be wrapped as readonly") )
Functions ¶
func ComputeFieldRootsWithHasher ¶
func ComputeFieldRootsWithHasher(ctx context.Context, state *BeaconState) ([][]byte, error)
ComputeFieldRootsWithHasher hashes the provided state and returns its respective field roots.
func FinalizedRootGeneralizedIndex ¶
func FinalizedRootGeneralizedIndex() uint64
FinalizedRootGeneralizedIndex for the beacon state.
func InitializeFromProtoAltair ¶
func InitializeFromProtoAltair(st *ethpb.BeaconStateAltair) (state.BeaconState, error)
InitializeFromProtoAltair the beacon state from a protobuf representation.
func InitializeFromProtoBellatrix ¶
func InitializeFromProtoBellatrix(st *ethpb.BeaconStateBellatrix) (state.BeaconState, error)
InitializeFromProtoBellatrix the beacon state from a protobuf representation.
func InitializeFromProtoCapella ¶
func InitializeFromProtoCapella(st *ethpb.BeaconStateCapella) (state.BeaconState, error)
InitializeFromProtoCapella the beacon state from a protobuf representation.
func InitializeFromProtoDeneb ¶ added in v4.1.0
func InitializeFromProtoDeneb(st *ethpb.BeaconStateDeneb) (state.BeaconState, error)
InitializeFromProtoDeneb the beacon state from a protobuf representation.
func InitializeFromProtoPhase0 ¶
func InitializeFromProtoPhase0(st *ethpb.BeaconState) (state.BeaconState, error)
InitializeFromProtoPhase0 the beacon state from a protobuf representation.
func InitializeFromProtoUnsafeAltair ¶
func InitializeFromProtoUnsafeAltair(st *ethpb.BeaconStateAltair) (state.BeaconState, error)
InitializeFromProtoUnsafeAltair directly uses the beacon state protobuf fields and sets them as fields of the BeaconState type.
func InitializeFromProtoUnsafeBellatrix ¶
func InitializeFromProtoUnsafeBellatrix(st *ethpb.BeaconStateBellatrix) (state.BeaconState, error)
InitializeFromProtoUnsafeBellatrix directly uses the beacon state protobuf fields and sets them as fields of the BeaconState type.
func InitializeFromProtoUnsafeCapella ¶
func InitializeFromProtoUnsafeCapella(st *ethpb.BeaconStateCapella) (state.BeaconState, error)
InitializeFromProtoUnsafeCapella directly uses the beacon state protobuf fields and sets them as fields of the BeaconState type.
func InitializeFromProtoUnsafeDeneb ¶ added in v4.1.0
func InitializeFromProtoUnsafeDeneb(st *ethpb.BeaconStateDeneb) (state.BeaconState, error)
InitializeFromProtoUnsafeDeneb directly uses the beacon state protobuf fields and sets them as fields of the BeaconState type.
func InitializeFromProtoUnsafePhase0 ¶
func InitializeFromProtoUnsafePhase0(st *ethpb.BeaconState) (state.BeaconState, error)
InitializeFromProtoUnsafePhase0 directly uses the beacon state protobuf fields and sets them as fields of the BeaconState type.
func NewValidator ¶
func NewValidator(v *ethpb.Validator) (state.ReadOnlyValidator, error)
NewValidator initializes the read only wrapper for validator.
func ProtobufBeaconStateAltair ¶
func ProtobufBeaconStateAltair(s interface{}) (*ethpb.BeaconStateAltair, error)
ProtobufBeaconStateAltair transforms an input into beacon state Altair in the form of protobuf. Error is returned if the input is not type protobuf beacon state.
func ProtobufBeaconStateBellatrix ¶
func ProtobufBeaconStateBellatrix(s interface{}) (*ethpb.BeaconStateBellatrix, error)
ProtobufBeaconStateBellatrix transforms an input into beacon state Bellatrix in the form of protobuf. Error is returned if the input is not type protobuf beacon state.
func ProtobufBeaconStateCapella ¶
func ProtobufBeaconStateCapella(s interface{}) (*ethpb.BeaconStateCapella, error)
ProtobufBeaconStateCapella transforms an input into beacon state Capella in the form of protobuf. Error is returned if the input is not type protobuf beacon state.
func ProtobufBeaconStateDeneb ¶ added in v4.1.0
func ProtobufBeaconStateDeneb(s interface{}) (*ethpb.BeaconStateDeneb, error)
ProtobufBeaconStateDeneb transforms an input into beacon state Deneb in the form of protobuf. Error is returned if the input is not type protobuf beacon state.
func ProtobufBeaconStatePhase0 ¶
func ProtobufBeaconStatePhase0(s interface{}) (*ethpb.BeaconState, error)
ProtobufBeaconStatePhase0 transforms an input into beacon state in the form of protobuf. Error is returned if the input is not type protobuf beacon state.
Types ¶
type BeaconState ¶
type BeaconState struct {
// contains filtered or unexported fields
}
BeaconState defines a struct containing utilities for the Ethereum Beacon Chain state, defining getters and setters for its respective values and helpful functions such as HashTreeRoot().
func (*BeaconState) AppendBalance ¶
func (b *BeaconState) AppendBalance(bal uint64) error
AppendBalance for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendCurrentEpochAttestations ¶
func (b *BeaconState) AppendCurrentEpochAttestations(val *ethpb.PendingAttestation) error
AppendCurrentEpochAttestations for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendCurrentParticipationBits ¶
func (b *BeaconState) AppendCurrentParticipationBits(val byte) error
AppendCurrentParticipationBits for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendEth1DataVotes ¶
func (b *BeaconState) AppendEth1DataVotes(val *ethpb.Eth1Data) error
AppendEth1DataVotes for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendHistoricalRoots ¶
func (b *BeaconState) AppendHistoricalRoots(root [32]byte) error
AppendHistoricalRoots for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendHistoricalSummaries ¶
func (b *BeaconState) AppendHistoricalSummaries(summary *ethpb.HistoricalSummary) error
AppendHistoricalSummaries for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendInactivityScore ¶
func (b *BeaconState) AppendInactivityScore(s uint64) error
AppendInactivityScore for the beacon state.
func (*BeaconState) AppendPreviousEpochAttestations ¶
func (b *BeaconState) AppendPreviousEpochAttestations(val *ethpb.PendingAttestation) error
AppendPreviousEpochAttestations for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendPreviousParticipationBits ¶
func (b *BeaconState) AppendPreviousParticipationBits(val byte) error
AppendPreviousParticipationBits for the beacon state. Appends the new value to the end of list.
func (*BeaconState) AppendValidator ¶
func (b *BeaconState) AppendValidator(val *ethpb.Validator) error
AppendValidator for the beacon state. Appends the new value to the end of list.
func (*BeaconState) ApplyToEveryValidator ¶
func (b *BeaconState) ApplyToEveryValidator(f func(idx int, val *ethpb.Validator) (bool, *ethpb.Validator, error)) error
ApplyToEveryValidator applies the provided callback function to each validator in the validator registry.
func (*BeaconState) BalanceAtIndex ¶
func (b *BeaconState) BalanceAtIndex(idx primitives.ValidatorIndex) (uint64, error)
BalanceAtIndex of validator with the provided index.
func (*BeaconState) Balances ¶
func (b *BeaconState) Balances() []uint64
Balances of validators participating in consensus on the beacon chain.
func (*BeaconState) BalancesLength ¶
func (b *BeaconState) BalancesLength() int
BalancesLength returns the length of the balances slice.
func (*BeaconState) BlockRootAtIndex ¶
func (b *BeaconState) BlockRootAtIndex(idx uint64) ([]byte, error)
BlockRootAtIndex retrieves a specific block root based on an input index value.
func (*BeaconState) BlockRoots ¶
func (b *BeaconState) BlockRoots() [][]byte
BlockRoots kept track of in the beacon state.
func (*BeaconState) Copy ¶
func (b *BeaconState) Copy() state.BeaconState
Copy returns a deep copy of the beacon state.
func (*BeaconState) CopyAllTries ¶ added in v4.0.6
func (b *BeaconState) CopyAllTries()
CopyAllTries copies our field tries from the state. This is used to remove shared field tries which have references to other states and only have this copied set referencing to the current state.
func (*BeaconState) CurrentEpochAttestations ¶
func (b *BeaconState) CurrentEpochAttestations() ([]*ethpb.PendingAttestation, error)
CurrentEpochAttestations corresponding to blocks on the beacon chain.
func (*BeaconState) CurrentEpochParticipation ¶
func (b *BeaconState) CurrentEpochParticipation() ([]byte, error)
CurrentEpochParticipation corresponding to participation bits on the beacon chain.
func (*BeaconState) CurrentJustifiedCheckpoint ¶
func (b *BeaconState) CurrentJustifiedCheckpoint() *ethpb.Checkpoint
CurrentJustifiedCheckpoint denoting an epoch and block root.
func (*BeaconState) CurrentSyncCommittee ¶
func (b *BeaconState) CurrentSyncCommittee() (*ethpb.SyncCommittee, error)
CurrentSyncCommittee of the current sync committee in beacon chain state.
func (*BeaconState) CurrentSyncCommitteeGeneralizedIndex ¶
func (b *BeaconState) CurrentSyncCommitteeGeneralizedIndex() (uint64, error)
CurrentSyncCommitteeGeneralizedIndex for the beacon state.
func (*BeaconState) CurrentSyncCommitteeProof ¶
func (b *BeaconState) CurrentSyncCommitteeProof(ctx context.Context) ([][]byte, error)
CurrentSyncCommitteeProof from the state's Merkle trie representation.
func (*BeaconState) Defragment ¶ added in v4.2.1
func (b *BeaconState) Defragment()
Defragment checks whether each individual multi-value field in our state is fragmented and if it is, it will 'reset' the field to create a new multivalue object.
func (*BeaconState) Eth1Data ¶
func (b *BeaconState) Eth1Data() *ethpb.Eth1Data
Eth1Data corresponding to the proof-of-work chain information stored in the beacon state.
func (*BeaconState) Eth1DataVotes ¶
func (b *BeaconState) Eth1DataVotes() []*ethpb.Eth1Data
Eth1DataVotes corresponds to votes from Ethereum on the canonical proof-of-work chain data retrieved from eth1.
func (*BeaconState) Eth1DepositIndex ¶
func (b *BeaconState) Eth1DepositIndex() uint64
Eth1DepositIndex corresponds to the index of the deposit made to the validator deposit contract at the time of this state's eth1 data.
func (*BeaconState) ExpectedWithdrawals ¶
func (b *BeaconState) ExpectedWithdrawals() ([]*enginev1.Withdrawal, error)
ExpectedWithdrawals returns the withdrawals that a proposer will need to pack in the next block applied to the current state. It is also used by validators to check that the execution payload carried the right number of withdrawals
func (*BeaconState) FieldReferencesCount ¶
func (b *BeaconState) FieldReferencesCount() map[string]uint64
FieldReferencesCount returns the reference count held by each field. This also includes the field trie held by each field.
func (*BeaconState) FinalizedCheckpoint ¶
func (b *BeaconState) FinalizedCheckpoint() *ethpb.Checkpoint
FinalizedCheckpoint denoting an epoch and block root.
func (*BeaconState) FinalizedCheckpointEpoch ¶
func (b *BeaconState) FinalizedCheckpointEpoch() primitives.Epoch
FinalizedCheckpointEpoch returns the epoch value of the finalized checkpoint.
func (*BeaconState) FinalizedRootProof ¶
func (b *BeaconState) FinalizedRootProof(ctx context.Context) ([][]byte, error)
FinalizedRootProof crafts a Merkle proof for the finalized root contained within the finalized checkpoint of a beacon state.
func (*BeaconState) Fork ¶
func (b *BeaconState) Fork() *ethpb.Fork
Fork version of the beacon chain.
func (*BeaconState) GenesisTime ¶
func (b *BeaconState) GenesisTime() uint64
GenesisTime of the beacon state as a uint64.
func (*BeaconState) GenesisValidatorsRoot ¶
func (b *BeaconState) GenesisValidatorsRoot() []byte
GenesisValidatorsRoot of the beacon state.
func (*BeaconState) HashTreeRoot ¶
func (b *BeaconState) HashTreeRoot(ctx context.Context) ([32]byte, error)
HashTreeRoot of the beacon state retrieves the Merkle root of the trie representation of the beacon state based on the Ethereum Simple Serialize specification.
func (*BeaconState) HistoricalRoots ¶
func (b *BeaconState) HistoricalRoots() ([][]byte, error)
HistoricalRoots based on epochs stored in the beacon state.
func (*BeaconState) HistoricalSummaries ¶
func (b *BeaconState) HistoricalSummaries() ([]*ethpb.HistoricalSummary, error)
HistoricalSummaries of the beacon state.
func (*BeaconState) Id ¶ added in v4.1.0
func (b *BeaconState) Id() uint64
Id is the identifier of the beacon state.
func (*BeaconState) InactivityPenaltyQuotient ¶
func (b *BeaconState) InactivityPenaltyQuotient() (uint64, error)
func (*BeaconState) InactivityScores ¶
func (b *BeaconState) InactivityScores() ([]uint64, error)
InactivityScores of validators participating in consensus on the beacon chain.
func (*BeaconState) IsNil ¶
func (b *BeaconState) IsNil() bool
IsNil checks if the state and the underlying proto object are nil.
func (*BeaconState) JustificationBits ¶
func (b *BeaconState) JustificationBits() bitfield.Bitvector4
JustificationBits marking which epochs have been justified in the beacon chain.
func (*BeaconState) LatestBlockHeader ¶
func (b *BeaconState) LatestBlockHeader() *ethpb.BeaconBlockHeader
LatestBlockHeader stored within the beacon state.
func (*BeaconState) LatestExecutionPayloadHeader ¶
func (b *BeaconState) LatestExecutionPayloadHeader() (interfaces.ExecutionData, error)
LatestExecutionPayloadHeader of the beacon state.
func (*BeaconState) MarshalJSON ¶ added in v4.1.0
func (b *BeaconState) MarshalJSON() ([]byte, error)
func (*BeaconState) MarshalSSZ ¶
func (b *BeaconState) MarshalSSZ() ([]byte, error)
func (*BeaconState) MatchCurrentJustifiedCheckpoint ¶
func (b *BeaconState) MatchCurrentJustifiedCheckpoint(c *ethpb.Checkpoint) bool
MatchCurrentJustifiedCheckpoint returns true if input justified checkpoint matches the current justified checkpoint in state.
func (*BeaconState) MatchPreviousJustifiedCheckpoint ¶
func (b *BeaconState) MatchPreviousJustifiedCheckpoint(c *ethpb.Checkpoint) bool
MatchPreviousJustifiedCheckpoint returns true if the input justified checkpoint matches the previous justified checkpoint in state.
func (*BeaconState) ModifyCurrentParticipationBits ¶
func (b *BeaconState) ModifyCurrentParticipationBits(mutator func(val []byte) ([]byte, error)) error
ModifyCurrentParticipationBits modifies the current participation bitfield via the provided mutator function.
func (*BeaconState) ModifyPreviousParticipationBits ¶
func (b *BeaconState) ModifyPreviousParticipationBits(mutator func(val []byte) ([]byte, error)) error
ModifyPreviousParticipationBits modifies the previous participation bitfield via the provided mutator function.
func (*BeaconState) NextSyncCommittee ¶
func (b *BeaconState) NextSyncCommittee() (*ethpb.SyncCommittee, error)
NextSyncCommittee of the next sync committee in beacon chain state.
func (*BeaconState) NextSyncCommitteeGeneralizedIndex ¶
func (b *BeaconState) NextSyncCommitteeGeneralizedIndex() (uint64, error)
NextSyncCommitteeGeneralizedIndex for the beacon state.
func (*BeaconState) NextSyncCommitteeProof ¶
func (b *BeaconState) NextSyncCommitteeProof(ctx context.Context) ([][]byte, error)
NextSyncCommitteeProof from the state's Merkle trie representation.
func (*BeaconState) NextWithdrawalIndex ¶
func (b *BeaconState) NextWithdrawalIndex() (uint64, error)
NextWithdrawalIndex returns the index that will be assigned to the next withdrawal.
func (*BeaconState) NextWithdrawalValidatorIndex ¶
func (b *BeaconState) NextWithdrawalValidatorIndex() (primitives.ValidatorIndex, error)
NextWithdrawalValidatorIndex returns the index of the validator which is next in line for a withdrawal.
func (*BeaconState) NumValidators ¶
func (b *BeaconState) NumValidators() int
NumValidators returns the size of the validator registry.
func (*BeaconState) PreviousEpochAttestations ¶
func (b *BeaconState) PreviousEpochAttestations() ([]*ethpb.PendingAttestation, error)
PreviousEpochAttestations corresponding to blocks on the beacon chain.
func (*BeaconState) PreviousEpochParticipation ¶
func (b *BeaconState) PreviousEpochParticipation() ([]byte, error)
PreviousEpochParticipation corresponding to participation bits on the beacon chain.
func (*BeaconState) PreviousJustifiedCheckpoint ¶
func (b *BeaconState) PreviousJustifiedCheckpoint() *ethpb.Checkpoint
PreviousJustifiedCheckpoint denoting an epoch and block root.
func (*BeaconState) ProportionalSlashingMultiplier ¶
func (b *BeaconState) ProportionalSlashingMultiplier() (uint64, error)
func (*BeaconState) PubkeyAtIndex ¶
func (b *BeaconState) PubkeyAtIndex(idx primitives.ValidatorIndex) [fieldparams.BLSPubkeyLength]byte
PubkeyAtIndex returns the pubkey at the given validator index.
func (*BeaconState) PublicKeys ¶ added in v4.2.1
func (b *BeaconState) PublicKeys() ([][fieldparams.BLSPubkeyLength]byte, error)
PublicKeys builds a list of all validator public keys, with each key's index aligned to its validator index.
func (*BeaconState) RandaoMixAtIndex ¶
func (b *BeaconState) RandaoMixAtIndex(idx uint64) ([]byte, error)
RandaoMixAtIndex retrieves a specific block root based on an input index value.
func (*BeaconState) RandaoMixes ¶
func (b *BeaconState) RandaoMixes() [][]byte
RandaoMixes of block proposers on the beacon chain.
func (*BeaconState) RandaoMixesLength ¶
func (b *BeaconState) RandaoMixesLength() int
RandaoMixesLength returns the length of the randao mixes slice.
func (*BeaconState) ReadFromEveryValidator ¶
func (b *BeaconState) ReadFromEveryValidator(f func(idx int, val state.ReadOnlyValidator) error) error
ReadFromEveryValidator reads values from every validator and applies it to the provided function.
WARNING: This method is potentially unsafe, as it exposes the actual validator registry.
func (*BeaconState) RecordStateMetrics ¶ added in v4.2.0
func (b *BeaconState) RecordStateMetrics()
RecordStateMetrics proceeds to record any state related metrics data.
func (*BeaconState) RotateAttestations ¶
func (b *BeaconState) RotateAttestations() error
RotateAttestations sets the previous epoch attestations to the current epoch attestations and then clears the current epoch attestations.
func (*BeaconState) SetBalances ¶
func (b *BeaconState) SetBalances(val []uint64) error
SetBalances for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetBlockRoots ¶
func (b *BeaconState) SetBlockRoots(val [][]byte) error
SetBlockRoots for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetCurrentEpochAttestations ¶
func (b *BeaconState) SetCurrentEpochAttestations(a []*ethpb.PendingAttestation) error
func (*BeaconState) SetCurrentJustifiedCheckpoint ¶
func (b *BeaconState) SetCurrentJustifiedCheckpoint(val *ethpb.Checkpoint) error
SetCurrentJustifiedCheckpoint for the beacon state.
func (*BeaconState) SetCurrentParticipationBits ¶
func (b *BeaconState) SetCurrentParticipationBits(val []byte) error
SetCurrentParticipationBits for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetCurrentSyncCommittee ¶
func (b *BeaconState) SetCurrentSyncCommittee(val *ethpb.SyncCommittee) error
SetCurrentSyncCommittee for the beacon state.
func (*BeaconState) SetEth1Data ¶
func (b *BeaconState) SetEth1Data(val *ethpb.Eth1Data) error
SetEth1Data for the beacon state.
func (*BeaconState) SetEth1DataVotes ¶
func (b *BeaconState) SetEth1DataVotes(val []*ethpb.Eth1Data) error
SetEth1DataVotes for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetEth1DepositIndex ¶
func (b *BeaconState) SetEth1DepositIndex(val uint64) error
SetEth1DepositIndex for the beacon state.
func (*BeaconState) SetFinalizedCheckpoint ¶
func (b *BeaconState) SetFinalizedCheckpoint(val *ethpb.Checkpoint) error
SetFinalizedCheckpoint for the beacon state.
func (*BeaconState) SetFork ¶
func (b *BeaconState) SetFork(val *ethpb.Fork) error
SetFork version for the beacon chain.
func (*BeaconState) SetGenesisTime ¶
func (b *BeaconState) SetGenesisTime(val uint64) error
SetGenesisTime for the beacon state.
func (*BeaconState) SetGenesisValidatorsRoot ¶
func (b *BeaconState) SetGenesisValidatorsRoot(val []byte) error
SetGenesisValidatorsRoot for the beacon state.
func (*BeaconState) SetHistoricalRoots ¶
func (b *BeaconState) SetHistoricalRoots(val [][]byte) error
SetHistoricalRoots for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetInactivityScores ¶
func (b *BeaconState) SetInactivityScores(val []uint64) error
SetInactivityScores for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetJustificationBits ¶
func (b *BeaconState) SetJustificationBits(val bitfield.Bitvector4) error
SetJustificationBits for the beacon state.
func (*BeaconState) SetLatestBlockHeader ¶
func (b *BeaconState) SetLatestBlockHeader(val *ethpb.BeaconBlockHeader) error
SetLatestBlockHeader in the beacon state.
func (*BeaconState) SetLatestExecutionPayloadHeader ¶
func (b *BeaconState) SetLatestExecutionPayloadHeader(val interfaces.ExecutionData) error
SetLatestExecutionPayloadHeader for the beacon state.
func (*BeaconState) SetNextSyncCommittee ¶
func (b *BeaconState) SetNextSyncCommittee(val *ethpb.SyncCommittee) error
SetNextSyncCommittee for the beacon state.
func (*BeaconState) SetNextWithdrawalIndex ¶
func (b *BeaconState) SetNextWithdrawalIndex(i uint64) error
SetNextWithdrawalIndex sets the index that will be assigned to the next withdrawal.
func (*BeaconState) SetNextWithdrawalValidatorIndex ¶
func (b *BeaconState) SetNextWithdrawalValidatorIndex(i primitives.ValidatorIndex) error
SetNextWithdrawalValidatorIndex sets the index of the validator which is next in line for a partial withdrawal.
func (*BeaconState) SetPreviousEpochAttestations ¶
func (b *BeaconState) SetPreviousEpochAttestations(a []*ethpb.PendingAttestation) error
func (*BeaconState) SetPreviousJustifiedCheckpoint ¶
func (b *BeaconState) SetPreviousJustifiedCheckpoint(val *ethpb.Checkpoint) error
SetPreviousJustifiedCheckpoint for the beacon state.
func (*BeaconState) SetPreviousParticipationBits ¶
func (b *BeaconState) SetPreviousParticipationBits(val []byte) error
SetPreviousParticipationBits for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetRandaoMixes ¶
func (b *BeaconState) SetRandaoMixes(val [][]byte) error
SetRandaoMixes for the beacon state. Updates the entire randao mixes to a new value by overwriting the previous one.
func (*BeaconState) SetSlashings ¶
func (b *BeaconState) SetSlashings(val []uint64) error
SetSlashings for the beacon state. Updates the entire list to a new value by overwriting the previous one.
func (*BeaconState) SetSlot ¶
func (b *BeaconState) SetSlot(val primitives.Slot) error
SetSlot for the beacon state.
func (*BeaconState) SetStateRoots ¶
func (b *BeaconState) SetStateRoots(val [][]byte) error
SetStateRoots for the beacon state. Updates the state roots to a new value by overwriting the previous value.
func (*BeaconState) SetValidators ¶
func (b *BeaconState) SetValidators(val []*ethpb.Validator) error
SetValidators for the beacon state. Updates the entire to a new value by overwriting the previous one.
func (*BeaconState) Slashings ¶
func (b *BeaconState) Slashings() []uint64
Slashings of validators on the beacon chain.
func (*BeaconState) Slot ¶
func (b *BeaconState) Slot() primitives.Slot
Slot of the current beacon chain state.
func (*BeaconState) StateRootAtIndex ¶
func (b *BeaconState) StateRootAtIndex(idx uint64) ([]byte, error)
StateRootAtIndex retrieves a specific state root based on an input index value.
func (*BeaconState) StateRoots ¶
func (b *BeaconState) StateRoots() [][]byte
StateRoots kept track of in the beacon state.
func (*BeaconState) ToProto ¶
func (b *BeaconState) ToProto() interface{}
ToProto the beacon state into a protobuf for usage.
func (*BeaconState) ToProtoUnsafe ¶
func (b *BeaconState) ToProtoUnsafe() interface{}
ToProtoUnsafe returns the pointer value of the underlying beacon state proto object, bypassing immutability. Use with care.
func (*BeaconState) UnrealizedCheckpointBalances ¶
func (b *BeaconState) UnrealizedCheckpointBalances() (uint64, uint64, uint64, error)
UnrealizedCheckpointBalances returns the total balances: active, target attested in current epoch and target attested in previous epoch. This function is used to compute the "unrealized justification" that a synced Beacon Block will have.
func (*BeaconState) UpdateBalancesAtIndex ¶
func (b *BeaconState) UpdateBalancesAtIndex(idx primitives.ValidatorIndex, val uint64) error
UpdateBalancesAtIndex for the beacon state. This method updates the balance at a specific index to a new value.
func (*BeaconState) UpdateBlockRootAtIndex ¶
func (b *BeaconState) UpdateBlockRootAtIndex(idx uint64, blockRoot [32]byte) error
UpdateBlockRootAtIndex for the beacon state. Updates the block root at a specific index to a new value.
func (*BeaconState) UpdateRandaoMixesAtIndex ¶
func (b *BeaconState) UpdateRandaoMixesAtIndex(idx uint64, val [32]byte) error
UpdateRandaoMixesAtIndex for the beacon state. Updates the randao mixes at a specific index to a new value.
func (*BeaconState) UpdateSlashingsAtIndex ¶
func (b *BeaconState) UpdateSlashingsAtIndex(idx, val uint64) error
UpdateSlashingsAtIndex for the beacon state. Updates the slashings at a specific index to a new value.
func (*BeaconState) UpdateStateRootAtIndex ¶
func (b *BeaconState) UpdateStateRootAtIndex(idx uint64, stateRoot [32]byte) error
UpdateStateRootAtIndex for the beacon state. Updates the state root at a specific index to a new value.
func (*BeaconState) UpdateValidatorAtIndex ¶
func (b *BeaconState) UpdateValidatorAtIndex(idx primitives.ValidatorIndex, val *ethpb.Validator) error
UpdateValidatorAtIndex for the beacon state. Updates the validator at a specific index to a new value.
func (*BeaconState) ValidatorAtIndex ¶
func (b *BeaconState) ValidatorAtIndex(idx primitives.ValidatorIndex) (*ethpb.Validator, error)
ValidatorAtIndex is the validator at the provided index.
func (*BeaconState) ValidatorAtIndexReadOnly ¶
func (b *BeaconState) ValidatorAtIndexReadOnly(idx primitives.ValidatorIndex) (state.ReadOnlyValidator, error)
ValidatorAtIndexReadOnly is the validator at the provided index. This method doesn't clone the validator.
func (*BeaconState) ValidatorIndexByPubkey ¶
func (b *BeaconState) ValidatorIndexByPubkey(key [fieldparams.BLSPubkeyLength]byte) (primitives.ValidatorIndex, bool)
ValidatorIndexByPubkey returns a given validator by its 48-byte public key.
func (*BeaconState) Validators ¶
func (b *BeaconState) Validators() []*ethpb.Validator
Validators participating in consensus on the beacon chain.
func (*BeaconState) Version ¶
func (b *BeaconState) Version() int
Version of the beacon state. This method is strictly meant to be used without a lock internally.
type MultiValueBalances ¶ added in v4.1.0
type MultiValueBalances = multi_value_slice.Slice[uint64]
MultiValueBalances is a multi-value slice of balances.
func NewMultiValueBalances ¶ added in v4.1.0
func NewMultiValueBalances(balances []uint64) *MultiValueBalances
NewMultiValueBalances creates a new slice whose shared items will be populated with copies of input values.
type MultiValueBlockRoots ¶ added in v4.1.0
type MultiValueBlockRoots = multi_value_slice.Slice[[32]byte]
MultiValueBlockRoots is a multi-value slice of block roots.
func NewMultiValueBlockRoots ¶ added in v4.1.0
func NewMultiValueBlockRoots(roots [][]byte) *MultiValueBlockRoots
NewMultiValueBlockRoots creates a new slice whose shared items will be populated with copies of input values.
type MultiValueInactivityScores ¶ added in v4.1.0
type MultiValueInactivityScores = multi_value_slice.Slice[uint64]
MultiValueInactivityScores is a multi-value slice of inactivity scores.
func NewMultiValueInactivityScores ¶ added in v4.1.0
func NewMultiValueInactivityScores(scores []uint64) *MultiValueInactivityScores
NewMultiValueInactivityScores creates a new slice whose shared items will be populated with copies of input values.
type MultiValueRandaoMixes ¶ added in v4.1.0
type MultiValueRandaoMixes = multi_value_slice.Slice[[32]byte]
MultiValueRandaoMixes is a multi-value slice of randao mixes.
func NewMultiValueRandaoMixes ¶ added in v4.1.0
func NewMultiValueRandaoMixes(mixes [][]byte) *MultiValueRandaoMixes
NewMultiValueRandaoMixes creates a new slice whose shared items will be populated with copies of input values.
type MultiValueStateRoots ¶ added in v4.1.0
type MultiValueStateRoots = multi_value_slice.Slice[[32]byte]
MultiValueStateRoots is a multi-value slice of state roots.
func NewMultiValueStateRoots ¶ added in v4.1.0
func NewMultiValueStateRoots(roots [][]byte) *MultiValueStateRoots
NewMultiValueStateRoots creates a new slice whose shared items will be populated with copies of input values.
type MultiValueValidators ¶ added in v4.1.0
type MultiValueValidators = multi_value_slice.Slice[*ethpb.Validator]
MultiValueValidators is a multi-value slice of validator references.
func NewMultiValueValidators ¶ added in v4.1.0
func NewMultiValueValidators(vals []*ethpb.Validator) *MultiValueValidators
NewMultiValueValidators creates a new slice whose shared items will be populated with input values.
Source Files ¶
- beacon_state_mainnet.go
- doc.go
- error.go
- getters_attestation.go
- getters_block.go
- getters_checkpoint.go
- getters_eth1.go
- getters_misc.go
- getters_participation.go
- getters_payload_header.go
- getters_randao.go
- getters_state.go
- getters_sync_committee.go
- getters_validator.go
- getters_withdrawal.go
- hasher.go
- multi_value_slices.go
- proofs.go
- readonly_validator.go
- setters_attestation.go
- setters_block.go
- setters_checkpoint.go
- setters_eth1.go
- setters_misc.go
- setters_participation.go
- setters_payload_header.go
- setters_randao.go
- setters_state.go
- setters_sync_committee.go
- setters_validator.go
- setters_withdrawal.go
- spec_parameters.go
- ssz.go
- state_trie.go
- types.go