Dot Leap 23
Discussing re-genesis 👶, undoing retrobugs 🐛, a critical DoS fix ⚠, Zug and P2P slashed 🗡, HRMP merged in and parachains V1 added to Cumulus, huge Eth on Polkadot updates, atomic batches, and more!
Thank you for taking the Dot Leap!
We cover Polkadot, Kusama, Substrate, and all related Web 3.0 projects! Want your content featured? Tweet at the author!
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
Custom Domain: newsletter.dotleap.com
Dot Leap (the newsletter) finally has its own custom home under the parent domain of dotleap.com. You can now find the newsletter at newsletter.dotleap.com or the old URL dotleap.substack.com, whichever you prefer.
👴 Re-genesis 👶
Wei, Parity dev and creator of Kulupu, recently started the discussion around re-genesis functionality in a Substrate-based chain. A re-genesis would “squash” the state of the chain up until a certain point and start a new era from the squashed state, continuing from block 0. So blocks could be uniquely identified only with era-block pairs.
This has the benefit of reducing state and sync size and is a good hard forking mechanism, but has major downsides - UX would degrade, there would be a pause between eras meaning no new blocks would get produced, so every app on every chain would hit a little delay, and it would become difficult, if not impossible, to do audits of past events and extrinsics, often needed for tax purposes.
I don’t think this is a safe play for Polkadot, but I personally wouldn’t mind seeing a re-genesis of Kusama every 5 million blocks or so, keeping it lean and unique, and staying in line with the cutting edge + expect chaos narratives.
Polkadot (v0.8.26.1.)
🚨 Something I didn’t know! 🚨
Because the number of votes for each Council motion to pass differs from chain to chain and is not exposed anywhere via chain metadata (🤪), it falls to UI developers to manually maintain these thresholds. Polkadot JS Apps have this file which is maintained by Jaco for Polkadot and Kusama and Wei for Kulupu 🙈. Any other chain wanting to process their Motions properly via Polkadot JS Apps UI has to contribute to this file.
🐛 Fixing retrobugs - refunds pending!
With the v26 runtime being in Polkadot and v2026 in Kusama, a bug that caused immature slashing of candidacy bonds in council was fixed, and now's the time to proceed with refunding affected accounts on both chains. A full explanation as well as the next steps are documented in these posts: for Kusama, for Polkadot.
The reason they are separate efforts is that the Council is composed of (to a degree) different people in the respective chains and the solution and way forward may differ. Kusama and Polkadot are, after all, each their own universe now.
👇👇👇 IMPORTANT 👇👇👇
Polkadot v0.8.26-1 has been released!
Upgrade priority: ❗ HIGH ❗ Please upgrade your node as soon as possible. This change fixes a DoS vector in our p2p networking layer.
Polkadot Governance
For a breakdown of my votes as Council member since the last Dot Leap, please see my Councilor activity reports: Nov 02nd, Nov 5th, Nov 13th.
Referendum 10, asking to force_transfer a sum to the alleged victim of a scammer, has failed.
Referendum 11 is a fast-tracked runtime upgrade to v26. It passed and has been applied.
Referendum 12 is asking to move a claim address. No further information has been provided.
Motion 36 and Motion 37 have both passed, approving LocalCoinSwap’s integration of DOT and Ramp’s integration of DOT respectively.
Treasury proposal 22 or Motion 39 by Subscan covers operating expenses of the platform on Polkadot from December 2020 to February 2021. A specification of the costs can be found here. I supported this proposal.
Treasury proposal 23 or Motion 40 is for Redspot 0.3. The report on 0.2 can be found here. I supported this proposal.
Motion 41 cancels proposal 8 as requested by the submitter. I have supported the undoing of this mistake.
Vote for a better tomorrow!
I’m running for Council Member on both Polkadot and Kusama! Read more about why and what I can bring to the table in this post. The writeup also explains how to vote. Remember, voting costs nothing but a transaction fee - and can be done with locked and staked funds - but has the potential to change the landscape forever!
Kusama (v0.8.26.1.)
👇👇👇 IMPORTANT 👇👇👇
Kusama v0.8.26-1 has been released!
Upgrade priority: ❗ HIGH ❗ Please upgrade your node as soon as possible. This change fixes a DoS vector in our p2p networking layer.
Check out how to use the new Bounty extension with Raul's article on Subsocial, "How To Submit a Bounty Proposal On Kusama and Polkadot networks"
💥 Chaos
There were numerous equivocations in the last few eras, causing slashing in eras 1457 and 1458. The slashes have been applied and Zug Capital and their nominators have lost some stake. The same happened to the second most represented validator, P2P.org, in eras 1492 to 1498 but for a much smaller amount.
🏛 Kusama Governance
For a breakdown of my votes as Council member since the last Dot Leap, please see my Councilor activity reports: Nov 02nd, Nov 5th, Nov 13th.
Motion 237, by Subscan, covers operating expenses for the explorer on Kusama Network from December 2020 to February 2021.
Treasury proposal 55 passed as Motion 236. The proposal was for funding PolkadotAssetJS - the initial version of a Kusama NFT UI app that would hook into RMRK and later native on-chain NFT solutions.
I requested more information about the Subbox proposal: a team wants to implement a hosted solution for cargo-remote to allow for faster Substrate compilation.
An interesting proposal about adding remarks and reputation weights to treasury proposals and votes has been posed on Polkassembly.
🔩 Core Stack
( ͡✧ ͜ʖ ͡✧)
Currently, validators can change commission at will. There is an ongoing discussion on restricting commission changes (to avoid "commission rug pulls", e.g., changing commission from 0% to 100% after getting enough nominators). The issue is also being discussed on Github where it will be implemented.
( ͡✧ ͜ʖ ͡✧)
HRMP has been merged in. Parachains soon™.
The maximum block size is now configurable. Keep in mind that this should still be under 10 MB due to network communication constraints.
Transaction payments have been decoupled from currencies, which means a chain can now define in which token it will charge a fee, and can even charge in a token that matches the transaction, i.e. send DAI and pay in DAI, send DOT and pay in DOT.
Atomic batching is now possible with the
utility.batch_all
extrinsic - you can submit a batch of transactions in which either all of them succeed, or all of them fail.This PR decreases the
on_initialize
weight of a block increase, allowing more room for election solutions. This should help a bit with NPoS by allowing more nominators in the solution.SS58 prefix 14 has been added for Totem Lego testnet. This will later be the mainnet prefix for Totem.
ink! got a new README, now documenting the changes in 3.0 and helping users dive straight in.
If you’re experimenting with parachains and local version of the Rococo testnet, the Adder collator has updated instructions.
A storage bug related to Options was fixed in ink! and will be part of the rc3 release.
Running a Substrate-based chain and keeping up with master on releases? This repo of Substrate migrations might help - it documents all runtime-upgrade changes that need migrations applied (such as when an internal storage type changes).
When finality lags behind for whatever reason, BABE block authorship will now incrementally back off and start skipping blocks more and more the bigger the finality lag. This is to reduce forks and to allow for easier fixing of the problem (a runtime upgrade will pass more smoothly if there it’s not surrounded by a dozen forks).
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.
There was an off-by-one issue in the EVM. The fix was applied by updating the EVM version. Another fixed issue is the pending nonce, when checking for transactions in progress. The documentation of the EVM pallet was also updated.
Polkadot JS Apps UI will now support Moonbeam (Ethereum) addresses, allowing you to copy and view their Ethereum format, not their Substrate format.
Moonbeam released a Truffle box for first-class-citizen integration with Truffle. Getting started with Truffle and Moonbeam is now easier than ever with built-in Docker support so you don’t have to compile nodes from scratch.
Moonbeam’s Moonbase Alphanet is resetting next week to incorporate a big upgrade merging Ethereum and Substrate account states. It will also change its chain ID to 1287 along with a ton of other changes (oracles are coming!)
🛠 Tools
Substrate-lite a lightweight version of a Polkadot host, using only Wasm for the runtime. It’s intended to be compiled completely into Wasm and embedded into websites etc.
Polkadot JS API is at version 2.6 and Polkadot JS Apps UI reached 0.66.
Soramitsu’s Fearless wallet is at version 0.4. Update log.
OnFinality’s Infura-like service. Sign up, get an API key, and you’re given 500k daily requests (WS or HTTP) for free.
Substrate-test-runner lets you test whole runtimes, migrations, and runtime upgrades. It tests basic pallet functionality by starting a BABE-powered local chain and is customizable to be as specific as needed.
An open-source Kotlin client for Substrate for Android devices.
Ryabina’s Telegram bot can now alert you of important chain upgrades from Parity themselves - it works through on-chain remarks. Explanation here.
👨🎓 Education
My talk at TruffleCon on running Truffle with Moonbeam
🤝 Ecosystem
Subsocial added two new features: Space Transfer Ownership and Account Activity.
Announcement: OnFinality launched their Infura-like service for Polkadot in beta.
Uncharted Territories finished their mini-documentary about Kusama’s Council and its members:
Joe Petrowski’s brief intro into his running of Kusama and Polkadot validators, and his participation in Council of both chains.
Technical Educator Anson Lau interviewed MathChain (built on Substrate) CTO recently. Here’s the recorded discussion.
Phala Joins The Linux Foundation and The Confidential Computing Consortium.
The first Polkadot ecosystem NFTs have launched as SubstratePunks on the Unique Network. Good explainer here.
Crust and Subsocial partner up in providing decentralized storage for data on Subsocial.
MathWallet browser extension added support for Darwinia Crab, Centrifuge, and Subsocial.
📅 Upcoming Events and Webinars
November 17th: [Crowdcast] - “Funding your Web3 project in the Polkadot ecosystem”, a webinar on getting your project funded and shipped.
December 3rd, the first Polkadot community conference since the network’s launch and decentralization is taking place with Polkadot Decoded. Featuring Polkadot founders Gavin Wood and Robert Habermeier, teams building Polkadot parachains and bridges, and special guests Laura Shin and Camila Russo. The online event is free and aimed at technical and non-technical audiences alike, so be sure to invite friends who want to learn more about Polkadot. Learn more & save your spot!
That's it for this week - I hope this was as useful for you to read as it was for me to write! Many thanks to Bill Laboon for his daily digest, which helps me not miss some important updates!
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.
Cool wrap-up, saves a lot of time, thanks! Do you know whether MathWallet is going to be running on FireFox?