structs

package
v0.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 15, 2023 License: AGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SlotsPerEpoch        Slot = 32
	DurationPerSlot           = time.Second * 12
	DurationPerEpoch          = DurationPerSlot * time.Duration(SlotsPerEpoch)
	NumberOfSlotsInState      = 2
)

Variables

View Source
var ErrUnknownValue = errors.New("value is unknown")

Functions

This section is empty.

Types

type BeaconState

type BeaconState struct {
	DutiesState
	ValidatorsState
	GenesisInfo
}

func (*BeaconState) HeadSlot

func (s *BeaconState) HeadSlot() Slot

func (*BeaconState) IsKnownValidator

func (s *BeaconState) IsKnownValidator(pk types.PubkeyHex) (bool, error)

func (*BeaconState) KnownValidatorByIndex

func (s *BeaconState) KnownValidatorByIndex(index uint64) (types.PubkeyHex, error)

func (*BeaconState) KnownValidators

func (s *BeaconState) KnownValidators() map[types.PubkeyHex]struct{}

func (*BeaconState) ValidatorsMap

type BidTraceExtended

type BidTraceExtended struct {
	types.BidTrace
	BlockNumber uint64 `json:"block_number,string"`
	NumTx       uint64 `json:"num_tx,string"`
}

type BidTraceWithTimestamp

type BidTraceWithTimestamp struct {
	BidTraceExtended
	Timestamp   uint64 `json:"timestamp,string"`
	TimestampMs uint64 `json:"timestamp_ms,string"`
}

type BlockAndTraceExtended added in v0.5.0

type BlockAndTraceExtended interface {
	BidValue() types.U256Str
	Slot() uint64
	Proposer() types.PublicKey
	BuilderPubkey() (pub types.PublicKey)

	ExecutionPayload() ExecutionPayload
	ExecutionHeaderHash() (types.Hash, error)
	ToDeliveredTrace(slot uint64) (DeliveredTrace, error)
}

type BuilderBidExtended added in v0.5.0

type BuilderBidExtended interface {
	BuilderBid() BuilderBid
	Proposer() types.PublicKey
	Slot() uint64
}

type BuilderGetValidatorsResponseEntrySlice

type BuilderGetValidatorsResponseEntrySlice []types.BuilderGetValidatorsResponseEntry

func (BuilderGetValidatorsResponseEntrySlice) Loggable

type CompleteBlockstruct

type CompleteBlockstruct struct {
	Header  HeaderAndTrace
	Payload BlockAndTraceExtended
}

/ That's to be improved in future

type DeliveredTrace

type DeliveredTrace struct {
	Trace       BidTraceWithTimestamp
	BlockNumber uint64
}

type DutiesState

type DutiesState struct {
	CurrentSlot            Slot
	ProposerDutiesResponse BuilderGetValidatorsResponseEntrySlice
}

type Epoch

type Epoch uint64

func (Epoch) Loggable

func (e Epoch) Loggable() map[string]any

type ExecutionPayload

type ExecutionPayload interface {
	ParentHash() types.Hash
	FeeRecipient() types.Address
	StateRoot() types.Root
	ReceiptsRoot() types.Root
	LogsBloom() types.Bloom
	Random() types.Hash
	BlockNumber() uint64
	GasLimit() uint64
	GasUsed() uint64
	Timestamp() uint64
	ExtraData() types.ExtraData
	BaseFeePerGas() types.U256Str
	BlockHash() types.Hash
	Transactions() []hexutil.Bytes
}

type ExecutionPayloadHeader

type ExecutionPayloadHeader interface {
	GetParentHash() types.Hash
	GetBlockHash() types.Hash
	GetBlockNumber() uint64
}

type ForkState

type ForkState struct {
	AltairEpoch    Epoch
	BellatrixEpoch Epoch
	CapellaEpoch   Epoch
}

func (ForkState) IsAltair

func (fs ForkState) IsAltair(slot Slot) bool

func (ForkState) IsBellatrix

func (fs ForkState) IsBellatrix(slot Slot) bool

func (ForkState) IsCapella

func (fs ForkState) IsCapella(slot Slot) bool

func (ForkState) Version

func (fs ForkState) Version(slot Slot) ForkVersion

