Documentation ¶
Overview ¶
Package state defines the actual beacon state interface used by a Prysm beacon node, also containing useful, scoped interfaces such as a ReadOnlyState and WriteOnlyBeaconState.
Index ¶
- Variables
- type BeaconState
- type FutureForkStub
- type ReadOnlyAttestations
- type ReadOnlyBalances
- type ReadOnlyBeaconState
- type ReadOnlyBlockRoots
- type ReadOnlyCheckpoint
- type ReadOnlyEth1Data
- type ReadOnlyRandaoMixes
- type ReadOnlyStateRoots
- type ReadOnlyValidator
- type ReadOnlyValidators
- type SpecParametersProvider
- type StateProver
- type WriteOnlyAttestations
- type WriteOnlyBalances
- type WriteOnlyBeaconState
- type WriteOnlyBlockRoots
- type WriteOnlyCheckpoint
- type WriteOnlyEth1Data
- type WriteOnlyRandaoMixes
- type WriteOnlyStateRoots
- type WriteOnlyValidators
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNilValidatorsInState returns when accessing validators in the state while the state has a // nil slice for the validators field. ErrNilValidatorsInState = errors.New("state has nil validator slice") )
var (
StateCount = promauto.NewGauge(prometheus.GaugeOpts{
Name: "beacon_state_count",
Help: "Count the number of active beacon state objects.",
})
)
Functions ¶
This section is empty.
Types ¶
type BeaconState ¶
type BeaconState interface { SpecParametersProvider ReadOnlyBeaconState WriteOnlyBeaconState Copy() BeaconState HashTreeRoot(ctx context.Context) ([32]byte, error) FutureForkStub StateProver }
BeaconState has read and write access to beacon state methods.
type FutureForkStub ¶
type FutureForkStub interface { AppendCurrentParticipationBits(val byte) error AppendPreviousParticipationBits(val byte) error AppendInactivityScore(s uint64) error CurrentEpochParticipation() ([]byte, error) PreviousEpochParticipation() ([]byte, error) UnrealizedCheckpointBalances() (uint64, uint64, uint64, error) InactivityScores() ([]uint64, error) SetInactivityScores(val []uint64) error CurrentSyncCommittee() (*ethpb.SyncCommittee, error) SetCurrentSyncCommittee(val *ethpb.SyncCommittee) error SetPreviousParticipationBits(val []byte) error SetCurrentParticipationBits(val []byte) error ModifyCurrentParticipationBits(func(val []byte) ([]byte, error)) error ModifyPreviousParticipationBits(func(val []byte) ([]byte, error)) error NextSyncCommittee() (*ethpb.SyncCommittee, error) SetNextSyncCommittee(val *ethpb.SyncCommittee) error }
FutureForkStub defines methods that are used for future forks. This is a low cost solution to enable various state casting of interface to work.
type ReadOnlyAttestations ¶
type ReadOnlyAttestations interface { PreviousEpochAttestations() ([]*ethpb.PendingAttestation, error) CurrentEpochAttestations() ([]*ethpb.PendingAttestation, error) }
ReadOnlyAttestations defines a struct which only has read access to attestations methods.
type ReadOnlyBalances ¶
type ReadOnlyBalances interface { Balances() []uint64 BalanceAtIndex(idx types.ValidatorIndex) (uint64, error) BalancesLength() int }
ReadOnlyBalances defines a struct which only has read access to balances methods.
type ReadOnlyBeaconState ¶
type ReadOnlyBeaconState interface { ReadOnlyBlockRoots ReadOnlyStateRoots ReadOnlyRandaoMixes ReadOnlyEth1Data ReadOnlyValidators ReadOnlyBalances ReadOnlyCheckpoint ReadOnlyAttestations InnerStateUnsafe() interface{} CloneInnerState() interface{} GenesisTime() uint64 GenesisValidatorsRoot() []byte Slot() types.Slot Fork() *ethpb.Fork LatestBlockHeader() *ethpb.BeaconBlockHeader HistoricalRoots() [][]byte Slashings() []uint64 FieldReferencesCount() map[string]uint64 MarshalSSZ() ([]byte, error) IsNil() bool Version() int LatestExecutionPayloadHeader() (*enginev1.ExecutionPayloadHeader, error) }
ReadOnlyBeaconState defines a struct which only has read access to beacon state methods.
type ReadOnlyBlockRoots ¶
type ReadOnlyBlockRoots interface { BlockRoots() [][]byte BlockRootAtIndex(idx uint64) ([]byte, error) }
ReadOnlyBlockRoots defines a struct which only has read access to block roots methods.
type ReadOnlyCheckpoint ¶
type ReadOnlyCheckpoint interface { PreviousJustifiedCheckpoint() *ethpb.Checkpoint CurrentJustifiedCheckpoint() *ethpb.Checkpoint MatchCurrentJustifiedCheckpoint(c *ethpb.Checkpoint) bool MatchPreviousJustifiedCheckpoint(c *ethpb.Checkpoint) bool FinalizedCheckpoint() *ethpb.Checkpoint FinalizedCheckpointEpoch() types.Epoch JustificationBits() bitfield.Bitvector4 }
ReadOnlyCheckpoint defines a struct which only has read access to checkpoint methods.
type ReadOnlyEth1Data ¶
type ReadOnlyEth1Data interface { Eth1Data() *ethpb.Eth1Data Eth1DataVotes() []*ethpb.Eth1Data Eth1DepositIndex() uint64 }
ReadOnlyEth1Data defines a struct which only has read access to eth1 data methods.
type ReadOnlyRandaoMixes ¶
type ReadOnlyRandaoMixes interface { RandaoMixes() [][]byte RandaoMixAtIndex(idx uint64) ([]byte, error) RandaoMixesLength() int }
ReadOnlyRandaoMixes defines a struct which only has read access to randao mixes methods.
type ReadOnlyStateRoots ¶
type ReadOnlyStateRoots interface { StateRoots() [][]byte StateRootAtIndex(idx uint64) ([]byte, error) }
ReadOnlyStateRoots defines a struct which only has read access to state roots methods.
type ReadOnlyValidator ¶
type ReadOnlyValidator interface { EffectiveBalance() uint64 ActivationEligibilityEpoch() types.Epoch ActivationEpoch() types.Epoch WithdrawableEpoch() types.Epoch ExitEpoch() types.Epoch PublicKey() [fieldparams.BLSPubkeyLength]byte WithdrawalCredentials() []byte Slashed() bool IsNil() bool }
ReadOnlyValidator defines a struct which only has read access to validator methods.
type ReadOnlyValidators ¶
type ReadOnlyValidators interface { Validators() []*ethpb.Validator ValidatorAtIndex(idx types.ValidatorIndex) (*ethpb.Validator, error) ValidatorAtIndexReadOnly(idx types.ValidatorIndex) (ReadOnlyValidator, error) ValidatorIndexByPubkey(key [fieldparams.BLSPubkeyLength]byte) (types.ValidatorIndex, bool) PubkeyAtIndex(idx types.ValidatorIndex) [fieldparams.BLSPubkeyLength]byte NumValidators() int ReadFromEveryValidator(f func(idx int, val ReadOnlyValidator) error) error }
ReadOnlyValidators defines a struct which only has read access to validators methods.
type SpecParametersProvider ¶
type SpecParametersProvider interface { InactivityPenaltyQuotient() (uint64, error) ProportionalSlashingMultiplier() (uint64, error) }
SpecParametersProvider provides fork-specific configuration parameters as defined in the consensus specification for the beacon chain.
type StateProver ¶
type StateProver interface { FinalizedRootProof(ctx context.Context) ([][]byte, error) CurrentSyncCommitteeProof(ctx context.Context) ([][]byte, error) NextSyncCommitteeProof(ctx context.Context) ([][]byte, error) }
StateProver defines the ability to create Merkle proofs for beacon state fields.
type WriteOnlyAttestations ¶
type WriteOnlyAttestations interface { AppendCurrentEpochAttestations(val *ethpb.PendingAttestation) error AppendPreviousEpochAttestations(val *ethpb.PendingAttestation) error RotateAttestations() error }
WriteOnlyAttestations defines a struct which only has write access to attestations methods.
type WriteOnlyBalances ¶
type WriteOnlyBalances interface { SetBalances(val []uint64) error UpdateBalancesAtIndex(idx types.ValidatorIndex, val uint64) error AppendBalance(bal uint64) error }
WriteOnlyBalances defines a struct which only has write access to balances methods.
type WriteOnlyBeaconState ¶
type WriteOnlyBeaconState interface { WriteOnlyBlockRoots WriteOnlyStateRoots WriteOnlyRandaoMixes WriteOnlyEth1Data WriteOnlyValidators WriteOnlyBalances WriteOnlyCheckpoint WriteOnlyAttestations SetGenesisTime(val uint64) error SetGenesisValidatorsRoot(val []byte) error SetSlot(val types.Slot) error SetFork(val *ethpb.Fork) error SetLatestBlockHeader(val *ethpb.BeaconBlockHeader) error SetHistoricalRoots(val [][]byte) error SetSlashings(val []uint64) error UpdateSlashingsAtIndex(idx, val uint64) error AppendHistoricalRoots(root [32]byte) error SetLatestExecutionPayloadHeader(payload interfaces.ExecutionData) error }
WriteOnlyBeaconState defines a struct which only has write access to beacon state methods.
type WriteOnlyBlockRoots ¶
type WriteOnlyBlockRoots interface { SetBlockRoots(val [][]byte) error UpdateBlockRootAtIndex(idx uint64, blockRoot [32]byte) error }
WriteOnlyBlockRoots defines a struct which only has write access to block roots methods.
type WriteOnlyCheckpoint ¶
type WriteOnlyCheckpoint interface { SetFinalizedCheckpoint(val *ethpb.Checkpoint) error SetPreviousJustifiedCheckpoint(val *ethpb.Checkpoint) error SetCurrentJustifiedCheckpoint(val *ethpb.Checkpoint) error SetJustificationBits(val bitfield.Bitvector4) error }
WriteOnlyCheckpoint defines a struct which only has write access to check point methods.
type WriteOnlyEth1Data ¶
type WriteOnlyEth1Data interface { SetEth1Data(val *ethpb.Eth1Data) error SetEth1DataVotes(val []*ethpb.Eth1Data) error AppendEth1DataVotes(val *ethpb.Eth1Data) error SetEth1DepositIndex(val uint64) error }
WriteOnlyEth1Data defines a struct which only has write access to eth1 data methods.
type WriteOnlyRandaoMixes ¶
type WriteOnlyRandaoMixes interface { SetRandaoMixes(val [][]byte) error UpdateRandaoMixesAtIndex(idx uint64, val []byte) error }
WriteOnlyRandaoMixes defines a struct which only has write access to randao mixes methods.
type WriteOnlyStateRoots ¶
type WriteOnlyStateRoots interface { SetStateRoots(val [][]byte) error UpdateStateRootAtIndex(idx uint64, stateRoot [32]byte) error }
WriteOnlyStateRoots defines a struct which only has write access to state roots methods.
type WriteOnlyValidators ¶
type WriteOnlyValidators interface { SetValidators(val []*ethpb.Validator) error ApplyToEveryValidator(f func(idx int, val *ethpb.Validator) (bool, *ethpb.Validator, error)) error UpdateValidatorAtIndex(idx types.ValidatorIndex, val *ethpb.Validator) error AppendValidator(val *ethpb.Validator) error }
WriteOnlyValidators defines a struct which only has write access to validators methods.
Directories ¶
Path | Synopsis |
---|---|
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.
|
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. |
Package stategen defines functions to regenerate beacon chain states by replaying blocks from a stored state checkpoint, useful for optimization and reducing a beacon node's resource consumption.
|
Package stategen defines functions to regenerate beacon chain states by replaying blocks from a stored state checkpoint, useful for optimization and reducing a beacon node's resource consumption. |
Package v1 defines how the beacon chain state for Ethereum functions in the running beacon node, using an advanced, immutable implementation of the state data structure.
|
Package v1 defines how the beacon chain state for Ethereum functions in the running beacon node, using an advanced, immutable implementation of the state data structure. |