Documentation
¶
Overview ¶
Package fork provides the `gnogenesis fork` subcommands for building and smoke-testing hardfork genesis files.
A hardfork genesis is built from:
- SOURCE CHAIN — provides historical state (genesis + tx history)
- NEW BINARY — the updated gnoland built from this repo
Source modes (auto-detected from --source):
http(s)://... RPC of a running or recently-halted node /path/to/dir local node data directory (must contain config/genesis.json) /path/to/file exported file: genesis.json (no txs) or .jsonl (txs) or .tar.gz
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type GenesisSource ¶
type GenesisSource interface {
// Description returns a human-readable source type label.
Description() string
// FetchGenesis returns the source chain's genesis document.
FetchGenesis(ctx context.Context) (*bft.GenesisDoc, error)
// Close releases any resources held by the source.
Close() error
}
GenesisSource provides the source chain's genesis document. Two implementations live alongside this file, picked via mutually-exclusive --source-genesis-* flags:
- rpcGenesisSource (--source-genesis-rpc <url>): source_genesis_rpc.go
- fileGenesisSource (--source-genesis-file <path>): source_genesis_file.go
Historical transactions are fetched separately via a TxsSource (see source_txs.go).
type TxsSource ¶
type TxsSource interface {
// Description returns a human-readable source type label.
Description() string
// LatestHeight returns the latest committed block height known to
// this source. Used to auto-detect halt height when --halt-height
// is not specified.
LatestHeight(ctx context.Context) (int64, error)
// FetchTxs fetches all transactions in [fromHeight, toHeight] with
// metadata (BlockHeight, Timestamp, ChainID populated). chainID is
// supplied by the caller (sourced from the GenesisSource) so that
// TxsSource implementations do not need to read genesis themselves.
// Progress is reported via io.
FetchTxs(ctx context.Context, chainID string, fromHeight, toHeight int64, io commands.IO) ([]gnoland.TxWithMetadata, error)
// Close releases any resources held by the source.
Close() error
}
TxsSource provides historical transactions and the latest committed height of a source chain. Three implementations live alongside this file, picked via mutually-exclusive --source-txs-* flags:
- rpcTxsSource (--source-txs-rpc <url>): source_txs_rpc.go
- jsonlFileTxsSource (--source-txs-jsonl-file PATH): source_txs_jsonl_file.go
- dataDirTxsSource (--source-txs-data-dir DIR): source_txs_data_dir.go
Genesis is fetched separately via a GenesisSource (see source_genesis.go).