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

153 lines
5.7 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 "ibc/connection/connection.proto";
import "ibc/channel/channel.proto";
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
import "gogoproto/gogo.proto";
import "google/protobuf/any.proto";
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
// 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;
// latest sequence of the client state
uint64 sequence = 1;
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
// frozen sequence of the solo machine
uint64 frozen_sequence = 2 [(gogoproto.moretags) = "yaml:\"frozen_sequence\""];
ConsensusState consensus_state = 3 [(gogoproto.moretags) = "yaml:\"consensus_state\""];
Implement ADR 026 (#7029) * Add allow_governance_override_after_expiry flag to tendermint NewCreateClientCmd * 1) Add LatestTimestamp to ClientState struct by adding a new attribute latest_timestamp to the message ClientState in proto/ibc/tendermint/tendermint.proto 2) Autogenerate x/ibc/07-tendermint/types/tendermint.pb.go by running 'make proto-gen'. Strangely, as a side effect x/distribution/types/genesis.pb.go, x/evidence/types/genesis.pb.go were also modified by the command 'make proto-gen' 3) Add Expired() function * Fix tests * 1) Add allow_governance_override_after_expiry flag to tendemint clientStatus 2) Add allow_governance_override_after_misbehaviour flag to tendermint ClientStatus * Cosmetic changes * Fix tests * Add Unfreeze function * Add new ClientUpdateProposal type * Add minor fixes * Add NewClientUpdateProposalHandler unit tests * Fix proto-lint-docker * Delete x/ibc/07-tendermint/tendermint_test.go * Follow convention to put signer last in msg function signature * 1) Add GetLatestTimestamp function to ClientStatus interface 2) Change Expired() signature to Expired(now time.Time) * 1) Add override flag to UpdateClient function 2) Fix tests * Refactor HandleClientUpdateProposal * 1) Extend exported Header interface with MarshalBinaryBare and UnmarshalBinaryBare methods 2) Move ClientUpdateProposal message to from ibc.proto to client.proto 3) Refactoring code 4) Add override flag to UpdateClient method 5) Fix tests * 1) Uncomment tests and clean up code 2) Add basic validation of the header (ValidateBasic) when the override flag is true * Cosmetic changes * Add TODO comments * Fix header MarshalBinaryBare, UnmarshalBinaryBare by using protobuf encoding/decoding * Fix proto comments * Fix override logic * undo gettimestamp for solo machine and localhost * add update after proposal func, some major refactoring in progress, various issues addressed * fix tendermint proposal update handling * run make proto-gen * remove timestamp from tendemint client * fix build issue for tm types * apply various review comments * add tests for 02-client functionality * self review fixes * typo * update tests slightly * update tendermint proposal handling tests * Update x/ibc/02-client/keeper/proposal.go Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> * Update x/ibc/07-tendermint/types/proposal_handle.go Co-authored-by: Aditya <adityasripal@gmail.com> * Update x/ibc/07-tendermint/types/proposal_handle.go Co-authored-by: Aditya <adityasripal@gmail.com> * apply most of @fedekunze and some of @AdityaSripal suggestions * convert test to bools * update docs and increase code cov * fix build * fix typo, remove omitempty * add switch * apply @fedekunze latest suggestions * fix lint * Update x/ibc/02-client/keeper/proposal_test.go Co-authored-by: Christopher Goes <cwgoes@pluranimity.org> Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Colin Axner <colinaxner@berkeley.edu> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-09-04 13:59:22 -07:00
// when set to true, will allow governance to update a solo machine client.
// The client will be unfrozen if it is frozen.
bool allow_update_after_proposal = 4 [(gogoproto.moretags) = "yaml:\"allow_update_after_proposal\""];
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
}
// 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.
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
message ConsensusState {
option (gogoproto.goproto_getters) = false;
// public key of the solo machine
cosmos.base.crypto.v1beta1.PublicKey public_key = 1 [(gogoproto.moretags) = "yaml:\"public_key\""];
// diversifier allows the same public key to be re-used across different solo machine clients
// (potentially on different chains) without being considered misbehaviour.
string diversifier = 2;
uint64 timestamp = 3;
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
}
// 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;
uint64 timestamp = 2;
bytes signature = 3;
cosmos.base.crypto.v1beta1.PublicKey new_public_key = 4 [(gogoproto.moretags) = "yaml:\"new_public_key\""];
string new_diversifier = 5 [(gogoproto.moretags) = "yaml:\"new_diversifier\""];
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
}
// Misbehaviour defines misbehaviour for a solo machine which consists
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
// of a sequence and two signatures over different messages at that sequence.
message Misbehaviour {
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
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\""];
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
}
// 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;
}
// SignBytes defines the signed bytes used for signature verification.
message SignBytes {
option (gogoproto.goproto_getters) = false;
uint64 sequence = 1;
uint64 timestamp = 2;
string diversifier = 3;
// marshaled data
bytes data = 4;
}
// HeaderData returns the SignBytes data for misbehaviour verification.
message HeaderData {
option (gogoproto.goproto_getters) = false;
// header public key
cosmos.base.crypto.v1beta1.PublicKey new_pub_key = 1 [(gogoproto.moretags) = "yaml:\"new_pub_key\""];
// header diversifier
string new_diversifier = 2 [(gogoproto.moretags) = "yaml:\"new_diversifier\""];
}
// ClientStateData returns the SignBytes data for client state verification.
message ClientStateData {
option (gogoproto.goproto_getters) = false;
bytes path = 1;
google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""];
}
// ConsensusStateSignBytes returns the SignBytes data for consensus state verification.
message ConsensusStateData {
option (gogoproto.goproto_getters) = false;
bytes path = 1;
google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml:\"consensus_state\""];
}
// ConnectionStateSignBytes returns the SignBytes data for connection state verification.
message ConnectionStateData {
option (gogoproto.goproto_getters) = false;
bytes path = 1;
ibc.connection.ConnectionEnd connection = 2;
}
// ChannelStateSignBytes returns the SignBytes data for channel state verification.
message ChannelStateData {
option (gogoproto.goproto_getters) = false;
bytes path = 1;
ibc.channel.Channel channel = 2;
}
// PacketCommitmentSignBytes returns the SignBytes data for packet commitment verification.
message PacketCommitmentData {
bytes path = 1;
bytes commitment = 2;
}
// PacketAcknowledgementSignBytes returns the SignBytes data for acknowledgement verification.
message PacketAcknowledgementData {
bytes path = 1;
bytes acknowledgement = 2;
}
// PacketAcknowledgementAbsenceSignBytes returns the SignBytes data for acknowledgement absence
// verification.
message PacketAcknowledgementAbsenseData {
bytes path = 1;
}
// NextSequenceRecv returns the SignBytes data for verification of the next
// sequence to be received.
message NextSequenceRecvData {
bytes path = 1;
uint64 next_seq_recv = 2 [(gogoproto.moretags) = "yaml:\"next_seq_recv\""];
}