Documentation ¶
Index ¶
- Constants
- Variables
- func ComputeDomain(domainType types.DomainType, forkVersionHex string, ...) (domain types.Domain, err error)
- func Max[T constraints.Ordered](args ...T) T
- func NewBeaconClient(endpoint string, config Config) (*beaconClient, error)
- type AllValidatorsResponse
- type AtomicState
- type BeaconClient
- type BeaconMetrics
- type Config
- type Datastore
- type GenesisResponse
- type GetValidatorRelayResponse
- type HeadEvent
- type MultiBeaconClient
- func (b *MultiBeaconClient) AttachMetrics(m *metrics.Metrics)
- func (b *MultiBeaconClient) Endpoint() string
- func (b *MultiBeaconClient) Genesis() (genesisInfo structs.GenesisInfo, err error)
- func (b *MultiBeaconClient) GetProposerDuties(epoch structs.Epoch) (*RegisteredProposersResponse, error)
- func (b *MultiBeaconClient) KnownValidators(headSlot structs.Slot) (AllValidatorsResponse, error)
- func (b *MultiBeaconClient) PublishBlock(block *types.SignedBeaconBlock) (err error)
- func (b *MultiBeaconClient) SubscribeToHeadEvents(ctx context.Context, slotC chan HeadEvent)
- func (b *MultiBeaconClient) SyncStatus() (*SyncStatusPayloadData, error)
- type Network
- type RegisteredProposersResponse
- type RegisteredProposersResponseData
- type Service
- type SyncStatusPayload
- type SyncStatusPayloadData
- type UserAgent
- type ValidatorCache
- type ValidatorResponseEntry
- type ValidatorResponseValidatorData
Constants ¶
View Source
const ( GenesisForkVersionMainnet = "0x00000000" GenesisForkVersionKiln = "0x70000069" // https://github.com/eth-clients/merge-testnets/blob/main/kiln/config.yaml#L10 GenesisForkVersionRopsten = "0x80000069" GenesisForkVersionSepolia = "0x90000069" GenesisForkVersionGoerli = "0x00001020" // https://github.com/eth-clients/merge-testnets/blob/main/goerli-shadow-fork-5/config.yaml#L11 GenesisValidatorsRootMainnet = "0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95" GenesisValidatorsRootKiln = "0x99b09fcd43e5905236c370f184056bec6e6638cfc31a323b304fc4aa789cb4ad" GenesisValidatorsRootRopsten = "0x44f1e56283ca88b35c789f7f449e52339bc1fefe3a45913a43a6d16edcd33cf1" GenesisValidatorsRootSepolia = "0xd8ea171f3c94aea21ebc42a1ed61052acf3f9209c00e4efbaaddac09ed9b8078" GenesisValidatorsRootGoerli = "0x043db0d9a83813551ee2f33450d23797757d430911a9320530ad8a0eabc43efb" BellatrixForkVersionMainnet = "0x02000000" BellatrixForkVersionKiln = "0x70000071" BellatrixForkVersionRopsten = "0x80000071" BellatrixForkVersionSepolia = "0x90000071" BellatrixForkVersionGoerli = "0x02001020" )
View Source
const (
Version = "0.3.6"
)
Variables ¶
View Source
var ( DurationPerSlot = time.Second * 12 DurationPerEpoch = DurationPerSlot * time.Duration(structs.SlotsPerEpoch) ErrHTTPErrorResponse = errors.New("got an HTTP error response") )
View Source
var (
ErrBeaconNodeSyncing = errors.New("beacon node is syncing")
)
Functions ¶
func ComputeDomain ¶
func ComputeDomain(domainType types.DomainType, forkVersionHex string, genesisValidatorsRootHex string) (domain types.Domain, err error)
ComputeDomain computes the signing domain
func Max ¶ added in v0.1.5
func Max[T constraints.Ordered](args ...T) T
func NewBeaconClient ¶
Types ¶
type AllValidatorsResponse ¶
type AllValidatorsResponse struct {
Data []ValidatorResponseEntry
}
AllValidatorsResponse is the response for querying active validators
type AtomicState ¶ added in v0.3.0
type AtomicState struct {
// contains filtered or unexported fields
}
func (*AtomicState) Beacon ¶ added in v0.3.0
func (as *AtomicState) Beacon() *structs.BeaconState
type BeaconClient ¶
type BeaconClient interface { SubscribeToHeadEvents(ctx context.Context, slotC chan HeadEvent) GetProposerDuties(structs.Epoch) (*RegisteredProposersResponse, error) SyncStatus() (*SyncStatusPayloadData, error) KnownValidators(structs.Slot) (AllValidatorsResponse, error) Genesis() (structs.GenesisInfo, error) PublishBlock(block *types.SignedBeaconBlock) error Endpoint() string AttachMetrics(m *metrics.Metrics) }
func NewMultiBeaconClient ¶ added in v0.1.2
func NewMultiBeaconClient(l log.Logger, clients []BeaconClient) BeaconClient
type BeaconMetrics ¶ added in v0.3.9
type BeaconMetrics struct {
Timing *prometheus.HistogramVec
}
type Config ¶
type Config struct { Log log.Logger BuilderURLs []string Network string RelayRequestTimeout time.Duration BuilderCheck bool BeaconEndpoints []string PubKey types.PublicKey SecretKey *bls.SecretKey Datadir string TTL time.Duration RelayQueueProcessingSize uint64 RelayHeaderMemorySlotLag uint64 RelayHeaderMemorySlotTimeLag time.Duration RelayHeaderMemoryPurgeInterval time.Duration GenesisForkVersion string GenesisValidatorsRoot string BellatrixForkVersion string // contains filtered or unexported fields }
Config provides all available options for the default BeaconClient and Relay
type GenesisResponse ¶ added in v0.2.7
type GenesisResponse struct {
Data structs.GenesisInfo
}
type GetValidatorRelayResponse ¶
type GetValidatorRelayResponse []struct { Slot uint64 `json:"slot,string"` Entry struct { Message struct { FeeRecipient string `json:"fee_recipient"` GasLimit uint64 `json:"gas_limit,string"` Timestamp uint64 `json:"timestamp,string"` PubKey string `json:"pubkey"` } `json:"message"` Signature string `json:"signature"` } `json:"entry"` }
type HeadEvent ¶
type HeadEvent struct { Slot uint64 `json:"slot,string"` Block string `json:"block"` State string `json:"state"` }
HeadEvent is emitted when subscribing to head events
type MultiBeaconClient ¶ added in v0.1.2
type MultiBeaconClient struct { Log log.Logger Clients []BeaconClient // contains filtered or unexported fields }
func (*MultiBeaconClient) AttachMetrics ¶ added in v0.3.9
func (b *MultiBeaconClient) AttachMetrics(m *metrics.Metrics)
func (*MultiBeaconClient) Endpoint ¶ added in v0.1.2
func (b *MultiBeaconClient) Endpoint() string
func (*MultiBeaconClient) Genesis ¶ added in v0.2.7
func (b *MultiBeaconClient) Genesis() (genesisInfo structs.GenesisInfo, err error)
func (*MultiBeaconClient) GetProposerDuties ¶ added in v0.1.2
func (b *MultiBeaconClient) GetProposerDuties(epoch structs.Epoch) (*RegisteredProposersResponse, error)
func (*MultiBeaconClient) KnownValidators ¶ added in v0.1.2
func (b *MultiBeaconClient) KnownValidators(headSlot structs.Slot) (AllValidatorsResponse, error)
func (*MultiBeaconClient) PublishBlock ¶ added in v0.3.9
func (b *MultiBeaconClient) PublishBlock(block *types.SignedBeaconBlock) (err error)
func (*MultiBeaconClient) SubscribeToHeadEvents ¶ added in v0.1.2
func (b *MultiBeaconClient) SubscribeToHeadEvents(ctx context.Context, slotC chan HeadEvent)
func (*MultiBeaconClient) SyncStatus ¶ added in v0.1.2
func (b *MultiBeaconClient) SyncStatus() (*SyncStatusPayloadData, error)
type RegisteredProposersResponse ¶
type RegisteredProposersResponse struct {
Data []RegisteredProposersResponseData
}
RegisteredProposersResponse is the response for querying proposer duties
type Service ¶ added in v0.3.0
type Service struct { Log log.Logger Config Config NewBeaconClient func() (BeaconClient, error) // contains filtered or unexported fields }
func NewService ¶ added in v0.3.0
func NewService(l log.Logger, c Config, as *AtomicState) *Service
func (*Service) RunBeacon ¶ added in v0.3.0
func (s *Service) RunBeacon(ctx context.Context, client BeaconClient, d Datastore, vCache ValidatorCache) error
type SyncStatusPayload ¶
type SyncStatusPayload struct {
Data SyncStatusPayloadData
}
SyncStatusPayload is the response payload for /eth/v1/node/syncing
type SyncStatusPayloadData ¶
type ValidatorCache ¶ added in v0.3.19
type ValidatorCache interface {
Get(types.PublicKey) (structs.ValidatorCacheEntry, bool)
}
type ValidatorResponseEntry ¶
type ValidatorResponseEntry struct { Index uint64 `json:"index,string"` // Index of validator in validator registry. Balance string `json:"balance"` // Current validator balance in gwei. Status string `json:"status"` Validator ValidatorResponseValidatorData `json:"validator"` }
type ValidatorResponseValidatorData ¶
type ValidatorResponseValidatorData struct {
Pubkey string `json:"pubkey"`
}
Directories ¶
Path | Synopsis |
---|---|
mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.