Documentation
¶
Overview ¶
Package block is a generated GoMock package.
Index ¶
- Constants
- Variables
- func RegisterBlockTypes(targetCodec linearcodec.Codec) error
- func RegisterGenesisType(val interface{}) error
- type AbortBlock
- type Block
- type CommitBlock
- type CommonBlock
- type MockBlock
- func (m *MockBlock) Bytes() []byte
- func (m *MockBlock) EXPECT() *MockBlockMockRecorder
- func (m *MockBlock) Height() uint64
- func (m *MockBlock) ID() ids.ID
- func (m *MockBlock) InitRuntime(rt *runtime.Runtime)
- func (m *MockBlock) Parent() ids.ID
- func (m *MockBlock) Txs() []*txs.Tx
- func (m *MockBlock) Visit(visitor Visitor) error
- type MockBlockMockRecorder
- func (mr *MockBlockMockRecorder) Bytes() *gomock.Call
- func (mr *MockBlockMockRecorder) Height() *gomock.Call
- func (mr *MockBlockMockRecorder) ID() *gomock.Call
- func (mr *MockBlockMockRecorder) InitRuntime(rt any) *gomock.Call
- func (mr *MockBlockMockRecorder) Parent() *gomock.Call
- func (mr *MockBlockMockRecorder) Txs() *gomock.Call
- func (mr *MockBlockMockRecorder) Visit(visitor any) *gomock.Call
- type ProposalBlock
- type RuntimeInitializable
- type StandardBlock
- type TimestampedBlock
- type Visitor
Constants ¶
const ( // CodecVersionV0 is the v1.23.x ("Apricot/Banff") wire layout. It is // retained as a READ-ONLY decoder so that pre-codec-v1 blocks on // disk continue to deserialize and so that v0-derived BlockIDs and // TxIDs remain stable. All write paths MUST use CodecVersionV1. CodecVersionV0 = txs.CodecVersionV0 // CodecVersionV1 is the current canonical block-codec wire layout. // Every block built by this binary is written at v1. CodecVersionV1 = txs.CodecVersionV1 // CodecVersion is the canonical write version. All Marshal call // sites in this package use CodecVersion so that any future bump of // the write target updates exactly one symbol. CodecVersion = CodecVersionV1 )
Variables ¶
var ( // Codec is the v1 write/read codec.Manager. It carries ONLY the v1 // slot map and so decodes only v1-prefixed bytes. v0 bytes must go // through ParseBytes (which routes to v0Codec for version 0). Codec codec.Manager // GenesisCodec is the v1 large-size codec.Manager. Same v1 slot map // as Codec but with an unbounded maximum size for genesis decode and // state-read fallback paths. GenesisCodec codec.Manager )
var ErrShortBytes = errors.New("block bytes too short for codec version prefix")
ErrShortBytes is returned when the input is shorter than the 2-byte codec-version prefix.
Functions ¶
func RegisterBlockTypes ¶ added in v1.26.35
func RegisterBlockTypes(targetCodec linearcodec.Codec) error
RegisterBlockTypes registers the canonical v1 block type IDs. There is exactly one type per block kind: ProposalBlock, AbortBlock, CommitBlock, StandardBlock. Tx types come from txs.RegisterTypes (which registers the v1 tx slot layout).
func RegisterGenesisType ¶ added in v1.16.56
func RegisterGenesisType(val interface{}) error
RegisterGenesisType registers a type with the GenesisCodec at the canonical write version (v1). This is used by other packages (e.g. state) to register types that are only ever encountered in genesis bytes. The v0 codec is closed to external registration — its slot map is frozen at the v1.23.x layout.
Types ¶
type AbortBlock ¶ added in v1.26.35
type AbortBlock struct {
Time uint64 `serialize:"true" json:"time"`
CommonBlock `serialize:"true"`
}
AbortBlock is the canonical P-Chain abort outcome of a ProposalBlock.
func NewAbortBlock ¶ added in v1.26.35
func (*AbortBlock) InitRuntime ¶ added in v1.26.35
func (*AbortBlock) InitRuntime(*runtime.Runtime)
func (*AbortBlock) Initialize ¶ added in v1.26.35
func (*AbortBlock) Initialize(context.Context) error
func (*AbortBlock) Timestamp ¶ added in v1.26.35
func (b *AbortBlock) Timestamp() time.Time
func (*AbortBlock) Txs ¶ added in v1.26.35
func (*AbortBlock) Txs() []*txs.Tx
func (*AbortBlock) Visit ¶ added in v1.26.35
func (b *AbortBlock) Visit(v Visitor) error
type Block ¶
type Block interface {
RuntimeInitializable
ID() ids.ID
Parent() ids.ID
Bytes() []byte
Height() uint64
// Txs returns list of transactions contained in the block
Txs() []*txs.Tx
// Visit calls [visitor] with this block's concrete type
Visit(visitor Visitor) error
// contains filtered or unexported methods
}
Block defines the common stateless interface for all blocks
func Parse ¶
Parse decodes a block byte stream produced by either the v0 (v1.23.x) or v1 (current) block codec. The codec.Manager argument selects the SIZE class — Codec (1 MiB max) or GenesisCodec (unbounded). The actual VERSION is taken from the 2-byte wire prefix and dispatched to the matching slot map.
Parse never re-marshals the input; BlockID = hash(b) verbatim and b is stashed on the returned block's CommonBlock. This is the byte-preserving path that keeps BlockIDs (and inner TxIDs) stable across the v0->v1 migration.
c must be one of block.Codec or block.GenesisCodec. The v0 codec is selected internally based on the size class of c. Other codecs are rejected with codec.ErrUnknownVersion.
type CommitBlock ¶ added in v1.26.35
type CommitBlock struct {
Time uint64 `serialize:"true" json:"time"`
CommonBlock `serialize:"true"`
}
CommitBlock is the canonical P-Chain commit outcome of a ProposalBlock.
func NewCommitBlock ¶ added in v1.26.35
func (*CommitBlock) InitRuntime ¶ added in v1.26.35
func (*CommitBlock) InitRuntime(*runtime.Runtime)
func (*CommitBlock) Initialize ¶ added in v1.26.35
func (*CommitBlock) Initialize(context.Context) error
func (*CommitBlock) Timestamp ¶ added in v1.26.35
func (b *CommitBlock) Timestamp() time.Time
func (*CommitBlock) Txs ¶ added in v1.26.35
func (*CommitBlock) Txs() []*txs.Tx
func (*CommitBlock) Visit ¶ added in v1.26.35
func (b *CommitBlock) Visit(v Visitor) error
type CommonBlock ¶
type CommonBlock struct {
// parent's ID
PrntID ids.ID `serialize:"true" json:"parentID"`
// This block's height. The genesis block is at height 0.
Hght uint64 `serialize:"true" json:"height"`
BlockID ids.ID `json:"id"`
// contains filtered or unexported fields
}
CommonBlock contains fields and methods common to all blocks in this VM.
func (*CommonBlock) Bytes ¶
func (b *CommonBlock) Bytes() []byte
func (*CommonBlock) Height ¶
func (b *CommonBlock) Height() uint64
func (*CommonBlock) ID ¶
func (b *CommonBlock) ID() ids.ID
func (*CommonBlock) Parent ¶
func (b *CommonBlock) Parent() ids.ID
type MockBlock ¶
type MockBlock struct {
// contains filtered or unexported fields
}
MockBlock is a mock of Block interface.
func NewMockBlock ¶
func NewMockBlock(ctrl *gomock.Controller) *MockBlock
NewMockBlock creates a new mock instance.
func (*MockBlock) EXPECT ¶
func (m *MockBlock) EXPECT() *MockBlockMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockBlock) InitRuntime ¶ added in v1.22.87
InitRuntime mocks base method.
type MockBlockMockRecorder ¶
type MockBlockMockRecorder struct {
// contains filtered or unexported fields
}
MockBlockMockRecorder is the mock recorder for MockBlock.
func (*MockBlockMockRecorder) Bytes ¶
func (mr *MockBlockMockRecorder) Bytes() *gomock.Call
Bytes indicates an expected call of Bytes.
func (*MockBlockMockRecorder) Height ¶
func (mr *MockBlockMockRecorder) Height() *gomock.Call
Height indicates an expected call of Height.
func (*MockBlockMockRecorder) ID ¶
func (mr *MockBlockMockRecorder) ID() *gomock.Call
ID indicates an expected call of ID.
func (*MockBlockMockRecorder) InitRuntime ¶ added in v1.22.87
func (mr *MockBlockMockRecorder) InitRuntime(rt any) *gomock.Call
InitRuntime indicates an expected call of InitRuntime.
func (*MockBlockMockRecorder) Parent ¶
func (mr *MockBlockMockRecorder) Parent() *gomock.Call
Parent indicates an expected call of Parent.
func (*MockBlockMockRecorder) Txs ¶
func (mr *MockBlockMockRecorder) Txs() *gomock.Call
Txs indicates an expected call of Txs.
type ProposalBlock ¶ added in v1.26.35
type ProposalBlock struct {
Time uint64 `serialize:"true" json:"time"`
Transactions []*txs.Tx `serialize:"true" json:"txs"`
CommonBlock `serialize:"true"`
Tx *txs.Tx `serialize:"true" json:"tx"`
}
ProposalBlock is the canonical P-Chain proposal block. It carries a per-block timestamp, a single proposal Tx, and a tail of decision Txs that commit atomically with the proposal outcome.
func NewProposalBlock ¶ added in v1.26.35
func (*ProposalBlock) InitRuntime ¶ added in v1.26.35
func (b *ProposalBlock) InitRuntime(rt *runtime.Runtime)
func (*ProposalBlock) Initialize ¶ added in v1.26.35
func (*ProposalBlock) Initialize(context.Context) error
func (*ProposalBlock) Timestamp ¶ added in v1.26.35
func (b *ProposalBlock) Timestamp() time.Time
func (*ProposalBlock) Txs ¶ added in v1.26.35
func (b *ProposalBlock) Txs() []*txs.Tx
func (*ProposalBlock) Visit ¶ added in v1.26.35
func (b *ProposalBlock) Visit(v Visitor) error
type RuntimeInitializable ¶ added in v1.22.87
RuntimeInitializable defines the interface for initializing context
type StandardBlock ¶ added in v1.26.35
type StandardBlock struct {
Time uint64 `serialize:"true" json:"time"`
CommonBlock `serialize:"true"`
Transactions []*txs.Tx `serialize:"true" json:"txs"`
}
StandardBlock is the canonical P-Chain standard block. It carries a per-block timestamp (advance-all-implicitly removed the separate AdvanceTimeTx flow) and an ordered list of decision txs.
func NewStandardBlock ¶ added in v1.26.35
func (*StandardBlock) InitRuntime ¶ added in v1.26.35
func (b *StandardBlock) InitRuntime(rt *runtime.Runtime)
func (*StandardBlock) Initialize ¶ added in v1.26.35
func (*StandardBlock) Initialize(context.Context) error
func (*StandardBlock) Timestamp ¶ added in v1.26.35
func (b *StandardBlock) Timestamp() time.Time
func (*StandardBlock) Txs ¶ added in v1.26.35
func (b *StandardBlock) Txs() []*txs.Tx
func (*StandardBlock) Visit ¶ added in v1.26.35
func (b *StandardBlock) Visit(v Visitor) error
type TimestampedBlock ¶ added in v1.26.35
type Visitor ¶
type Visitor interface {
AbortBlock(*AbortBlock) error
CommitBlock(*CommitBlock) error
ProposalBlock(*ProposalBlock) error
StandardBlock(*StandardBlock) error
}
Visitor dispatches by the canonical P-Chain block type. Under carries a timestamp and is one of the four canonical kinds.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package executor is a generated GoMock package.
|
Package executor is a generated GoMock package. |
|
executormock
Package executormock is a generated GoMock package.
|
Package executormock is a generated GoMock package. |
|
Package v0 defines the v1.23.x ("Apricot/Banff") P-Chain block layout.
|
Package v0 defines the v1.23.x ("Apricot/Banff") P-Chain block layout. |