cosmos-sdk/proto/ibc/lightclients/solomachine/v1/solomachine.proto

93 lines
3.3 KiB
Protocol Buffer
Raw Normal View History

implement solo machine client (#6267) * pause work until client refactor resolved * continued scaffolding * add msgs and evidence * add update and misbehaviour functionality * implement cli * various types compile issues * add sig proof and various bug fixes * added rest routes * verification funcs now update sequence number * add sm suite and header test * msgcreateclient and msgupdateclient tests * add basic evidence test * evidence validate basic test * consensus state tests * rm accidental file * add verify con state and channel state, pause work for counterparty commitment type * client state tests added * update clienttype numbers * update test added * add misbehaviour tests * update alias * update cli tx * update import alias * cleanup code * remove todo, tested by evidence tests * add info to err msg * wrapf * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/update.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/23-commitment/types/signature.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/types/header.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * apply most of the review suggestions from @fedekunze * remove alias.go * update cli context with master changes * merge selective downstream changes from colin/solomachine * fix build issues * remove signature proof * try to migrate to proto * rm go structs for consensus state and header * address @fedekunze review and continue proto migration * fix proto issues * fix compile bugs in types, proto panics on getpubkey currently * add timestamp * update pubkey to be type sdkcrypto.PublicKey * update timestamp handling * begin removing amino, migrate to proto * fix various build issues * fix most test in types * change sanitize to produce, fix bug, types test passing * begin updating cli * move solomachine into light-clients/ * fix merge issue * update proto and fix cli * more fixes and update proto again * update pubkey to be any * fix string func issue * update tests to use testing pkg * update from tm crypto keys ref to sdk * fix tests :tada: * increase codecov * address TODOs * address most of @fedekunze comments * add test case for misbehaviour frozen client * fix lint * fix proto lint? * rename Signature to TimestampedSignature * remove chainID * rename FrozenHeight to FrozenSequence * apply verify consensus state changes requested by @AdityaSripal * remove dup check * fix typo in proto file comment Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Federico Kunze <federico.kunze94@gmail.com> Co-authored-by: Christopher Goes <cwgoes@pluranimity.org>
2020-08-24 03:06:48 -07:00
syntax = "proto3";
package ibc.lightclients.solomachine.v1;
option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/light-clients/solomachine/types";
import "cosmos/base/crypto/v1beta1/crypto.proto";
import "gogoproto/gogo.proto";
// ClientState defines a solo machine client that tracks the current consensus
// state and if the client is frozen.
message ClientState {
option (gogoproto.goproto_getters) = false;
// frozen sequence of the solo machine
uint64 frozen_sequence = 1
[(gogoproto.moretags) = "yaml:\"frozen_sequence\""];
ConsensusState consensus_state = 2
[(gogoproto.moretags) = "yaml:\"consensus_state\""];
}
// ConsensusState defines a solo machine consensus state
message ConsensusState {
option (gogoproto.goproto_getters) = false;
// current sequence of the consensus state
uint64 sequence = 1;
// public key of the solo machine
cosmos.base.crypto.v1beta1.PublicKey public_key = 2
[(gogoproto.moretags) = "yaml:\"public_key\""];
uint64 timestamp = 3;
}
// Header defines a solo machine consensus header
message Header {
option (gogoproto.goproto_getters) = false;
// sequence to update solo machine public key at
uint64 sequence = 1;
bytes signature = 2;
cosmos.base.crypto.v1beta1.PublicKey new_public_key = 3
[(gogoproto.moretags) = "yaml:\"new_public_key\""];
}
// Evidence defines evidence of misbehaviour for a solo machine which consists
// of a sequence and two signatures over different messages at that sequence.
message Evidence {
option (gogoproto.goproto_getters) = false;
option (gogoproto.goproto_stringer) = false;
string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
uint64 sequence = 2;
SignatureAndData signature_one = 3
[(gogoproto.moretags) = "yaml:\"signature_one\""];
SignatureAndData signature_two = 4
[(gogoproto.moretags) = "yaml:\"signature_two\""];
}
// SignatureAndData contains a signature and the data signed over to create that
// signature.
message SignatureAndData {
option (gogoproto.goproto_getters) = false;
bytes signature = 1;
bytes data = 2;
}
// TimestampedSignature contains the signature and the timestamp of the
// signature.
message TimestampedSignature {
option (gogoproto.goproto_getters) = false;
bytes signature = 1;
uint64 timestamp = 2;
}
// MsgCreateClient defines a message to create an IBC client
message MsgCreateClient {
option (gogoproto.goproto_getters) = false;
string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
ConsensusState consensus_state = 2
[(gogoproto.moretags) = "yaml:\"consensus_state\""];
}
// MsgUpdateClient defines a message to update an IBC client
message MsgUpdateClient {
option (gogoproto.goproto_getters) = false;
string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
Header header = 2;
implement solo machine client (#6267) * pause work until client refactor resolved * continued scaffolding * add msgs and evidence * add update and misbehaviour functionality * implement cli * various types compile issues * add sig proof and various bug fixes * added rest routes * verification funcs now update sequence number * add sm suite and header test * msgcreateclient and msgupdateclient tests * add basic evidence test * evidence validate basic test * consensus state tests * rm accidental file * add verify con state and channel state, pause work for counterparty commitment type * client state tests added * update clienttype numbers * update test added * add misbehaviour tests * update alias * update cli tx * update import alias * cleanup code * remove todo, tested by evidence tests * add info to err msg * wrapf * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/update.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/23-commitment/types/signature.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/types/header.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * apply most of the review suggestions from @fedekunze * remove alias.go * update cli context with master changes * merge selective downstream changes from colin/solomachine * fix build issues * remove signature proof * try to migrate to proto * rm go structs for consensus state and header * address @fedekunze review and continue proto migration * fix proto issues * fix compile bugs in types, proto panics on getpubkey currently * add timestamp * update pubkey to be type sdkcrypto.PublicKey * update timestamp handling * begin removing amino, migrate to proto * fix various build issues * fix most test in types * change sanitize to produce, fix bug, types test passing * begin updating cli * move solomachine into light-clients/ * fix merge issue * update proto and fix cli * more fixes and update proto again * update pubkey to be any * fix string func issue * update tests to use testing pkg * update from tm crypto keys ref to sdk * fix tests :tada: * increase codecov * address TODOs * address most of @fedekunze comments * add test case for misbehaviour frozen client * fix lint * fix proto lint? * rename Signature to TimestampedSignature * remove chainID * rename FrozenHeight to FrozenSequence * apply verify consensus state changes requested by @AdityaSripal * remove dup check * fix typo in proto file comment Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Federico Kunze <federico.kunze94@gmail.com> Co-authored-by: Christopher Goes <cwgoes@pluranimity.org>
2020-08-24 03:06:48 -07:00
}
// MsgSubmitClientMisbehaviour defines an sdk.Msg type that supports submitting
// arbitrary Evidence.
message MsgSubmitClientMisbehaviour {
option (gogoproto.goproto_getters) = false;
bytes submitter = 1
[(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.AccAddress"];
Evidence evidence = 2;
implement solo machine client (#6267) * pause work until client refactor resolved * continued scaffolding * add msgs and evidence * add update and misbehaviour functionality * implement cli * various types compile issues * add sig proof and various bug fixes * added rest routes * verification funcs now update sequence number * add sm suite and header test * msgcreateclient and msgupdateclient tests * add basic evidence test * evidence validate basic test * consensus state tests * rm accidental file * add verify con state and channel state, pause work for counterparty commitment type * client state tests added * update clienttype numbers * update test added * add misbehaviour tests * update alias * update cli tx * update import alias * cleanup code * remove todo, tested by evidence tests * add info to err msg * wrapf * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/client/cli/tx.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/update.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/23-commitment/types/signature.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/06-solomachine/types/header.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * apply most of the review suggestions from @fedekunze * remove alias.go * update cli context with master changes * merge selective downstream changes from colin/solomachine * fix build issues * remove signature proof * try to migrate to proto * rm go structs for consensus state and header * address @fedekunze review and continue proto migration * fix proto issues * fix compile bugs in types, proto panics on getpubkey currently * add timestamp * update pubkey to be type sdkcrypto.PublicKey * update timestamp handling * begin removing amino, migrate to proto * fix various build issues * fix most test in types * change sanitize to produce, fix bug, types test passing * begin updating cli * move solomachine into light-clients/ * fix merge issue * update proto and fix cli * more fixes and update proto again * update pubkey to be any * fix string func issue * update tests to use testing pkg * update from tm crypto keys ref to sdk * fix tests :tada: * increase codecov * address TODOs * address most of @fedekunze comments * add test case for misbehaviour frozen client * fix lint * fix proto lint? * rename Signature to TimestampedSignature * remove chainID * rename FrozenHeight to FrozenSequence * apply verify consensus state changes requested by @AdityaSripal * remove dup check * fix typo in proto file comment Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Federico Kunze <federico.kunze94@gmail.com> Co-authored-by: Christopher Goes <cwgoes@pluranimity.org>
2020-08-24 03:06:48 -07:00
}