Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inflation system and PoS rewards #388

Closed
wants to merge 105 commits into from
Closed

Inflation system and PoS rewards #388

wants to merge 105 commits into from

Conversation

brentstone
Copy link
Contributor

@brentstone brentstone commented Aug 26, 2022

Implementation of the general inflation system and the rewards system for proof-of-stake in particular.

Closes #340, #353, #455, #478 (WIP), and #499 (WIP).

Closes #456 in 309c4ce.

Based on #436 and #661.

NOTE: this PR is being split up into #436, #687, and others to come.

@brentstone brentstone force-pushed the brent/pos-inflation branch 2 times, most recently from 3c74d43 to eee0635 Compare October 24, 2022 04:58
tzemanovic added a commit that referenced this pull request Nov 10, 2022
* brent/validator-commission-rates:
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  [ci] wasm checksums update
  fix pos state machine test
  add max change info to query of validator commission rate
  fix get of epoched commission rate before pipeline
  bug fix: consensus key validation error
  commission change wasm tx test: fix and update validation
  fix error convention
  wasm tx test for changing validator commission rate
  [ci] wasm checksums update
  improve docs
  fix commission rate validation on validator initialization
  init validator: add commission rate required args for tests
  cleaning: incl fmt + clippy
  bug fix from splitting this PR off of #388
  include and update `rust_decimal`
  add missing commission rate-related instances
  commission rate: query + refactor validator change tx
  epoched commission rate and tx for validator to change their rate
  require commission rate input data for new validators
  introduce validator commission rate and changes
  changelog: #687
  remove staking rewards address from cli strings and docs strings
  wallet: remove validator rewards key
  client: remove staking rewards address from init-validator result
  remove staking reward address from genesis toml files
  remove staking reward address from all code
  changelog: #436
  [ci] wasm checksums update
  replace floating point arithm from token module with rust_decimal
tzemanovic added a commit that referenced this pull request Nov 10, 2022
* brent/validator-commission-rates:
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  [ci] wasm checksums update
  fix pos state machine test
  add max change info to query of validator commission rate
  fix get of epoched commission rate before pipeline
  bug fix: consensus key validation error
  commission change wasm tx test: fix and update validation
  fix error convention
  wasm tx test for changing validator commission rate
  [ci] wasm checksums update
  improve docs
  fix commission rate validation on validator initialization
  init validator: add commission rate required args for tests
  cleaning: incl fmt + clippy
  bug fix from splitting this PR off of #388
  include and update `rust_decimal`
  add missing commission rate-related instances
  commission rate: query + refactor validator change tx
  epoched commission rate and tx for validator to change their rate
  require commission rate input data for new validators
  introduce validator commission rate and changes
  changelog: #687
  remove staking rewards address from cli strings and docs strings
  wallet: remove validator rewards key
  client: remove staking rewards address from init-validator result
  remove staking reward address from genesis toml files
  remove staking reward address from all code
  changelog: #436
  [ci] wasm checksums update
  replace floating point arithm from token module with rust_decimal
