Documentation
¶
Index ¶
- Variables
- type BlobScheduleEntry
- type ChainSpec
- type ChainSpecConfig
- type ChainSpecDomainTypes
- type ChainSpecPreset
- type ChainState
- func (cs *ChainState) CurrentEpoch() phase0.Epoch
- func (cs *ChainState) CurrentSlot() phase0.Slot
- func (cs *ChainState) EpochOfSlot(slot phase0.Slot) phase0.Epoch
- func (cs *ChainState) EpochStartSlot(epoch phase0.Epoch) phase0.Slot
- func (cs *ChainState) EpochToSlot(epoch phase0.Epoch) phase0.Slot
- func (cs *ChainState) EpochToTime(epoch phase0.Epoch) time.Time
- func (cs *ChainState) GetActivationExitChurnLimit(totalActiveBalance uint64) uint64
- func (cs *ChainState) GetBalanceChurnLimit(totalActiveBalance uint64) uint64
- func (cs *ChainState) GetFinalizedCheckpoint() (phase0.Epoch, phase0.Root)
- func (cs *ChainState) GetFinalizedSlot() phase0.Slot
- func (cs *ChainState) GetForkDigest(forkVersion phase0.Version, blobParams *BlobScheduleEntry) phase0.ForkDigest
- func (cs *ChainState) GetForkDigestForEpoch(epoch phase0.Epoch) phase0.ForkDigest
- func (cs *ChainState) GetForkVersionAtEpoch(epoch phase0.Epoch) phase0.Version
- func (cs *ChainState) GetGenesis() *v1.Genesis
- func (cs *ChainState) GetJustifiedCheckpoint() (phase0.Epoch, phase0.Root)
- func (cs *ChainState) GetSpecs() *ChainSpec
- func (cs *ChainState) GetValidatorChurnLimit(validatorCount uint64) uint64
- func (cs *ChainState) SlotToSlotIndex(slot phase0.Slot) phase0.Slot
- func (cs *ChainState) SlotToTime(slot phase0.Slot) time.Time
- func (cs *ChainState) TimeToSlot(timestamp time.Time) phase0.Slot
- type Client
- func (client *Client) ForceUpdateNodeMetadata(ctx context.Context) error
- func (client *Client) GetClientType() ClientType
- func (client *Client) GetContext() context.Context
- func (client *Client) GetEndpointConfig() *ClientConfig
- func (client *Client) GetFinalityCheckpoint() (finalitedEpoch phase0.Epoch, finalizedRoot phase0.Root, ...)
- func (client *Client) GetIndex() uint16
- func (client *Client) GetLastClientError() error
- func (client *Client) GetLastError() error
- func (client *Client) GetLastEventTime() time.Time
- func (client *Client) GetLastHead() (phase0.Slot, phase0.Root)
- func (client *Client) GetName() string
- func (client *Client) GetNodeIdentity() *rpc.NodeIdentity
- func (client *Client) GetNodePeers() []*v1.Peer
- func (client *Client) GetPool() *Pool
- func (client *Client) GetRPCClient() *rpc.BeaconClient
- func (client *Client) GetSpecWarnings() []string
- func (client *Client) GetSpecs() map[string]interface{}
- func (client *Client) GetStatus() ClientStatus
- func (client *Client) GetVersion() string
- func (client *Client) SubscribeBlockEvent(capacity int, blocking bool) *utils.Subscription[*v1.BlockEvent]
- func (client *Client) SubscribeFinalizedEvent(capacity int) *utils.Subscription[*v1.Finality]
- func (client *Client) SubscribeHeadEvent(capacity int, blocking bool) *utils.Subscription[*v1.HeadEvent]
- type ClientConfig
- type ClientStatus
- type ClientType
- type ForkVersion
- type Pool
- func (pool *Pool) AddEndpoint(endpoint *ClientConfig) (*Client, error)
- func (pool *Pool) AwaitReadyEndpoint(ctx context.Context, clientType ClientType) *Client
- func (pool *Pool) GetAllEndpoints() []*Client
- func (pool *Pool) GetChainState() *ChainState
- func (pool *Pool) GetReadyEndpoint(clientType ClientType) *Client
- func (pool *Pool) SubscribeFinalizedEvent(capacity int) *utils.Subscription[*v1.Finality]
- func (pool *Pool) SubscribeWallclockEpochEvent(capacity int) *utils.Subscription[*ethwallclock.Epoch]
- func (pool *Pool) SubscribeWallclockSlotEvent(capacity int) *utils.Subscription[*ethwallclock.Slot]
- type SpecMismatch
Constants ¶
This section is empty.
Variables ¶
View Source
var NullRoot phase0.Root = phase0.Root{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
Functions ¶
This section is empty.
Types ¶
type BlobScheduleEntry ¶ added in v1.18.0
type ChainSpec ¶
type ChainSpec struct {
ChainSpecConfig `yaml:",inline"`
ChainSpecPreset `yaml:",inline"`
ChainSpecDomainTypes `yaml:",inline"`
}
func (*ChainSpec) CheckMismatch ¶
func (chain *ChainSpec) CheckMismatch(chain2 *ChainSpec) ([]SpecMismatch, error)
func (*ChainSpec) ParseAdditive ¶ added in v1.19.2
type ChainSpecConfig ¶ added in v1.19.2
type ChainSpecConfig struct {
PresetBase string `yaml:"PRESET_BASE"`
ConfigName string `yaml:"CONFIG_NAME" check-if:"false"`
// Transition
TerminalTotalDifficulty string `yaml:"TERMINAL_TOTAL_DIFFICULTY" check-severity:"warning"`
TerminalBlockHash []byte `yaml:"TERMINAL_BLOCK_HASH" check-severity:"warning"`
TerminalBlockHashActivationEpoch uint64 `yaml:"TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH" check-severity:"warning"`
// Genesis
MinGenesisActiveValidatorCount uint64 `yaml:"MIN_GENESIS_ACTIVE_VALIDATOR_COUNT"`
MinGenesisTime uint64 `yaml:"MIN_GENESIS_TIME"`
GenesisForkVersion phase0.Version `yaml:"GENESIS_FORK_VERSION"`
GenesisDelay uint64 `yaml:"GENESIS_DELAY"`
// Forking
AltairForkVersion phase0.Version `yaml:"ALTAIR_FORK_VERSION" check-if-fork:"AltairForkEpoch"`
AltairForkEpoch *uint64 `yaml:"ALTAIR_FORK_EPOCH" check-if-fork:"AltairForkEpoch"`
BellatrixForkVersion phase0.Version `yaml:"BELLATRIX_FORK_VERSION" check-if-fork:"BellatrixForkEpoch"`
BellatrixForkEpoch *uint64 `yaml:"BELLATRIX_FORK_EPOCH" check-if-fork:"BellatrixForkEpoch"`
CapellaForkVersion phase0.Version `yaml:"CAPELLA_FORK_VERSION" check-if-fork:"CapellaForkEpoch"`
CapellaForkEpoch *uint64 `yaml:"CAPELLA_FORK_EPOCH" check-if-fork:"CapellaForkEpoch"`
DenebForkVersion phase0.Version `yaml:"DENEB_FORK_VERSION" check-if-fork:"DenebForkEpoch"`
DenebForkEpoch *uint64 `yaml:"DENEB_FORK_EPOCH" check-if-fork:"DenebForkEpoch"`
ElectraForkVersion phase0.Version `yaml:"ELECTRA_FORK_VERSION" check-if-fork:"ElectraForkEpoch"`
ElectraForkEpoch *uint64 `yaml:"ELECTRA_FORK_EPOCH" check-if-fork:"ElectraForkEpoch"`
FuluForkVersion phase0.Version `yaml:"FULU_FORK_VERSION" check-if-fork:"FuluForkEpoch"`
FuluForkEpoch *uint64 `yaml:"FULU_FORK_EPOCH" check-if-fork:"FuluForkEpoch"`
// Time parameters
SecondsPerSlot uint64 `yaml:"SECONDS_PER_SLOT"`
SecondsPerEth1Block uint64 `yaml:"SECONDS_PER_ETH1_BLOCK"`
MinValidatorWithdrawbilityDelay uint64 `yaml:"MIN_VALIDATOR_WITHDRAWABILITY_DELAY"`
ShardCommitteePeriod uint64 `yaml:"SHARD_COMMITTEE_PERIOD"`
Eth1FollowDistance uint64 `yaml:"ETH1_FOLLOW_DISTANCE"`
// Validator cycle
InactivityScoreBias uint64 `yaml:"INACTIVITY_SCORE_BIAS"`
InactivityScoreRecoveryRate uint64 `yaml:"INACTIVITY_SCORE_RECOVERY_RATE"`
EjectionBalance uint64 `yaml:"EJECTION_BALANCE"`
MinPerEpochChurnLimit uint64 `yaml:"MIN_PER_EPOCH_CHURN_LIMIT"`
ChurnLimitQuotient uint64 `yaml:"CHURN_LIMIT_QUOTIENT"`
MaxPerEpochActivationChurnLimit uint64 `yaml:"MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT"`
// fork choice
ProposerScoreBoost uint64 `yaml:"PROPOSER_SCORE_BOOST"`
ReorgHeadWeightThreshold uint64 `yaml:"REORG_HEAD_WEIGHT_THRESHOLD"`
ReorgParentWeightThreshold uint64 `yaml:"REORG_PARENT_WEIGHT_THRESHOLD"`
ReorgMaxEpochsSinceFinalization uint64 `yaml:"REORG_MAX_EPOCHS_SINCE_FINALIZATION"`
// Deposit contract
DepositChainId uint64 `yaml:"DEPOSIT_CHAIN_ID"`
DepositNetworkId uint64 `yaml:"DEPOSIT_NETWORK_ID"`
DepositContractAddress []byte `yaml:"DEPOSIT_CONTRACT_ADDRESS"`
// Networking
MaxPayloadSize uint64 `yaml:"MAX_PAYLOAD_SIZE"`
MaxRequestBlocks uint64 `yaml:"MAX_REQUEST_BLOCKS"`
EpochsPerSubnetSubscription uint64 `yaml:"EPOCHS_PER_SUBNET_SUBSCRIPTION"`
MinEpochsForBlockRequests uint64 `yaml:"MIN_EPOCHS_FOR_BLOCK_REQUESTS"`
AttestationPropoagationSlotRange uint64 `yaml:"ATTESTATION_PROPAGATION_SLOT_RANGE"`
MaximumGossipClockDisparity uint64 `yaml:"MAXIMUM_GOSSIP_CLOCK_DISPARITY"`
MessageDomainInvalidSnappy phase0.DomainType `yaml:"MESSAGE_DOMAIN_INVALID_SNAPPY"`
MessageDomainValidSnappy phase0.DomainType `yaml:"MESSAGE_DOMAIN_VALID_SNAPPY"`
SubnetsPerNode uint64 `yaml:"SUBNETS_PER_NODE"`
AttestationSubnetCount uint64 `yaml:"ATTESTATION_SUBNET_COUNT"`
AttestationSubnetExtraBits uint64 `yaml:"ATTESTATION_SUBNET_EXTRA_BITS"`
AttestationSubnetPrefixBits uint64 `yaml:"ATTESTATION_SUBNET_PREFIX_BITS"`
// Deneb
MaxRequestBlocksDeneb uint64 `yaml:"MAX_REQUEST_BLOCKS_DENEB" check-if-fork:"DenebForkEpoch"`
MinEpochsForBlobSidecarsRequests uint64 `yaml:"MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS" check-if-fork:"DenebForkEpoch"`
BlobSidecarSubnetCount uint64 `yaml:"BLOB_SIDECAR_SUBNET_COUNT" check-if-fork:"DenebForkEpoch"`
MaxBlobsPerBlock uint64 `yaml:"MAX_BLOBS_PER_BLOCK" check-if-fork:"DenebForkEpoch"`
MaxRequestBlobSidecars uint64 `yaml:"MAX_REQUEST_BLOB_SIDECARS" check-if-fork:"DenebForkEpoch"`
// Electra
MinPerEpochChurnLimitElectra uint64 `yaml:"MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA" check-if-fork:"ElectraForkEpoch"`
MaxPerEpochActivationExitChurnLimit uint64 `yaml:"MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT" check-if-fork:"ElectraForkEpoch"`
BlobSidecarSubnetCountElectra uint64 `yaml:"BLOB_SIDECAR_SUBNET_COUNT_ELECTRA" check-if-fork:"ElectraForkEpoch"`
MaxBlobsPerBlockElectra uint64 `yaml:"MAX_BLOBS_PER_BLOCK_ELECTRA" check-if-fork:"ElectraForkEpoch"`
MaxRequestBlobSidecarsElectra uint64 `yaml:"MAX_REQUEST_BLOB_SIDECARS_ELECTRA" check-if-fork:"ElectraForkEpoch"`
// Fulu
MinEpochsForDataColumnSidecars uint64 `yaml:"MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS" check-if-fork:"FuluForkEpoch"`
NumberOfCustodyGroups *uint64 `yaml:"NUMBER_OF_CUSTODY_GROUPS" check-if-fork:"FuluForkEpoch"`
DataColumnSidecarSubnetCount *uint64 `yaml:"DATA_COLUMN_SIDECAR_SUBNET_COUNT" check-if-fork:"FuluForkEpoch"`
MaxRequestDataColumnSidecars uint64 `yaml:"MAX_REQUEST_DATA_COLUMN_SIDECARS" check-if-fork:"FuluForkEpoch"`
SamplesPerSlot uint64 `yaml:"SAMPLES_PER_SLOT" check-if-fork:"FuluForkEpoch"`
CustodyRequirement *uint64 `yaml:"CUSTODY_REQUIREMENT" check-if-fork:"FuluForkEpoch"`
ValidatorCustodyRequirement *uint64 `yaml:"VALIDATOR_CUSTODY_REQUIREMENT" check-if-fork:"FuluForkEpoch"`
BalancePerAdditionalCustodyGroup *uint64 `yaml:"BALANCE_PER_ADDITIONAL_CUSTODY_GROUP" check-if-fork:"FuluForkEpoch"`
BlobSchedule []BlobScheduleEntry `yaml:"BLOB_SCHEDULE" check-if-fork:"FuluForkEpoch"`
}
https://github.com/ethereum/consensus-specs/blob/dev/configs/mainnet.yaml
type ChainSpecDomainTypes ¶ added in v1.19.2
type ChainSpecDomainTypes struct {
DomainBeaconProposer phase0.DomainType `yaml:"DOMAIN_BEACON_PROPOSER"`
DomainBeaconAttester phase0.DomainType `yaml:"DOMAIN_BEACON_ATTESTER"`
DomainRandao phase0.DomainType `yaml:"DOMAIN_RANDAO"`
DomainDeposit phase0.DomainType `yaml:"DOMAIN_DEPOSIT"`
DomainVoluntaryExit phase0.DomainType `yaml:"DOMAIN_VOLUNTARY_EXIT"`
DomainSelectionProof phase0.DomainType `yaml:"DOMAIN_SELECTION_PROOF"`
DomainAggregateAndProof phase0.DomainType `yaml:"DOMAIN_AGGREGATE_AND_PROOF"`
DomainSyncCommittee phase0.DomainType `yaml:"DOMAIN_SYNC_COMMITTEE"`
DomainSyncCommitteeSelectionProof phase0.DomainType `yaml:"DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF"`
DomainContributionAndProof phase0.DomainType `yaml:"DOMAIN_CONTRIBUTION_AND_PROOF"`
DomainBlsToExecutionChange phase0.DomainType `yaml:"DOMAIN_BLS_TO_EXECUTION_CHANGE"`
}
type ChainSpecPreset ¶ added in v1.19.2
type ChainSpecPreset struct {
// Presets
MaxCommitteesPerSlot uint64 `yaml:"MAX_COMMITTEES_PER_SLOT"`
TargetCommitteeSize uint64 `yaml:"TARGET_COMMITTEE_SIZE"`
MaxValidatorsPerCommittee uint64 `yaml:"MAX_VALIDATORS_PER_COMMITTEE"`
ShuffleRoundCount uint64 `yaml:"SHUFFLE_ROUND_COUNT"`
HysteresisQuotient uint64 `yaml:"HYSTERESIS_QUOTIENT"`
HysteresisDownwardMultiplier uint64 `yaml:"HYSTERESIS_DOWNWARD_MULTIPLIER"`
HysteresisUpwardMultiplier uint64 `yaml:"HYSTERESIS_UPWARD_MULTIPLIER"`
MinDepositAmount uint64 `yaml:"MIN_DEPOSIT_AMOUNT"`
MaxEffectiveBalance uint64 `yaml:"MAX_EFFECTIVE_BALANCE"`
EffectiveBalanceIncrement uint64 `yaml:"EFFECTIVE_BALANCE_INCREMENT"`
MinAttestationInclusionDelay uint64 `yaml:"MIN_ATTESTATION_INCLUSION_DELAY"`
SlotsPerEpoch uint64 `yaml:"SLOTS_PER_EPOCH"`
MinSeedLookahead uint64 `yaml:"MIN_SEED_LOOKAHEAD"`
MaxSeedLookahead uint64 `yaml:"MAX_SEED_LOOKAHEAD"`
EpochsPerEth1VotingPeriod uint64 `yaml:"EPOCHS_PER_ETH1_VOTING_PERIOD"`
SlotsPerHistoricalRoot uint64 `yaml:"SLOTS_PER_HISTORICAL_ROOT"`
MinEpochsToInactivityPenalty uint64 `yaml:"MIN_EPOCHS_TO_INACTIVITY_PENALTY"`
EpochsPerHistoricalVector uint64 `yaml:"EPOCHS_PER_HISTORICAL_VECTOR"`
EpochsPerSlashingVector uint64 `yaml:"EPOCHS_PER_SLASHINGS_VECTOR"`
HistoricalRootsLimit uint64 `yaml:"HISTORICAL_ROOTS_LIMIT"`
ValidatorRegistryLimit uint64 `yaml:"VALIDATOR_REGISTRY_LIMIT"`
BaseRewardFactor uint64 `yaml:"BASE_REWARD_FACTOR"`
WhitelistRewardQuotient uint64 `yaml:"WHISTLEBLOWER_REWARD_QUOTIENT"`
ProposerRewardQuotient uint64 `yaml:"PROPOSER_REWARD_QUOTIENT"`
InactivityPenaltyQuotient uint64 `yaml:"INACTIVITY_PENALTY_QUOTIENT"`
MinSlashingPenaltyQuotient uint64 `yaml:"MIN_SLASHING_PENALTY_QUOTIENT"`
ProportionalSlashingMultiplier uint64 `yaml:"PROPORTIONAL_SLASHING_MULTIPLIER"`
MaxProposerSlashings uint64 `yaml:"MAX_PROPOSER_SLASHINGS"`
MaxAttesterSlashings uint64 `yaml:"MAX_ATTESTER_SLASHINGS"`
MaxAttestations uint64 `yaml:"MAX_ATTESTATIONS"`
MaxDeposits uint64 `yaml:"MAX_DEPOSITS"`
MaxVoluntaryExits uint64 `yaml:"MAX_VOLUNTARY_EXITS"`
// Altair
InactivityPenaltyQuotientAltair uint64 `yaml:"INACTIVITY_PENALTY_QUOTIENT_ALTAIR" check-if-fork:"AltairForkEpoch"`
MinSlashingPenaltyQuotientAltair uint64 `yaml:"MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR" check-if-fork:"AltairForkEpoch"`
ProportionalSlashingMultiplierAltair uint64 `yaml:"PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR" check-if-fork:"AltairForkEpoch"`
SyncCommitteeSize uint64 `yaml:"SYNC_COMMITTEE_SIZE" check-if-fork:"AltairForkEpoch"`
EpochsPerSyncCommitteePeriod uint64 `yaml:"EPOCHS_PER_SYNC_COMMITTEE_PERIOD" check-if-fork:"AltairForkEpoch"`
MinSyncCommitteeParticipants uint64 `yaml:"MIN_SYNC_COMMITTEE_PARTICIPANTS" check-if-fork:"AltairForkEpoch"`
UpdateTimeout uint64 `yaml:"UPDATE_TIMEOUT" check-if-fork:"AltairForkEpoch"`
// Bellatrix
InactivityPenaltyQuotientBellatrix uint64 `yaml:"INACTIVITY_PENALTY_QUOTIENT_BELLATRIX" check-if-fork:"BellatrixForkEpoch"`
MinSlashingPenaltyQuotientBellatrix uint64 `yaml:"MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX" check-if-fork:"BellatrixForkEpoch"`
ProportionalSlashingMultiplierBellatrix uint64 `yaml:"PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX" check-if-fork:"BellatrixForkEpoch"`
MaxBytesPerTransaction uint64 `yaml:"MAX_BYTES_PER_TRANSACTION" check-if-fork:"BellatrixForkEpoch"`
MaxTransactionsPerPayload uint64 `yaml:"MAX_TRANSACTIONS_PER_PAYLOAD" check-if-fork:"BellatrixForkEpoch"`
BytesPerLogsBloom uint64 `yaml:"BYTES_PER_LOGS_BLOOM" check-if-fork:"BellatrixForkEpoch"`
MaxExtraDataBytes uint64 `yaml:"MAX_EXTRA_DATA_BYTES" check-if-fork:"BellatrixForkEpoch"`
// Capella
MaxBlsToExecutionChanges uint64 `yaml:"MAX_BLS_TO_EXECUTION_CHANGES" check-if-fork:"CapellaForkEpoch"`
MaxWithdrawalsPerPayload uint64 `yaml:"MAX_WITHDRAWALS_PER_PAYLOAD" check-if-fork:"CapellaForkEpoch"`
MaxValidatorsPerWithdrawalsSweep uint64 `yaml:"MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP" check-if-fork:"CapellaForkEpoch"`
// Deneb
MaxBlobCommitmentsPerBlock uint64 `yaml:"MAX_BLOB_COMMITMENTS_PER_BLOCK" check-if-fork:"DenebForkEpoch"`
KzgCommitmentInclusionProofDepth uint64 `yaml:"KZG_COMMITMENT_INCLUSION_PROOF_DEPTH" check-if-fork:"DenebForkEpoch"`
FieldElementsPerBlob uint64 `yaml:"FIELD_ELEMENTS_PER_BLOB" check-if-fork:"DenebForkEpoch"`
// Electra
MinActivationBalance uint64 `yaml:"MIN_ACTIVATION_BALANCE" check-if-fork:"ElectraForkEpoch"`
MaxEffectiveBalanceElectra uint64 `yaml:"MAX_EFFECTIVE_BALANCE_ELECTRA" check-if-fork:"ElectraForkEpoch"`
MinSlashingPenaltyQuotientElectra uint64 `yaml:"MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA" check-if-fork:"ElectraForkEpoch"`
WhistleblowerRewardQuotientElectra uint64 `yaml:"WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA" check-if-fork:"ElectraForkEpoch"`
PendingDepositsLimit uint64 `yaml:"PENDING_DEPOSITS_LIMIT" check-if-fork:"ElectraForkEpoch"`
PendingPartialWithdrawalsLimit uint64 `yaml:"PENDING_PARTIAL_WITHDRAWALS_LIMIT" check-if-fork:"ElectraForkEpoch"`
PendingConsolidationsLimit uint64 `yaml:"PENDING_CONSOLIDATIONS_LIMIT" check-if-fork:"ElectraForkEpoch"`
MaxAttesterSlashingsElectra uint64 `yaml:"MAX_ATTESTER_SLASHINGS_ELECTRA" check-if-fork:"ElectraForkEpoch"`
MaxAttestationsElectra uint64 `yaml:"MAX_ATTESTATIONS_ELECTRA" check-if-fork:"ElectraForkEpoch"`
MaxDepositRequestsPerPayload uint64 `yaml:"MAX_DEPOSIT_REQUESTS_PER_PAYLOAD" check-if-fork:"ElectraForkEpoch"`
MaxWithdrawalRequestsPerPayload uint64 `yaml:"MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD" check-if-fork:"ElectraForkEpoch"`
MaxConsolidationRequestsPerPayload uint64 `yaml:"MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD" check-if-fork:"ElectraForkEpoch"`
MaxPendingPartialsPerWithdrawalsSweep uint64 `yaml:"MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP" check-if-fork:"ElectraForkEpoch"`
MaxPendingDepositsPerEpoch uint64 `yaml:"MAX_PENDING_DEPOSITS_PER_EPOCH" check-if-fork:"ElectraForkEpoch"`
// Fulu
KzgCommitmentsInclusionProofDepth uint64 `yaml:"KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH" check-if-fork:"FuluForkEpoch"`
FieldElementsPerCell uint64 `yaml:"FIELD_ELEMENTS_PER_CELL" check-if-fork:"FuluForkEpoch"`
FieldElementsPerExtBlob uint64 `yaml:"FIELD_ELEMENTS_PER_EXT_BLOB" check-if-fork:"FuluForkEpoch"`
CellsPerExtBlob uint64 `yaml:"CELLS_PER_EXT_BLOB" check-if-fork:"FuluForkEpoch"`
NumberOfColumns *uint64 `yaml:"NUMBER_OF_COLUMNS" check-if-fork:"FuluForkEpoch"`
}
type ChainState ¶
type ChainState struct {
// contains filtered or unexported fields
}
func (*ChainState) CurrentEpoch ¶
func (cs *ChainState) CurrentEpoch() phase0.Epoch
func (*ChainState) CurrentSlot ¶
func (cs *ChainState) CurrentSlot() phase0.Slot
func (*ChainState) EpochOfSlot ¶
func (cs *ChainState) EpochOfSlot(slot phase0.Slot) phase0.Epoch
func (*ChainState) EpochStartSlot ¶
func (cs *ChainState) EpochStartSlot(epoch phase0.Epoch) phase0.Slot
func (*ChainState) EpochToSlot ¶
func (cs *ChainState) EpochToSlot(epoch phase0.Epoch) phase0.Slot
func (*ChainState) EpochToTime ¶
func (cs *ChainState) EpochToTime(epoch phase0.Epoch) time.Time
func (*ChainState) GetActivationExitChurnLimit ¶ added in v1.15.0
func (cs *ChainState) GetActivationExitChurnLimit(totalActiveBalance uint64) uint64
func (*ChainState) GetBalanceChurnLimit ¶ added in v1.15.0
func (cs *ChainState) GetBalanceChurnLimit(totalActiveBalance uint64) uint64
func (*ChainState) GetFinalizedCheckpoint ¶
func (cs *ChainState) GetFinalizedCheckpoint() (phase0.Epoch, phase0.Root)
func (*ChainState) GetFinalizedSlot ¶
func (cs *ChainState) GetFinalizedSlot() phase0.Slot
func (*ChainState) GetForkDigest ¶ added in v1.18.0
func (cs *ChainState) GetForkDigest(forkVersion phase0.Version, blobParams *BlobScheduleEntry) phase0.ForkDigest
func (*ChainState) GetForkDigestForEpoch ¶ added in v1.18.0
func (cs *ChainState) GetForkDigestForEpoch(epoch phase0.Epoch) phase0.ForkDigest
func (*ChainState) GetForkVersionAtEpoch ¶ added in v1.18.0
func (cs *ChainState) GetForkVersionAtEpoch(epoch phase0.Epoch) phase0.Version
func (*ChainState) GetGenesis ¶
func (cs *ChainState) GetGenesis() *v1.Genesis
func (*ChainState) GetJustifiedCheckpoint ¶
func (cs *ChainState) GetJustifiedCheckpoint() (phase0.Epoch, phase0.Root)
func (*ChainState) GetSpecs ¶
func (cs *ChainState) GetSpecs() *ChainSpec
func (*ChainState) GetValidatorChurnLimit ¶
func (cs *ChainState) GetValidatorChurnLimit(validatorCount uint64) uint64
func (*ChainState) SlotToSlotIndex ¶
func (cs *ChainState) SlotToSlotIndex(slot phase0.Slot) phase0.Slot
func (*ChainState) SlotToTime ¶
func (cs *ChainState) SlotToTime(slot phase0.Slot) time.Time
func (*ChainState) TimeToSlot ¶
func (cs *ChainState) TimeToSlot(timestamp time.Time) phase0.Slot
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) ForceUpdateNodeMetadata ¶ added in v1.17.0
ForceUpdateNodeMetadata forces an immediate update of node metadata including ENRs, bypassing the normal epoch-based update schedule
func (*Client) GetClientType ¶
func (client *Client) GetClientType() ClientType
func (*Client) GetContext ¶
func (*Client) GetEndpointConfig ¶
func (client *Client) GetEndpointConfig() *ClientConfig
func (*Client) GetFinalityCheckpoint ¶
func (*Client) GetLastClientError ¶
func (*Client) GetLastError ¶
func (*Client) GetLastEventTime ¶
func (*Client) GetNodeIdentity ¶ added in v1.11.2
func (client *Client) GetNodeIdentity() *rpc.NodeIdentity
func (*Client) GetNodePeers ¶
func (*Client) GetRPCClient ¶
func (client *Client) GetRPCClient() *rpc.BeaconClient
func (*Client) GetSpecWarnings ¶ added in v1.19.0
func (*Client) GetStatus ¶
func (client *Client) GetStatus() ClientStatus
func (*Client) GetVersion ¶
func (*Client) SubscribeBlockEvent ¶
func (client *Client) SubscribeBlockEvent(capacity int, blocking bool) *utils.Subscription[*v1.BlockEvent]
func (*Client) SubscribeFinalizedEvent ¶
func (*Client) SubscribeHeadEvent ¶
type ClientConfig ¶
type ClientStatus ¶
type ClientStatus uint8
var ( ClientStatusOnline ClientStatus = 1 ClientStatusOffline ClientStatus = 2 ClientStatusSynchronizing ClientStatus = 3 ClientStatusOptimistic ClientStatus = 4 )
func (ClientStatus) String ¶
func (s ClientStatus) String() string
type ClientType ¶
type ClientType int8
var ( AnyClient ClientType UnknownClient ClientType = -1 LighthouseClient ClientType = 1 LodestarClient ClientType = 2 NimbusClient ClientType = 3 PrysmClient ClientType = 4 TekuClient ClientType = 5 GrandineClient ClientType = 6 CaplinClient ClientType = 7 )
func ParseClientType ¶
func ParseClientType(name string) ClientType
func (ClientType) String ¶
func (clientType ClientType) String() string
type ForkVersion ¶
type Pool ¶
type Pool struct {
// contains filtered or unexported fields
}
func (*Pool) AddEndpoint ¶
func (pool *Pool) AddEndpoint(endpoint *ClientConfig) (*Client, error)
func (*Pool) AwaitReadyEndpoint ¶
func (pool *Pool) AwaitReadyEndpoint(ctx context.Context, clientType ClientType) *Client
func (*Pool) GetAllEndpoints ¶
func (*Pool) GetChainState ¶
func (pool *Pool) GetChainState() *ChainState
func (*Pool) GetReadyEndpoint ¶
func (pool *Pool) GetReadyEndpoint(clientType ClientType) *Client
func (*Pool) SubscribeFinalizedEvent ¶
func (*Pool) SubscribeWallclockEpochEvent ¶
func (pool *Pool) SubscribeWallclockEpochEvent(capacity int) *utils.Subscription[*ethwallclock.Epoch]
func (*Pool) SubscribeWallclockSlotEvent ¶
func (pool *Pool) SubscribeWallclockSlotEvent(capacity int) *utils.Subscription[*ethwallclock.Slot]
type SpecMismatch ¶ added in v1.19.3
Source Files
¶
Click to show internal directories.
Click to hide internal directories.