Version: v0.2103.7 Latest Latest

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

Go to latest
Published: Dec 17, 2021 License: Apache-2.0 Imports: 15 Imported by: 6



Package api defines the Oasis genesis block.



This section is empty.


This section is empty.


This section is empty.


type Document

type Document struct {
	// Height is the block height at which the document was generated.
	Height int64 `json:"height"`
	// Time is the time the genesis block was constructed.
	Time time.Time `json:"genesis_time"`
	// ChainID is the ID of the chain.
	ChainID string `json:"chain_id"`
	// Registry is the registry genesis state.
	Registry registry.Genesis `json:"registry"`
	// RootHash is the roothash genesis state.
	RootHash roothash.Genesis `json:"roothash"`
	// Staking is the staking genesis state.
	Staking staking.Genesis `json:"staking"`
	// KeyManager is the key manager genesis state.
	KeyManager keymanager.Genesis `json:"keymanager"`
	// Scheduler is the scheduler genesis state.
	Scheduler scheduler.Genesis `json:"scheduler"`
	// Beacon is the beacon genesis state.
	Beacon beacon.Genesis `json:"beacon"`
	// Governance is the governance genesis state.
	Governance governance.Genesis `json:"governance"`
	// Consensus is the consensus genesis state.
	Consensus consensus.Genesis `json:"consensus"`
	// HaltEpoch is the epoch height at which the network will stop processing
	// any transactions and will halt.
	HaltEpoch beacon.EpochTime `json:"halt_epoch"`
	// Extra data is arbitrary extra data that is part of the
	// genesis block but is otherwise ignored by the protocol.
	ExtraData map[string][]byte `json:"extra_data"`

Document is a genesis document.

func (*Document) CanonicalJSON added in v0.2012.5

func (d *Document) CanonicalJSON() ([]byte, error)

CanonicalJSON returns the canonical form of the genesis document serialized into a file.

This is a pretty-printed JSON file with 2-space indents following Go encoding/json package's JSON marshalling rules with a newline at the end.

func (*Document) ChainContext

func (d *Document) ChainContext() string

ChainContext returns a string that can be used as a chain domain separation context. Changing this (or any data it is derived from) invalidates all signatures that use chain domain separation.

Currently this uses the hex-encoded cryptographic hash of the encoded genesis document.

func (*Document) Hash

func (d *Document) Hash() hash.Hash

Hash returns the cryptographic hash of the encoded genesis document.

func (*Document) SanityCheck

func (d *Document) SanityCheck() error

SanityCheck does basic sanity checking on the contents of the genesis document.

func (*Document) SetChainContext

func (d *Document) SetChainContext()

SetChainContext configures the global chain domain separation context.

This method can only be called once during the application's lifetime and will panic otherwise.

func (*Document) WriteFileJSON

func (d *Document) WriteFileJSON(filename string) error

WriteFileJSON writes the canonical form of genesis document into a file.

type Provider

type Provider interface {
	// GetGenesisDocument returns the genesis document.
	GetGenesisDocument() (*Document, error)

Provider is a genesis document provider.

Jump to

Keyboard shortcuts

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