Dev Ojha
61dd71ed87
perf: Speedup to params simulation ( #9481 )
...
## Description
In Osmosis' simulation, we were observing that a large percent of the time was spent within SimulateParamChangeProposalContent, in particular within the composed key function. This is from a trace of our simulator running for 10 minutes:
<img width="931" alt="Screenshot 2021-06-08 at 2 32 28 PM" src="https://user-images.githubusercontent.com/6440154/121238788-16cdd000-c85e-11eb-8251-94537e69f8ce.png ">
~This change lowers the number of calls to ComposedKey() by a factor of 3, and speeds up the underlying ComposedKey function. (sprintf is not particularly efficient for string concatenation, https://dev.to/pmalhaire/concatenate-strings-in-golang-a-quick-benchmark-4ahh ). After these change, the effect of ComposedKey() can no longer be seen in the profiler outputs.~
~This change does not change the result of the simulator on a given seed.~
See https://github.com/cosmos/cosmos-sdk/pull/9481#issuecomment-857119210 for description of changes.
---
### Author Checklist
*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*
I have...
- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json ) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting ))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules )
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing )
- [x] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc )
- [x] updated the relevant documentation or specification
- [x] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed
### Reviewers Checklist
*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*
I have...
- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json ) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
2021-06-17 07:42:07 +00:00
Marko
8de96d16f9
tendermint: update to rc3 ( #6892 )
...
* modify light imports
* change abci.header to tmproto.header
* use rc
* rc
* fix import
* Merge PR #6893 : fix key imports
* fix rc2
* tendermint: update 3 (#6899 )
* tendermint: update 4 (#6919 )
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* tendermint: update 5 (#6923 )
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* bump to latest master
* tendermint: update (#6972 )
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
Co-authored-by: Cory Levinson <cjlevinson@gmail.com>
* Update x/ibc/07-tendermint/types/test_utils.go
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* address comment
* go mod
* bring back things
* fix test
* update tm proto files
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
Co-authored-by: Cory Levinson <cjlevinson@gmail.com>
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
2020-08-14 13:58:53 -04:00
dauTT
666527170c
Merge PR #6705 : x/params/simulation/proposals.go: add unit tests
2020-07-13 14:10:34 -04:00
dauTT
946383e1fe
x/params/simulation/operations.go: add unit tests ( #6699 )
...
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-07-13 10:55:33 +00:00
Jonathan Gimeno
49102b1d98
Remove dependency of types/module package on x/simulation ( #5835 )
...
Closes : #5724
2020-03-23 12:55:44 +01:00
Jonathan Gimeno
434f539bff
Merge PR #5649 : Update x/params to follow module standards
2020-02-19 12:52:20 +01:00
Alexander Bezobchuk
9f03b57fe3
Merge PR #5359 : Params Validation
2019-12-10 11:48:57 -05:00
Federico Kunze
722a633f54
Sim refactor 3: move weighted operations to modules ( #4869 )
...
* move GenesisState generators to modules
* minor change on slashing genState generator
* move simulation params back to modules (#4839 )
move simulation params back to modules (#4839 )
* cleanup params
* various fixes
* move store decoders to modules
* fix
* module pattern
* split generators for param change
* param changes
* revert util pkg
* banksim
* compile
* update Decoders params
* fix
* address @colin-axner comments
* move weighted operations to modules
* cleanup
* cleanup
* Update cmd_test.go
* simulation manager
* mino fixes
* cleanup
* add GenerateGenesisState to simulation manager
* Apply suggestions from code review
Co-Authored-By: frog power 4000 <rigel.rozanski@gmail.com>
* address @rigelrozanski comments
* changelog
* Apply suggestions from code review
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* restructure modules simulation pkgs
* remove cycle deps
* rename funcs and add missing params
* modularize simulator param changes
* build
* fix params keys
* make format
* various fixes
* fix tests
* minor updates to sim_test
* cleanup
* more cleanup
* modularize genesis generators
* minor cleanup
* remove cdc from generators
* remove cdc
* add get or generate
* fix non-determinism in simulation
* changelog and x/simulation godoc
* cleanup operations
* update operations to use baseapp
* updates and cleanup operations
* update operations
* restructure sim ops params
* rename sim /operations/msg.go to /operations.go
* move GenTx to a helper pkg to avoid circle deps
* rm msg.ValidateBasic
* changelog
* random fees; delete auth's DeductFees sim operation
* add chain-id for sig verification
* Update x/simulation/account.go
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* fix bank, gov and distr errors
* fix staking and slashing errors; increase prob for send enabled
* increase gas x10
* make format
* fix some distr and staking edge cases
* fix all edge cases
* golang ci
* rename acc vars; default no fees to 0stake
* cleanup; check for exchange rate and skip invalid ops
* fixes
* check for max entries
* add pubkey to genaccounts
* fix gov bug
* update staking sim ops
* fix small redelegation error
* fix small self delegation on unjail
* rm inf loop on random val/accs
* copy array
* add ok boolean to RandomValidator return values
* format
* build
* add WeightedOperations to AppModuleSimulation
* define each module proposals content as part of the module pattern
* Update x/bank/simulation/operations.go
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* Update simapp/helpers/test_helpers.go
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* address @colin-axner comments
* add genaccount pubkey validation
* fix test
* update operations and move RandomFees to x/simulation
* update gov ops
* address @alexanderbez comments
* avoid modifications to config
* reorder params
* modularized sim operations working
* changelog
* Update types/module/simulation.go
Co-Authored-By: frog power 4000 <rigel.rozanski@gmail.com>
* Update x/simulation/params.go
Co-Authored-By: frog power 4000 <rigel.rozanski@gmail.com>
* Update x/simulation/params.go
Co-Authored-By: frog power 4000 <rigel.rozanski@gmail.com>
* update /types/module
* Update x/distribution/simulation/genesis.go
Co-Authored-By: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* remove named return values
* ensure all operations are simulated
* golangci
* add nolint
* disable whitespace and funlen linter
* disable godox
* add TODO on unjail
* update ops weights
* remove dup
* update godoc
* remove unused func
* build fixes
* move weights to the same file
* scopelint
* changelog
* address @AdityaSripal comments
* address @alexanderbez comments
2019-12-05 10:29:54 +01:00
Federico Kunze
8344c0aef8
update simulation operations to use BaseApp ( #4946 )
...
* update operations to use baseapp
* updates and cleanup operations
* update operations
* restructure sim ops params
* rename sim /operations/msg.go to /operations.go
* move GenTx to a helper pkg to avoid circle deps
* rm msg.ValidateBasic
* changelog
* random fees; delete auth's DeductFees sim operation
* add chain-id for sig verification
* Update x/simulation/account.go
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* fix bank, gov and distr errors
* fix staking and slashing errors; increase prob for send enabled
* increase gas x10
* make format
* fix some distr and staking edge cases
* fix all edge cases
* golang ci
* rename acc vars; default no fees to 0stake
* cleanup; check for exchange rate and skip invalid ops
* fixes
* check for max entries
* add pubkey to genaccounts
* fix gov bug
* update staking sim ops
* fix small redelegation error
* fix small self delegation on unjail
* rm inf loop on random val/accs
* copy array
* add ok boolean to RandomValidator return values
* format
* Update x/bank/simulation/operations.go
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* Update simapp/helpers/test_helpers.go
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* address @colin-axner comments
* add genaccount pubkey validation
* fix test
* update operations and move RandomFees to x/simulation
* update gov ops
* address @alexanderbez comments
* avoid modifications to config
* reorder params
* changelog
* Update x/distribution/simulation/genesis.go
Co-Authored-By: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* remove named return values
* ensure all operations are simulated
* golangci
* add nolint
* disable whitespace and funlen linter
* disable godox
* add TODO on unjail
* update ops weights
* remove dup
* update godoc
* x/slashing/simulation/operations.go linting
* x/staking/simulation/operations.go linting
* update operations format
* x/bank/simulation/operations.go linting
* x/distribution/simulation/operations.go linting
* x/staking/simulation/operations.go linting
* start changes: make bank simulate send multiple coins, code cleanup
* fix nondeterminism bug
* fix txsiglimit err
* fix multisend bug
* simplify simulation, cleanup opt privkey args
* make slashing test invalid unjail msgs
* Update simapp/state.go
* golangCI changes
2019-10-23 11:14:45 +02:00
Marko
6684cdf3e5
Merge PR #5048 : Fix linters and add golint
2019-09-16 13:11:17 -04:00
Federico Kunze
45b25ceaae
Merge PR #4838 : Sim refactor 2 - Move GenesisState generators to modules
2019-08-28 10:58:25 -04:00
Federico Kunze
c441ce2fab
Merge PR #4847 : Sim refactor 1 move store decoders to modules
...
* move store decoders to modules
* fix
* module pattern
* compile
* update Decoders params
* fix
* address @colin-axner comments
* Update cmd_test.go
* simulation manager
* mino fixes
* cleanup
* Apply suggestions from code review
Co-Authored-By: frog power 4000 <rigel.rozanski@gmail.com>
* address @rigelrozanski comments
* changelog
* Apply suggestions from code review
Co-Authored-By: colin axner <colinaxner@berkeley.edu>
* restructure modules simulation pkgs
* address @alexanderbez comments
* fix
2019-08-13 18:16:03 -04:00
Federico Kunze
e4c8bd72b7
Merge PR #4665 : Refactor x/gov Module Structure (prep for module spec)
2019-08-08 15:51:18 -04:00
Alexander Bezobchuk
6606007297
Merge PR #4435 : Simulation: Params from File
...
* Move distr params to simulation param generator
* Cleanup sim params output
* Print params when possible instead of entire genesis struct
* Update module param simulator keys
* Rename module params simulator keys
* Add/fix missing module params and implement SimParams
* UPdate sim test to accept params file
* Allow weights to be provided from file
* Create doc.go
* Remove TODO
* Implement MustMarshalJSONIndent
* Use mustMarshalJSONIndent for non-codec
* Remove TODO
* Fix doc.go
* Update points
* Update simapp/doc.go
Co-Authored-By: Alessio Treglia <quadrispro@ubuntu.com>
* Update simapp/doc.go
Co-Authored-By: Alessio Treglia <quadrispro@ubuntu.com>
* Cleanup appStateFn
* Use constants for simulation parameter keys
* Update msgs.go
* minor formatting
2019-06-08 16:55:47 -04:00
Joon
91e75cb74a
Merge PR #4403 : Paramchange proposal skips omitempty fields
2019-05-27 20:47:12 -04:00
Christopher Goes
dd89c32951
Community pool spend proposal ( #4329 )
...
Implement the "CommunityPoolSpendProposal" as described in Cosmos Hub proposal 7.
Also a useful test of Git flow for merging features passed in governance proposals.
2019-05-21 11:02:10 +01:00
Alessio Treglia
06f7b2198a
Replace vet with golangci lint govet ( #4277 )
...
Drop go vet in favor of golangci-lint govet check.
Fix golangci-lint warnings.
Upgrade golangci-lint.
2019-05-06 17:50:05 +01:00
Alexander Bezobchuk
29ed730aff
Merge PR #4244 : Param Proposal Simulation Messages; Minting Params Fix
2019-05-02 16:50:01 -04:00