Documentation
¶
Overview ¶
Package cluster contains models related to collection node cluster consensus.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Block ¶
Block represents a block in collection node cluster consensus. It contains a standard block header with a payload containing only a single collection.
func (Block) ID ¶
func (b Block) ID() flow.Identifier
ID returns the ID of the underlying block header.
func (*Block) SetPayload ¶
SetPayload sets the payload and payload hash.
type Payload ¶
type Payload struct {
// Collection is the collection being created.
Collection flow.Collection
// ReferenceBlockID is the ID of a reference block on the main chain. It
// is defined as the ID of the reference block with the lowest height
// from all transactions within the collection.
//
// This determines when the collection expires, using the same expiry rules
// as transactions. It is also used as the reference point for committee
// state (staking, etc.) when validating the containing block.
//
// The root block of a cluster chain has an empty reference block ID, as it
// is created in advance of its members (necessarily) being staked network
// members. It is invalid for any non-root block to have an empty reference
// block ID.
ReferenceBlockID flow.Identifier
}
Payload is the payload for blocks in collection node cluster consensus. It contains only a single collection.
func EmptyPayload ¶
func EmptyPayload(refID flow.Identifier) Payload
EmptyPayload returns a payload with an empty collection and the given reference block ID.
func PayloadFromTransactions ¶
func PayloadFromTransactions(refID flow.Identifier, transactions ...*flow.TransactionBody) Payload
PayloadFromTransactions creates a payload given a reference block ID and a list of transaction hashes.
func (Payload) Fingerprint ¶
type PendingBlock ¶
type PendingBlock struct {
OriginID flow.Identifier
Header *flow.Header
Payload *Payload
}
PendingBlock is a wrapper type representing a block that cannot yet be processed. The block header, payload, and sender ID are stored together while waiting for the block to become processable.