tzemanovic added a commit that referenced this pull request Nov 14, 2022
* brent/refactor-voting-power:
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
juped added a commit that referenced this pull request Nov 14, 2022
* namada/pos-integration: (120 commits)
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
  [ci] wasm checksums update
  changelog: add #708
  remove `min_duration` from `ParametersConfig`
  remove `staked_ratio` and `pos_inflation_amount` from `ParametersConfig`
  update comments
  [ci] wasm checksums update
  fmt and includes
  updates to accommodate `tm_votes_per_token` relative to namnam
  Update rewards parameters and distribution
  update toml files with latest parameters and values
  fix arb_amount to max out at max tm voting power (fix wasm test bug)
  storage change: last inflation rate -> last inflation token amount
  fix: write all fields in Parameters storage in `init_storage`
  fix initial staked ratio parameter at genesis
  update rust_decimal version + fmt
  clean comments and toml files of basis points
  fix correct inner type of ValidationError::TotalVotingPowerTooLarge
  more decimal_mult function uses
  add fns to multiply Decimal and integer type, return truncated integer
  remove BasisPoints and change relevant parameters to Decimal type
  documentation updates + unused imports removal
  rename reward_rate -> inflation_rate for pos
  specify read or write intentions for parameters storage keys
  add target_staked_ratio to PoS params
  update max inflation rate in params (formerly max_staking_rewards_rate)
  rename `votes_per_token` to `tm_votes_per_token` since this will only be used to interface with tendermint
  add new parameters needed for rewards PD controller to the Parameters storage
  add max_staking_reward_rate to PosParams
  clarify+rename 'epoch_storage_key' as 'epoch_duration_storage_key'
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  changelog: add #582
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  [ci] wasm checksums update
  fix pos state machine test
  add max change info to query of validator commission rate
  fix get of epoched commission rate before pipeline
  bug fix: consensus key validation error
  commission change wasm tx test: fix and update validation
  fix error convention
  wasm tx test for changing validator commission rate
  [ci] wasm checksums update
  governance: more refactor
  wasm: update checksums
  chore: rebuild wasm for test
  governance: more refactor
  queries/shell: refactor to single def
  queries/router: rm dbg prints
  queries: add more PoS queries and use them for gov
  RPC: add PoS is_validator and bond_amount queries
  shared: implement PosReadOnly for Storage
  governance: more refactor
  governance: more refactor
  governance: refactor with storage api
  fix: rename native token in e2e genesis file
  [ci] wasm checksums update
  [ci] wasm checksums update
  improve docs
  fix commission rate validation on validator initialization
  init validator: add commission rate required args for tests
  cleaning: incl fmt + clippy
  bug fix from splitting this PR off of #388
  include and update `rust_decimal`
  add missing commission rate-related instances
  commission rate: query + refactor validator change tx
  epoched commission rate and tx for validator to change their rate
  require commission rate input data for new validators
  introduce validator commission rate and changes
  changelog: #687
  remove staking rewards address from cli strings and docs strings
  wallet: remove validator rewards key
  client: remove staking rewards address from init-validator result
  remove staking reward address from genesis toml files
  remove staking reward address from all code
  changelog: #436
  [ci] wasm checksums update
  ...
tzemanovic added a commit that referenced this pull request Nov 16, 2022
* brent/validator-commission-rates:
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  [ci] wasm checksums update
  fix pos state machine test
  add max change info to query of validator commission rate
  fix get of epoched commission rate before pipeline
  bug fix: consensus key validation error
  commission change wasm tx test: fix and update validation
  fix error convention
  wasm tx test for changing validator commission rate
  [ci] wasm checksums update
  improve docs
  fix commission rate validation on validator initialization
  init validator: add commission rate required args for tests
  cleaning: incl fmt + clippy
  bug fix from splitting this PR off of #388
  include and update `rust_decimal`
  add missing commission rate-related instances
  commission rate: query + refactor validator change tx
  epoched commission rate and tx for validator to change their rate
  require commission rate input data for new validators
  introduce validator commission rate and changes
  changelog: #687
  remove staking rewards address from cli strings and docs strings
  wallet: remove validator rewards key
  client: remove staking rewards address from init-validator result
  remove staking reward address from genesis toml files
  remove staking reward address from all code
  changelog: #436
  [ci] wasm checksums update
  replace floating point arithm from token module with rust_decimal
tzemanovic added a commit that referenced this pull request Nov 17, 2022
* brent/refactor-voting-power:
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
juped added a commit that referenced this pull request Nov 30, 2022
#695) into main

minor evil changes

* namada/brent/validator-commission-rates:
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  [ci] wasm checksums update
  fix pos state machine test
  add max change info to query of validator commission rate
  fix get of epoched commission rate before pipeline
  bug fix: consensus key validation error
  commission change wasm tx test: fix and update validation
  fix error convention
  wasm tx test for changing validator commission rate
  [ci] wasm checksums update
  improve docs
  fix commission rate validation on validator initialization
  init validator: add commission rate required args for tests
  cleaning: incl fmt + clippy
  bug fix from splitting this PR off of #388
  include and update `rust_decimal`
  add missing commission rate-related instances
  commission rate: query + refactor validator change tx
  epoched commission rate and tx for validator to change their rate
  require commission rate input data for new validators
  introduce validator commission rate and changes
  changelog: #687
  remove staking rewards address from cli strings and docs strings
  wallet: remove validator rewards key
  client: remove staking rewards address from init-validator result
  remove staking reward address from genesis toml files
  remove staking reward address from all code
  changelog: #436
  [ci] wasm checksums update
  replace floating point arithm from token module with rust_decimal
juped added a commit that referenced this pull request Nov 30, 2022
…) into main

* namada/brent/refactor-voting-power:
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
tzemanovic added a commit that referenced this pull request Dec 1, 2022
Namada 0.11.0

