This referenda increases the parachain validator set size from 600 to 700. The maximum backing group size is kept to 5, so the total number of usable cores increases to 140.
#457 Fix TotalIssuance
Fixing The Total Issuance
TLDR: A historic bug caused the Total Issuance tracking to deviate from the actual Issuance. I propose a whitelisted call to re-align them. The underlying issue has already been resolved.
There was an issue discovered on Kusama that the sum of all accounts' balances does not match the Total Issuance stored in pallet-balances
. This is a serious issue, since third parties rely on its accuracy for tracking the total amount of existing tokens.
The underlying problem was fixed by #1222 and #3707. The TI has not drifted further, but the same problem is present on Polkadot.
The Difference
First, it is necessary to measure the exact drift between the expected and the actual Total Issuance. This can be done by querying a node at a fixed block height. Two things have to be queried: all account entries and the TI variable from the balances pallet.
Conveniently, this script does both. The exact numbers were determined by running these commands against a Kusama archive RPC:
python3 check-ti-complete.py --url <RPC> block --trace 24407008
python3 check-ti-complete.py --url <RPC> block --trace 23780225
:::spoiler
git clone https://github.com/ggwpez/substrate-scripts
# Setup local Python env
python3 -m venv venv
venv/bin/pip install substrate-interface
venv/bin/python3 check-ti-complete.py --url wss://rpc.ibp.network/kusama block 23780225 --trace
:::
Console output from both commands:
[24407008] The TotalIssuance is larger than the sum of all accounts TI. TI: 15,311,516.288236268 KSM, Sum: 15,311,459.956873074 KSM
[24407008] TI must be decreased by 15311516288236268206 - 15311459956873073389 = 56331363194817 (56.331363194817 KSM)
[23780225] The TotalIssuance is larger than the sum of all accounts TI. TI: 15,131,305.14570446 KSM, Sum: 15,131,248.814341264 KSM
[23780225] TI must be decreased by 15131305145704458736 - 15131248814341263919 = 56331363194817 (56.331363194817 KSM)
The JSON output in the file blocks-ti.json
tells us the resulting numbers:
{"block": 24407008, "sum": 15311459956873073389, "ti": 15311516288236268206, "runtime": "Parity Polkadot", "diff": 56331363194817}
{"block": 23780225, "sum": 15131248814341263919, "ti": 15131305145704458736, "runtime": "Parity Polkadot", "diff": 56331363194817}
This means that the difference is now stable since the last runtime upgrade that was 626,783 blocks ago.
The diff
field shows shows the exact difference in planks: 56331363194817
. The TI is larger than the sum; we therefore need to decrease the TI by that amount.
Referendum
The call to fix this is pallet-balances::force_adjust_total_issuance:
fn force_adjust_total_issuance(
direction: AdjustmentDirection,
#[pallet::compact] delta: T::Balance,
)
AdjustmentDirection
can be either Increase
or Decrease
. This can be used to correct the TI to be re-aligned with the actual sum of all accounts' balances.
The final call is 0x0409010bc197e4aa3b33:
A similar post and referendum for Polkadot will follow once it was executed correctly on Kusama.
Show More
This Referendum decreases total issuance by ~56 KSM. It does not have any impact on any individual account.
This is fixing total issuance due to a bug where some early killed accounts did not update total issuance even though the DOT/KSM were destroyed. See
https://github.com/polkadot-fellows/runtimes/issues/147
for details.
@Bill Yes exactly, thanks for jumping in. The public post is here:
Detailed contextual information is available on Subsquare —
Discover similar proposals
[Whitelisted Caller] Increase max_validators to 700
See More
Whitelisted Caller
Whitelisted Caller
This referenda increases the parachain validator set size from 600 to 700. The maximum backing group size is kept to 5, so the total number of usable cores increases to 140.
Additionally, also update the setNDelayTranches from 257 to 299, so that the number of assignments per candidate stays constant to around ~2.33, the justification why this is the desired value for this parameter can be found in ELVES https://eprint.iacr.org/2024/961 paper and here.https://github.com/paritytech/polkadot-sdk/issues/6853#issuecomment-2540373492.
See More
Remove Gabe from the fellowship
Members of the Fellowship Collective involved in projects flagged by the OG tracker should provide a proper explanation, return the funds to the Treasury, or face expulsion.
See More
Fellowship Admin
Fellowship Admin
Members of the Fellowship Collective involved in projects flagged by the OG tracker should provide a proper explanation, return the funds to the Treasury, or face expulsion.
Invarch failed to provide the first two, so Gabe, a founding member of the team, does not meet the ethical standards required to have a voice in the Fellowship.
TENETS (extract from the fellowship manifesto)
"Members are expected to faithfully uphold the following tenets.
Clarifications to the rules should be in agreement with these tenets. Acting in clear breach of these tenets may be considered by voters as grounds for non-promotion, demotion or, in extreme cases, exclusion from the Fellowship.
(1) Sincerely uphold the interests of Polkadot and avoid actions which clearly work against it.
(2) Respect the philosophy and principles of Polkadot.
(3) Respect the operational procedures, norms and voting conventions of the Fellowship.
(4) Respect your fellow Members and the wider community"
See More
KSM RFP #1 - Shielded Kusama Hub Transfers - $50k Total Prize!
See More
Treasurer
Treasurer
This RFP was adapted over several weeks on AAG to turn a treasury proposal in discussion to an RFP with refined scope and oversight.
To apply for the prize pls fill out this form.
Prize Pool: $43,000
Finder’s Fee: $2,000 **
Supervisors: $5,000
Supervisors (Bounty Curators)
- Flipchan
- Byte (Erin)
- James Slusser
Excess or unused funds will be returned to the treasury by Bounty Curators.
Timeline
Monday, March 17 - AAG Discussion & this forum post! ✅
Monday, March 24 - Single-ref Bounty + Curators ✅
4 Weeks after Bounty Funding - Submission Deadline Thursday
July 31 - Project Completion (Pending Kusama Hub Launch)
Project Scope
Smart Contract Development
- A Solidity-based smart contract deployed on Kusama Hub
- ZK enabled for private deposits & withdrawals
- Compatibility with all Kusama Hub assets
User Interface
- Browser-based, mobile-ready UI hosted on IPFS
- Support for: Deposits, Withdrawals, Transfers, XCM Transfers
- Compatible with popular ecosystem wallets (Nova Wallet, Talisman, Subwallet)
Anti-correlation Attack Mitigations:
- Fixed deposit amounts (e.g. 1, 10, 100, 1000 units)
- Batch payouts for withdrawals to multiple users
Interoperability - Ability to receive assets via XCM from any Kusama-connected parachain and transfer them to Kusama Hub for use in shielded pool.
Open-Source Delivery
- All code (smart contracts and UI) published under the MIT license
- Publicly accessible repositories Project updates shared transparently via Polkassembly, Subsquare, or Polkadot Forum from Team with Milestone deliveries
- Developer & User documentation
Milestones
Milestone 1, Initial Pools & Basic UI:
$16,200 USD
1 month
- Tests - Smart contract test
- Smart contract - ZK shielded smart contract with KSM and multi asset support on Westend or Paseo
- Basic UI - A basic UI for interacting with the smart contract
Milestone 2, UI + XCM:
$9,900
1 month
- Tests - tests for all features
- User interface design - UI design
- XCM transfers - XCM transfer assets in UI
- Fixed amount transfer only - Allow fixed amount transfers in the UI
Milestone 3, Mainnet Deployment:
$16,900
1 - 1.5 months
- Contract Migration to Kusama Assethub - Migrate contract from Testnet to Kusama Hub
- Public documentation - Documentation for using Kusama shield and developer integration documentation
- Test - tests for contract
- V1 UI - User tested & something we can be proud of
** re: Finder’s Fee: this payment is set aside to incentivize a broad search for the right implementor. Finder’s Fees are paid out at time of team engagement. Teams that submit themselves can collect their own Finder’s Fee at completion of project.
See More