type ForkVersion

type ForkVersion uint8
const (
	ForkUnknown ForkVersion = iota
	ForkAltair
	ForkBellatrix
	ForkCapella
)

func (ForkVersion) String

func (v ForkVersion) String() string

type GenesisInfo

type GenesisInfo struct {
	GenesisTime           uint64 `json:"genesis_time,string"`
	GenesisValidatorsRoot string `json:"genesis_validators_root"`
	GenesisForkVersion    string `json:"genesis_fork_version"`
}

type GetHeaderResponse

type GetHeaderResponse interface {
	Version() types.VersionString
	Data() SignedBuilderBid
}

type GetPayloadResponse

type GetPayloadResponse interface {
	Data() ExecutionPayload
}

type HashWithdrawals

type HashWithdrawals struct {
	Withdrawals Withdrawals `ssz-max:"16"`
}

Withdrawal provides information about a withdrawal.

func (*HashWithdrawals) GetTree

func (w *HashWithdrawals) GetTree() (*ssz.Node, error)

GetTree ssz hashes the Withdrawals object

func (*HashWithdrawals) HashTreeRoot

func (w *HashWithdrawals) HashTreeRoot() ([32]byte, error)

HashTreeRoot ssz hashes the Withdrawals object

func (*HashWithdrawals) HashTreeRootWith

func (w *HashWithdrawals) HashTreeRootWith(hh ssz.HashWalker) (err error)

HashTreeRootWith ssz hashes the Withdrawals object with a hasher

func (*HashWithdrawals) SizeSSZ

func (w *HashWithdrawals) SizeSSZ() (size int)

SizeSSZ returns the ssz encoded size in bytes for the Withdrawals object

type HeaderAndTrace

type HeaderAndTrace struct {
	Header ExecutionPayloadHeader
	Trace  BidTraceWithTimestamp
}

type HeaderData

type HeaderData struct {
	HeaderAndTrace
	Slot      Slot
	Marshaled []byte `json:"-"`
}

/ extra

func (*HeaderData) UnmarshalJSON

func (hd *HeaderData) UnmarshalJSON(b []byte) error

type HeaderRequest

type HeaderRequest map[string]string

func (HeaderRequest) ParentHash

func (hr HeaderRequest) ParentHash() (types.Hash, error)

func (HeaderRequest) Pubkey

func (hr HeaderRequest) Pubkey() (PubKey, error)

func (HeaderRequest) Slot

func (hr HeaderRequest) Slot() (Slot, error)

type HeaderTraceQuery

type HeaderTraceQuery struct {
	Slot      Slot
	BlockHash types.Hash
	BlockNum  uint64
	Limit     uint64
}

HeaderTraceQuery structure used to query header structure

func (HeaderTraceQuery) HasBlockHash

func (q HeaderTraceQuery) HasBlockHash() bool

func (HeaderTraceQuery) HasBlockNum

func (q HeaderTraceQuery) HasBlockNum() bool

func (HeaderTraceQuery) HasLimit

func (q HeaderTraceQuery) HasLimit() bool

func (HeaderTraceQuery) HasSlot

func (q HeaderTraceQuery) HasSlot() bool

type MetricGroup

type MetricGroup struct {
	// contains filtered or unexported fields
}

func NewMetricGroup

func NewMetricGroup(num int) *MetricGroup

func (*MetricGroup) Append

func (mg *MetricGroup) Append(dur time.Duration, labels ...string)

func (*MetricGroup) AppendSince

func (mg *MetricGroup) AppendSince(t time.Time, labels ...string)

func (*MetricGroup) Observe

func (mg *MetricGroup) Observe(t PrometheusObserver)

func (*MetricGroup) ObserveWithError

func (mg *MetricGroup) ObserveWithError(t PrometheusObserver, err error)

type MultiSlotPayloadCache added in v0.5.0

type MultiSlotPayloadCache [NumberOfSlotsInState]PayloadCache

func NewMultiSlotPayloadCache added in v0.5.0

func NewMultiSlotPayloadCache(cacheSize int) (c MultiSlotPayloadCache, err error)

func (MultiSlotPayloadCache) Add added in v0.5.0

