Documentation ¶
Overview ¶
Package api defines the Oasis genesis block.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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"` // Vault is the optional vault genesis state. Vault *vault.Genesis `json:"vault,omitempty"` // Consensus is the consensus genesis state. Consensus consensus.Genesis `json:"consensus"` // 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"` // contains filtered or unexported fields }
Document is a genesis document.
func (*Document) CanonicalJSON ¶ added in v0.2012.5
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 ¶
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 ¶
Hash returns the cryptographic hash of the encoded genesis document.
Calling this method will cause the computed hash to be cached so make sure that the document is not modified later.
func (*Document) SanityCheck ¶
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 ¶
WriteFileJSON writes the canonical form of genesis document into a file.