ibc/lightclients

Table of Contents

ibc/lightclients/solomachine/v2/solomachine.proto

Top

ChannelStateData

ChannelStateData returns the SignBytes data for channel state

verification.

FieldTypeLabelDescription
path bytes

channel ibc.core.channel.v1.Channel

ClientState

ClientState defines a solo machine client that tracks the current consensus

state and if the client is frozen.

FieldTypeLabelDescription
sequence uint64

latest sequence of the client state

is_frozen bool

frozen sequence of the solo machine

consensus_state ConsensusState

allow_update_after_proposal bool

when set to true, will allow governance to update a solo machine client. The client will be unfrozen if it is frozen.

ClientStateData

ClientStateData returns the SignBytes data for client state verification.

FieldTypeLabelDescription
path bytes

client_state google.protobuf.Any

ConnectionStateData

ConnectionStateData returns the SignBytes data for connection state

verification.

FieldTypeLabelDescription
path bytes

connection ibc.core.connection.v1.ConnectionEnd

ConsensusState

ConsensusState defines a solo machine consensus state. The sequence of a

consensus state is contained in the "height" key used in storing the

consensus state.

FieldTypeLabelDescription
public_key google.protobuf.Any

public key of the solo machine

diversifier string

diversifier allows the same public key to be re-used across different solo machine clients (potentially on different chains) without being considered misbehaviour.

timestamp uint64

ConsensusStateData

ConsensusStateData returns the SignBytes data for consensus state

verification.

FieldTypeLabelDescription
path bytes

consensus_state google.protobuf.Any

Header

Header defines a solo machine consensus header

FieldTypeLabelDescription
sequence uint64

sequence to update solo machine public key at

timestamp uint64

signature bytes

new_public_key google.protobuf.Any

new_diversifier string

HeaderData

HeaderData returns the SignBytes data for update verification.

FieldTypeLabelDescription
new_pub_key google.protobuf.Any

header public key

new_diversifier string

header diversifier

Misbehaviour

Misbehaviour defines misbehaviour for a solo machine which consists

of a sequence and two signatures over different messages at that sequence.

FieldTypeLabelDescription
client_id string

sequence uint64

signature_one SignatureAndData

signature_two SignatureAndData

NextSequenceRecvData

NextSequenceRecvData returns the SignBytes data for verification of the next

sequence to be received.

FieldTypeLabelDescription
path bytes

next_seq_recv uint64

PacketAcknowledgementData

PacketAcknowledgementData returns the SignBytes data for acknowledgement

verification.

FieldTypeLabelDescription
path bytes

acknowledgement bytes

PacketCommitmentData

PacketCommitmentData returns the SignBytes data for packet commitment

verification.

FieldTypeLabelDescription
path bytes

commitment bytes

PacketReceiptAbsenceData

PacketReceiptAbsenceData returns the SignBytes data for

packet receipt absence verification.

FieldTypeLabelDescription
path bytes

SignBytes

SignBytes defines the signed bytes used for signature verification.

FieldTypeLabelDescription
sequence uint64

timestamp uint64

diversifier string

data_type DataType

type of the data used

data bytes

marshaled data

SignatureAndData

SignatureAndData contains a signature and the data signed over to create that

signature.

FieldTypeLabelDescription
signature bytes

data_type DataType

data bytes

timestamp uint64

TimestampedSignatureData

TimestampedSignatureData contains the signature data and the timestamp of the

signature.

FieldTypeLabelDescription
signature_data bytes

timestamp uint64

DataType

DataType defines the type of solo machine proof being created. This is done

to preserve uniqueness of different data sign byte encodings.

NameNumberDescription
DATA_TYPE_UNINITIALIZED_UNSPECIFIED 0

Default State

DATA_TYPE_CLIENT_STATE 1

Data type for client state verification

DATA_TYPE_CONSENSUS_STATE 2

Data type for consensus state verification

DATA_TYPE_CONNECTION_STATE 3

Data type for connection state verification

DATA_TYPE_CHANNEL_STATE 4

Data type for channel state verification

DATA_TYPE_PACKET_COMMITMENT 5

Data type for packet commitment verification

DATA_TYPE_PACKET_ACKNOWLEDGEMENT 6