* tag 'v0.11.0': (195 commits)
  Namada 0.11.0
  wasm: update checksums.json
  wasm_for_tests: rebuild all
  fix default chain IDs lengths
  make fmt
  s/anoma/namada in all files
  apps: s/anoma/namada/ in paths
  wasm: update checksums.json
  [ci] wasm checksums update
  changelog: add #733
  docs/overview: update deps graph and add a generated one too
  pos: replace generic types with concrete types from core
  update paths for core split and apply many small fixes
  add new crate "namada_core" for core types, storage_api, tx_env, vp_env
  proto/types: remove an & to placate 1.65 clippy
  changelog: add #807
  tx: sign hash of code rather than full code blob
  maint: fix incorrect clippy placation in previous merge
  fix: use multitoken credit_tokens() in tests
  maint: patch funty 1.2.0
  ci: update rust/docker image
  Fix changelog
  Fix up for namada v0.10.1
  Add changelog
  Add check-abcipp command
  Use ferveo-tpke flag to stop tendermint-rpc being pulled into wasm
  First attempt at fixing shared abcipp
  deleted out of date TS docs
  changelog: add #797
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
  rename slash rate params with `min`, update default `PosParam` values
  Update tests/src/vm_host_env/tx.rs
  Update shared/src/ledger/parameters/mod.rs
  changelog: add #775
  [feat]: Renamed 'fee' CLI arguments to 'gas'.
  make: clean any existing WASM files before WASM build
  changelog: add #719
  changelog: add #674
  pos: use  method
  governance: added  method, fmt, clippy
  changelog: add #570
  [ci] wasm checksums update
  changelog: add #708
  remove `min_duration` from `ParametersConfig`
  remove `staked_ratio` and `pos_inflation_amount` from `ParametersConfig`
  update comments
  [ci] wasm checksums update
  fmt and includes
  updates to accommodate `tm_votes_per_token` relative to namnam
  Update rewards parameters and distribution
  update toml files with latest parameters and values
  fix arb_amount to max out at max tm voting power (fix wasm test bug)
  storage change: last inflation rate -> last inflation token amount
  fix: write all fields in Parameters storage in `init_storage`
  fix initial staked ratio parameter at genesis
  update rust_decimal version + fmt
  clean comments and toml files of basis points
  fix correct inner type of ValidationError::TotalVotingPowerTooLarge
  more decimal_mult function uses
  add fns to multiply Decimal and integer type, return truncated integer
  remove BasisPoints and change relevant parameters to Decimal type
  documentation updates + unused imports removal
  rename reward_rate -> inflation_rate for pos
  specify read or write intentions for parameters storage keys
  add target_staked_ratio to PoS params
  update max inflation rate in params (formerly max_staking_rewards_rate)
  rename `votes_per_token` to `tm_votes_per_token` since this will only be used to interface with tendermint
  add new parameters needed for rewards PD controller to the Parameters storage
  add max_staking_reward_rate to PosParams
  clarify+rename 'epoch_storage_key' as 'epoch_duration_storage_key'
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  [ci] wasm checksums update
  changelog: add #763
  pos/vp: do not return early on unknown permitted key
  changelog: add #582
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  ...
tzemanovic added a commit that referenced this pull request Dec 2, 2022
Namada 0.11.0

