stateutil

package
v2.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2021 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddInMixin

func AddInMixin(root [32]byte, length uint64) ([32]byte, error)

AddInMixin describes a method from which a lenth mixin is added to the provided root.

func BlockHeaderRoot

func BlockHeaderRoot(header *ethpb.BeaconBlockHeader) ([32]byte, error)

BlockHeaderRoot computes the HashTreeRoot Merkleization of a BeaconBlockHeader struct according to the Ethereum Simple Serialize specification.

func Eth1DataEncKey

func Eth1DataEncKey(eth1Data *ethpb.Eth1Data) []byte

Eth1DataEncKey returns the encoded key in bytes of input `eth1Data`, the returned key bytes can be used for caching purposes.

func Eth1DataRootWithHasher

func Eth1DataRootWithHasher(hasher ssz.HashFn, eth1Data *ethpb.Eth1Data) ([32]byte, error)

Eth1DataRootWithHasher returns the hash tree root of input `eth1Data`.

func Eth1DatasEncKey

func Eth1DatasEncKey(eth1Datas []*ethpb.Eth1Data) ([32]byte, error)

Eth1DatasEncKey returns the encoded key in bytes of input `eth1Data`s, the returned key bytes can be used for caching purposes.

func Eth1DatasRoot

func Eth1DatasRoot(eth1Datas []*ethpb.Eth1Data) ([32]byte, error)

Eth1DatasRoot returns the hash tree root of input `eth1Datas`.

func HandleByteArrays

func HandleByteArrays(val [][]byte, indices []uint64, convertAll bool) ([][32]byte, error)

HandleByteArrays computes and returns byte arrays in a slice of root format.

func HandleValidatorSlice

func HandleValidatorSlice(val []*ethpb.Validator, indices []uint64, convertAll bool) ([][32]byte, error)

HandleValidatorSlice returns the validator indices in a slice of root format.

func Merkleize

func Merkleize(leaves [][]byte) [][][]byte

Merkleize 32-byte leaves into a Merkle trie for its adequate depth, returning the resulting layers of the trie based on the appropriate depth. This function pads the leaves to a length of 32.

func MerkleizeTrieLeaves

func MerkleizeTrieLeaves(layers [][][32]byte, hashLayer [][32]byte,
	hasher func([]byte) [32]byte) ([][][32]byte, [][32]byte)

MerkleizeTrieLeaves merkleize the trie leaves.

func ParticipationBitsRoot

func ParticipationBitsRoot(bits []byte) ([32]byte, error)

ParticipationBitsRoot computes the HashTreeRoot merkleization of participation roots.

func PendingAttEncKey

func PendingAttEncKey(att *ethpb.PendingAttestation) []byte

PendingAttEncKey returns the encoded key in bytes of input `pendingAttestation`, the returned key bytes can be used for caching purposes.

func PendingAttRootWithHasher

func PendingAttRootWithHasher(hasher ssz.HashFn, att *ethpb.PendingAttestation) ([32]byte, error)

PendingAttRootWithHasher describes a method from which the hash tree root of a pending attestation is returned.

func RecomputeFromLayer

func RecomputeFromLayer(changedLeaves [][32]byte, changedIdx []uint64, layer [][]*[32]byte) ([32]byte, [][]*[32]byte, error)

RecomputeFromLayer recomputes specific branches of a fixed sized trie depending on the provided changed indexes.

func RecomputeFromLayerVariable

func RecomputeFromLayerVariable(changedLeaves [][32]byte, changedIdx []uint64, layer [][]*[32]byte) ([32]byte, [][]*[32]byte, error)

RecomputeFromLayerVariable recomputes specific branches of a variable sized trie depending on the provided changed indexes.

func ReturnTrieLayer

func ReturnTrieLayer(elements [][32]byte, length uint64) [][]*[32]byte

ReturnTrieLayer returns the representation of a merkle trie when provided with the elements of a fixed sized trie and the corresponding depth of it.

func ReturnTrieLayerVariable

func ReturnTrieLayerVariable(elements [][32]byte, length uint64) [][]*[32]byte

ReturnTrieLayerVariable returns the representation of a merkle trie when provided with the elements of a variable sized trie and the corresponding depth of it.

func SyncCommitteeRoot

func SyncCommitteeRoot(committee *ethpb.SyncCommittee) ([32]byte, error)

SyncCommitteeRoot computes the HashTreeRoot Merkleization of a commitee root. a SyncCommitteeRoot struct according to the eth2 Simple Serialize specification.

func Uint64ListRootWithRegistryLimit

func Uint64ListRootWithRegistryLimit(balances []uint64) ([32]byte, error)

Uint64ListRootWithRegistryLimit computes the HashTreeRoot Merkleization of a list of uint64 and mixed with registry limit.

func ValidatorEncKey

func ValidatorEncKey(validator *ethpb.Validator) []byte

ValidatorEncKey returns the encoded key in bytes of input `validator`, the returned key bytes can be used for caching purposes.

func ValidatorRootWithHasher

func ValidatorRootWithHasher(hasher ssz.HashFn, validator *ethpb.Validator) ([32]byte, error)

ValidatorRootWithHasher describes a method from which the hash tree root of a validator is returned.

Types

type Reference

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

Reference structs are shared across BeaconState copies to understand when the state must use copy-on-write for shared fields or may modify a field in place when it holds the only reference to the field value. References are tracked in a map of fieldIndex -> *reference. Whenever a state releases their reference to the field value, they must decrement the refs. Likewise whenever a copy is performed then the state must increment the refs counter.

func NewRef

func NewRef(refs uint) *Reference

NewRef initializes the Reference struct.

func (*Reference) AddRef

func (r *Reference) AddRef()

AddRef adds 1 to the reference number.

func (*Reference) MinusRef

func (r *Reference) MinusRef()

MinusRef subtracts 1 to the reference number.

func (*Reference) Refs

func (r *Reference) Refs() uint

Refs returns the reference number.

type ValidatorMapHandler

type ValidatorMapHandler struct {
	*sync.RWMutex
	// contains filtered or unexported fields
}

ValidatorMapHandler is a container to hold the map and a reference tracker for how many states shared this.

func NewValMapHandler

func NewValMapHandler(vals []*ethpb.Validator) *ValidatorMapHandler

NewValMapHandler returns a new validator map handler.

func (*ValidatorMapHandler) AddRef

func (v *ValidatorMapHandler) AddRef()

AddRef copies the whole map and returns a map handler with the copied map.

func (*ValidatorMapHandler) Copy

Copy the whole map and returns a map handler with the copied map.

func (*ValidatorMapHandler) Get

func (v *ValidatorMapHandler) Get(key [48]byte) (types.ValidatorIndex, bool)

Get the validator index using the corresponding public key.

func (*ValidatorMapHandler) IsNil

func (v *ValidatorMapHandler) IsNil() bool

IsNil returns true if the underlying validator index map is nil.

func (*ValidatorMapHandler) Set

func (v *ValidatorMapHandler) Set(key [48]byte, index types.ValidatorIndex)

Set the validator index using the corresponding public key.

Jump to

Keyboard shortcuts

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