Data type for packet acknowledgement verification

DATA_TYPE_PACKET_RECEIPT_ABSENCE 7

Data type for packet receipt absence verification

DATA_TYPE_NEXT_SEQUENCE_RECV 8

Data type for next sequence recv verification

DATA_TYPE_HEADER 9

Data type for header verification

ibc/lightclients/solomachine/v1/solomachine.proto

Top

ChannelStateData

ChannelStateData returns the SignBytes data for channel state

verification.

FieldTypeLabelDescription
path bytes

channel ibc.core.channel.v1.Channel

ClientState

ClientState defines a solo machine client that tracks the current consensus

state and if the client is frozen.

FieldTypeLabelDescription
sequence uint64

latest sequence of the client state

frozen_sequence uint64

frozen sequence of the solo machine

consensus_state ConsensusState

allow_update_after_proposal bool

when set to true, will allow governance to update a solo machine client. The client will be unfrozen if it is frozen.

ClientStateData

ClientStateData returns the SignBytes data for client state verification.

FieldTypeLabelDescription
path bytes

client_state google.protobuf.Any

ConnectionStateData

ConnectionStateData returns the SignBytes data for connection state

verification.

FieldTypeLabelDescription
path bytes

connection ibc.core.connection.v1.ConnectionEnd

ConsensusState

ConsensusState defines a solo machine consensus state. The sequence of a

consensus state is contained in the "height" key used in storing the

consensus state.

FieldTypeLabelDescription
public_key google.protobuf.Any

public key of the solo machine

diversifier string

diversifier allows the same public key to be re-used across different solo machine clients (potentially on different chains) without being considered misbehaviour.

timestamp uint64

ConsensusStateData

ConsensusStateData returns the SignBytes data for consensus state

verification.

FieldTypeLabelDescription
path bytes

consensus_state google.protobuf.Any

Header

Header defines a solo machine consensus header

FieldTypeLabelDescription
sequence uint64

sequence to update solo machine public key at

timestamp uint64

signature bytes

new_public_key google.protobuf.Any

new_diversifier string

HeaderData

HeaderData returns the SignBytes data for update verification.

FieldTypeLabelDescription
new_pub_key google.protobuf.Any

header public key

new_diversifier string

header diversifier

Misbehaviour

Misbehaviour defines misbehaviour for a solo machine which consists

of a sequence and two signatures over different messages at that sequence.

FieldTypeLabelDescription
client_id string

sequence uint64

signature_one SignatureAndData

signature_two SignatureAndData

NextSequenceRecvData

NextSequenceRecvData returns the SignBytes data for verification of the next

sequence to be received.

FieldTypeLabelDescription
path bytes

next_seq_recv uint64

PacketAcknowledgementData

PacketAcknowledgementData returns the SignBytes data for acknowledgement

verification.

FieldTypeLabelDescription
path bytes

acknowledgement bytes

PacketCommitmentData

PacketCommitmentData returns the SignBytes data for packet commitment

verification.

FieldTypeLabelDescription
path bytes

commitment bytes

PacketReceiptAbsenceData

PacketReceiptAbsenceData returns the SignBytes data for

packet receipt absence verification.

FieldTypeLabelDescription
path bytes

SignBytes

SignBytes defines the signed bytes used for signature verification.

FieldTypeLabelDescription
sequence uint64

timestamp uint64

diversifier string

data_type DataType

type of the data used

data bytes

marshaled data

SignatureAndData

SignatureAndData contains a signature and the data signed over to create that

signature.

FieldTypeLabelDescription
signature bytes

data_type DataType

data bytes

timestamp uint64

TimestampedSignatureData

TimestampedSignatureData contains the signature data and the timestamp of the

signature.

FieldTypeLabelDescription
signature_data bytes

timestamp uint64

DataType

DataType defines the type of solo machine proof being created. This is done

to preserve uniqueness of different data sign byte encodings.

NameNumberDescription
DATA_TYPE_UNINITIALIZED_UNSPECIFIED 0

Default State

DATA_TYPE_CLIENT_STATE 1

Data type for client state verification

DATA_TYPE_CONSENSUS_STATE 2

Data type for consensus state verification

