block

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2020 License: MIT Imports: 5 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

This section is empty.

Functions

This section is empty.

Types

type Block

type Block struct {
	Header *Header
	Txs    []transactions.Transaction
}

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) CalculateRoot

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

CalculateRoot will calculate and return the block merkle root hash.

func (*Block) Clear

func (b *Block) Clear()

Clear will empty out all the block's fields.

func (*Block) Equals

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

Equals returns true if two blocks are equal

func (*Block) SetPrevBlock

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

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

type Certificate

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

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) Equals

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

Equals returns true if both certificates are equal

type Header struct {
	Version   uint8  // Block version byte
	Height    uint64 // Block height
	Timestamp int64  // Block timestamp

	PrevBlockHash []byte // Hash of previous block (32 bytes)
	Seed          []byte // Marshaled BLS signature or hash of the previous block seed (32 bytes)
	TxRoot        []byte // Root hash of the merkle tree containing all txes (32 bytes)

	*Certificate        // Block certificate
	Hash         []byte // Hash of all previous fields
}

Header defines a block header on a Dusk block.

func NewHeader

func NewHeader() *Header

NewHeader creates a new Block Header

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) 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