stateutil

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Jul 21, 2021 License: GPL-3.0 Imports: 14 Imported by: 49

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddInMixin added in v0.3.5

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 added in v1.3.4

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 added in v1.3.4

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

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

func Eth1DatasEncKey added in v1.3.4

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 added in v1.3.4

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

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

func HandleByteArrays added in v1.3.5

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 added in v1.3.5

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 added in v0.3.9

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 added in v1.3.5

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

MerkleizeTrieLeaves merkleize the trie leaves.

func PendingAttEncKey added in v1.3.4

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

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

func PendingAttRootWithHasher added in v1.3.4

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

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

func RecomputeFromLayer added in v0.3.5

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 added in v0.3.5

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 added in v0.3.5

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 added in v0.3.5

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 Uint64ListRootWithRegistryLimit added in v1.3.5

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

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

func ValidatorEncKey added in v1.3.4

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 added in v1.3.4

func ValidatorRootWithHasher(hasher htrutils.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 added in v1.3.4

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 added in v1.3.4

func NewRef(refs uint) *Reference

NewRef initializes the Reference struct.

func (*Reference) AddRef added in v1.3.4

func (r *Reference) AddRef()

AddRef adds 1 to the reference number.

func (*Reference) MinusRef added in v1.3.4

func (r *Reference) MinusRef()

MinusRef subtracts 1 to the reference number.

func (*Reference) Refs added in v1.3.4

func (r *Reference) Refs() uint

Refs returns the reference number.

type ValidatorMapHandler added in v1.3.4

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 added in v1.3.4

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

NewValMapHandler returns a new validator map handler.

func (*ValidatorMapHandler) AddRef added in v1.3.4

func (v *ValidatorMapHandler) AddRef()

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

func (*ValidatorMapHandler) Copy added in v1.3.4

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

func (*ValidatorMapHandler) Get added in v1.3.4

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

Get the validator index using the corresponding public key.

func (*ValidatorMapHandler) IsNil added in v1.3.4

func (v *ValidatorMapHandler) IsNil() bool

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

func (*ValidatorMapHandler) Set added in v1.3.4

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