Documentation
¶
Overview ¶
Package block contains Neo block definition.
This is one of the core structures of Neo blockchain.
Index ¶
- Constants
- Variables
- type Block
- func (b *Block) ComputeMerkleRoot() util.Uint256
- func (b *Block) DecodeBinary(br *io.BinReader)
- func (b *Block) EncodeBinary(bw *io.BinWriter)
- func (b *Block) EncodeTrimmed(w *io.BinWriter)
- func (b *Block) GetExpectedBlockSize() int
- func (b *Block) GetExpectedBlockSizeWithoutTransactions(txCount int) int
- func (b Block) MarshalJSON() ([]byte, error)
- func (b *Block) RebuildMerkleRoot()
- func (b *Block) ToStackItem() stackitem.Item
- func (b *Block) UnmarshalJSON(data []byte) error
- type Header
Constants ¶
const ( // MaxTransactionsPerBlock is the maximum number of transactions per block. MaxTransactionsPerBlock = math.MaxUint16 )
Variables ¶
var ErrMaxContentsPerBlock = errors.New("the number of contents exceeds the maximum number of contents per block")
ErrMaxContentsPerBlock is returned when the maximum number of contents per block is reached.
Functions ¶
This section is empty.
Types ¶
type Block ¶
type Block struct {
// The base of the block.
Header
// Transaction list.
Transactions []*transaction.Transaction
// True if this block is created from trimmed data.
Trimmed bool
}
Block represents one block in the chain.
func NewTrimmedFromReader ¶ added in v0.98.1
NewTrimmedFromReader returns a new block from trimmed data. This is commonly used to create a block from stored data. Blocks created from trimmed data will have their Trimmed field set to true.
func (*Block) ComputeMerkleRoot ¶ added in v0.92.0
ComputeMerkleRoot computes Merkle tree root hash based on actual block's data.
func (*Block) DecodeBinary ¶
DecodeBinary decodes the block from the given BinReader, implementing Serializable interface.
func (*Block) EncodeBinary ¶
EncodeBinary encodes the block to the given BinWriter, implementing Serializable interface.
func (*Block) EncodeTrimmed ¶ added in v0.98.2
EncodeTrimmed writes trimmed representation of the block data into w. Trimmed blocks do not store complete transactions, instead they only store their hashes.
func (*Block) GetExpectedBlockSize ¶ added in v0.94.0
GetExpectedBlockSize returns the expected block size which should be equal to io.GetVarSize(b).
func (*Block) GetExpectedBlockSizeWithoutTransactions ¶ added in v0.94.0
GetExpectedBlockSizeWithoutTransactions returns the expected block size without transactions size.
func (Block) MarshalJSON ¶ added in v0.75.0
MarshalJSON implements the json.Marshaler interface.
func (*Block) RebuildMerkleRoot ¶
func (b *Block) RebuildMerkleRoot()
RebuildMerkleRoot rebuilds the merkleroot of the block.
func (*Block) ToStackItem ¶ added in v0.99.1
ToStackItem converts Block to stackitem.Item.
func (*Block) UnmarshalJSON ¶ added in v0.75.0
UnmarshalJSON implements the json.Unmarshaler interface.
type Header ¶
type Header struct {
// Version of the block.
Version uint32
// hash of the previous block.
PrevHash util.Uint256
// Root hash of a transaction list.
MerkleRoot util.Uint256
// Timestamp is a millisecond-precision timestamp.
// The time stamp of each block must be later than the previous block's time stamp.
// Generally, the difference between two block's time stamps is about 15 seconds and imprecision is allowed.
// The height of the block must be exactly equal to the height of the previous block plus 1.
Timestamp uint64
// Nonce is block random number.
Nonce uint64
// index/height of the block
Index uint32
// Contract address of the next miner
NextConsensus util.Uint160
// Script used to validate the block
Script transaction.Witness
// StateRootEnabled specifies if the header contains state root.
StateRootEnabled bool
// PrevStateRoot is the state root of the previous block.
PrevStateRoot util.Uint256
// PrimaryIndex is the index of the primary consensus node for this block.
PrimaryIndex byte
// contains filtered or unexported fields
}
Header holds the base info of a block.
func (*Header) DecodeBinary ¶
DecodeBinary implements the Serializable interface.
func (*Header) EncodeBinary ¶
EncodeBinary implements the Serializable interface.
func (Header) MarshalJSON ¶ added in v0.94.0
MarshalJSON implements the json.Marshaler interface.
func (*Header) UnmarshalJSON ¶ added in v0.94.0
UnmarshalJSON implements the json.Unmarshaler interface.