* tag 'v0.11.0': (195 commits)
  Namada 0.11.0
  wasm: update checksums.json
  wasm_for_tests: rebuild all
  fix default chain IDs lengths
  make fmt
  s/anoma/namada in all files
  apps: s/anoma/namada/ in paths
  wasm: update checksums.json
  [ci] wasm checksums update
  changelog: add #733
  docs/overview: update deps graph and add a generated one too
  pos: replace generic types with concrete types from core
  update paths for core split and apply many small fixes
  add new crate "namada_core" for core types, storage_api, tx_env, vp_env
  proto/types: remove an & to placate 1.65 clippy
  changelog: add #807
  tx: sign hash of code rather than full code blob
  maint: fix incorrect clippy placation in previous merge
  fix: use multitoken credit_tokens() in tests
  maint: patch funty 1.2.0
  ci: update rust/docker image
  Fix changelog
  Fix up for namada v0.10.1
  Add changelog
  Add check-abcipp command
  Use ferveo-tpke flag to stop tendermint-rpc being pulled into wasm
  First attempt at fixing shared abcipp
  deleted out of date TS docs
  changelog: add #797
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
  rename slash rate params with `min`, update default `PosParam` values
  Update tests/src/vm_host_env/tx.rs
  Update shared/src/ledger/parameters/mod.rs
  changelog: add #775
  [feat]: Renamed 'fee' CLI arguments to 'gas'.
  make: clean any existing WASM files before WASM build
  changelog: add #719
  changelog: add #674
  pos: use  method
  governance: added  method, fmt, clippy
  changelog: add #570
  [ci] wasm checksums update
  changelog: add #708
  remove `min_duration` from `ParametersConfig`
  remove `staked_ratio` and `pos_inflation_amount` from `ParametersConfig`
  update comments
  [ci] wasm checksums update
  fmt and includes
  updates to accommodate `tm_votes_per_token` relative to namnam
  Update rewards parameters and distribution
  update toml files with latest parameters and values
  fix arb_amount to max out at max tm voting power (fix wasm test bug)
  storage change: last inflation rate -> last inflation token amount
  fix: write all fields in Parameters storage in `init_storage`
  fix initial staked ratio parameter at genesis
  update rust_decimal version + fmt
  clean comments and toml files of basis points
  fix correct inner type of ValidationError::TotalVotingPowerTooLarge
  more decimal_mult function uses
  add fns to multiply Decimal and integer type, return truncated integer
  remove BasisPoints and change relevant parameters to Decimal type
  documentation updates + unused imports removal
  rename reward_rate -> inflation_rate for pos
  specify read or write intentions for parameters storage keys
  add target_staked_ratio to PoS params
  update max inflation rate in params (formerly max_staking_rewards_rate)
  rename `votes_per_token` to `tm_votes_per_token` since this will only be used to interface with tendermint
  add new parameters needed for rewards PD controller to the Parameters storage
  add max_staking_reward_rate to PosParams
  clarify+rename 'epoch_storage_key' as 'epoch_duration_storage_key'
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  [ci] wasm checksums update
  changelog: add #763
  pos/vp: do not return early on unknown permitted key
  changelog: add #582
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  ...
tzemanovic added a commit that referenced this pull request Dec 2, 2022
Namada 0.11.0

* tag 'v0.11.0': (195 commits)
  Namada 0.11.0
  wasm: update checksums.json
  wasm_for_tests: rebuild all
  fix default chain IDs lengths
  make fmt
  s/anoma/namada in all files
  apps: s/anoma/namada/ in paths
  wasm: update checksums.json
  [ci] wasm checksums update
  changelog: add #733
  docs/overview: update deps graph and add a generated one too
  pos: replace generic types with concrete types from core
  update paths for core split and apply many small fixes
  add new crate "namada_core" for core types, storage_api, tx_env, vp_env
  proto/types: remove an & to placate 1.65 clippy
  changelog: add #807
  tx: sign hash of code rather than full code blob
  maint: fix incorrect clippy placation in previous merge
  fix: use multitoken credit_tokens() in tests
  maint: patch funty 1.2.0
  ci: update rust/docker image
  Fix changelog
  Fix up for namada v0.10.1
  Add changelog
  Add check-abcipp command
  Use ferveo-tpke flag to stop tendermint-rpc being pulled into wasm
  First attempt at fixing shared abcipp
  deleted out of date TS docs
  changelog: add #797
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
  rename slash rate params with `min`, update default `PosParam` values
  Update tests/src/vm_host_env/tx.rs
  Update shared/src/ledger/parameters/mod.rs
  changelog: add #775
  [feat]: Renamed 'fee' CLI arguments to 'gas'.
  make: clean any existing WASM files before WASM build
  changelog: add #719
  changelog: add #674
  pos: use  method
  governance: added  method, fmt, clippy
  changelog: add #570
  [ci] wasm checksums update
  changelog: add #708
  remove `min_duration` from `ParametersConfig`
  remove `staked_ratio` and `pos_inflation_amount` from `ParametersConfig`
  update comments
  [ci] wasm checksums update
  fmt and includes
  updates to accommodate `tm_votes_per_token` relative to namnam
  Update rewards parameters and distribution
  update toml files with latest parameters and values
  fix arb_amount to max out at max tm voting power (fix wasm test bug)
  storage change: last inflation rate -> last inflation token amount
  fix: write all fields in Parameters storage in `init_storage`
  fix initial staked ratio parameter at genesis
  update rust_decimal version + fmt
  clean comments and toml files of basis points
  fix correct inner type of ValidationError::TotalVotingPowerTooLarge
  more decimal_mult function uses
  add fns to multiply Decimal and integer type, return truncated integer
  remove BasisPoints and change relevant parameters to Decimal type
  documentation updates + unused imports removal
  rename reward_rate -> inflation_rate for pos
  specify read or write intentions for parameters storage keys
  add target_staked_ratio to PoS params
  update max inflation rate in params (formerly max_staking_rewards_rate)
  rename `votes_per_token` to `tm_votes_per_token` since this will only be used to interface with tendermint
  add new parameters needed for rewards PD controller to the Parameters storage
  add max_staking_reward_rate to PosParams
  clarify+rename 'epoch_storage_key' as 'epoch_duration_storage_key'
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  [ci] wasm checksums update
  changelog: add #763
  pos/vp: do not return early on unknown permitted key
  changelog: add #582
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  ...
tzemanovic added a commit that referenced this pull request Dec 2, 2022
Namada 0.11.0

