Dot Leap #4
Run a full node for fun and profit, plus some incredible educational proliferation!
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.
📜 This email is quite long and best read in the browser. I’ll make them shorter from now on.
🚨 I removed the Grants and Enterprise section from DotLeap. From now on I’ll only be posting accomplished milestones and impressive feats from grantees and enterprise partners in the Ecosystem section. Announcements and general hopium will be avoided.
Top News: On-Chain Bounties Soon!
Emiel from Polkascan, arguably the most prolific former member of the Kusama Council, has put forth a suggestion to create a new instrument in Kusama’s Treasury module: Bounties.
Where Treasury Requests are for bigger amounts and the recipient is known ahead of time, and Tips are for minor awesome things, Bounties would be something in between in terms of budget size, but different in realization.
Bounties would have a predefined purpose and amount, but not a recipient. A curator would be in charge of vetting the deliverable, setting the recipient address, and closing the bounty. The curator would also be rewarded for this.
The issue in which the Bounties upgrade is described is here, and this is the accompanying draft PR.
There are still outstanding technical questions. Still, the ability to propose bounties, have them approved by the Council, and have a paid and qualified curator vet the outcome sounds like an incredible ecosystem boon for Kusama.
👇👇👇 Lightpaper Revamp 👇👇👇
An updated version of the Polkadot Lightpaper is out! Read it here: https://polkadot.network/Polkadot-lightpaper.pdf
The Westend testnet is now on version 2 after a full reset - keep this in mind if you’re using it in your experiments!
Parachain validation function upgradeability is now a thing. Click the image above to see the full resolution of a new skill-tree image of remaining tasks until Phase-1 of parachains is ready. Remember, you can keep an eye on the full process until launch in this roadmap issue.
Kusama (v 0.7.30.) 🎂 2 million blocks!!! 🎂
2 million blocks, yay!
You can now connect to Kusama full nodes through a RYO cloud instance! RYO stands for “Run Your Own” and is a load-balanced setup of community-run nodes exposed to the public.
If you set your Polkadot JS Apps to connect to
wss://kusama.polkadot.cloud.ava.do you will randomly connect to someone’s node, probably running at home. Decentralization at its finest!
Read more about how this works and other endpoints you can connect to on this page.
🚨 Something I didn’t know! 🚨
A validator can have a maximum of 64 nominators. These are ordered by stake, so the 65th one will not get a payout and is wasting funds on the validator. When nominating, check how many nominators your validator candidates have!
For almost a month or so, Kusama’s treasury coffers had been filled less than expected - a bug snuck in during the Lazy Payouts release which basically discarded any remainder of inflation not part of the validator payout.
Jaco swooped in with a quick fix, and now we’re back on track as long as the next runtime upgrade (on-chain) is built from this code when submitted (the 0.7.30 binaries don’t have this in them!).
Technically we could mint the funds we’ve missed out on - they would help with the expenses of the latest treasury proposals too - but that’s all up to the council.
💥 Chaos 2
Certain Polkadot claims were not migrated to Kusama 🙈 the current referendum is to migrate these directly through governance.
Kusama is running a #sendNodes challenge! Run your own full Kusama node (quick guide here) and win swag and money! So. Many. Memes. Details here!
Payout UX Upgrade: Simple Payouts have been merged and from the next runtime upgrade anyone can call a “master payout” function on a validator’s earnings. This will automatically send the KSM out to all nominators!
It should be noted that the payout function will take FOREVER to load right now on Polkadot Apps UI because both Lazy Payouts and Simple Payouts are still in. Once the maximum period of Lazy Payouts retention has passed (some time in early May), things will dramatically speed up again!
Proof of Validity blocks are now gossiped. Previously, they were only fetched from direct peers, often making them unavailable. This increases the bandwidth nodes consume, but helps with syncing and verification.
When setting up validators with sentries, the
--sentryflag now takes a list of validator addresses, so there’s no need to set them up as reserved nodes. Refer to our Sentry Setup guide for more info!
🏛 Kusama Governance
Now both Polkadot JS Apps and Polkassembly show how many more votes a referendum needs to pass. Polkadot JS Apps goes one step further, showing how many Nay votes are needed to fail a proposal. They do not take into account conviction voting, but it’s a start.
Kusama superfan Jam proposed the creation of a multi-person council member, which would vote on matters through a multi-signature setup. Interesting direction to take things in!
Referendum 46 of a lone cowboy trying to give himself freshly minted KSM has failed.
Treasury council motion 129 to build LocalKSM apps and an ecosystem about p2p KSM trading has passed. Kusama governance has funded an experimental ecosystem development.
Treasury council motion 128 to finance LocalCoinSwap to do the same thing is still being voted on, but looks like that will pass too. Never put your experimental eggs in one experimental basket!
Emiel of Polkascan fame has created treasury proposals 130 and 131 based on a social contract to fund essential Kusama infrastructure. The motions have passed, for the most part smoothly.
🔩 Core Stack
( ͡✧ ͜ʖ ͡✧)
Among other updates, this release brings us off-chain phragmen for massive improvements in election performance during nominations!
( ͡✧ ͜ʖ ͡✧)
A new light client protocol has been merged into Substrate. This makes the old one obsolete, so any light clients talking to nodes older than Feb 12th will no longer work. The maximum request size has also been upped to 16MB from 1MB because the full runtime of the chain is sent to light clients in responses - that alone is already 1.7MB right now. How this will affect light client bandwidth remains to be seen - some optimizations will likely be necessary down the line.
The EVM pallet now emits deposit and withdraw events on account balance changes.
Substrate is getting weight fee refunds through a modified Dispatchable return type which tells the caller exactly how much the call weighed. In some cases, you overpay for a transaction - like if an account already exists when you send tokens to it - so refunding the cost of an account creation fee makes sense in those cases.
The Substrate multi-sig implementation is now easier to consume in app-land. It emits more verbose events which include the hash of the call being made by the multisig.
A dramatic performance improvement: batch signature verification is merged!
Substrate nodes now talk via libp2p-0.18.1 which brings networking improvements all around and resolves some issues with dropped peers. You should see connectivity perform much better going forward.
A **massive** weights refactor was merged. The high level goal of this PR is to start to standardize the Substrate Runtime Weight system and give practical weights to extrinsics in the runtime.
When a treasury tip is closed, a TipClosed event will now be emitted.
There is now a transaction version field in the RuntimeVersion. This lets wallet devs and other userland app-developers recognize when dispatchables changed across versions.
A new method for delayed execution of tasks has been merged: the scheduler. Previously, the enactment of a democracy referendum that passed was hardcoded in, but now it’s using the scheduler. Non-democracy tasks can be scheduled too.
A massive refactor of child trie APIs has gone in - consult if you’re building tools that talk to RPC directly (the changes are already in Polkadot-JS).
In preparation for the v2 release of Substrate, the team is doing a lot of documenting of weights and deprecating of pre-weights logic. This should not affect you in any way unless you’re building pallets on a custom chain that interact with the runtime, or unless you rely on some fixed fee amounts when sending extrinsics.
You can now query the chain type via RPC.
A new RPC function
state_getReadProofhas been added. This allows verification of state-data outside of the node (or even offline). It returns a struct containing the block hash and the proof that the specified storage keys are included in that state. Coming in 0.7.31.
Equivocation reporting is finally coming to GRANDPA. Yes, this means that until now, the only way to get slashed was going offline - you could have been double-signing all along 😱
Offchain signing is in! This makes creating and signing transaction in offchain workers much easier!
You can now expose select “unsafe” RPCs for external consumption and leave others blocked. The PR has been merged but it’s a little clumsy. The
rpc_methodscall still doesn’t tell you which methods are allowed by the node you’re connected to - that’s coming in a followup.
You now MUST use the
decl_storagewhen writing storage functions in your custom pallets.
Yamux is now enabled by default and adds Go-based multiplexing.
Polkassembly now lets you log in with your linked Web3 address. You still have to make an account first, but once you link a Web3 address, you can use that to log in instead of the username/password combo!
Polkadot JS Apps now let you click on an address name to get information about that address - stuff like identity, whether or not an account is a council member, and other things are on display. More info (like which registrar confirmed the identity) coming soon! Example below!
Subkey got a new command: moduleid. Use this new Subkey command to inspect the module identifier of a module (pallet) in the runtime by providing the moduleid and the network to use. Here’s an example of how to find out the treasury’s account address (SS58 value) in Kusama (the module ID can be found in the source code):
As you can see by the output above, Subkey also now shows you the network ID when being used, so you’re always sure you’re generating values for the right network.
Laminar have developed a handy tool to index all of a specific account’s extrinsics and put them into a local database. Excellent for per-account analytics! Usage example here!
A playground for the ink! language by Stake Technologies!
[VIDEO] Bill Laboon, W3F’s Tech Education lead, is hosting a free course on blockchain fundamentals. The course will release one lesson weekly for the next twenty weeks or so, so dive in - the lessons are short, have accompanying examples, and cover everything from the history of blockchains to proof of concept app development near the end.
[POST] A recipe for manually sealing blocks has been added to the Substrate Dev Recipes site
[VIDEO] Configuring visual monitoring of your node (Grafana / Prometheus)
[POST] A very educational post by Shawn Tabrizi about a new upgrade to Substrate’s storage - transparent keys.
[VIDEO] A workshop about running sentry nodes to protect your validators.
[POST] A comparison of Kusama and Polkadot. Almost as good as my video explainer from a while back 😏
[VIDEO] Technical Educators of the Web3 Foundation started producing short video explainers:
Phala network has released its first testnet for minting and sending confidential tokens! Try it out at https://testnet.phala.network/ - when you open the link, make sure you select Phala as the network to join by clicking in the top left corner of the UI!
Through the work of NodeFactory, it is slowly becoming possible to interact with Kusama network through Metamask, the most popular browser-based wallet out there:
New chain prefixes in Substrate:
Encointer, the local-community-UBI project on Substrate, has launched a testnet along with a tutorial on how to bootstrap your own local economy’s currency!
Lessons learned from the Blockchain Gaming Unconference the W3F organized around FOSDEM
📅 Upcoming Events and Webinars
Mousebelt, May 4th, Bruno Skvorc: Build your own blockchain in an hour, then forklessly upgrade it, and build a custom UI for it 😱
Ready Layer One, 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 😱
[Talk] Alistair Stewart: Cross-chain messaging protocol (XCMP)
[Talk] Jeff Burdges: Availability and Validity
[Talk] Rob Habermeier, panel with other network founders
DeFi Discussions by Dystopia Labs, a DeFi online conference featuring talks by Bill Laboon (intro to Polkadot for DeFi), Logan Saether (parachain economics), and Jack (fireside chat).
That's it for this fortnight - I hope this was as useful for you to read as it was for me to write! Special thanks to Bill and 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.