Dot Leap 13
Polkadot has decentralized! Also: if a chain has on-chain governance, is it a tokenholder's duty to vote? YES!
Thank you for taking the Dot Leap!
We cover Polkadot, Kusama, Substrate, and all related Web 3.0 projects!
The content in this newsletter is the author’s own opinion and not in any way endorsed by the Web3 Foundation. This is an independent and unaffiliated effort.
Looking for human-friendly explainers and tutorials on how to get started building tools and UIs for Substrate chains? Check out our parent site: DotLeap.com
Polkadot’s Decentralization
Sudo has been removed, its removal initiated by the July 20th Polkadot Council.
Acting members Jaco, Listen, Jack, Fabi, Jutta, Shawn Tabrizi, Joe, Jam, Gav, Wei, Polkascan Foundation, Bruno (yours truly!), and Chevdor approved the first Polkadot Council Motion which would put the governance of the Polkadot protocol into the hands of the People.
The next step was submitting the proposal to the Technical Committee for speed-up, after which, the motion became a fast referendum, needing 12 hours to vote, and 15 to be enacted.
On Tuesday, around 8am UTC+2, the Sudo module was removed. The network was released into the hands of the community. Soon thereafter, full governance functionality has been enabled.
Polkadot (v 0.8.19.)
👇👇👇 IMPORTANT 👇👇👇
General governance and Council elections have been activated in Polkadot. The council terms will first be daily, then weekly, then monthly, as a slow on-ramp for Council Member reputations and backing.
Yours truly is a candidate too, so if you think my contributions to the Polkadot ecosystem are worthy of your support, please consider voting for me. Here’s a post that explains my candidacy and shows the voting process in screenshots.
Redenomination
The on-chain poll to gauge support for DOT redenomination has passed at x100, meaning once transfers are enabled -about 3 weeks from now - everyone’s DOT balance will increase a hundredfold. This change is purely cosmetic and practical, not economic.
Coming Changes in Native Code
Among other things mentioned below in Core Stack:
Polkadot’s Council Seat Duration is 7 days now.
The token redenomination poll is removed.
Transfers are enabled.
Conviction from the sudo-removal referendum is removed.
All the above from here. This will be applied in the next runtime upgrade, once Referendum 1 passes (see below).
Polkadot Governance
Council Motion 0: An attempt to upgrade the runtime to remove Sudo was made, but a glitch in the UI which is shared between Kusama and Polkadot caused a wrong submission to go through - the wrong council approval threshold was set. The council voted it down to cancel it in favor of Motion 1.
Referendum 0 (Council Motion 1): A proper submission of Motion 0.
Referendum 1 (Council Motion 2): The runtime upgrade to allow Transfers to occur. Includes the updates from Coming Changes section above.
Council Motion 3: A proposal to cancel slashes caused by a slip-up of a well known validator, Parity dev Jaco, maker of Polkadot JS Apps. For a full discussion please see this chat archive (room: Polkadot Direction) and scroll to Andre’s message from July 27th around 5pm, and see Jaco’s trippy post-mortem. This Motion was downvoted due to being submitted with an invalid threshold (same as Motion 0 above), so it was repeated in Motion 4 below.
Council Motion 4: A resubmission of the above.
Proposal 0 (Public): A public proposal to set the number of validators to 236 from the current 197. Once seconded enough, this proposal will become Referendum 2.
Tip 0: a refund for Joe Petrowski from Parity for submitting the pre-image of the non-Sudo runtime upgrade. When you submit a runtime image into the chain, it takes quite a big deposit, so an agreement was made to recoup the submitter’s losses this way.
Tip 1: Jam’s proposal to tip Staking-as-a-Service provider Staking4all for creating this set of Telegram stickers.
Kusama (v 0.8.19.)
🚨 Something I didn’t know! 🚨
If you as a validator get slashed by a non-zero amount, your nominations are ignored until they are re-submitted again. This can lead to a situation where it seems like a validator has enough backing to be elected, but it doesn't happen.
Substrate Debug Kit has an offline-election app which has been upgraded - apart from calculating validator elections offline, it can now detect this scenario with the validator-check
and nominator-check
subcommands!
💥 Chaos
Referendum 71 had the goal to increase the validator count by 2 every 3600 blocks (1 era) 336 times (roughly over the course of 3 months).
This referendum was to be executed in block 3,200,000 with the goal of reaching 1000 validators by the end of the year in an orderly manner. Unfortunately, the referendum was executed after block 3,200,000 and therefore failed to be executed.
Since this proposal passed publicly and to get things going on this matter, motion 185 has the same goal as referendum 71, but will be executed in block no. 3,400,000. It has been fast tracked by Technical Committee, since the community has already approved it.
🏛 Kusama Governance
A detailed digest for the week of July 13th is available here and the week of July 20th here.
A treasury proposal for a GIT-like wiki on-chain for the purpose of Council explanations and guidance has been submitted and later approved. Discussion in this thread, with the amended proposal available here.
Motion 181 canceled runtime v2014, as it was superseded by Motion 180 with runtime v2015, fast tracked into the chain. As runtime upgrades speed up, the current remaining and activation times seem to not be long enough on Kusama Network to be up to date on runtime changes, so Motion 184 was submitted: Kusama runtime update to v2019
The Kusama Supreme Oracle (a proposal for a new body in the network’s governance mechanism) is open - please add your comments and questions on Polkassembly.
Motion 183 was an error on the proposer’s side.
The Sunshine Foundation has submitted a proposal for discussion: They intend to build the Sunshine Alpha Interface, a grant and bounty aggregator for Kusama Network.
Proposal 31 is a candidacy for a new registrar. The registrar has not yet expressed their intention or detailed their candidacy.
🔩 Core Stack
The Substrate Networking Grafana Dashboard has been updated with new settings and metrics. You now have an up-to-date, out-of-the-box Grafana dash ready whenever you clone Substrate, Kusama, or Polkadot. Find the configuration here.
Until recently, anyone could register anyone else’s account as a sub-account in the Identity pallet. A new update allows sub-identities to claim the parent identity’s deposit by calling a
quitSub
function, providing them with an effective countermeasure.The on-chain treasury has a “burn pressure” feature wherein if the full amount in the treasury is not spent every spending cycle, a part of it must be burnt. This new update allows for a redirection of this burn so that it in fact is no longer a burn, but a transfer. For now, this will be used to continuously fund the Society pallet on Kusama: the human blockchain project we mentioned in the last edition when we talked about the $7500 USD tattoo. 0.2% of all burns will go to the Society after the next runtime upgrade.
GRANDPA equivocations are now reported by block producers (validators) through unsigned transactions which are not broadcast to the network, as it is assumed most if not all validators will be monitoring for equivocations. The method to report equivocations through signed transactions (for fishermen and other non-block-producing entities) still exists, but is currently unused.
Events throughout Substrate have been decorated with more descriptive docblocks, so UIs and event-reading applications can more reliably determine what each argument in an event’s payload is. For example, instead of
/// Some assets were transferred.
Transferred(AssetId, AccountId, AccountId, Balance),… we now have
/// Some assets were transferred. [asset_id, from, to, amount]
Transferred(AssetId, AccountId, AccountId, Balance),A bugfix for improper removal of duplicate votes during validator selection in staking has been applied.
KatalChain has claimed address prefix 4 and Phala has claimed 28.
If GRANDPA (the finalization protocol for Polkadot) ever stalls, it can now auto-reboot after a hardcoded delay of unfinalized blocks. Once the threshold is reached, the validator set will switch to a predefined set of validators, similar to a PoA mode, which will be able to finalize the network and recover the situation without hard forking.
A new Grafana setup has been published which allows users to track various CPU variables of the running node.
PostDispatchInfo
can returnPays::No
, essentially refunding a fee paid for a call. This is useful for calls like uploading pre-images (see Tip 0 in Kusama Governance section above!) for passing referenda or fishermen reporting actions.
Ethereum Compatibility
As Moonbeam and Parity’s Frontier mature, I believe it’s worth having a separate section discussing Ethereum compatibility with Substrate and Polkadot in general. The potential for collaboration between the two ecosystems is immense.
eth_getLogs
now exists in Frontier, letting you query event logs from the chain - a much needed feature for many dapps which use logs to get around storage limitations!System storage is now used for storing both Substrate and EVM balances when using the EVM pallet. This means every Ethereum address automatically gets a corresponding Substrate address and all operations are happening on the Substrate layer, with no post-op sync needed.
🛠 Tools
Polkadot JS Apps are at version 0.51.1!
Polkadot’s API has changed its encryption method to scrypt. This means JSON files exported with the Polkadot JS Apps will not work with the PolkadotJS Extension (for keeping your accounts in the browser and reusing them across Web3 apps) hosted on Chrome Web Store until it updates. If installing from source, this fix is already in and will work fine.
🍴 This script lets you fork off a live Substrate chain for development purposes. It copies the state of the current chain into your local version, and lets you further experiment on it. Accompanying explainer blog post by author Mudit Gupta is available here.
This simple tool helps you predict the next council members being elected based on the current votes they have.
Substrate graph, a compact indexer for Substrate based nodes providing a graphql interface, released version 0.3
🤝 Ecosystem
Bifrost has released a new version of the test network Asgard CC2. You can participate by running nodes, receiving test tokens, running for Validator, cross-chain EOS test network, etc., and win a total of 15,000 BNC reward. Docker images here.
Chevdor details the automation of registration validation on Polkadot and Kusama.
A tutorial on how to run a Polkadot node on the blockchain-cloud-infrastructure provider Ankr.
That's it for this week - I hope this was as useful for you to read as it was for me to write! Special thanks to Bill for his Daily Digest!
The Dot Leap is put together by Bruno Škvorc. Got any links for me for the next edition? Find me on Riot at @bruno:web3.foundation, on Twitter, or via email at bruno@bitfalls.com.