func (c MultiSlotPayloadCache) Add(key PayloadKey, bbt BlockAndTraceExtended) (evicted bool)

func (MultiSlotPayloadCache) ContainsOrAdd added in v0.5.0

func (c MultiSlotPayloadCache) ContainsOrAdd(key PayloadKey, bbt BlockAndTraceExtended) (ok, evicted bool)

func (MultiSlotPayloadCache) Get added in v0.5.0

type OldNew added in v0.6.0

type OldNew struct {
	Name      string
	ParamPath string
	Old       any
	New       any
}

type PayloadCache added in v0.5.0

type PayloadCache interface {
	ContainsOrAdd(PayloadKey, BlockAndTraceExtended) (ok, evicted bool)
	Add(PayloadKey, BlockAndTraceExtended) (evicted bool)
	Get(PayloadKey) (BlockAndTraceExtended, bool)
}

type PayloadKey

type PayloadKey struct {
	BlockHash types.Hash
	Proposer  types.PublicKey
	Slot      Slot
}

func (PayloadKey) Loggable

func (k PayloadKey) Loggable() map[string]any

type PayloadQuery

type PayloadQuery struct {
	Slot      Slot
	BlockHash types.Hash
	BlockNum  uint64
	PubKey    types.PublicKey
	Limit     uint64
}

type PayloadTraceQuery

type PayloadTraceQuery struct {
	Slot                          Slot
	BlockHash                     types.Hash
	BlockNum                      uint64
	ProposerPubkey, BuilderPubkey types.PublicKey
	Cursor, Limit                 uint64
	OrderByValue                  int
}

PayloadTraceQuery structure used to query payloads only

func (PayloadTraceQuery) HasBlockHash

func (q PayloadTraceQuery) HasBlockHash() bool

func (PayloadTraceQuery) HasBlockNum

func (q PayloadTraceQuery) HasBlockNum() bool

func (PayloadTraceQuery) HasCursor

func (q PayloadTraceQuery) HasCursor() bool

func (PayloadTraceQuery) HasLimit

func (q PayloadTraceQuery) HasLimit() bool

func (PayloadTraceQuery) HasPubkey

func (q PayloadTraceQuery) HasPubkey() bool

func (PayloadTraceQuery) HasSlot

func (q PayloadTraceQuery) HasSlot() bool

type PrometheusObserver

type PrometheusObserver interface {
	WithLabelValues(lvs ...string) prometheus.Observer
}

type PubKey

type PubKey struct{ types.PublicKey }

func (PubKey) Bytes

func (pk PubKey) Bytes() []byte

func (PubKey) Loggable

func (pk PubKey) Loggable() map[string]any

type RandaoState added in v0.4.2

type RandaoState struct {
	Slot       uint64
	ParentHash types.Hash
	Randao     string
}

type SignedBeaconBlock

type SignedBeaconBlock interface {
	ConsensusVersion() string

	Signature() types.Signature
	MarshalSSZ() ([]byte, error)
}

type SignedBlindedBeaconBlock

type SignedBlindedBeaconBlock interface {
	Raw() []byte
	Slot() uint64
	BlockHash() types.Hash
	BlockNumber() uint64
	ProposerIndex() uint64
	Signature() types.Signature

	ComputeSigningRoot(d types.Domain) ([32]byte, error)

	ToBeaconBlock(executionPayload ExecutionPayload) (SignedBeaconBlock, error)
	ToPayloadKey(pk types.PublicKey) (PayloadKey, error)

	ExecutionHeaderHash() (types.Hash, error)

	Loggable() map[string]any
}

type Slot

type Slot uint64

func (Slot) Epoch

func (s Slot) Epoch() Epoch

func (Slot) HeaderKey

func (s Slot) HeaderKey() ds.Key

func (Slot) Loggable

func (s Slot) Loggable() map[string]any

func (Slot) PayloadKey

func (s Slot) PayloadKey() ds.Key

type SubmissionTraceQuery

type SubmissionTraceQuery struct {
	Slot          Slot
	BlockHash     types.Hash
	BlockNum      uint64
	Limit         uint64
	BuilderPubkey types.PublicKey
}

SubmissionTraceQuery structure used to query header structure

func (SubmissionTraceQuery) HasBlockHash