* tag 'v0.11.0': (195 commits)
  Namada 0.11.0
  wasm: update checksums.json
  wasm_for_tests: rebuild all
  fix default chain IDs lengths
  make fmt
  s/anoma/namada in all files
  apps: s/anoma/namada/ in paths
  wasm: update checksums.json
  [ci] wasm checksums update
  changelog: add #733
  docs/overview: update deps graph and add a generated one too
  pos: replace generic types with concrete types from core
  update paths for core split and apply many small fixes
  add new crate "namada_core" for core types, storage_api, tx_env, vp_env
  proto/types: remove an & to placate 1.65 clippy
  changelog: add #807
  tx: sign hash of code rather than full code blob
  maint: fix incorrect clippy placation in previous merge
  fix: use multitoken credit_tokens() in tests
  maint: patch funty 1.2.0
  ci: update rust/docker image
  Fix changelog
  Fix up for namada v0.10.1
  Add changelog
  Add check-abcipp command
  Use ferveo-tpke flag to stop tendermint-rpc being pulled into wasm
  First attempt at fixing shared abcipp
  deleted out of date TS docs
  changelog: add #797
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
  rename slash rate params with `min`, update default `PosParam` values
  Update tests/src/vm_host_env/tx.rs
  Update shared/src/ledger/parameters/mod.rs
  changelog: add #775
  [feat]: Renamed 'fee' CLI arguments to 'gas'.
  make: clean any existing WASM files before WASM build
  changelog: add #719
  changelog: add #674
  pos: use  method
  governance: added  method, fmt, clippy
  changelog: add #570
  [ci] wasm checksums update
  changelog: add #708
  remove `min_duration` from `ParametersConfig`
  remove `staked_ratio` and `pos_inflation_amount` from `ParametersConfig`
  update comments
  [ci] wasm checksums update
  fmt and includes
  updates to accommodate `tm_votes_per_token` relative to namnam
  Update rewards parameters and distribution
  update toml files with latest parameters and values
  fix arb_amount to max out at max tm voting power (fix wasm test bug)
  storage change: last inflation rate -> last inflation token amount
  fix: write all fields in Parameters storage in `init_storage`
  fix initial staked ratio parameter at genesis
  update rust_decimal version + fmt
  clean comments and toml files of basis points
  fix correct inner type of ValidationError::TotalVotingPowerTooLarge
  more decimal_mult function uses
  add fns to multiply Decimal and integer type, return truncated integer
  remove BasisPoints and change relevant parameters to Decimal type
  documentation updates + unused imports removal
  rename reward_rate -> inflation_rate for pos
  specify read or write intentions for parameters storage keys
  add target_staked_ratio to PoS params
  update max inflation rate in params (formerly max_staking_rewards_rate)
  rename `votes_per_token` to `tm_votes_per_token` since this will only be used to interface with tendermint
  add new parameters needed for rewards PD controller to the Parameters storage
  add max_staking_reward_rate to PosParams
  clarify+rename 'epoch_storage_key' as 'epoch_duration_storage_key'
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  [ci] wasm checksums update
  changelog: add #763
  pos/vp: do not return early on unknown permitted key
  changelog: add #582
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  ...
tzemanovic added a commit that referenced this pull request Dec 6, 2022
Namada 0.11.0