DATA_TYPE_CONNECTION_STATE 3

Data type for connection state verification

DATA_TYPE_CHANNEL_STATE 4

Data type for channel state verification

DATA_TYPE_PACKET_COMMITMENT 5

Data type for packet commitment verification

DATA_TYPE_PACKET_ACKNOWLEDGEMENT 6

Data type for packet acknowledgement verification

DATA_TYPE_PACKET_RECEIPT_ABSENCE 7

Data type for packet receipt absence verification

DATA_TYPE_NEXT_SEQUENCE_RECV 8

Data type for next sequence recv verification

DATA_TYPE_HEADER 9

Data type for header verification

ibc/lightclients/localhost/v1/localhost.proto

Top

ClientState

ClientState defines a loopback (localhost) client. It requires (read-only)

access to keys outside the client prefix.

FieldTypeLabelDescription
chain_id string

self chain ID

height ibc.core.client.v1.Height

self latest block height

ibc/lightclients/tendermint/v1/tendermint.proto

Top

ClientState

ClientState from Tendermint tracks the current validator set, latest height,

and a possible frozen height.

FieldTypeLabelDescription
chain_id string

trust_level Fraction

trusting_period google.protobuf.Duration

duration of the period since the LastestTimestamp during which the submitted headers are valid for upgrade

unbonding_period google.protobuf.Duration

duration of the staking unbonding period

max_clock_drift google.protobuf.Duration

defines how much new (untrusted) header's Time can drift into the future.

frozen_height ibc.core.client.v1.Height

Block height when the client was frozen due to a misbehaviour

latest_height ibc.core.client.v1.Height

Latest height the client was updated to

proof_specs ics23.ProofSpec repeated

Proof specifications used in verifying counterparty state

upgrade_path string repeated

Path at which next upgraded client will be committed. Each element corresponds to the key for a single CommitmentProof in the chained proof. NOTE: ClientState must stored under `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using the default upgrade module, upgrade_path should be []string{"upgrade", "upgradedIBCState"}`

allow_update_after_expiry bool

This flag, when set to true, will allow governance to recover a client which has expired

allow_update_after_misbehaviour bool

This flag, when set to true, will allow governance to unfreeze a client whose chain has experienced a misbehaviour event

ConsensusState

ConsensusState defines the consensus state from Tendermint.

FieldTypeLabelDescription
timestamp google.protobuf.Timestamp

timestamp that corresponds to the block height in which the ConsensusState was stored.

root ibc.core.commitment.v1.MerkleRoot

commitment root (i.e app hash)

next_validators_hash bytes

Fraction

Fraction defines the protobuf message type for tmmath.Fraction that only

supports positive values.

FieldTypeLabelDescription
numerator uint64

denominator uint64

Header

Header defines the Tendermint client consensus Header.

It encapsulates all the information necessary to update from a trusted

Tendermint ConsensusState. The inclusion of TrustedHeight and

TrustedValidators allows this update to process correctly, so long as the

ConsensusState for the TrustedHeight exists, this removes race conditions

among relayers The SignedHeader and ValidatorSet are the new untrusted update

fields for the client. The TrustedHeight is the height of a stored

ConsensusState on the client that will be used to verify the new untrusted

header. The Trusted ConsensusState must be within the unbonding period of

current time in order to correctly verify, and the TrustedValidators must

hash to TrustedConsensusState.NextValidatorsHash since that is the last

trusted validator set at the TrustedHeight.

FieldTypeLabelDescription
signed_header tendermint.types.SignedHeader

validator_set tendermint.types.ValidatorSet

trusted_height ibc.core.client.v1.Height

trusted_validators tendermint.types.ValidatorSet

Misbehaviour

Misbehaviour is a wrapper over two conflicting Headers

that implements Misbehaviour interface expected by ICS-02

FieldTypeLabelDescription
client_id string

header_1 Header

header_2 Header

Scalar Value Types

.proto Type Notes Python Type
double float
float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int/long
uint32 Uses variable-length encoding. int/long
uint64 Uses variable-length encoding. int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. int/long
sfixed32 Always four bytes. int
sfixed64 Always eight bytes. int/long
bool boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. str/unicode
bytes May contain any arbitrary sequence of bytes. str