This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
[NPoS] Unlimited number of nominators eligible for Rewards payout #13498
Open
Ank4n
wants to merge
118
commits into
master
Choose a base branch
from
ankan/paged-rewards-rebased2
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 60 commits
Commits
Show all changes
118 commits
Select commit
Hold shift + click to select a range
15805ce
rewards payout in multi block fashion
Ank4n bb6a79b
use MaxExposurePageSize from staking
Ank4n 1e40f4d
add max exposure page count to staking interface
Ank4n ac43c26
fmt
Ank4n 09e9147
fix unimplemented function
Ank4n 1eab166
feature gate
Ank4n bb60f7b
rewards payout in multi block fashion
Ank4n 1c88aa2
use MaxExposurePageSize from staking
Ank4n 98550eb
add max exposure page count to staking interface
Ank4n fb80ae2
fmt
Ank4n 494bbde
fix unimplemented function
Ank4n f2d06ea
feature gate
Ank4n 5141b67
add staking api
Ank4n f1b90a8
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n 7d0c66b
Merge branch 'ankan/paged-rewards-staking-api' into ankan/paged-rewar…
Ank4n 6308d43
fmt
Ank4n 69737f0
update weights
Ank4n 26a2e5b
fix imports
Ank4n cd01ee0
fix docs
Ank4n 4e30f22
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n 3e2fed1
fix merge
Ank4n 06d6bfe
Merge remote-tracking branch 'origin/master' into ankan/paged-rewards…
10b8b34
Merge remote-tracking branch 'origin/master' into ankan/paged-rewards…
6ea4f57
resolve pr comments
Ank4n d824e92
keep the order of staking interface impl
Ank4n 6b6a319
move Exposure, ExposurePage, ExposureOverview and IndividualExposure …
Ank4n 910dfe3
remove dependency to stakign for staking runtime api
Ank4n b0c7c36
initialise size of others while prepping pages
Ank4n 832353f
imrpovements
Ank4n 7dfadbc
fix code
Ank4n 2ba18e5
link migration changelog
Ank4n 9c5d405
remove unused import
Ank4n 8abc250
fix staking tests
Ank4n f497d19
fmt
Ank4n 70425f8
Apply suggestions from code review
Ank4n a0f64c4
Merge remote-tracking branch 'origin/master' into ankan/paged-rewards…
c9b5c4c
move EraInfo to lib
Ank4n 2354bd7
Merge remote-tracking branch 'origin/master' into ankan/paged-rewards…
f12a75a
fix docs
Ank4n ae28d84
expect instead of unwrap
Ank4n f76dbcf
remove useless code
Ank4n f4dd55d
remove deprecated weight doc
Ank4n d99769d
clip required page count
Ank4n d939789
defensively assert
Ank4n b2eed7b
doc wrapping fix
Ank4n b776386
explain why we return one page when no nominator pages exist
Ank4n 5f82274
Merge remote-tracking branch 'origin/master' into ankan/paged-rewards…
3ccb0af
eras stakers might be an unsafe runtime api, should evaluate separate…
Ank4n 2865046
remove eras stakers runtime api from node runtime
Ank4n 8c013e7
rename Era info functions
Ank4n 809b47e
fmt
Ank4n 2a14298
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n fe09ecd
fix tests
Ank4n 2023135
fixes
Ank4n 32a507e
".git/.scripts/commands/fmt/fmt.sh"
6b5fca1
Merge remote-tracking branch 'origin/master' into ankan/paged-rewards…
945f64d
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n fa02b72
add back missed config while resolving conflict
Ank4n a4884b2
not needed anymore
Ank4n 84368c5
fix migration
Ank4n 77fece6
Merge remote-tracking branch 'origin/master' into ankan/paged-rewards…
2fa9227
Update frame/staking/runtime-api/src/lib.rs
Ank4n 98ffc9f
Update frame/staking/src/pallet/mod.rs
Ank4n 9275f3e
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n 559e1e2
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n d73c7a1
cargo fmt
Ank4n dd70800
rename page count api
Ank4n 746049e
make exposure page count and page size u16
Ank4n 1a4963b
Apply suggestions from code review
Ank4n 916dde2
wrap to 100 letters
Ank4n 53ef105
Update frame/staking/src/lib.rs
Ank4n 62835ef
rustdoc for Individual exposure
Ank4n 0d7b4a8
rename ExposureOverview to more explicit PagedExposureMetadata
Ank4n 1efa770
don't repeat docs
Ank4n ef07f43
rename the exposure_overfiew field
Ank4n 60785b7
rename ExposureExt
Ank4n 99d595f
fix benchmark
Ank4n 3bd8768
".git/.scripts/commands/fmt/fmt.sh"
12a7566
Trigger Build
Ank4n fcd336f
rename test fn to set max page count
Ank4n 12af748
revert changing types of exposure page size and count back to u32
Ank4n 338f69a
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n ac63a5f
unused import
Ank4n 954a3a6
".git/.scripts/commands/fmt/fmt.sh"
38827d0
Pallets: Treasury deprecate `propose_spend` dispatchable (#14538)
muharem a1a06b5
Sync NFT metadata limits with AssetHub values (#14748)
jsidorenko 307cec8
sc-cli: add no-beefy flag to cli config (#14754)
acatangiu 0875d0b
sc-consensus-beefy: fix initialization when BEEFY genesis state unava…
acatangiu 776adab
make `BagsList::put_in_front_of` be permissionless (#14714)
kianenigma ef8962a
[contracts] Derive useful traits for public types (#14723)
pmikolajczyk41 8b6ae95
add `frame_system::DefaultConfig` to individual pallet `DefaultConfig…
kianenigma 3451985
Fixes CI (#14763)
gupnik e47ecde
fix: node cli docs (#14718)
muse254 df1f1ae
[fix lint warnings: Uniques pallet] fix clippy::missing_errors_doc li…
829f0d7
Add `try_state` check to Pallet `MessageQueue` (#13502)
gitofdeepanshu 02c8757
Remove missing sentence (#14769)
naterarmstrong bd55f14
[fix lint warnings: NFTs pallet] fix clippy::missing_errors_doc lint …
981de06
chainHead: Limit ongoing operations (#14699)
lexnv de0528b
Update Scheduler Pallet Documentation (#14740)
snowmead 28afcb8
Revert "sc-cli: add no-beefy flag to cli config (#14754)" (#14766)
acatangiu f6b8cbd
Add `--workspace` to clippy (#14772)
alvicsam 4051fde
Make peer evictions less aggressive (#14619)
altonen cbf6e1c
`cargo clippy +nightly --fix` run on downstream node template (#14693)
nuke-web3 c40cf54
Improve `storage_alias` and make `UnlockAndUnreserveAllFunds` indepen…
bkchr d6f9693
[fix lint warnings: NFTs pallet] fix clippy::missing_docs_in_private_…
7674d26
Update wasm-opt to 0.114 (#14695)
brson 7071c60
Revert "chore: update libp2p to 0.52.1 (#14429)" (#14722)
altonen 3ddf325
Free standing `elections-phragmen` and `tips` Gov V1 unlock/unreserve…
liamaharon 81c7234
Disarm `OnRuntimeUpgrade::pre/post_upgrade` `Tuple` footgun (#14759)
liamaharon 5f07634
deprecate `try-runtime` subcommand and direct users to standalone cli…
liamaharon 858140e
Runtime: avoid duplication and test all signature (#14663)
ashWhiteHat 29f800b
Set `StateBackend::Transaction` to `PrefixedMemoryDB` (#14612)
bkchr e1bbd95
remove page count requirement
Ank4n 4e0c8b6
Merge branch 'master' into ankan/paged-rewards-rebased2
Ank4n 79e3fb0
paging is always enabled
Ank4n 4d51ae0
".git/.scripts/commands/fmt/fmt.sh"
989b391
no clipping or sorting of nominators
Ank4n ec0694b
small edits to the changelog
Ank4n File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -195,7 +195,8 @@ impl pallet_staking::Config for Test { | |
type SessionInterface = Self; | ||
type UnixTime = pallet_timestamp::Pallet<Test>; | ||
type EraPayout = pallet_staking::ConvertCurve<RewardCurve>; | ||
type MaxNominatorRewardedPerValidator = ConstU32<64>; | ||
type MaxExposurePageSize = ConstU32<64>; | ||
type MaxExposurePageCount = ConstU32<1>; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would there be any issues making these There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. An update, I want to bound EraStakersPaged and ClaimedRewards with these two values and boundedVec needs to be bounded by a u32 value. I will undo the changes to make it u16. |
||
type OffendingValidatorsThreshold = OffendingValidatorsThreshold; | ||
type NextNewSession = Session; | ||
type ElectionProvider = onchain::OnChainExecution<OnChainSeqPhragmen>; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Changelog | ||
|
||
All notable changes to this project will be documented in this file. | ||
|
||
The format is loosely based | ||
on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). We maintain a | ||
single integer version number for staking pallet to keep track of all storage | ||
migrations. | ||
|
||
## [v14] | ||
|
||
### Added | ||
|
||
- New item `ErasStakersPaged` that keeps up to `MaxExposurePageSize` | ||
individual nominator exposures by era, validator and page. | ||
- New item `ErasStakersOverview` complementary to `ErasStakersPaged` which keeps | ||
state of own and total stake of the validator across pages. | ||
- New item `ClaimedRewards` to support paged rewards payout. | ||
|
||
### Deprecated | ||
|
||
- `ErasStakersClipped` is deprecated and may be removed after 84 eras. | ||
- `ErasStakers` is deprecated and may be removed after 84 eras. | ||
- Field `claimed_rewards` in item `Ledger` is renamed | ||
to `legacy_claimed_rewards` and may be removed after 84 eras. | ||
|
||
[v14]: https://github.com/paritytech/substrate/pull/13498 |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This API call is only for validator exposures so the naming could reflect this and be a bit more intuitive.
era_page_count
gives me the impression that this is returning the total pages for a whole era.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The storage item that page corresponds to is called
ErasStakersPaged
(which derives its name from the existing non-pagedErasStakers
). What do you think about renaming it aseras_stakers_page_count
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renamed to eras_stakers_page_count to keep in line with how storage items are named.