Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrInvalidBodyType = errors.New("invalid body type")
ErrInvalidBodyType signals an invalid header pointer was provided
var ErrInvalidHeaderType = errors.New("invalid header type")
ErrInvalidHeaderType signals an invalid header pointer was provided
var ErrInvalidValue = errors.New("invalid value")
ErrInvalidValue signals that an invalid value has been provided such as NaN to an integer field
var ErrMiniBlockEmpty = errors.New("mini block is empty")
ErrMiniBlockEmpty signals that mini block is empty
var ErrNilAddressConverter = errors.New("nil address converter")
ErrNilAddressConverter signals that nil address converter was provided
var ErrNilBlockBody = errors.New("nil block body")
ErrNilBlockBody signals that block body is nil
var ErrNilBurnAddress = errors.New("nil burn address")
ErrNilBurnAddress signals that nil burn address was provided
var ErrNilCacher = errors.New("nil cacher")
ErrNilCacher signals that a nil cache has been provided
var ErrNilElrondAddress = errors.New("nil elrond address")
ErrNilElrondAddress signals that nil elrond address was provided
var ErrNilHeadersDataPool = errors.New("nil headers data pool")
ErrNilHeadersDataPool signals that a nil header pool has been provided
var ErrNilHeadersNoncesDataPool = errors.New("nil headers nonces cache")
ErrNilHeadersNoncesDataPool signals that a nil header - nonce cache
var ErrNilNodesCoordinator = errors.New("nil nodes coordinator")
ErrNilNodesCoordinator signals that nil shard coordinator was provided
var ErrNilShardCoordinator = errors.New("nil shard coordinator")
ErrNilShardCoordinator signals that nil shard coordinator was provided
var ErrWrongTypeAssertion = errors.New("wrong type assertion")
ErrWrongTypeAssertion signals that wrong type was provided
Functions ¶
This section is empty.
Types ¶
type BodyHandler ¶
type BodyHandler interface {
// IntegrityAndValidity checks the integrity and validity of the block
IntegrityAndValidity() error
// IsInterfaceNil returns true if there is no value under the interface
IsInterfaceNil() bool
}
BodyHandler interface for a block body
type CapnpHelper ¶ added in v1.0.3
type CapnpHelper interface {
// Save saves the serialized data of the implementer type into a stream through Capnp protocol
Save(w io.Writer) error
// Load loads the data from the stream into a go structure through Capnp protocol
Load(r io.Reader) error
}
CapnpHelper is an interface that defines methods needed for serializing and deserializing Capnp structures into Go structures and viceversa
type ChainHandler ¶
type ChainHandler interface {
GetGenesisHeader() HeaderHandler
SetGenesisHeader(gb HeaderHandler) error
GetGenesisHeaderHash() []byte
SetGenesisHeaderHash(hash []byte)
GetCurrentBlockHeader() HeaderHandler
SetCurrentBlockHeader(bh HeaderHandler) error
GetCurrentBlockHeaderHash() []byte
SetCurrentBlockHeaderHash(hash []byte)
GetCurrentBlockBody() BodyHandler
SetCurrentBlockBody(body BodyHandler) error
GetLocalHeight() int64
SetLocalHeight(height int64)
GetNetworkHeight() int64
SetNetworkHeight(height int64)
HasBadBlock(blockHash []byte) bool
PutBadBlock(blockHash []byte)
IsInterfaceNil() bool
}
ChainHandler is the interface defining the functionality a blockchain should implement
type ConsensusRewardData ¶
ConsensusRewardData holds the required data for rewarding validators in a specific round and epoch
type DBWriteCacher ¶
type DBWriteCacher interface {
Put(key, val []byte) error
Get(key []byte) ([]byte, error)
IsInterfaceNil() bool
}
DBWriteCacher is used to cache changes made to the trie, and only write to the database when it's needed
type HeaderHandler ¶
type HeaderHandler interface {
GetShardID() uint32
GetNonce() uint64
GetEpoch() uint32
GetRound() uint64
GetRootHash() []byte
GetValidatorStatsRootHash() []byte
GetPrevHash() []byte
GetPrevRandSeed() []byte
GetRandSeed() []byte
GetPubKeysBitmap() []byte
GetSignature() []byte
GetLeaderSignature() []byte
GetTimeStamp() uint64
GetTxCount() uint32
SetNonce(n uint64)
SetEpoch(e uint32)
SetRound(r uint64)
SetTimeStamp(ts uint64)
SetRootHash(rHash []byte)
SetValidatorStatsRootHash(rHash []byte)
SetPrevHash(pvHash []byte)
SetPrevRandSeed(pvRandSeed []byte)
SetRandSeed(randSeed []byte)
SetPubKeysBitmap(pkbm []byte)
SetSignature(sg []byte)
SetLeaderSignature(sg []byte)
SetTxCount(txCount uint32)
GetMiniBlockHeadersWithDst(destId uint32) map[string]uint32
IsInterfaceNil() bool
ItemsInBody() uint32
ItemsInHeader() uint32
Clone() HeaderHandler
}
HeaderHandler defines getters and setters for header data holder
type TransactionHandler ¶
type TransactionHandler interface {
IsInterfaceNil() bool
GetValue() *big.Int
GetNonce() uint64
GetData() string
GetRecvAddress() []byte
GetSndAddress() []byte
GetGasLimit() uint64
GetGasPrice() uint64
SetValue(*big.Int)
SetData(string)
SetRecvAddress([]byte)
SetSndAddress([]byte)
}
TransactionHandler defines the type of executable transaction
type Trie ¶
type Trie interface {
Get(key []byte) ([]byte, error)
Update(key, value []byte) error
Delete(key []byte) error
Root() ([]byte, error)
Prove(key []byte) ([][]byte, error)
VerifyProof(proofs [][]byte, key []byte) (bool, error)
Commit() error
Recreate(root []byte) (Trie, error)
String() string
DeepClone() (Trie, error)
IsInterfaceNil() bool
}
Trie is an interface for Merkle Trees implementations