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

[AHM] Multi-block staking election pallet #7282

Merged
merged 187 commits into from
Feb 15, 2025
Merged
Changes from 1 commit
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
3f6bf3f
init: adds EPM-MB, multipaged types and primitives
gpestana Oct 13, 2024
8a682b8
refactors staking pallet with new paginated types
gpestana Oct 13, 2024
94ff073
refactors election-multiphase pallet with new paginated types
gpestana Oct 13, 2024
1527bd6
nits for dependent pallets and runtimes
gpestana Oct 13, 2024
5cb1de1
adds ElectionProvider::ongoing to trait and impls
gpestana Oct 14, 2024
50d9698
Merge branch 'master' into gpestana/epm-mb
Ank4n Oct 15, 2024
43eec4b
clean up sp-staking
gpestana Oct 18, 2024
11dd785
clean up and rustdoc for epm-support
gpestana Oct 18, 2024
d446ed0
Merge branch 'gpestana/epm-mb' of github.com:paritytech/polkadot-sdk …
gpestana Oct 18, 2024
5c17573
nits onchain election provider
gpestana Oct 18, 2024
ee7bdd4
EPM nits and rustdoc improvements
gpestana Oct 18, 2024
f30b548
clean up and rustdocs for EPM core and sub pallets
gpestana Oct 18, 2024
e7bf7dc
rustdocs and nits
gpestana Oct 18, 2024
f810692
Merge branch 'master' into gpestana/epm-mb
gpestana Oct 18, 2024
bf67a3e
adds prdoc
gpestana Oct 18, 2024
345840d
fixes prdoc
gpestana Oct 18, 2024
52dcee9
removes from all pallets
gpestana Oct 18, 2024
6d506e2
Adds new tests for verifier pallet
gpestana Oct 18, 2024
430532a
implements hold logic in signed pallet; finishes implementing bail call
gpestana Oct 19, 2024
068e0fd
finishes signed pallet
gpestana Oct 21, 2024
5ca0bab
Merge branch 'master' into gpestana/epm-mb-merge
gpestana Oct 22, 2024
385500d
updates inherent call in unsigned phase to new interfaces
gpestana Oct 22, 2024
b4019bb
licence header nit
gpestana Oct 22, 2024
9f30e2d
Merge branch 'master' into gpestana/epm-mb
gpestana Oct 23, 2024
82abba1
removes epm-mb
gpestana Oct 24, 2024
1034653
nit fix in bags list remote tests
gpestana Oct 24, 2024
7248960
nit fix prdoc
gpestana Oct 24, 2024
18813c9
Merge branch 'master' into gpestana/epm-mb
gpestana Oct 25, 2024
a92d44a
Addresses PR reviews (removes all paged types/configs from epm and nits)
gpestana Oct 25, 2024
3d1a330
improve memory efficiency of try into bounded supports; tests
gpestana Oct 25, 2024
1757c91
a few nits in the staking pallet; handles exposures better (do not le…
gpestana Oct 28, 2024
7022467
updates electable stashes to allow for multiple adds across pages
gpestana Nov 1, 2024
b49684e
Adds staking pallet rustdocs; nits
gpestana Nov 1, 2024
7851c6e
Refactors the snapshot cursors of staking pallet and adds more tests
gpestana Nov 5, 2024
3ff9914
Adds e2e tests to staking pallet
gpestana Nov 7, 2024
bc7b200
adds exposure collection checks to multi page election tests
gpestana Nov 7, 2024
2e71ab2
EPM-MB: Supports only single page target snapshot (#6414)
gpestana Nov 8, 2024
e9854fc
Adds try-state checks for election prep metadata and tests
gpestana Nov 8, 2024
9f4b6a3
more tests
gpestana Nov 11, 2024
612886f
Merge branch 'master' into gpestana/epm-mb
gpestana Nov 12, 2024
fb31d1b
".git/.scripts/commands/fmt/fmt.sh"
Nov 12, 2024
01e09c6
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 12, 2024
b4c900c
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 12, 2024
628ae67
Update prdoc/pr_6034.prdoc
gpestana Nov 12, 2024
d05a002
Update substrate/frame/staking/src/lib.rs
gpestana Nov 12, 2024
07796d9
Update substrate/frame/staking/src/lib.rs
gpestana Nov 12, 2024
23b9c21
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 12, 2024
2570c23
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 12, 2024
808e2ba
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 12, 2024
2092d2c
Update substrate/frame/election-provider-multi-phase/src/unsigned.rs
gpestana Nov 12, 2024
f2fe960
Update substrate/frame/election-provider-support/src/onchain.rs
gpestana Nov 12, 2024
bca81c2
Update substrate/frame/election-provider-support/src/lib.rs
gpestana Nov 12, 2024
df729a0
addresses PR review comments
gpestana Nov 12, 2024
0774cc4
Merge branch 'master' into gpestana/epm-mb
gpestana Nov 12, 2024
51329d7
ensures only collected electable stashes have exposures collectede
gpestana Nov 12, 2024
64d3ab3
comment nits
gpestana Nov 12, 2024
2082723
adds type alias to ensure bounds are in order
gpestana Nov 12, 2024
d720e5a
integrity test
gpestana Nov 12, 2024
a88361a
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 12, 2024
ea5aa9e
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 12, 2024
d140b1f
removes the lockable election provider and other nits
gpestana Nov 12, 2024
d64068b
Merge branch 'gpestana/epm-mb' of github.com:paritytech/polkadot-sdk …
gpestana Nov 12, 2024
1a2ddfc
removes unecessary last_page_empty_slots
gpestana Nov 13, 2024
2117056
docs and tests for exposures.split_others
gpestana Nov 14, 2024
e568248
Merge branch 'master' into gpestana/epm-mb
gpestana Nov 14, 2024
83c7288
nits and removes sp-std dependency from staking primitives
gpestana Nov 14, 2024
6705e0f
Update substrate/frame/election-provider-multi-phase/src/lib.rs
gpestana Nov 14, 2024
4e13e4f
Update prdoc/pr_6034.prdoc
gpestana Nov 14, 2024
825984b
fixes epm test case
gpestana Nov 14, 2024
93d6bda
removes TryIntoBoundedSupports trait and impl coversion directly in S…
gpestana Nov 14, 2024
69b38e5
Adds max backers per winner bounds check in the phragmen implementati…
gpestana Nov 14, 2024
f6be182
Merge branch 'master' into gpestana/epm-mb
gpestana Nov 22, 2024
442a64e
Merge branch 'master' into gpestana/epm-mb
gpestana Dec 3, 2024
e43e885
addresses PR comments
gpestana Dec 3, 2024
676db53
Revert "Adds max backers per winner bounds check in the phragmen impl…
gpestana Dec 3, 2024
fe8b9ae
adds max backers per winner trimming test
gpestana Dec 3, 2024
84eea26
Ensures max backers per winner bounds are met in Staking miner (#6771)
gpestana Dec 5, 2024
4788579
fixes overflowing tests
gpestana Dec 9, 2024
b792a6d
adds benchs and nits
gpestana Dec 11, 2024
61ef83e
Merge branch 'master' into gpestana/epm-mb
gpestana Dec 11, 2024
5ce51ea
pr review refactors and improvements
gpestana Dec 11, 2024
39e5c3d
improves add_electables and tests
gpestana Dec 11, 2024
65cf87f
improves add_electables
gpestana Dec 11, 2024
7d33c5c
remove unecessary cloning
gpestana Dec 12, 2024
d7817e0
migrations
gpestana Dec 17, 2024
0edb158
Merge branch 'master' into gpestana/epm-mb
gpestana Dec 17, 2024
89069a9
Master.into()
kianenigma Jan 15, 2025
6255f64
Master.into()
kianenigma Jan 15, 2025
de4f1da
fix
kianenigma Jan 15, 2025
06d3308
fmt
kianenigma Jan 15, 2025
5426e88
Update substrate/frame/election-provider-multi-phase/src/lib.rs
kianenigma Jan 15, 2025
c228dc4
fix lock file
kianenigma Jan 15, 2025
ddeb1ae
Merge branch 'gpestana/epm-mb' of github.com:paritytech/polkadot-sdk …
kianenigma Jan 15, 2025
de93ecd
onchain backup sorting, testing chain in kitchensink
kianenigma Jan 15, 2025
5d64293
fix migration
kianenigma Jan 15, 2025
9464dc5
Merge branch 'master' of github.com:paritytech/polkadot-sdk into gpes…
kianenigma Jan 15, 2025
01adfe6
greenish CI now
kianenigma Jan 16, 2025
eedd03a
fmt
kianenigma Jan 16, 2025
33a37e6
fix unused import
kianenigma Jan 16, 2025
7df54f1
fix some benchmarks too
kianenigma Jan 16, 2025
1b5ddc6
better doc
kianenigma Jan 16, 2025
c5efc26
fix tests and a bug
kianenigma Jan 16, 2025
3ab3a17
Merge branch 'master' into gpestana/epm-mb
kianenigma Jan 16, 2025
4d690b7
more testing
kianenigma Jan 17, 2025
e9180f6
Master.into()
kianenigma Jan 17, 2025
d348cb0
Update substrate/primitives/staking/src/lib.rs
kianenigma Jan 17, 2025
7ce460c
rename and fix
kianenigma Jan 17, 2025
bb685d1
Upstream.into()
kianenigma Jan 17, 2025
7f438db
fix
kianenigma Jan 17, 2025
90807e2
add tests
kianenigma Jan 17, 2025
fbc8733
add original pallet, almost compiles
kianenigma Jan 17, 2025
377b32b
pallet compiles and all tests pass again
kianenigma Jan 20, 2025
b56e739
refactor events
kianenigma Jan 20, 2025
28487af
clean up main pallet a bit
kianenigma Jan 20, 2025
68bc3cd
migrate signed to fungibles
kianenigma Jan 20, 2025
8186246
cleanip signed phase a bit more
kianenigma Jan 20, 2025
b5b21ff
integrate try-runtime
kianenigma Jan 21, 2025
0f81eba
fix up signed phase, lgtm
kianenigma Jan 21, 2025
e09da9b
integrate into the runtime
kianenigma Jan 21, 2025
dbea5a8
make multi page election graceful, onchain supports multi page, bette…
kianenigma Jan 23, 2025
340c563
node biuld
kianenigma Jan 23, 2025
fa9ef69
add a few comments for niklas
kianenigma Jan 23, 2025
0e2446c
add a few comments for niklas
kianenigma Jan 23, 2025
e10e8bf
add a few comments for niklas
kianenigma Jan 23, 2025
31f4245
works continously now
kianenigma Jan 23, 2025
b9aa881
stateless data provider so that EPM and EPMB can work together
kianenigma Jan 27, 2025
e02a7ce
staking benchmarks are mostly green
kianenigma Jan 27, 2025
cd52ab2
master.into()
kianenigma Jan 28, 2025
deb7daa
tests pass again
kianenigma Jan 28, 2025
72841b7
refactor into MinerConfig
kianenigma Jan 29, 2025
a8445bd
move dev_accounts to pallet-staking, simplify onchain large chain-spe…
kianenigma Jan 29, 2025
398382d
rename to validators
kianenigma Feb 3, 2025
322969d
Merge branch 'master' into kiz-multi-block-eletion
Ank4n Feb 4, 2025
c04e473
add benchmarking and weight, we need a lot more work to fix the weights
kianenigma Feb 9, 2025
8f06783
Merge branch 'kiz-multi-block-eletion' of github.com:paritytech/polka…
kianenigma Feb 9, 2025
bb1f89a
make the timing good for testing
kianenigma Feb 10, 2025
0fa010d
Bound some storage items for pallet `staking` and clean up deprecated…
re-gius Feb 10, 2025
7eaf90c
Merge branch 'master' of github.com:paritytech/polkadot-sdk into kiz-…
kianenigma Feb 10, 2025
d7f1cdc
pass some tests
kianenigma Feb 10, 2025
14d536d
update all license headers
kianenigma Feb 10, 2025
c72a9c1
Update from kianenigma running command 'prdoc'
github-actions[bot] Feb 10, 2025
4191232
Update from kianenigma running command 'fmt'
github-actions[bot] Feb 10, 2025
35fd8af
Merge branch 'kiz-multi-block-eletion' of github.com:paritytech/polka…
kianenigma Feb 10, 2025
10fbd75
update PRdoc
kianenigma Feb 10, 2025
dfc2f18
Merge branch 'master' of github.com:paritytech/polkadot-sdk into kiz-…
kianenigma Feb 10, 2025
a7d2233
some clippy and CI issues
kianenigma Feb 10, 2025
38d4971
gen umbrella + versions
kianenigma Feb 10, 2025
1e04da7
bring back umbrella version
kianenigma Feb 10, 2025
821fcff
make tests temporarily pass to merge the PR
kianenigma Feb 11, 2025
824f0a7
fix
kianenigma Feb 11, 2025
5168936
CI happy?
kianenigma Feb 12, 2025
a6739cf
allow unused
kianenigma Feb 12, 2025
6fd02ea
Merge branch 'master' into kiz-multi-block-eletion
kianenigma Feb 12, 2025
722bf1a
Update prdoc/pr_7282.prdoc
kianenigma Feb 12, 2025
b95fda3
fix unused stuff
kianenigma Feb 12, 2025
00c0828
Merge branch 'kiz-multi-block-eletion' of github.com:paritytech/polka…
kianenigma Feb 12, 2025
ccfea6a
Update prdoc/pr_7282.prdoc
kianenigma Feb 12, 2025
39d2b76
fix PRdoc again
kianenigma Feb 12, 2025
2cd7e37
fix some old prdocs
kianenigma Feb 12, 2025
cd90534
clippy and UI fixes
kianenigma Feb 12, 2025
48add5d
fix all docs
kianenigma Feb 12, 2025
a1dd41a
fix more docs and warnings
kianenigma Feb 12, 2025
5d33179
fix unused fn
kianenigma Feb 12, 2025
7dcb6fd
fix a subset of quick benches
kianenigma Feb 12, 2025
447c81f
fix phragmen benches
kianenigma Feb 12, 2025
1e4ffc3
last CI issues?
kianenigma Feb 12, 2025
8ae2184
Merge branch 'master' into kiz-multi-block-eletion
kianenigma Feb 13, 2025
469046a
make benchmarks faster, quick solver and fix some tests in substrate …
kianenigma Feb 13, 2025
9cad263
Merge branch 'kiz-multi-block-eletion' of github.com:paritytech/polka…
kianenigma Feb 13, 2025
2d5bea3
fix build
kianenigma Feb 13, 2025
0d6c7ff
exclude EPMB benchmarks from the quick-bench job for now
kianenigma Feb 13, 2025
607a101
fix a lot of random tests
kianenigma Feb 13, 2025
bd21793
fix genesis config tests
kianenigma Feb 13, 2025
4dc1ec4
fixing more CI tests...
kianenigma Feb 13, 2025
f0b9503
new weights
kianenigma Feb 13, 2025
9a0ed54
fix test compilation
kianenigma Feb 13, 2025
97300a6
license + fix one more test
kianenigma Feb 13, 2025
3d4c733
:wq
kianenigma Feb 13, 2025
908fa00
license
kianenigma Feb 13, 2025
6769acb
Update from kianenigma running command 'prdoc --force'
github-actions[bot] Feb 14, 2025
2aca247
prdco
kianenigma Feb 14, 2025
ffb9746
remove problematic test
kianenigma Feb 14, 2025
f35de68
revert lock file?
kianenigma Feb 14, 2025
02b438c
fix infinite loop in paras benchmarking
kianenigma Feb 14, 2025
fbb815a
remove one more problematic benchmark for now
kianenigma Feb 14, 2025
2632619
Merge branch 'master' into kiz-multi-block-eletion
kianenigma Feb 14, 2025
979a0f3
Merge branch 'master' into kiz-multi-block-eletion
kianenigma Feb 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
works continously now
  • Loading branch information
kianenigma committed Jan 23, 2025
commit 31f4245849175bf4c27de400f0a7b160c6ac95dd
9 changes: 6 additions & 3 deletions substrate/frame/staking/src/pallet/impls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1521,9 +1521,12 @@ impl<T: Config> ElectionDataProvider for Pallet<T> {
// TODO: this is somewhat temp hack to fix this issue:
// in the new multi-block staking model, we finish the election one block before the session
// ends. In this very last block, we don't want to tell EP that the next election is in one
// blocks, but rather in a whole era from now.

if until_this_session_end == One::one() && sessions_left.is_zero() {
// blocks, but rather in a whole era from now. For simplification, while we are
// mid-election,we always point to one era later.
//
// This whole code path has to change when we move to the rc-client model.
if !ElectableStashes::<T>::get().is_empty() {
log!(debug, "we are mid-election, pointing to next era as election prediction.");
return now.saturating_add(
BlockNumberFor::<T>::from(T::SessionsPerEra::get()) * session_length,
)
Expand Down