* tag 'v0.11.0': (195 commits)
  Namada 0.11.0
  wasm: update checksums.json
  wasm_for_tests: rebuild all
  fix default chain IDs lengths
  make fmt
  s/anoma/namada in all files
  apps: s/anoma/namada/ in paths
  wasm: update checksums.json
  [ci] wasm checksums update
  changelog: add #733
  docs/overview: update deps graph and add a generated one too
  pos: replace generic types with concrete types from core
  update paths for core split and apply many small fixes
  add new crate "namada_core" for core types, storage_api, tx_env, vp_env
  proto/types: remove an & to placate 1.65 clippy
  changelog: add #807
  tx: sign hash of code rather than full code blob
  maint: fix incorrect clippy placation in previous merge
  fix: use multitoken credit_tokens() in tests
  maint: patch funty 1.2.0
  ci: update rust/docker image
  Fix changelog
  Fix up for namada v0.10.1
  Add changelog
  Add check-abcipp command
  Use ferveo-tpke flag to stop tendermint-rpc being pulled into wasm
  First attempt at fixing shared abcipp
  deleted out of date TS docs
  changelog: add #797
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
  rename slash rate params with `min`, update default `PosParam` values
  Update tests/src/vm_host_env/tx.rs
  Update shared/src/ledger/parameters/mod.rs
  changelog: add #775
  [feat]: Renamed 'fee' CLI arguments to 'gas'.
  make: clean any existing WASM files before WASM build
  changelog: add #719
  changelog: add #674
  pos: use  method
  governance: added  method, fmt, clippy
  changelog: add #570
  [ci] wasm checksums update
  changelog: add #708
  remove `min_duration` from `ParametersConfig`
  remove `staked_ratio` and `pos_inflation_amount` from `ParametersConfig`
  update comments
  [ci] wasm checksums update
  fmt and includes
  updates to accommodate `tm_votes_per_token` relative to namnam
  Update rewards parameters and distribution
  update toml files with latest parameters and values
  fix arb_amount to max out at max tm voting power (fix wasm test bug)
  storage change: last inflation rate -> last inflation token amount
  fix: write all fields in Parameters storage in `init_storage`
  fix initial staked ratio parameter at genesis
  update rust_decimal version + fmt
  clean comments and toml files of basis points
  fix correct inner type of ValidationError::TotalVotingPowerTooLarge
  more decimal_mult function uses
  add fns to multiply Decimal and integer type, return truncated integer
  remove BasisPoints and change relevant parameters to Decimal type
  documentation updates + unused imports removal
  rename reward_rate -> inflation_rate for pos
  specify read or write intentions for parameters storage keys
  add target_staked_ratio to PoS params
  update max inflation rate in params (formerly max_staking_rewards_rate)
  rename `votes_per_token` to `tm_votes_per_token` since this will only be used to interface with tendermint
  add new parameters needed for rewards PD controller to the Parameters storage
  add max_staking_reward_rate to PosParams
  clarify+rename 'epoch_storage_key' as 'epoch_duration_storage_key'
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  async tx to change validator commission rate
  [ci] wasm checksums update
  changelog: add #763
  pos/vp: do not return early on unknown permitted key
  changelog: add #582
  add vp validator to wasms
  fix: critical flaw in pos VP that was prematurely returning true
  add max commission rate info to validation and pos state machine test
  validator VP that checks source and signature for a commission rate change tx
  changes in response to review comments
  ...
