Documentation
¶
Index ¶
- Constants
- func GetConsAddressBytesFromPubKey(data []byte) []byte
- type Address
- type Block
- type BlockData
- type BlockId
- type BlockParams
- type Commit
- type Consensus
- type ConsensusParams
- type Data
- type Event
- type EventAttribute
- type EvidenceParams
- type Header
- type Hex
- type Level
- type PubKey
- type ResponseDeliverTx
- type ResultBlock
- type ResultBlockResults
- type ValidatorParams
- type ValidatorUpdate
- type VersionParams
Constants ¶
const ( AddressPrefixCelestia = "celestia" AddressPrefixValoper = "celestiavaloper" AddressPrefixValCons = "celestiavalcons" )
celestia prefixes
Variables ¶
This section is empty.
Functions ¶
func GetConsAddressBytesFromPubKey ¶ added in v1.6.1
Types ¶
type Address ¶
type Address string
func NewAddressFromBytes ¶ added in v1.3.1
func NewConsAddressFromBytes ¶ added in v1.6.0
func NewValoperAddressFromBytes ¶ added in v1.6.1
type Block ¶
type Block struct {
Header `json:"header"`
Data `json:"data"`
// Evidence types.EvidenceData `json:"evidence"`
LastCommit *Commit `json:"last_commit"`
}
Block defines the atomic unit of a CometBFT blockchain.
type BlockData ¶
type BlockData struct {
ResultBlock
ResultBlockResults
}
type BlockParams ¶
type BlockParams struct {
// Note: must be greater than 0
MaxBytes int64 `json:"max_bytes,omitempty,string" protobuf:"varint,1,opt,name=max_bytes,json=maxBytes,proto3"`
// Note: must be greater or equal to -1
MaxGas int64 `json:"max_gas,omitempty,string" protobuf:"varint,2,opt,name=max_gas,json=maxGas,proto3"`
}
BlockParams contains limits on the block size.
type Consensus ¶
type Consensus struct {
Block uint64 `json:"block,omitempty,string" protobuf:"varint,1,opt,name=block,proto3"`
App uint64 `json:"app,omitempty,string" protobuf:"varint,2,opt,name=app,proto3"`
}
Consensus captures the consensus rules for processing a block in the blockchain, including all blockchain data structures and the rules of the application's state transition machine.
type ConsensusParams ¶
type ConsensusParams struct {
Block *BlockParams `json:"block" protobuf:"bytes,1,opt,name=block,proto3"`
Evidence *EvidenceParams `json:"evidence" protobuf:"bytes,2,opt,name=evidence,proto3"`
Validator *ValidatorParams `json:"validator" protobuf:"bytes,3,opt,name=validator,proto3"`
Version *VersionParams `json:"version" protobuf:"bytes,4,opt,name=version,proto3"`
}
ConsensusParams contains all consensus-relevant parameters that can be adjusted by the abci app
type Data ¶
type Data struct {
// Txs that will be applied by state @ block.Height+1.
// NOTE: not all txs here are valid. We're just agreeing on the order first.
// This means that block.AppHash does not include these txs.
Txs types.Txs `json:"txs"`
// SquareSize is the size of the square after splitting all the block data
// into shares. The erasure data is discarded after generation, and keeping this
// value avoids unnecessarily regenerating all the shares when returning
// proofs that some element was included in the block
SquareSize uint64 `json:"square_size,string"`
}
Data contains all the available Data of the block. Data with reserved namespaces (Txs, IntermediateStateRoots, Evidence) and Celestia application-specific Blobs.
type Event ¶
type Event struct {
Type string `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,proto3"`
Attributes []EventAttribute `json:"attributes,omitempty" protobuf:"bytes,2,rep,name=attributes,proto3"`
}
Event allows application developers to attach additional information to ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. Later transactions may be queried using these events.
type EventAttribute ¶
type EventAttribute struct {
Key []byte `json:"key,omitempty" protobuf:"bytes,1,opt,name=key,proto3"`
Value []byte `json:"value,omitempty" protobuf:"bytes,2,opt,name=value,proto3"`
Index bool `json:"index,omitempty" protobuf:"varint,3,opt,name=index,proto3"`
}
EventAttribute is a single key-value pair, associated with an event.
type EvidenceParams ¶
type EvidenceParams struct {
// Max age of evidence, in blocks.
//
// The basic formula for calculating this is: MaxAgeDuration / {average block
// time}.
MaxAgeNumBlocks int64 `json:"max_age_num_blocks,omitempty,string" protobuf:"varint,1,opt,name=max_age_num_blocks,json=maxAgeNumBlocks,proto3"`
// Max age of evidence, in time.
//
// It should correspond with an app's "unbonding period" or other similar
// mechanism for handling [Nothing-At-Stake
// attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed).
MaxAgeDuration time.Duration `json:"max_age_duration,string" protobuf:"bytes,2,opt,name=max_age_duration,json=maxAgeDuration,proto3,stdduration"`
// This sets the maximum size of total evidence in bytes that can be committed in a single block.
// And should fall comfortably under the max block bytes.
// Default is 1048576 or 1MB
MaxBytes int64 `json:"max_bytes,omitempty,string" protobuf:"varint,3,opt,name=max_bytes,json=maxBytes,proto3"`
}
EvidenceParams determine how we handle evidence of malfeasance.
type Header ¶
type Header struct {
// basic block info
Version Consensus `json:"version"`
ChainID string `json:"chain_id"`
Height int64 `json:"height,string"`
Time time.Time `json:"time"`
// prev block info
LastBlockID BlockId `json:"last_block_id"`
// hashes of block data
LastCommitHash Hex `json:"last_commit_hash"` // commit from validators from the last block
DataHash Hex `json:"data_hash"` // transactions
// hashes from the app output from the prev block
ValidatorsHash Hex `json:"validators_hash"` // validators for the current block
NextValidatorsHash Hex `json:"next_validators_hash"` // validators for the next block
ConsensusHash Hex `json:"consensus_hash"` // consensus params for current block
AppHash Hex `json:"app_hash"` // state after txs from the previous block
// root hash of all results from the txs from the previous block
// see `deterministicResponseDeliverTx` to understand which parts of a tx are hashed into here
LastResultsHash Hex `json:"last_results_hash"`
// consensus info
EvidenceHash Hex `json:"evidence_hash"` // evidence included in the block
ProposerAddress Hex `json:"proposer_address"` // original proposer of the block
}
Header defines the structure of a CometBFT block header.
type Hex ¶
type Hex []byte
func HexFromString ¶
func (Hex) MarshalJSON ¶
func (*Hex) UnmarshalJSON ¶
type ResponseDeliverTx ¶
type ResponseDeliverTx struct {
Code uint32 `json:"code,omitempty" protobuf:"varint,1,opt,name=code,proto3"`
Data json.RawMessage `json:"data,omitempty" protobuf:"bytes,2,opt,name=data,proto3"`
Log string `json:"log,omitempty" protobuf:"bytes,3,opt,name=log,proto3"`
Info string `json:"info,omitempty" protobuf:"bytes,4,opt,name=info,proto3"`
GasWanted int64 `json:"gas_wanted,omitempty,string" protobuf:"varint,5,opt,name=gas_wanted,proto3"`
GasUsed int64 `json:"gas_used,omitempty,string" protobuf:"varint,6,opt,name=gas_used,proto3"`
Events []Event `json:"events,omitempty" protobuf:"bytes,7,rep,name=events,proto3"`
Codespace string `json:"codespace,omitempty" protobuf:"bytes,8,opt,name=codespace,proto3"`
}
func (*ResponseDeliverTx) IsFailed ¶
func (tx *ResponseDeliverTx) IsFailed() bool
type ResultBlock ¶
ResultBlock is a single block (with meta)
type ResultBlockResults ¶
type ResultBlockResults struct {
Height Level `json:"height,string"`
TxsResults []*ResponseDeliverTx `json:"txs_results"`
BeginBlockEvents []Event `json:"begin_block_events"`
EndBlockEvents []Event `json:"end_block_events"`
ValidatorUpdates []ValidatorUpdate `json:"validator_updates"`
ConsensusParamUpdates *ConsensusParams `json:"consensus_param_updates"`
}
ResultBlockResults is an ABCI results from a block origin: github.com/celestiaorg/celestia-core@v1.26.2-tm-v0.34.28/rpc/core/types/responses.go
type ValidatorParams ¶
type ValidatorParams struct {
PubKeyTypes []string `json:"pub_key_types,omitempty" protobuf:"bytes,1,rep,name=pub_key_types,json=pubKeyTypes,proto3"`
}
ValidatorParams restrict the public key types validators can use. NOTE: uses ABCI pubkey naming, not Amino names.
type ValidatorUpdate ¶
type ValidatorUpdate struct {
PubKey PubKey `json:"pub_key"`
Power *int64 `json:"power,omitempty,string"`
}
ValidatorUpdate
type VersionParams ¶
type VersionParams struct {
AppVersion uint64 `json:"app_version,omitempty,string" protobuf:"varint,1,opt,name=app_version,json=appVersion,proto3"`
}
VersionParams contains the ABCI application version.