ibc/lightclients
Table of Contents
-
ibc/lightclients/solomachine/v2/solomachine.proto
- MChannelStateData
- MClientState
- MClientStateData
- MConnectionStateData
- MConsensusState
- MConsensusStateData
- MHeader
- MHeaderData
- MMisbehaviour
- MNextSequenceRecvData
- MPacketAcknowledgementData
- MPacketCommitmentData
- MPacketReceiptAbsenceData
- MSignBytes
- MSignatureAndData
- MTimestampedSignatureData
- EDataType
-
ibc/lightclients/solomachine/v1/solomachine.proto
- MChannelStateData
- MClientState
- MClientStateData
- MConnectionStateData
- MConsensusState
- MConsensusStateData
- MHeader
- MHeaderData
- MMisbehaviour
- MNextSequenceRecvData
- MPacketAcknowledgementData
- MPacketCommitmentData
- MPacketReceiptAbsenceData
- MSignBytes
- MSignatureAndData
- MTimestampedSignatureData
- EDataType
- ibc/lightclients/localhost/v1/localhost.proto
- ibc/lightclients/tendermint/v1/tendermint.proto
- Scalar Value Types
ibc/lightclients/solomachine/v2/solomachine.proto
TopChannelStateData
ChannelStateData returns the SignBytes data for channel state
verification.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
path | bytes |
|
|
client_state | google.protobuf.Any |
|
ConnectionStateData
ConnectionStateData returns the SignBytes data for connection state
verification.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
path | bytes |
|
|
consensus_state | google.protobuf.Any |
|
Header
Header defines a solo machine consensus header
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
path | bytes |
|
|
next_seq_recv | uint64 |
|
PacketAcknowledgementData
PacketAcknowledgementData returns the SignBytes data for acknowledgement
verification.
Field | Type | Label | Description |
path | bytes |
|
|
acknowledgement | bytes |
|
PacketCommitmentData
PacketCommitmentData returns the SignBytes data for packet commitment
verification.
Field | Type | Label | Description |
path | bytes |
|
|
commitment | bytes |
|
PacketReceiptAbsenceData
PacketReceiptAbsenceData returns the SignBytes data for
packet receipt absence verification.
Field | Type | Label | Description |
path | bytes |
|
SignBytes
SignBytes defines the signed bytes used for signature verification.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
signature | bytes |
|
|
data_type | DataType |
|
|
data | bytes |
|
|
timestamp | uint64 |
|
TimestampedSignatureData
TimestampedSignatureData contains the signature data and the timestamp of the
signature.
Field | Type | Label | Description |
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.
Name | Number | Description |
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
TopChannelStateData
ChannelStateData returns the SignBytes data for channel state
verification.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
path | bytes |
|
|
client_state | google.protobuf.Any |
|
ConnectionStateData
ConnectionStateData returns the SignBytes data for connection state
verification.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
path | bytes |
|
|
consensus_state | google.protobuf.Any |
|
Header
Header defines a solo machine consensus header
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
path | bytes |
|
|
next_seq_recv | uint64 |
|
PacketAcknowledgementData
PacketAcknowledgementData returns the SignBytes data for acknowledgement
verification.
Field | Type | Label | Description |
path | bytes |
|
|
acknowledgement | bytes |
|
PacketCommitmentData
PacketCommitmentData returns the SignBytes data for packet commitment
verification.
Field | Type | Label | Description |
path | bytes |
|
|
commitment | bytes |
|
PacketReceiptAbsenceData
PacketReceiptAbsenceData returns the SignBytes data for
packet receipt absence verification.
Field | Type | Label | Description |
path | bytes |
|
SignBytes
SignBytes defines the signed bytes used for signature verification.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
signature | bytes |
|
|
data_type | DataType |
|
|
data | bytes |
|
|
timestamp | uint64 |
|
TimestampedSignatureData
TimestampedSignatureData contains the signature data and the timestamp of the
signature.
Field | Type | Label | Description |
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.
Name | Number | Description |
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
TopClientState
ClientState defines a loopback (localhost) client. It requires (read-only)
access to keys outside the client prefix.
Field | Type | Label | Description |
chain_id | string | self chain ID |
|
height | ibc.core.client.v1.Height | self latest block height |
ibc/lightclients/tendermint/v1/tendermint.proto
TopClientState
ClientState from Tendermint tracks the current validator set, latest height,
and a possible frozen height.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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.
Field | Type | Label | Description |
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
Field | Type | Label | Description |
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 |