tzemanovic added a commit that referenced this pull request Dec 9, 2022
* bat/eth-0.11.0-merge: (205 commits)
  tiny refactor vote_extensions
  [chore]: Added some docstrings
  Makefile: add core to clippy-abcipp and test-unit-abcipp and fix shared
  [fix] abcipp ethereum_events unit test
  [feat]: Fixed up the abcipp feature flag
  [fix]: Fixed FinalizeBlock method
  more abcipp fixes
  fix `make check-abcipp` and `make clippy-abcipp`
  fix 0.11.0 merge
  move eth-bridge types and storage mods to core
  Namada 0.11.0
  wasm: update checksums.json
  wasm_for_tests: rebuild all
  fix default chain IDs lengths
  make fmt
  s/anoma/namada in all files
  apps: s/anoma/namada/ in paths
  wasm: update checksums.json
  [ci] wasm checksums update
  changelog: add #733
  docs/overview: update deps graph and add a generated one too
  pos: replace generic types with concrete types from core
  update paths for core split and apply many small fixes
  add new crate "namada_core" for core types, storage_api, tx_env, vp_env
  proto/types: remove an & to placate 1.65 clippy
  changelog: add #807
  tx: sign hash of code rather than full code blob
  maint: fix incorrect clippy placation in previous merge
  fix: use multitoken credit_tokens() in tests
  maint: patch funty 1.2.0
  ci: update rust/docker image
  Fix changelog
  Fix up for namada v0.10.1
  Add changelog
  Add check-abcipp command
  Use ferveo-tpke flag to stop tendermint-rpc being pulled into wasm
  First attempt at fixing shared abcipp
  deleted out of date TS docs
  changelog: add #797
  [ci] wasm checksums update
  changelog: add #707
  remove comments to self
  convert to tm voting power in `update_epoch`
  client: replace voting power with bonded stake in queries, etc
  fix pos state machine test
  clean up naming of "validator total deltas" -> "validator deltas"
  fix client voting power query
  fix `TendermintValidator::power`
  clippy: suppress unused validation vars (may need later)
  fmt + cleanup after cherrypicking commits from #388
  more voting_power removal and accurate variable renaming
  keep voting_power as a possible client query
  change `validator_total_deltas` -> `validator_deltas`
  Update wasm tx_(un)bond with VotingPower removal
  refactor VotingPower out of PoS VP
  continue refactoring away VotingPower
  refactor out VotingPower(Delta) in pos crate, distinguish total and validator deltas
  rename slash rate params with `min`, update default `PosParam` values
  Update tests/src/vm_host_env/tx.rs
  Update shared/src/ledger/parameters/mod.rs
  changelog: add #775
  [feat]: Renamed 'fee' CLI arguments to 'gas'.
  make: clean any existing WASM files before WASM build
  changelog: add #719
  changelog: add #674
  pos: use  method
  governance: added  method, fmt, clippy
  changelog: add #570
  [ci] wasm checksums update
  changelog: add #708
  remove `min_duration` from `ParametersConfig`
  remove `staked_ratio` and `pos_inflation_amount` from `ParametersConfig`
  update comments
  [ci] wasm checksums update
  fmt and includes
  updates to accommodate `tm_votes_per_token` relative to namnam
  Update rewards parameters and distribution
  update toml files with latest parameters and values
  fix arb_amount to max out at max tm voting power (fix wasm test bug)
  storage change: last inflation rate -> last inflation token amount
  fix: write all fields in Parameters storage in `init_storage`
  fix initial staked ratio parameter at genesis
  update rust_decimal version + fmt
  clean comments and toml files of basis points
  fix correct inner type of ValidationError::TotalVotingPowerTooLarge
  more decimal_mult function uses
  add fns to multiply Decimal and integer type, return truncated integer
  remove BasisPoints and change relevant parameters to Decimal type
  documentation updates + unused imports removal
  rename reward_rate -> inflation_rate for pos
  specify read or write intentions for parameters storage keys
  add target_staked_ratio to PoS params
  update max inflation rate in params (formerly max_staking_rewards_rate)
  rename `votes_per_token` to `tm_votes_per_token` since this will only be used to interface with tendermint
  add new parameters needed for rewards PD controller to the Parameters storage
  add max_staking_reward_rate to PosParams
  clarify+rename 'epoch_storage_key' as 'epoch_duration_storage_key'
  changelog: add #695
  [ci] wasm checksums update
  addressing 2nd round of review comments
  ...
@cwgoes
Copy link
Contributor

cwgoes commented Jan 5, 2023

@brentstone Is this PR still relevant? Has all or part of it been merged already, perhaps?

@brentstone
Copy link
Contributor Author

@brentstone Is this PR still relevant? Has all or part of it been merged already, perhaps?

@cwgoes This one may not be relevant anymore. Parts of it have been merged as #436, #687, #695, #707, and #708. Other parts of it exist as #714, which is currently open (though can prob be merged soon).

I will review what is in here today and see if there are things unaccounted for in other PRs and determine if it can be closed.

@brentstone
Copy link
Contributor Author

Closed by splitting out into #714, #436, #687, #695, #707, and #708.

@brentstone brentstone closed this Jan 6, 2023
@brentstone brentstone deleted the brent/pos-inflation branch April 13, 2023 16:03
phy-chain pushed a commit to phy-chain/namada that referenced this pull request Mar 1, 2024
* Update Ledger signing for multisig fixes

* Enable IBC now that it can be parsed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove BasisPoints in favor of using the rust_decimal impl PoS inflation system
3 participants