block

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// HeaderHashSize size of a block header hash in bytes.
	HeaderHashSize = 32
	// HeightSize size of a block height field in bytes.
	HeightSize = 8
)

Variables

View Source
var EmptyHash [32]byte

EmptyHash ...

Functions

This section is empty.

Types

type Block

type Block struct {
	Header *Header                     `json:"header"`
	Txs    []transactions.ContractCall `json:"transactions"`
}

Block defines a block on the Dusk blockchain.

func NewBlock

func NewBlock() *Block

NewBlock will return an empty Block with an empty BlockHeader.

func (*Block) AddTx

func (b *Block) AddTx(tx *transactions.Transaction)

AddTx will add a transaction to the block.

func (*Block) CalculateHash

func (b *Block) CalculateHash() ([]byte, error)

CalculateHash will calculate the block hash.

func (*Block) Clear

func (b *Block) Clear()

Clear will empty out all the block's fields.

func (Block) Copy added in v0.4.0

func (b Block) Copy() payload.Safe

Copy returns a deep copy of the Block safe to publish to multiple subscribers.

func (*Block) Equals

func (b *Block) Equals(other *Block) bool

Equals returns true if two blocks are equal.

func (Block) IsEmpty added in v0.4.0

func (b Block) IsEmpty() bool

IsEmpty tells us if a block is empty. We can check this easily, because an empty block will be created as `block.Block{}`, meaning that the header is always nil. This function basically checks the existence of the block header.

func (Block) IsZero added in v0.6.0

func (b Block) IsZero() bool

IsZero will return if Block has a zero-ed header.

func (*Block) SetPrevBlock

func (b *Block) SetPrevBlock(prevHeader *Header)

SetPrevBlock will set all the previous block hash field from a header.

func (*Block) TamperExecutedTransaction added in v0.5.0

func (b *Block) TamperExecutedTransaction(txid []byte, gasSpent uint64, txError *rusk.ExecutedTransaction_Error) error

TamperExecutedTransaction tamper gasSpent and txError of a transaction specified by txid.

func (Block) Tx added in v0.4.4

func (b Block) Tx(txid []byte) (transactions.ContractCall, error)

Tx returns transaction by id if exists.

type Certificate

type Certificate struct {
	StepOneBatchedSig []byte `json:"step-one-batched-sig"` // Batched BLS signature of the block reduction phase (33 bytes)
	StepTwoBatchedSig []byte `json:"step-two-batched-sig"`
	Step              uint8  `json:"step"`               // Step the agreement terminated at (1 byte)
	StepOneCommittee  uint64 `json:"step-one-committee"` // Binary representation of the committee members who voted in favor of this block (8 bytes)
	StepTwoCommittee  uint64 `json:"step-two-committee"`
}

Certificate defines a block certificate made as a result from the consensus.

func EmptyCertificate

func EmptyCertificate() *Certificate

EmptyCertificate returns an empty Certificate instance.

func (*Certificate) Copy added in v0.4.0

func (c *Certificate) Copy() *Certificate

Copy complies with message.Safe interface. It returns a deep copy of the message safe to publish to multiple subscribers.

func (*Certificate) Equals

func (c *Certificate) Equals(other *Certificate) bool

Equals returns true if both certificates are equal.

type Header struct {
	Version   uint8  `json:"version"`   // Block version byte
	Height    uint64 `json:"height"`    // Block height
	Timestamp int64  `json:"timestamp"` // Block timestamp
	GasLimit  uint64 `json:"gaslimit"`  // Block gas limit

	PrevBlockHash      []byte `json:"prev-hash"`  // Hash of previous block (32 bytes)
	Seed               []byte `json:"seed"`       // Marshaled BLS signature or hash of the previous block seed (32 bytes)
	GeneratorBlsPubkey []byte `json:"generator"`  // Generator BLS Public Key (96 bytes)
	StateHash          []byte `json:"state-hash"` // Root hash of the Rusk Contract Storage state

	Hash []byte `json:"hash"` // Hash of all previous fields

	*Certificate `json:"certificate"` // Block certificate
}

Header defines a block header on a Dusk block.

func NewHeader

func NewHeader() *Header

NewHeader creates a new Block Header zero-ed.

func (*Header) CalculateHash

func (b *Header) CalculateHash() ([]byte, error)

CalculateHash will calculate and return this block header's hash by encoding all the relevant fields and then hashing the result.

func (*Header) Copy added in v0.4.0

func (b *Header) Copy() *Header

Copy complies with message.Safe interface. It returns a deep copy of the message safe to publish to multiple subscribers.

func (*Header) Equals

func (b *Header) Equals(other *Header) bool

Equals returns true if headers are equal.

Jump to

Keyboard shortcuts

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