Dot Leap #5
Ethereum keys in Substrate, a flood of conferences, public clouds of Kusama nodes, and more!
Thank you for taking the Dot Leap!
We cover Polkadot, Kusama, Substrate, and all related and unrelated Web 3.0 projects!
For the Ethereum side of Web 3.0, please subscribe to Evan's newsletter.
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.
🚨 Dot Leap is moving to a weekly cadence. This will help keep emails shorter and more up-to-date. Keep sending in your links! 🚨
Parity organized the 3rd edition of Sub0 on Tuesday, April 28th.
This edition was, of course, virtual. With over 1000 attendees, this conference was one of the biggest blockchain conferences of the Corona era, if not the biggest.
All talks were recorded and can already be rewatched on Crowdcast. Some notable talks (personal opinion):
Moonbeam, an EVM-compatible parachain candidate for Polkadot
Weights in Substrate (very important for budding Substrate devs!)
Lightning Talks (pay attention to Starmesh at around 40 minutes, Kilt protocol with anonymous transactions at ~47 min, and the first talk which is about Subsocial)
The open discussion on ideas to build at the end is very interesting
🚨 Friendly reminder that DOTs do not exist yet!
Kusama (v 0.7.32.)
Need a public Kusama full node? You can now connect to a RYO cloud: a load balanced set of public nodes that people are running on their home hardware. When you connect to this endpoint, you’ll be randomly connected to someone’s home node. Decentralized infrastructure at its finest! We documented the various endpoints at your disposal in our endpoints wiki page!
Rushed referendum 48 went in on Monday (hastened by the technical committee and the council) with a massive runtime upgrade. This was one of the rare backwards-compatibility breaking upgrades which required that all validators run version 0.7.30. or risk getting slashed.
The upgrade also broke sync on some nodes and multiple validators were slashed, but this was promptly undone and the sync issues were fixed in the 0.7.31 hotfix release. Kusama is now at 0.7.32.
You will now be automatically notified of new new Github releases in Kusama Validator Lounge and the Kusama Announcements channels.
Want to speed up your syncing? Here’s a backup of the first ~2M blocks or so in archive mode, meaning it’s usable for sentries and validators! Downloading this into your chain DB will make sure your node starts syncing from that point on.
🏛 Kusama Governance
A user mistakenly submitted a Treasury proposal after misunderstanding the mechanics of Treasury votes. Detailed on Polkassembly. A motion has been put forward by Jam to reimburse the user for the lost deposit under certain conditions. Lesson learned.
UseTech has documented their proposal for a new user interface for nominating and validating. Based on soft approves from before, they submitted a new treasury proposal #19, documented here.
Referendum 49 (council motion) kills a storage prefix which changed due to an upgrade in runtime 0.7.30. The prefix was holding preimages for proposals. Preimages are now stored in another location, which is why all proposals in the system were temporarily without them. The referendum has passed.
🔩 Core Stack
Last week was the most active development week on Substrate!
Excluding merges, 40 authors have pushed 66 commits to master and 251 commits to all branches. On master, 302 files have changed and there have been 11,649 additions and 6,728 deletions.
( ͡✧ ͜ʖ ͡✧)
Substrate releases will now produce MacOS binaries for Substrate and Subkey!
( ͡✧ ͜ʖ ͡✧)
A new block requests protocol has been merged as part of a larger push to remove the legacy single substream. It sounds fancy, but it’s just a different (better) way for nodes to ask other nodes for blocks and other data.
The contracts pallet which allows you to write ink! smart contracts has been updated to use Substrate’s revamped weights system. No more gas to pay for smart contract interaction - everything is now weighed. Edgeware - the only chain in production currently using this pallet - has not responded to my inquiries of how they intend to integrate this, if at all.
Module IDs of pallets are now configurable in the runtime, not hard-coded into the pallets. This makes it easier to instantiate the same pallet multiple times. For example, previously, a treasury would always have the same address, based on the Module ID of the pallet. Instantiating another one would have the second share the address with the first. Now there can be two separate addresses - imagine having a public bounty treasury, alongside the current council treasury.
BABE can now be configured after genesis. Previously, it was not possible to perform online upgrades, for example, from primary-slots only to primary-and-secondary-slots.
Off-chain workers will now have access to the database of imported blocks while the rest are still being imported (i.e. still in non-fully-synced state).
Secondary BABE blocks will now include the block producer’s randomness (VRF) as well - they previously didn’t. The VRF output will not contribute to on-chain randomness, but may be useful for parachains or other applications.
Substrate can now import finality and justification in the Proof of Work queue. This means you can use PoW to make blocks, but then also slap finality on top via GRANDPA by using PoA or even PoS. So the Ethereum 2.0 model of determinisitically finalizing the PoW chain with the PoS chain is already made possible here. Example recipe to do this is in progress.
You can now make runtime upgrades that aren’t necessarily part of some module - just upgrade the runtime itself. The custom upgrade logic provided this way is executed before all the module runtime upgrade logic.
There is now optional support for reference-counting databases like ParityDB. This allows for some optimizations when using such a database.
New metrics have been added to block operations in Substrate.
Peers who respond to block-requests with empty responses will now suffer a reputation hit, so advertising that you have some data and then not providing it in order to mess with the network just became less feasible.
You can now add optional public nodes for proxying, allowing for non-sentry proxy methods for your node.
Mario from Polkastats reworked a W3F devops script into a script for seamlessly switching your validator’s Session Keys.
Apart from detailed descriptions of every field in the various Democracy popups, Polkadot JS Apps now show delegations in the voting dropdown when inspecting the submitted votes.
Polkadot JS Apps UI now has support for multi-signature accounts. A full guide on creating and using them can be found in the Polkadot wiki page on Multi-sig accounts.
Polkadot JS Apps can now take into account ENV variables when run as a built static site. This makes running the site in environments like Docker easier. Chevdor / Will has already made an image for it. Install docker and run the Apps with:
docker run --rm -it -e WS_URL=ws://myurl:9876 -p 80:80 chevdor/polkadot-ui:0.40.0-beta179
Polkadot JS Apps now has a Targets screen which lets you pick Validators from a list when nominating, and even has a “Select best” option which just picks the most highly performing ones. Nominating is becoming easier by the day!
Crust Network, the Substrate-based incentive layer on top of IPFS, has released their Proof of Concept version 3. Use it to join their Alphanet!
Purestake announced Moonbeam Network, a Substrate chain with the EVM pallet. Moonbeam will be a Polkadot parachain instantly compatible with deployed Ethereum code, meaning Ethereum projects can just move their code over with little to no modifications.
Plasm network is working on using ECDSA in account generation. This makes it easier for devs to make Substrate chain addresses by using Ethereum keys 🔑
📅 Upcoming Events and Webinars
[Webinar] May 1st: How to Run a Kusama node on Ava.do by Stefaan Ponnet (CTO of Avado)
[Conference] IEEE, May 3rd, Bruno Skvorc: Build your own blockchain in an hour, then forklessly upgrade it, and build a custom UI for it 😱
[Conference] Mousebelt, May 4th, Bruno Skvorc: Build your own blockchain in an hour, then forklessly upgrade it, and build a custom UI for it
[Conference] Ready Layer One, May 4th - 6th, a tech-oriented conference with all the major projects representing their work in a highly hands-on or technical manner - no pitches, no “intro to”, just WORK. Polkadot / W3F content there is:
[Workshop] Bruno Skvorc: Build your own blockchain in an hour, then forklessly upgrade it, and build a custom UI for it
[Live Podcast] Rob Habermeier: panel with founders from Tezos, Cosmos, and Near hosted by Laura Shin
[Talk] Gavin Wood: Polkadot: The Launch Process
[Talk] Alistair Stewart: Cross-chain messaging protocol (XCMP)
[Talk] Jeff Burdges: Availability and Validity
[Conference] DeFi Discussions by Dystopia Labs, May 1st - May 4th, a DeFi online conference featuring talks by Bill Laboon (intro to Polkadot for DeFi), Logan Saether (parachain economics), and Jack Platts (fireside chat).
[Conference] ANON Summit, May 20th: Web 3.0 And Polkadot, a non-technical introduction and Q&A session
[Webinar] May 21st: Polkadot for Beginners, non-technical intro by Bill Laboon and Dan Reecer
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 firstname.lastname@example.org.