cosmos-sdk/simapp
MD Aleem c95de9c417
implement x/authz module (#7629)
* WIP: Msg authorization module added

* fixing errors

* fixed errors

* fixed module.go

* Add msg_tests

* fixes compile issues

* fix test

* fix test

* Add msg types tests

* Fix Getmsgs

* fixed codec issue

* Fix syntax issues

* Fix keeper

* fixed proto issues

* Fix keeper tests

* fixed router in keeper

* Fix query proto

* Fix cli txs

* Add grpc query client implementation

* Add grpc-keeper test

* Add grpc query tests
Add revoke and exec authorization cli commands

* Fix linting issues

* Fix cli query

* fix lint errors

* Add Genesis state

* Fix query authorization

* Review changes

* Fix grant authorization handler

* Add cli tests

* Add cli tests

* Fix genesis test

* Fix issues

* update module to use proto msg services

* Add simultion tests

* Fix lint

* fix lint

* WIP simulations

* WIP simulations

* add msg tests

* Fix simulation

* Fix errors

* fix genesis import export

* fix sim tests

* fix sim

* fix test

* Register RegisterMsgServer

* WIP

* WIP

* Update keeper test

* change msg_authorization module name to authz

* changed type conversion for serviceMsg

* serviceMsg change to any

* Fix issues

* fix msg tests

* fix errors

* proto format

* remove LegacyQuerierHandler

* Use MsgServiceRouter

* fix keeper-test

* fix query authorizations

* fix NewCmdSendAs

* fix simtests

* fix error

* fix lint

* fix lint

* add tests for generic authorization

* fix imports

* format

* Update error message

* remove println

* add query all grants

* Add pagination for queries

* format

* fix lint

* review changes

* fix grpc tests

* add pagination to cli query

* review changes

* replace panic with error

* lint

* fix errors

* fix tests

* remove gogoproto extensions

* update function doc

* review changes

* fix errors

* fix query flags

* fix grpc query test

* init service-msg

* remove unsed field

* add proto-codec for simulations

* fix codec issue

* update authz simulations

* change msgauth to authz

* add check for invalid msg-type

* change expiration flag to Unix

* doc

* update module.go

* fix sims

* fix grant-authorization sims

* fix error

* fix error

* add build flag

* fix codec issue

* rename

* review changes

* format

* review changes

* go.mod

* refactor

* proto-gen

* Update x/authz/keeper/grpc_query_test.go

Co-authored-by: Amaury <amaury.martiny@protonmail.com>

* Update x/authz/keeper/grpc_query_test.go

Co-authored-by: Amaury <amaury.martiny@protonmail.com>

* Update x/authz/keeper/grpc_query_test.go

Co-authored-by: Amaury <amaury.martiny@protonmail.com>

* Fix review comments

* fix protogen

* Follow Msg...Request style for msg requests

* update comment

* Fix error codes

* fix review comment

* improve msg validations

* Handle error in casting msgs

* rename actor => grantStoreKey

* add godoc

* add godoc

* Fix simulations

* Fix cli, cli_tests

* Fix simulations

* rename to GetOrRevokeAuthorization

* Move events to keeper

* Fix fmt

* Update x/authz/client/cli/tx.go

Co-authored-by: Amaury <amaury.martiny@protonmail.com>

* rename actor

* fix lint

Co-authored-by: atheesh <atheesh@vitwit.com>
Co-authored-by: atheeshp <59333759+atheeshp@users.noreply.github.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: MD Aleem <72057206+aleem1413@users.noreply.github.com>
Co-authored-by: Anil Kumar Kammari <anil@vitwit.com>
2021-01-25 16:41:30 +00:00
..
helpers Replace tmcrypto.PubKey by our own cryptotypes.PubKey (#7419) 2020-11-09 16:01:43 +00:00
params simapp: rename MakeEncodingConfig to MakeTestEncodingConfig (#7681) 2020-10-27 11:33:48 +00:00
simd simapp: increase supply balance when adding genaccount (#8418) 2021-01-24 11:33:27 -03:00
README.md simapp: add testnet instructions (#8342) 2021-01-18 17:48:19 +01:00
app.go implement x/authz module (#7629) 2021-01-25 16:41:30 +00:00
app_test.go appcreator: Reuse encoding config instead of recreating it (#8250) 2021-01-06 15:20:12 +00:00
config.go Remove dependency of types/module package on x/simulation (#5835) 2020-03-23 12:55:44 +01:00
encoding.go codecs: rename MakeCodecs rename and docs update (#8245) 2021-01-07 21:50:52 +00:00
export.go Use any as validator pubkey (#7597) 2020-10-23 12:07:52 +00:00
genesis.go appcreator: Reuse encoding config instead of recreating it (#8250) 2021-01-06 15:20:12 +00:00
genesis_account.go x/auth: remove alias.go usage (#6440) 2020-06-17 14:42:27 -04:00
genesis_account_test.go Update tm pubkey references (#7102) 2020-08-28 16:02:38 +00:00
sim_bench_test.go Update x/banking and x/crisis InitChain re slow Gaia startup (#7764) 2020-11-02 19:10:14 +00:00
sim_test.go implement x/authz module (#7629) 2021-01-25 16:41:30 +00:00
state.go appcreator: Reuse encoding config instead of recreating it (#8250) 2021-01-06 15:20:12 +00:00
test_helpers.go appcreator: Reuse encoding config instead of recreating it (#8250) 2021-01-06 15:20:12 +00:00
types.go Add height in exported genesis (#7089) 2020-09-03 10:11:46 +00:00
utils.go Add height in exported genesis (#7089) 2020-09-03 10:11:46 +00:00
utils_test.go rename RegisterCodec to RegisterLegacyAminoCodec (#7243) 2020-09-07 14:47:12 +00:00

README.md

order
false

simapp

simapp is an application built using the Cosmos SDK for testing and educational purposes.

Running testnets with simd

If you want to spin up a quick testnet with your friends, you can follow these steps. Unless otherwise noted, every step must be done by everyone who wants to participate in this testnet.

  1. $ make build. This will build the simd binary and install it in your Cosmos SDK repo, inside a new build directory. The following instructions are run from inside that directory.

  2. If you've run simd before, you may need to reset your database before starting a new testnet: $ ./simd unsafe-reset-all

  3. $ ./simd init [moniker]. This will initialize a new working directory, by default at ~/.simapp. You need a provide a "moniker," but it doesn't matter what it is.

  4. $ ./simd keys add [key_name]. This will create a new key, with a name of your choosing. Save the output of this command somewhere; you'll need the address generated here later.

  5. $ ./simd add-genesis-account $(simd keys show [key_name] -a) [amount], where key_name is the same key name as before; and amount is something like 10000000000000000000000000stake.

  6. $ ./simd gentx [key_name] [amount] --chain-id [chain-id]. This will create the genesis transaction for your new chain.

  7. Now, one person needs to create the genesis file genesis.json using the genesis transactions from every participant, by gathering all the genesis transactions under config/gentx and then calling ./simd collect-gentxs. This will create a new genesis.json file that includes data from all the validators (we sometimes call it the "super genesis file" to distinguish it from single-validator genesis files).

  8. Once you've received the super genesis file, overwrite your original genesis.json file with the new super genesis.json.

  9. Modify your config/config.toml (in the simapp working directory) to include the other participants as persistent peers:

    # Comma separated list of nodes to keep persistent connections to
    persistent_peers = "[validator address]@[ip address]:[port],[validator address]@[ip address]:[port]"
    

    You can find validator address by running ./simd tendermint show-node-id. (It will be hex-encoded.) By default, port is 26656.

  10. Now you can start your nodes: $ ./simd start.

Now you have a small testnet that you can use to try out changes to the Cosmos SDK or Tendermint!

NOTE: Sometimes creating the network through the collect-gentxs will fail, and validators will start in a funny state (and then panic). If this happens, you can try to create and start the network first with a single validator and then add additional validators using a create-validator transaction.