func (q SubmissionTraceQuery) HasBlockHash() bool

func (SubmissionTraceQuery) HasBlockNum

func (q SubmissionTraceQuery) HasBlockNum() bool

func (SubmissionTraceQuery) HasLimit

func (q SubmissionTraceQuery) HasLimit() bool

func (SubmissionTraceQuery) HasSlot

func (q SubmissionTraceQuery) HasSlot() bool

type SubmitBlockRequest

type SubmitBlockRequest interface {
	Raw() []byte
	Slot() uint64
	BlockHash() types.Hash
	ParentHash() types.Hash
	TraceBlockHash() types.Hash
	TraceParentHash() types.Hash
	BuilderPubkey() types.PublicKey
	ProposerPubkey() types.PublicKey
	ProposerFeeRecipient() types.Address
	Value() types.U256Str
	Signature() types.Signature
	Timestamp() uint64
	Random() types.Hash
	Withdrawals() Withdrawals

	NumTx() uint64

	ComputeSigningRoot(d types.Domain) ([32]byte, error)

	ToPayloadKey() PayloadKey

	PreparePayloadContents(sk *bls.SecretKey, pubkey *types.PublicKey, domain types.Domain) (cbs CompleteBlockstruct, err error)
}

type TimeoutWaitGroup added in v0.4.17

type TimeoutWaitGroup struct {
	// contains filtered or unexported fields
}

func NewTimeoutWaitGroup added in v0.4.17

func NewTimeoutWaitGroup() *TimeoutWaitGroup

func (*TimeoutWaitGroup) Add added in v0.4.17

func (wg *TimeoutWaitGroup) Add(i int64)

func (*TimeoutWaitGroup) C added in v0.4.17

func (wg *TimeoutWaitGroup) C() <-chan struct{}

func (*TimeoutWaitGroup) Done added in v0.4.17

func (wg *TimeoutWaitGroup) Done()

type UserContent added in v0.4.15

type UserContent struct {
	IP string
}

type ValidatorCacheEntry

type ValidatorCacheEntry struct {
	Time  time.Time
	Entry types.SignedValidatorRegistration
}

type ValidatorsState

type ValidatorsState struct {
	KnownValidatorsByIndex map[uint64]types.PubkeyHex
	KnownValidators        map[types.PubkeyHex]struct{}
}

type Withdrawal

type Withdrawal struct {
	Index          uint64        `json:"index,string"`
	ValidatorIndex uint64        `json:"validator_index,string"`
	Address        types.Address `json:"address" ssz-size:"20"`
	Amount         uint64        `json:"amount,string"`
}

Withdrawal provides information about a withdrawal.

func (*Withdrawal) GetTree

func (w *Withdrawal) GetTree() (*ssz.Node, error)

GetTree ssz hashes the Withdrawal object

func (*Withdrawal) HashTreeRoot

func (w *Withdrawal) HashTreeRoot() ([32]byte, error)

HashTreeRoot ssz hashes the Withdrawal object

func (*Withdrawal) HashTreeRootWith

func (w *Withdrawal) HashTreeRootWith(hh ssz.HashWalker) (err error)

HashTreeRootWith ssz hashes the Withdrawal object with a hasher

func (*Withdrawal) MarshalSSZ added in v0.5.0

func (w *Withdrawal) MarshalSSZ() ([]byte, error)

func (*Withdrawal) MarshalSSZTo added in v0.5.0

func (w *Withdrawal) MarshalSSZTo(buf []byte) ([]byte, error)

MarshalSSZTo ssz marshals the Withdrawal object to a target array

func (*Withdrawal) SizeSSZ added in v0.4.21

func (w *Withdrawal) SizeSSZ() (size int)

SizeSSZ returns the ssz encoded size in bytes for the Withdrawal object

func (*Withdrawal) UnmarshalSSZ added in v0.4.21

func (w *Withdrawal) UnmarshalSSZ(buf []byte) error

UnmarshalSSZ ssz unmarshals the Withdrawal object

type Withdrawals

type Withdrawals []*Withdrawal

Withdrawal provides information about a withdrawal.

type WithdrawalsState

type WithdrawalsState struct {
	Slot       Slot
	ParentHash types.Hash
	Root       types.Root
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL