cltypes

package
v0.0.0-...-92d349b Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2023 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxAttesterSlashings = 2
	MaxProposerSlashings = 16
	MaxAttestations      = 128
	MaxDeposits          = 16
	MaxVoluntaryExits    = 16
	MaxExecutionChanges  = 16
)
View Source
const (
	SyncCommitteeBranchLength = 5
	FinalityBranchLength      = 6
	ExecutionBranchLength     = 4
)
View Source
const (
	DepositProofLength = 33
	SyncCommitteeSize  = 512
)
View Source
const JustificationBitsLength = 4

Variables

This section is empty.

Functions

func EncodeAttestationDataForStorage

func EncodeAttestationDataForStorage(data *AttestationData, defaultData *AttestationData) []byte

EncodeAttestationsDataForStorage encodes attestation data and compress everything by defaultData.

func EncodeAttestationsForStorage

func EncodeAttestationsForStorage(attestations []*Attestation) []byte

func IsSlashableAttestationData

func IsSlashableAttestationData(d1, d2 *AttestationData) bool

Types

type AggregateAndProof

type AggregateAndProof struct {
	AggregatorIndex uint64
	Aggregate       *Attestation
	SelectionProof  [96]byte
}

* AggregateAndProof contains the index of the aggregator, the attestation * to be aggregated and the BLS signature of the attestation.

func (*AggregateAndProof) DecodeSSZ

func (a *AggregateAndProof) DecodeSSZ(buf []byte) error

func (*AggregateAndProof) EncodeSSZ

func (a *AggregateAndProof) EncodeSSZ(dst []byte) ([]byte, error)

func (*AggregateAndProof) EncodingSizeSSZ

func (a *AggregateAndProof) EncodingSizeSSZ() int

type Attestation

type Attestation struct {
	AggregationBits []byte `ssz-max:"2048" ssz:"bitlist"`
	Data            *AttestationData
	Signature       [96]byte `ssz-size:"96"`
}

Full signed attestation

func DecodeAttestationsForStorage

func DecodeAttestationsForStorage(buf []byte) ([]*Attestation, error)

func (*Attestation) Clone

func (*Attestation) Clone() clonable.Clonable

func (*Attestation) DecodeSSZ

func (a *Attestation) DecodeSSZ(buf []byte) error

DecodeSSZ ssz unmarshals the Attestation object

func (*Attestation) DecodeSSZWithVersion

func (a *Attestation) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Attestation) EncodeSSZ

func (a *Attestation) EncodeSSZ(buf []byte) (dst []byte, err error)

MarshalSSZTo ssz marshals the Attestation object to a target array

func (*Attestation) EncodingSizeSSZ

func (a *Attestation) EncodingSizeSSZ() int

EncodingSizeSSZ returns the ssz encoded size in bytes for the Attestation object

func (*Attestation) HashSSZ

func (a *Attestation) HashSSZ() ([32]byte, error)

HashSSZ ssz hashes the Attestation object

type AttestationData

type AttestationData struct {
	Slot            uint64
	Index           uint64
	BeaconBlockHash libcommon.Hash
	Source          *Checkpoint
	Target          *Checkpoint
}

AttestantionData contains information about attestantion, including finalized/attested checkpoints.

func DecodeAttestationDataForStorage

func DecodeAttestationDataForStorage(buf []byte, defaultData *AttestationData) (n int, data *AttestationData)

DecodeAttestationDataForStorage decodes attestation data and decompress everything by defaultData.

func (*AttestationData) DecodeSSZ

func (a *AttestationData) DecodeSSZ(buf []byte) error

DecodeSSZ ssz unmarshals the AttestationData object

func (*AttestationData) EncodeSSZ

func (a *AttestationData) EncodeSSZ(dst []byte) ([]byte, error)

EncodeSSZ ssz marshals the AttestationData object

func (*AttestationData) EncodingSizeSSZ

func (a *AttestationData) EncodingSizeSSZ() int

EncodingSizeSSZ returns the ssz encoded size in bytes for the AttestationData object

func (*AttestationData) Equal

func (a *AttestationData) Equal(other *AttestationData) bool

func (*AttestationData) HashSSZ

func (a *AttestationData) HashSSZ() ([32]byte, error)

HashSSZ ssz hashes the AttestationData object

type AttesterSlashing

type AttesterSlashing struct {
	Attestation_1 *IndexedAttestation
	Attestation_2 *IndexedAttestation
}

func (*AttesterSlashing) Clone

func (*AttesterSlashing) DecodeSSZ

func (a *AttesterSlashing) DecodeSSZ(buf []byte) error

func (*AttesterSlashing) DecodeSSZWithVersion

func (a *AttesterSlashing) DecodeSSZWithVersion(buf []byte, _ int) error

func (*AttesterSlashing) EncodeSSZ

func (a *AttesterSlashing) EncodeSSZ(dst []byte) ([]byte, error)

func (*AttesterSlashing) EncodingSizeSSZ

func (a *AttesterSlashing) EncodingSizeSSZ() int

func (*AttesterSlashing) HashSSZ

func (a *AttesterSlashing) HashSSZ() ([32]byte, error)

type BLSToExecutionChange

type BLSToExecutionChange struct {
	ValidatorIndex uint64
	From           [48]byte
	To             libcommon.Address
}

Change to EL engine

func (*BLSToExecutionChange) DecodeSSZ

func (b *BLSToExecutionChange) DecodeSSZ(buf []byte) error

func (*BLSToExecutionChange) EncodeSSZ

func (b *BLSToExecutionChange) EncodeSSZ(buf []byte) ([]byte, error)

func (*BLSToExecutionChange) EncodingSizeSSZ

func (*BLSToExecutionChange) EncodingSizeSSZ() int

func (*BLSToExecutionChange) HashSSZ

func (b *BLSToExecutionChange) HashSSZ() ([32]byte, error)

type BeaconBlock

type BeaconBlock struct {
	Slot          uint64
	ProposerIndex uint64
	ParentRoot    libcommon.Hash
	StateRoot     libcommon.Hash
	Body          *BeaconBody
}

func (*BeaconBlock) Clone

func (*BeaconBlock) Clone() clonable.Clonable

func (*BeaconBlock) DecodeSSZ

func (*BeaconBlock) DecodeSSZ(buf []byte) error

func (*BeaconBlock) DecodeSSZWithVersion

func (b *BeaconBlock) DecodeSSZWithVersion(buf []byte, version int) error

func (*BeaconBlock) EncodeSSZ

func (b *BeaconBlock) EncodeSSZ(buf []byte) (dst []byte, err error)

func (*BeaconBlock) EncodingSizeSSZ

func (b *BeaconBlock) EncodingSizeSSZ() int

func (*BeaconBlock) HashSSZ

func (b *BeaconBlock) HashSSZ() ([32]byte, error)

func (*BeaconBlock) Version

func (b *BeaconBlock) Version() clparams.StateVersion

Version returns beacon block version.

type BeaconBlockForStorage

type BeaconBlockForStorage struct {
	// Non-body fields
	Signature     [96]byte
	Slot          uint64
	ProposerIndex uint64
	ParentRoot    libcommon.Hash
	StateRoot     libcommon.Hash
	// Body fields
	RandaoReveal      [96]byte
	Eth1Data          *Eth1Data
	Graffiti          []byte
	ProposerSlashings []*ProposerSlashing
	AttesterSlashings []*AttesterSlashing
	Deposits          []*Deposit
	VoluntaryExits    []*SignedVoluntaryExit
	AddressChanges    []*SignedBLSToExecutionChange
	SyncAggregate     *SyncAggregate
	// Metadatas
	Eth1Number    uint64
	Eth1BlockHash libcommon.Hash
	Eth2BlockRoot libcommon.Hash
	// Version type
	Version uint8
}

* Block body for Consensus Layer to be stored internally (payload and attestations are stored separatedly).

type BeaconBlockHeader

type BeaconBlockHeader struct {
	Slot          uint64
	ProposerIndex uint64
	ParentRoot    libcommon.Hash
	Root          libcommon.Hash
	BodyRoot      libcommon.Hash
}

* BeaconBlockHeader is the message we validate in the lightclient. * It contains the hash of the block body, and state root data.

func (*BeaconBlockHeader) Copy

func (*BeaconBlockHeader) DecodeSSZ

func (b *BeaconBlockHeader) DecodeSSZ(buf []byte) error

func (*BeaconBlockHeader) EncodeSSZ

func (b *BeaconBlockHeader) EncodeSSZ(dst []byte) ([]byte, error)

func (*BeaconBlockHeader) EncodingSizeSSZ

func (b *BeaconBlockHeader) EncodingSizeSSZ() int

func (*BeaconBlockHeader) HashSSZ

func (b *BeaconBlockHeader) HashSSZ() ([32]byte, error)

type BeaconBlocksByRangeRequest

type BeaconBlocksByRangeRequest struct {
	StartSlot uint64
	Count     uint64
	Step      uint64 // Deprecated, must be set to 1
}

* BeaconBlocksByRangeRequest is the request for getting a range of blocks.

func (*BeaconBlocksByRangeRequest) Clone

func (*BeaconBlocksByRangeRequest) DecodeSSZ

func (b *BeaconBlocksByRangeRequest) DecodeSSZ(buf []byte) error

func (*BeaconBlocksByRangeRequest) DecodeSSZWithVersion

func (b *BeaconBlocksByRangeRequest) DecodeSSZWithVersion(buf []byte, _ int) error

func (*BeaconBlocksByRangeRequest) EncodeSSZ

func (b *BeaconBlocksByRangeRequest) EncodeSSZ(buf []byte) ([]byte, error)

func (*BeaconBlocksByRangeRequest) EncodingSizeSSZ

func (b *BeaconBlocksByRangeRequest) EncodingSizeSSZ() int

type BeaconBlocksByRootRequest

type BeaconBlocksByRootRequest [][rootLength]byte

BeaconBlocksByRootRequest specifies the blocks by root request type.

func (*BeaconBlocksByRootRequest) Clone

func (*BeaconBlocksByRootRequest) DecodeSSZ

func (r *BeaconBlocksByRootRequest) DecodeSSZ(buf []byte) error

DecodeSSZ unmarshals the provided bytes buffer into the block by roots request object.

func (*BeaconBlocksByRootRequest) DecodeSSZWithVersion

func (r *BeaconBlocksByRootRequest) DecodeSSZWithVersion(buf []byte, _ int) error

func (*BeaconBlocksByRootRequest) EncodeSSZ

func (r *BeaconBlocksByRootRequest) EncodeSSZ(dst []byte) ([]byte, error)

EncodeSSZ Marshals the block by roots request type into the serialized object.

func (*BeaconBlocksByRootRequest) EncodingSizeSSZ

func (r *BeaconBlocksByRootRequest) EncodingSizeSSZ() int

EncodingSizeSSZ returns the size of the serialized representation.

func (*BeaconBlocksByRootRequest) HashSSZ

func (r *BeaconBlocksByRootRequest) HashSSZ() ([32]byte, error)

Just to satisfy the ObjectSSZ interface.

type BeaconBody

type BeaconBody struct {
	// A byte array used for randomness in the beacon chain
	RandaoReveal [96]byte
	// Data related to the Ethereum 1.0 chain
	Eth1Data *Eth1Data
	// A byte array used to customize validators' behavior
	Graffiti []byte
	// A list of slashing events for validators who included invalid blocks in the chain
	ProposerSlashings []*ProposerSlashing
	// A list of slashing events for validators who included invalid attestations in the chain
	AttesterSlashings []*AttesterSlashing
	// A list of attestations included in the block
	Attestations []*Attestation
	// A list of deposits made to the Ethereum 1.0 chain
	Deposits []*Deposit
	// A list of validators who have voluntarily exited the beacon chain
	VoluntaryExits []*SignedVoluntaryExit
	// A summary of the current state of the beacon chain
	SyncAggregate *SyncAggregate
	// Data related to crosslink records and executing operations on the Ethereum 2.0 chain
	ExecutionPayload *Eth1Block
	// Withdrawals Diffs for Execution Layer
	ExecutionChanges []*SignedBLSToExecutionChange
	// The version of the beacon chain
	Version clparams.StateVersion
}

func (*BeaconBody) Clone

func (*BeaconBody) Clone() clonable.Clonable

func (*BeaconBody) DecodeSSZ

func (b *BeaconBody) DecodeSSZ(buf []byte) error

func (*BeaconBody) DecodeSSZWithVersion

func (b *BeaconBody) DecodeSSZWithVersion(buf []byte, version int) error

func (*BeaconBody) EncodeSSZ

func (b *BeaconBody) EncodeSSZ(dst []byte) ([]byte, error)

func (*BeaconBody) EncodingSizeSSZ

func (b *BeaconBody) EncodingSizeSSZ() (size int)

func (*BeaconBody) HashSSZ

func (b *BeaconBody) HashSSZ() ([32]byte, error)

type Checkpoint

type Checkpoint struct {
	Epoch uint64
	Root  libcommon.Hash
}

func (*Checkpoint) Clone

func (*Checkpoint) Clone() clonable.Clonable

func (*Checkpoint) Copy

func (c *Checkpoint) Copy() *Checkpoint

func (*Checkpoint) DecodeSSZ

func (c *Checkpoint) DecodeSSZ(buf []byte) error

func (*Checkpoint) DecodeSSZWithVersion

func (c *Checkpoint) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Checkpoint) EncodeSSZ

func (c *Checkpoint) EncodeSSZ(buf []byte) ([]byte, error)

func (*Checkpoint) EncodingSizeSSZ

func (c *Checkpoint) EncodingSizeSSZ() int

func (*Checkpoint) Equal

func (c *Checkpoint) Equal(other *Checkpoint) bool

func (*Checkpoint) HashSSZ

func (c *Checkpoint) HashSSZ() ([32]byte, error)

type Deposit

type Deposit struct {
	// Merkle proof is used for deposits
	Proof []libcommon.Hash // 33 X 32 size.
	Data  *DepositData
}

func (*Deposit) Clone

func (*Deposit) Clone() clonable.Clonable

func (*Deposit) DecodeSSZ

func (d *Deposit) DecodeSSZ(buf []byte) error

func (*Deposit) DecodeSSZWithVersion

func (d *Deposit) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Deposit) EncodeSSZ

func (d *Deposit) EncodeSSZ(dst []byte) ([]byte, error)

func (*Deposit) EncodingSizeSSZ

func (d *Deposit) EncodingSizeSSZ() int

func (*Deposit) HashSSZ

func (d *Deposit) HashSSZ() ([32]byte, error)

type DepositData

type DepositData struct {
	PubKey                [48]byte
	WithdrawalCredentials [32]byte // 32 byte
	Amount                uint64
	Signature             [96]byte
	Root                  libcommon.Hash // Ignored if not for hashing
}

func (*DepositData) Clone

func (*DepositData) Clone() clonable.Clonable

func (*DepositData) DecodeSSZ

func (d *DepositData) DecodeSSZ(buf []byte) error

func (*DepositData) DecodeSSZWithVersion

func (d *DepositData) DecodeSSZWithVersion(buf []byte, _ int) error

func (*DepositData) EncodeSSZ

func (d *DepositData) EncodeSSZ(dst []byte) ([]byte, error)

func (*DepositData) EncodingSizeSSZ

func (d *DepositData) EncodingSizeSSZ() int

func (*DepositData) HashSSZ

func (d *DepositData) HashSSZ() ([32]byte, error)

func (*DepositData) MessageHash

func (d *DepositData) MessageHash() ([32]byte, error)

type Eth1Block

type Eth1Block struct {
	ParentHash    libcommon.Hash
	FeeRecipient  libcommon.Address
	StateRoot     libcommon.Hash
	ReceiptsRoot  libcommon.Hash
	LogsBloom     types.Bloom
	PrevRandao    libcommon.Hash
	BlockNumber   uint64
	GasLimit      uint64
	GasUsed       uint64
	Time          uint64
	Extra         []byte
	BaseFeePerGas [32]byte
	// Extra fields
	BlockHash    libcommon.Hash
	Transactions [][]byte
	Withdrawals  types.Withdrawals
	// contains filtered or unexported fields
}

ETH1Block represents a block structure CL-side.

func NewEth1Block

func NewEth1Block(version clparams.StateVersion) *Eth1Block

NewEth1Block creates a new Eth1Block.

func NewEth1BlockFromHeaderAndBody

func NewEth1BlockFromHeaderAndBody(header *types.Header, body *types.RawBody) *Eth1Block

NewEth1BlockFromHeaderAndBody with given header/body.

func (*Eth1Block) Body

func (b *Eth1Block) Body() *types.RawBody

Body returns the equivalent raw body (only eth1 body section).

func (*Eth1Block) Clone

func (*Eth1Block) Clone() clonable.Clonable

func (*Eth1Block) DecodeSSZ

func (b *Eth1Block) DecodeSSZ(buf []byte) error

Need a version

func (*Eth1Block) DecodeSSZWithVersion

func (b *Eth1Block) DecodeSSZWithVersion(buf []byte, version int) error

DecodeSSZWithVersion decodes the block in SSZ format.

func (*Eth1Block) EncodeSSZ

func (b *Eth1Block) EncodeSSZ(dst []byte) ([]byte, error)

EncodeSSZ encodes the block in SSZ format.

func (*Eth1Block) EncodingSizeSSZ

func (b *Eth1Block) EncodingSizeSSZ() (size int)

Return minimum required buffer length to be an acceptable SSZ encoding.

func (*Eth1Block) HashSSZ

func (b *Eth1Block) HashSSZ(version clparams.StateVersion) ([32]byte, error)

HashSSZ calculates the SSZ hash of the Eth1Block's payload header.

func (*Eth1Block) PayloadHeader

func (b *Eth1Block) PayloadHeader() (*Eth1Header, error)

PayloadHeader returns the equivalent ExecutionPayloadHeader object.

func (*Eth1Block) RlpHeader

func (b *Eth1Block) RlpHeader() (*types.Header, error)

RlpHeader returns the equivalent types.Header struct with RLP-based fields.

type Eth1Data

type Eth1Data struct {
	Root         libcommon.Hash
	BlockHash    libcommon.Hash
	DepositCount uint64
}

func (*Eth1Data) Clone

func (*Eth1Data) Clone() clonable.Clonable

func (*Eth1Data) Copy

func (e *Eth1Data) Copy() *Eth1Data

func (*Eth1Data) DecodeSSZ

func (e *Eth1Data) DecodeSSZ(buf []byte) error

DecodeSSZ ssz unmarshals the Eth1Data object

func (*Eth1Data) DecodeSSZWithVersion

func (e *Eth1Data) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Eth1Data) EncodeSSZ

func (e *Eth1Data) EncodeSSZ(buf []byte) (dst []byte, err error)

MarshalSSZTo ssz marshals the Eth1Data object to a target array

func (*Eth1Data) EncodingSizeSSZ

func (e *Eth1Data) EncodingSizeSSZ() int

EncodingSizeSSZ returns the ssz encoded size in bytes for the Eth1Data object

func (*Eth1Data) Equal

func (e *Eth1Data) Equal(b *Eth1Data) bool

func (*Eth1Data) HashSSZ

func (e *Eth1Data) HashSSZ() ([32]byte, error)

HashSSZ ssz hashes the Eth1Data object

type Eth1Header

type Eth1Header struct {
	ParentHash    libcommon.Hash
	FeeRecipient  libcommon.Address
	StateRoot     libcommon.Hash
	ReceiptsRoot  libcommon.Hash
	LogsBloom     types.Bloom
	PrevRandao    libcommon.Hash
	BlockNumber   uint64
	GasLimit      uint64
	GasUsed       uint64
	Time          uint64
	Extra         []byte
	BaseFeePerGas [32]byte
	// Extra fields
	BlockHash        libcommon.Hash
	TransactionsRoot libcommon.Hash
	WithdrawalsRoot  libcommon.Hash
	// contains filtered or unexported fields
}

ETH1Header represents the ethereum 1 header structure CL-side.

func NewEth1Header

func NewEth1Header(version clparams.StateVersion) *Eth1Header

NewEth1Header creates new header with given version.

func (*Eth1Header) Capella

func (e *Eth1Header) Capella()

Capella converts the header to capella version.

func (*Eth1Header) Copy

func (e *Eth1Header) Copy() *Eth1Header

func (*Eth1Header) DecodeSSZWithVersion

func (h *Eth1Header) DecodeSSZWithVersion(buf []byte, version int) error

DecodeSSZWithVersion decodes given SSZ slice.

func (*Eth1Header) EncodeSSZ

func (h *Eth1Header) EncodeSSZ(dst []byte) (buf []byte, err error)

EncodeSSZ encodes the header in SSZ format.

func (*Eth1Header) EncodingSizeSSZ

func (h *Eth1Header) EncodingSizeSSZ() int

EncodingSizeSSZ returns the ssz encoded size in bytes for the Header object

func (*Eth1Header) HashSSZ

func (h *Eth1Header) HashSSZ() ([32]byte, error)

HashSSZ encodes the header in SSZ tree format.

func (*Eth1Header) IsZero

func (e *Eth1Header) IsZero() bool

type Fork

type Fork struct {
	PreviousVersion [4]byte
	CurrentVersion  [4]byte
	Epoch           uint64
}

Fork data, contains if we were on bellatrix/alteir/phase0 and transition epoch.

func (*Fork) Copy

func (f *Fork) Copy() *Fork

func (*Fork) DecodeSSZ

func (f *Fork) DecodeSSZ(buf []byte) error

func (*Fork) EncodeSSZ

func (f *Fork) EncodeSSZ(dst []byte) ([]byte, error)

func (*Fork) EncodingSizeSSZ

func (f *Fork) EncodingSizeSSZ() int

func (*Fork) HashSSZ

func (f *Fork) HashSSZ() ([32]byte, error)

type HistoricalSummary

type HistoricalSummary struct {
	BlockSummaryRoot libcommon.Hash
	StateSummaryRoot libcommon.Hash
}

func (*HistoricalSummary) Clone

func (*HistoricalSummary) DecodeSSZ

func (h *HistoricalSummary) DecodeSSZ(buf []byte) error

func (*HistoricalSummary) DecodeSSZWithVersion

func (h *HistoricalSummary) DecodeSSZWithVersion(buf []byte, _ int) error

func (*HistoricalSummary) EncodeSSZ

func (h *HistoricalSummary) EncodeSSZ(buf []byte) ([]byte, error)

func (*HistoricalSummary) EncodingSizeSSZ

func (*HistoricalSummary) EncodingSizeSSZ() int

func (*HistoricalSummary) HashSSZ

func (h *HistoricalSummary) HashSSZ() ([32]byte, error)

type IndexedAttestation

type IndexedAttestation struct {
	AttestingIndices []uint64
	Data             *AttestationData
	Signature        [96]byte
}

* IndexedAttestation are attestantions sets to prove that someone misbehaved.

func (*IndexedAttestation) DecodeSSZ

func (i *IndexedAttestation) DecodeSSZ(buf []byte) error

DecodeSSZ ssz unmarshals the IndexedAttestation object

func (*IndexedAttestation) EncodeSSZ

func (i *IndexedAttestation) EncodeSSZ(buf []byte) (dst []byte, err error)

func (*IndexedAttestation) EncodingSizeSSZ

func (i *IndexedAttestation) EncodingSizeSSZ() int

EncodingSizeSSZ returns the ssz encoded size in bytes for the IndexedAttestation object

func (*IndexedAttestation) HashSSZ

func (i *IndexedAttestation) HashSSZ() ([32]byte, error)

HashSSZ ssz hashes the IndexedAttestation object

type JustificationBits

type JustificationBits [JustificationBitsLength]bool // Bit vector of size 4

func (JustificationBits) Byte

func (j JustificationBits) Byte() (out byte)

func (JustificationBits) CheckRange

func (j JustificationBits) CheckRange(start int, end int) bool

CheckRange checks if bits in certain range are all enabled.

func (JustificationBits) Copy

func (*JustificationBits) FromByte

func (j *JustificationBits) FromByte(b byte)

type LightClientBootstrap

type LightClientBootstrap struct {
	Header                     *LightClientHeader
	CurrentSyncCommittee       *SyncCommittee
	CurrentSyncCommitteeBranch []libcommon.Hash
	// contains filtered or unexported fields
}

LightClientBootstrap is used to bootstrap the lightclient from checkpoint sync.

func (*LightClientBootstrap) Clone

func (*LightClientBootstrap) DecodeSSZ

func (l *LightClientBootstrap) DecodeSSZ(buf []byte) error

func (*LightClientBootstrap) DecodeSSZWithVersion

func (l *LightClientBootstrap) DecodeSSZWithVersion(buf []byte, version int) error

DecodeSSZ ssz unmarshals the LightClientBootstrap object

func (*LightClientBootstrap) EncodeSSZ

func (l *LightClientBootstrap) EncodeSSZ(dst []byte) ([]byte, error)

EncodeSSZ ssz marshals the LightClientBootstrap object

func (*LightClientBootstrap) EncodingSizeSSZ

func (l *LightClientBootstrap) EncodingSizeSSZ() (size int)

EncodingSizeSSZ returns the ssz encoded size in bytes for the LightClientBootstrap object

func (*LightClientBootstrap) WithVersion

type LightClientFinalityUpdate

type LightClientFinalityUpdate struct {
	AttestedHeader  *LightClientHeader
	FinalizedHeader *LightClientHeader
	FinalityBranch  []libcommon.Hash `ssz-size:"6,32"`
	SyncAggregate   *SyncAggregate
	SignatureSlot   uint64
	// contains filtered or unexported fields
}

LightClientFinalityUpdate is used to update the sync aggreggate every 6 minutes.

func (*LightClientFinalityUpdate) Clone

func (*LightClientFinalityUpdate) DecodeSSZ

func (l *LightClientFinalityUpdate) DecodeSSZ(buf []byte) error

func (*LightClientFinalityUpdate) DecodeSSZWithVersion

func (l *LightClientFinalityUpdate) DecodeSSZWithVersion(buf []byte, version int) error

DecodeSSZ ssz unmarshals the LightClientFinalityUpdate object

func (*LightClientFinalityUpdate) EncodeSSZ

func (l *LightClientFinalityUpdate) EncodeSSZ(buf []byte) ([]byte, error)

func (*LightClientFinalityUpdate) EncodingSizeSSZ

func (l *LightClientFinalityUpdate) EncodingSizeSSZ() int

func (*LightClientFinalityUpdate) WithVersion

type LightClientHeader

type LightClientHeader struct {
	HeaderEth2      *BeaconBlockHeader
	HeaderEth1      *Eth1Header
	ExecutionBranch [ExecutionBranchLength]libcommon.Hash
	// contains filtered or unexported fields
}

func (*LightClientHeader) DecodeSSZ

func (l *LightClientHeader) DecodeSSZ([]byte) error

func (*LightClientHeader) DecodeSSZWithVersion

func (l *LightClientHeader) DecodeSSZWithVersion(buf []byte, v int) error

func (*LightClientHeader) EncodeSSZ

func (l *LightClientHeader) EncodeSSZ(buf []byte) ([]byte, error)

func (*LightClientHeader) EncodingSizeSSZ

func (l *LightClientHeader) EncodingSizeSSZ() int

func (*LightClientHeader) WithVersion

type LightClientOptimisticUpdate

type LightClientOptimisticUpdate struct {
	AttestedHeader *LightClientHeader
	SyncAggregate  *SyncAggregate
	SignatureSlot  uint64
	// contains filtered or unexported fields
}

LightClientOptimisticUpdate is used for verifying N-1 block.

func (*LightClientOptimisticUpdate) Clone

func (*LightClientOptimisticUpdate) DecodeSSZ

func (l *LightClientOptimisticUpdate) DecodeSSZ([]byte) error

func (*LightClientOptimisticUpdate) DecodeSSZWithVersion

func (l *LightClientOptimisticUpdate) DecodeSSZWithVersion(buf []byte, version int) error

func (*LightClientOptimisticUpdate) EncodeSSZ

func (l *LightClientOptimisticUpdate) EncodeSSZ(buf []byte) ([]byte, error)

func (*LightClientOptimisticUpdate) EncodingSizeSSZ

func (l *LightClientOptimisticUpdate) EncodingSizeSSZ() (size int)

func (*LightClientOptimisticUpdate) WithVersion

type LightClientUpdate

type LightClientUpdate struct {
	AttestedHeader          *LightClientHeader
	NextSyncCommitee        *SyncCommittee
	NextSyncCommitteeBranch []libcommon.Hash
	FinalizedHeader         *LightClientHeader
	FinalityBranch          []libcommon.Hash
	SyncAggregate           *SyncAggregate
	SignatureSlot           uint64
	// contains filtered or unexported fields
}

LightClientUpdate is used to update the sync committee every 27 hours.

func (*LightClientUpdate) Clone

func (*LightClientUpdate) DecodeSSZ

func (l *LightClientUpdate) DecodeSSZ(buf []byte) error

func (*LightClientUpdate) DecodeSSZWithVersion

func (l *LightClientUpdate) DecodeSSZWithVersion(buf []byte, version int) error

DecodeSSZ ssz unmarshals the LightClientUpdate object

func (*LightClientUpdate) EncodeSSZ

func (l *LightClientUpdate) EncodeSSZ(buf []byte) ([]byte, error)

MarshalSSZTo ssz marshals the LightClientUpdate object to a target array

func (*LightClientUpdate) EncodingSizeSSZ

func (l *LightClientUpdate) EncodingSizeSSZ() int

EncodingSizeSSZ returns the ssz encoded size in bytes for the LightClientUpdate object

func (*LightClientUpdate) HasNextSyncCommittee

func (l *LightClientUpdate) HasNextSyncCommittee() bool

func (*LightClientUpdate) HasSyncFinality

func (l *LightClientUpdate) HasSyncFinality() bool

func (*LightClientUpdate) IsFinalityUpdate

func (l *LightClientUpdate) IsFinalityUpdate() bool

func (*LightClientUpdate) WithVersion

type LightClientUpdatesByRangeRequest

type LightClientUpdatesByRangeRequest struct {
	Period uint64
	Count  uint64
}

* LightClientUpdatesByRangeRequest that helps syncing to chain tip from a past point. * It takes the Period of the starting update and the amount of updates we want (MAX: 128).

func (*LightClientUpdatesByRangeRequest) Clone

func (*LightClientUpdatesByRangeRequest) DecodeSSZ

func (l *LightClientUpdatesByRangeRequest) DecodeSSZ(buf []byte) error

func (*LightClientUpdatesByRangeRequest) DecodeSSZWithVersion

func (l *LightClientUpdatesByRangeRequest) DecodeSSZWithVersion(buf []byte, _ int) error

func (*LightClientUpdatesByRangeRequest) EncodeSSZ

func (l *LightClientUpdatesByRangeRequest) EncodeSSZ(buf []byte) ([]byte, error)

func (*LightClientUpdatesByRangeRequest) EncodingSizeSSZ

func (l *LightClientUpdatesByRangeRequest) EncodingSizeSSZ() int

type Metadata

type Metadata struct {
	SeqNumber uint64
	Attnets   uint64
	Syncnets  *uint64
}

func (*Metadata) Clone

func (*Metadata) Clone() clonable.Clonable

func (*Metadata) DecodeSSZ

func (m *Metadata) DecodeSSZ(buf []byte) error

func (*Metadata) DecodeSSZWithVersion

func (m *Metadata) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Metadata) EncodeSSZ

func (m *Metadata) EncodeSSZ(buf []byte) ([]byte, error)

func (*Metadata) EncodingSizeSSZ

func (m *Metadata) EncodingSizeSSZ() (ret int)

type ParticipationFlags

type ParticipationFlags byte

func (ParticipationFlags) Add

func (ParticipationFlags) HasFlag

func (f ParticipationFlags) HasFlag(index int) bool

type ParticipationFlagsList

type ParticipationFlagsList []ParticipationFlags

func ParticipationFlagsListFromBytes

func ParticipationFlagsListFromBytes(buf []byte) ParticipationFlagsList

func (ParticipationFlagsList) Bytes

func (p ParticipationFlagsList) Bytes() []byte

func (ParticipationFlagsList) Copy

type PendingAttestation

type PendingAttestation struct {
	AggregationBits []byte
	Data            *AttestationData
	InclusionDelay  uint64
	ProposerIndex   uint64
}

Pending attestation. (only in Phase0 state)

func (*PendingAttestation) Clone

func (*PendingAttestation) DecodeSSZ

func (a *PendingAttestation) DecodeSSZ(buf []byte) error

DecodeSSZ ssz unmarshals the Attestation object

func (*PendingAttestation) DecodeSSZWithVersion

func (a *PendingAttestation) DecodeSSZWithVersion(buf []byte, _ int) error

func (*PendingAttestation) EncodeSSZ

func (a *PendingAttestation) EncodeSSZ(buf []byte) (dst []byte, err error)

MarshalSSZTo ssz marshals the Attestation object to a target array

func (*PendingAttestation) EncodingSizeSSZ

func (a *PendingAttestation) EncodingSizeSSZ() int

EncodingSizeSSZ returns the ssz encoded size in bytes for the Attestation object

func (*PendingAttestation) HashSSZ

func (a *PendingAttestation) HashSSZ() ([32]byte, error)

HashSSZ ssz hashes the Attestation object

type Ping

type Ping struct {
	Id uint64
}

Ping is a test P2P message, used to test out liveness of our peer/signaling disconnection.

func (*Ping) Clone

func (*Ping) Clone() clonable.Clonable

func (*Ping) DecodeSSZ

func (p *Ping) DecodeSSZ(buf []byte) error

func (*Ping) DecodeSSZWithVersion

func (p *Ping) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Ping) EncodeSSZ

func (p *Ping) EncodeSSZ(buf []byte) ([]byte, error)

func (*Ping) EncodingSizeSSZ

func (p *Ping) EncodingSizeSSZ() int

type ProposerSlashing

type ProposerSlashing struct {
	Header1 *SignedBeaconBlockHeader
	Header2 *SignedBeaconBlockHeader
}

func (*ProposerSlashing) Clone

func (*ProposerSlashing) DecodeSSZ

func (p *ProposerSlashing) DecodeSSZ(buf []byte) error

func (*ProposerSlashing) DecodeSSZWithVersion

func (p *ProposerSlashing) DecodeSSZWithVersion(buf []byte, _ int) error

func (*ProposerSlashing) EncodeSSZ

func (p *ProposerSlashing) EncodeSSZ(dst []byte) (buf []byte, err error)

func (*ProposerSlashing) EncodingSizeSSZ

func (p *ProposerSlashing) EncodingSizeSSZ() int

func (*ProposerSlashing) HashSSZ

func (p *ProposerSlashing) HashSSZ() ([32]byte, error)

type SignedAggregateAndProof

type SignedAggregateAndProof struct {
	Message   *AggregateAndProof
	Signature [96]byte
}

func (*SignedAggregateAndProof) Clone

func (*SignedAggregateAndProof) DecodeSSZ

func (a *SignedAggregateAndProof) DecodeSSZ(buf []byte) error

func (*SignedAggregateAndProof) DecodeSSZWithVersion

func (a *SignedAggregateAndProof) DecodeSSZWithVersion(buf []byte, _ int) error

func (*SignedAggregateAndProof) EncodedSSZ

func (a *SignedAggregateAndProof) EncodedSSZ(dst []byte) ([]byte, error)

func (*SignedAggregateAndProof) EncodingSizeSSZ

func (a *SignedAggregateAndProof) EncodingSizeSSZ() int

type SignedBLSToExecutionChange

type SignedBLSToExecutionChange struct {
	Message   *BLSToExecutionChange
	Signature [96]byte
}

func (*SignedBLSToExecutionChange) Clone

func (*SignedBLSToExecutionChange) DecodeSSZ

func (s *SignedBLSToExecutionChange) DecodeSSZ(buf []byte) error

func (*SignedBLSToExecutionChange) DecodeSSZWithVersion

func (s *SignedBLSToExecutionChange) DecodeSSZWithVersion(buf []byte, _ int) error

func (*SignedBLSToExecutionChange) EncodeSSZ

func (s *SignedBLSToExecutionChange) EncodeSSZ(buf []byte) ([]byte, error)

func (*SignedBLSToExecutionChange) EncodingSizeSSZ

func (s *SignedBLSToExecutionChange) EncodingSizeSSZ() int

func (*SignedBLSToExecutionChange) HashSSZ

func (s *SignedBLSToExecutionChange) HashSSZ() ([32]byte, error)

type SignedBeaconBlock

type SignedBeaconBlock struct {
	Signature [96]byte
	Block     *BeaconBlock
}

func DecodeBeaconBlockForStorage

func DecodeBeaconBlockForStorage(buf []byte) (block *SignedBeaconBlock, eth1Number uint64, eth1Hash libcommon.Hash, eth2Hash libcommon.Hash, err error)

DecodeBeaconBlockForStorage decodes beacon block in snappy compressed CBOR format.

func (*SignedBeaconBlock) Clone

func (*SignedBeaconBlock) DecodeSSZ

func (b *SignedBeaconBlock) DecodeSSZ(buf []byte) error

func (*SignedBeaconBlock) DecodeSSZWithVersion

func (b *SignedBeaconBlock) DecodeSSZWithVersion(buf []byte, s int) error

func (*SignedBeaconBlock) EncodeForStorage

func (b *SignedBeaconBlock) EncodeForStorage() ([]byte, error)

EncodeForStorage encodes beacon block in snappy compressed CBOR format.

func (*SignedBeaconBlock) EncodeSSZ

func (b *SignedBeaconBlock) EncodeSSZ(buf []byte) ([]byte, error)

func (*SignedBeaconBlock) EncodingSizeSSZ

func (b *SignedBeaconBlock) EncodingSizeSSZ() int

func (*SignedBeaconBlock) HashSSZ

func (b *SignedBeaconBlock) HashSSZ() ([32]byte, error)

func (*SignedBeaconBlock) Version

Version returns beacon block version.

type SignedBeaconBlockHeader

type SignedBeaconBlockHeader struct {
	Header    *BeaconBlockHeader
	Signature [96]byte
}

* SignedBeaconBlockHeader is a beacon block header + validator signature.

func (*SignedBeaconBlockHeader) DecodeSSZ

func (b *SignedBeaconBlockHeader) DecodeSSZ(buf []byte) error

func (*SignedBeaconBlockHeader) EncodeSSZ

func (b *SignedBeaconBlockHeader) EncodeSSZ(dst []byte) ([]byte, error)

func (*SignedBeaconBlockHeader) EncodingSizeSSZ

func (b *SignedBeaconBlockHeader) EncodingSizeSSZ() int

func (*SignedBeaconBlockHeader) HashSSZ

func (b *SignedBeaconBlockHeader) HashSSZ() ([32]byte, error)

type SignedVoluntaryExit

type SignedVoluntaryExit struct {
	VolunaryExit *VoluntaryExit
	Signature    [96]byte
}

func (*SignedVoluntaryExit) Clone

func (*SignedVoluntaryExit) DecodeSSZ

func (e *SignedVoluntaryExit) DecodeSSZ(buf []byte) error

func (*SignedVoluntaryExit) DecodeSSZWithVersion

func (e *SignedVoluntaryExit) DecodeSSZWithVersion(buf []byte, _ int) error

func (*SignedVoluntaryExit) EncodeSSZ

func (e *SignedVoluntaryExit) EncodeSSZ(dst []byte) []byte

func (*SignedVoluntaryExit) EncodingSizeSSZ

func (e *SignedVoluntaryExit) EncodingSizeSSZ() int

func (*SignedVoluntaryExit) HashSSZ

func (e *SignedVoluntaryExit) HashSSZ() ([32]byte, error)

type SingleRoot

type SingleRoot struct {
	Root [32]byte
}

P2P Message for bootstrap

func (*SingleRoot) Clone

func (*SingleRoot) Clone() clonable.Clonable

func (*SingleRoot) DecodeSSZ

func (s *SingleRoot) DecodeSSZ(buf []byte) error

func (*SingleRoot) DecodeSSZWithVersion

func (s *SingleRoot) DecodeSSZWithVersion(buf []byte, _ int) error

func (*SingleRoot) EncodeSSZ

func (s *SingleRoot) EncodeSSZ(buf []byte) ([]byte, error)

func (*SingleRoot) EncodingSizeSSZ

func (s *SingleRoot) EncodingSizeSSZ() int

type Status

type Status struct {
	ForkDigest     [4]byte  `ssz-size:"4"`
	FinalizedRoot  [32]byte `ssz-size:"32"`
	FinalizedEpoch uint64
	HeadRoot       [32]byte `ssz-size:"32"`
	HeadSlot       uint64
}

* Status is a P2P Message we exchange when connecting to a new Peer. * It contains network information about the other peer and if mismatching we drop it.

func (*Status) Clone

func (*Status) Clone() clonable.Clonable

func (*Status) DecodeSSZ

func (s *Status) DecodeSSZ(buf []byte) error

func (*Status) DecodeSSZWithVersion

func (s *Status) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Status) EncodeSSZ

func (s *Status) EncodeSSZ(buf []byte) ([]byte, error)

func (*Status) EncodingSizeSSZ

func (s *Status) EncodingSizeSSZ() int

type SyncAggregate

type SyncAggregate struct {
	SyncCommiteeBits      [64]byte
	SyncCommiteeSignature [96]byte
}

* SyncAggregate, Determines successfull committee, bits shows active participants, * and signature is the aggregate BLS signature of the committee.

func (*SyncAggregate) Clone

func (*SyncAggregate) Clone() clonable.Clonable

func (*SyncAggregate) DecodeSSZ

func (agg *SyncAggregate) DecodeSSZ(buf []byte) error

func (*SyncAggregate) DecodeSSZWithVersion

func (agg *SyncAggregate) DecodeSSZWithVersion(buf []byte, _ int) error

func (*SyncAggregate) EncodeSSZ

func (agg *SyncAggregate) EncodeSSZ(buf []byte) []byte

func (*SyncAggregate) EncodingSizeSSZ

func (agg *SyncAggregate) EncodingSizeSSZ() int

func (*SyncAggregate) HashSSZ

func (agg *SyncAggregate) HashSSZ() ([32]byte, error)

func (*SyncAggregate) Sum

func (agg *SyncAggregate) Sum() int

return sum of the committee bits

type SyncCommittee

type SyncCommittee struct {
	PubKeys            [][48]byte `ssz-size:"512,48"`
	AggregatePublicKey [48]byte   `ssz-size:"48"`
}

* Sync committe public keys and their aggregate public keys, we use array of pubKeys.

func (*SyncCommittee) Copy

func (s *SyncCommittee) Copy() *SyncCommittee

func (*SyncCommittee) DecodeSSZ

func (s *SyncCommittee) DecodeSSZ(buf []byte) error

DecodeSSZ ssz unmarshals the SyncCommittee object

func (*SyncCommittee) EncodeSSZ

func (s *SyncCommittee) EncodeSSZ(buf []byte) ([]byte, error)

MarshalSSZTo ssz marshals the SyncCommittee object to a target array

func (*SyncCommittee) EncodingSizeSSZ

func (s *SyncCommittee) EncodingSizeSSZ() (size int)

EncodingSizeSSZ returns the ssz encoded size in bytes for the SyncCommittee object

func (*SyncCommittee) Equal

func (s *SyncCommittee) Equal(s2 *SyncCommittee) bool

func (*SyncCommittee) HashSSZ

func (s *SyncCommittee) HashSSZ() ([32]byte, error)

HashTreeRootWith ssz hashes the SyncCommittee object with a hasher

type Validator

type Validator struct {
	PublicKey                  [48]byte
	WithdrawalCredentials      libcommon.Hash
	EffectiveBalance           uint64
	Slashed                    bool
	ActivationEligibilityEpoch uint64
	ActivationEpoch            uint64
	ExitEpoch                  uint64
	WithdrawableEpoch          uint64
	// This is all stuff used by phase0 state transition. It makes many operations faster.
	// Source attesters
	IsCurrentMatchingSourceAttester  bool
	IsPreviousMatchingSourceAttester bool
	// Target Attesters
	IsCurrentMatchingTargetAttester  bool
	IsPreviousMatchingTargetAttester bool
	// Head attesters
	IsCurrentMatchingHeadAttester  bool
	IsPreviousMatchingHeadAttester bool
	// MinInclusionDelay
	MinCurrentInclusionDelayAttestation  *PendingAttestation
	MinPreviousInclusionDelayAttestation *PendingAttestation
}

Validator, contains if we were on bellatrix/alteir/phase0 and transition epoch.

func (*Validator) Active

func (v *Validator) Active(epoch uint64) bool

Active returns if validator is active for given epoch

func (*Validator) Clone

func (*Validator) Clone() clonable.Clonable

func (*Validator) Copy

func (v *Validator) Copy() *Validator

func (*Validator) DecodeSSZ

func (v *Validator) DecodeSSZ(buf []byte) error

func (*Validator) DecodeSSZWithVersion

func (v *Validator) DecodeSSZWithVersion(buf []byte, _ int) error

func (*Validator) DutiesAttested

func (v *Validator) DutiesAttested() (attested, missed uint64)

DutiesAttested returns how many of its duties the validator attested and missed

func (*Validator) EncodeSSZ

func (v *Validator) EncodeSSZ(dst []byte) ([]byte, error)

func (*Validator) EncodingSizeSSZ

func (v *Validator) EncodingSizeSSZ() int

func (*Validator) HashSSZ

func (v *Validator) HashSSZ() ([32]byte, error)

func (*Validator) IsSlashable

func (v *Validator) IsSlashable(epoch uint64) bool

type VoluntaryExit

type VoluntaryExit struct {
	Epoch          uint64
	ValidatorIndex uint64
}

func (*VoluntaryExit) DecodeSSZ

func (e *VoluntaryExit) DecodeSSZ(buf []byte) error

func (*VoluntaryExit) EncodeSSZ

func (e *VoluntaryExit) EncodeSSZ(buf []byte) []byte

func (*VoluntaryExit) EncodingSizeSSZ

func (e *VoluntaryExit) EncodingSizeSSZ() int

func (*VoluntaryExit) HashSSZ

func (e *VoluntaryExit) HashSSZ() ([32]byte, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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