DotLeap #2
VR meetups, breaking changes, permablocking people's public referenda, and other fun stories
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.
💡 HIGHLIGHT 💡
This edition’s highlight is an interesting governance case. Completely unrelated, here’s a picture of an evil whale.
Proposal #28 to add a new application-specific registrar has failed despite having had ~24000 Ayes vs ~8000 Nays. Due to the low turnout of voters the adaptive quorum voting curve was extremely biased towards failing, so the proposal needed either close to 100% Ayes or a voter turnout bigger by several orders of magnitude.
Here’s an example.
Let’s assume 10000 KSM voted Aye on Joe Dotholder’s referendum with x1 conviction (that’s a 1 week lock-up).
10000 is 0.1% of all KSM issued so far (8.6 million).
Let’s also assume someone wanting to block this voted with 360 KSM and x1 conviction, so 1 week lockup.
The formula is:
… where against
is the tally of Nays, electorate
is the turnout (total tally of votes), approve
is number of Ayes, and voters
is total issuance. When the left side is bigger, the referendum fails. So, we have:
360 / √10360 < 10000 / √8629000
That’s 3.53689871351 <
3.40423682629
The proposal fails with just one person voting 360 Nay against 10000 Aye. 3.6%. Not great not terrible.
But this is where things get fun!
The voting lock-up only locks coins for transfers, not other votes. You can still vote with locked tokens. With only 360 KSM tokens, our blocker can actually amplify the votes’ power by a factor of 6 if he locks the tokens up for 2 years.
This means 360 effectively becomes 2160.
In turn, this means that even with just this one person voting Nay, a proposal would need at least ~35000 Aye votes to pass. If our villain gets his hands on a few more KSM just for the purpose of chaos, or if a cabal forms, not a single citizen-submitted referendum will be able to pass - unless the villain’s bribe is paid (remember that having your proposal rejected burns your deposit).
Granted, this also means anyone with an almost trivial amount of KSM can block malicious updates from passing, which is a decent tradeoff in terms of the network’s security and arguably critical for the more conservative Polkadot mainnet. Still, something to keep in mind!
Polkadot
Two major breaking changes were introduced to Substrate affecting all Substrate chains. See below for details.
PR 843 has been merged, featuring a “more comprehensive model for PoV-Blocks and Candidate receipts”. This introduces on-chain performance gains to communication between nodes in Polkadot with relation to cross-chain message passing and parachains, once they’re live. It also makes state-pruning nodes more efficient in looking for old blocks when they need them.
Kusama (v0.7.22.)
(ง •̀_•́)ง BREAKING CHANGE 🚨🚨🚨
PR 4474 went into Substrate, and now you need to manually request payouts from nominating and validating! Your rewards are kept for a maximum of 84 eras which per Kusama parameters is 21 days. Anything older than that is discarded, so request your rewards often! This breaking change is so important it’s listed twice - here and in core stack below.
😈 s̴̀̚ͅu̷̩̎́m̴̜̖̀m̶̢̛o̸͉̲͑n̶̫̤̂i̴̪̋t̴̫̱̃͋o̴̪̔̑r̷̤̽ĕ̵̞͐s̷̛̝̔ ̸̟͍̄́c̴̡̙̉ḣ̷̙͂å̸̖̝ǫ̴̥̏̋
Chaos 1: A runtime upgrade was added in over the weekend in a rush and resulted in all balances disappearing because of a code error. The issue was quickly reverted with another runtime upgrade via a council motion, but because all current balances were removed, a new injected account was needed with fresh, unclaimed KSM. Without it, a hard fork would have been necessary. In the end, the fix went through successfully and things stabilized within 5 hours.
😈 s̶̮̦̱͐̇̐e̷̜̓̇͂͝m̷̪͊͗͗p̵̡̰̙̟̥̱͉͍͂̉̃͊̒̈́͠ë̴̛̗̲̱́͐̏ŗ̴̛̲̰̪̣̹̌̊̚ ̶̹̥̘͙̳̆ç̷̱̥̰̞͋̋̀h̸͖̠̺̲̗̪͎͆̑͗̈́̋̈́̚a̷̡̨͕̪͖̞̲̭̔̅͊́̈͌o̶͍̗̼̮͉̐̄͂͂̓͗͂̕
Chaos 2: The treasury proposal aiming to send 100 KSM to me for demo purposes failed, twice. Here’s how twice: when a treasury proposal is being pushed into Council Motion mode by a Council member, they need to specify the ratio needed for the motion to pass, i.e. 5 out of 9. For some reason, this isn’t read from the chain when a proposal is being motioned, but needs to be provided manually. If the provided value does not match what’s on the chain (i.e. 7 of 11), then the motion cannot pass, no matter how many ayes it gets. This was a UI issue. So this treasury proposal first got failed by everyone voting nay to reset it into proposal mode again. Then it got motioned correctly, and promptly rejected due to changed sentiment. The deposit of 20 KSM was burned.
😈 s̶̮̦̱͐̇̐e̷̜̓̇͂͝m̷̪͊͗͗p̵̡̰̙̟̥̱͉͍͂̉̃͊̒̈́͠ë̴̛̗̲̱́͐̏ŗ̴̛̲̰̪̣̹̌̊̚ ̶̹̥̘͙̳̆ç̷̱̥̰̞͋̋̀h̸͖̠̺̲̗̪͎͆̑͗̈́̋̈́̚a̷̡̨͕̪͖̞̲̭̔̅͊́̈͌o̶͍̗̼̮͉̐̄͂͂̓͗͂̕
Chaos 3: When validators are dropped from the active set, they stay in there and show as having 0 stake. This looks strange in the UI, and also trips up our validator stats script sometimes. A fix for both is in the works.
👿 n̷̨̲͒̐u̵̹͉̍l̴̫̤̆͌l̴̯̀̔a̸̭̱̽ ̵̭͒̋c̷̣̜̈́̊ḣ̴̬̭a̸̹̎͊ọ̴̎̓
Great introduction by Decrypt into the Kappa Sigma Mu (KSM) fratority on Kusama Network, which pays you to get tattoos of Kusama. The society’s treasury was recently funded by 1000 KSM (~$3000) through a successful Treasury proposal.
A Westend (Kusama testnet) faucet is up for those that want to get some Westies (Westend tokens) and play around with the shiny new testnet. #westend_faucet:matrix.org - join this riot channel and make a comment
!drip <WESTEND_ADDRESS>
, and you will get some tokens. More details of the different kinds of networks can be found here.Polkacube lets you optimize your nomination strategy for profit!
Kusama Governance
Proposal #28 to add a new application-specific registrar has failed. See top of this post / email for details, under the highlight section. The deposit of 20 KSM was burned.
The treasury proposal aiming to send 100 KSM to me for demo purposes has also failed, twice. See above under CHAOS for how and why. The deposit of 20 KSM was burned.
Referendum 29 to increase the validator set from 160 to 180 passed and is set to be enacted at block 1,425,600
Referendum 30 has failed hard with 103k vs 500 Nay vs Aye. This is probably because it was submitted without a preimage or explanation.
Referendum 31 is live and aims to install a new registrar into the system. The proposer (Marvin from Phala Network) has not detailed this proposal anywhere, so the parameters of the registrar (i.e. cost, purpose, etc.) are unknown.
Polkassembly is live! A Web 2.5 platform for discussing proposals in Kusama’s democracy - use it to argue for your votes or proposals, even on mobile.
Two proposals are pending: proposal 13 is trying to set an unknown user’s account balance to 100 and has no chance of being seconded, or passing. Proposal 14 sets the number of validator slots to 200 from the soon-to-be 180.
Core Stack
(ง •̀_•́)ง BREAKING CHANGES 🚨🚨🚨
PR 4820 went into Substrate, and now the balance of an account is stored in
system
. If anything you’ve built relies on balance.freeBalance, this is now insystem.account
, and contains free, locked, frozen, nonce, and other data.PR 4474 went into Substrate, and now you need to manually request payouts from nominating and validating! Your rewards are kept for a maximum of 84 eras which per Kusama parameters is 21 days. Anything older than that is discarded, so request your rewards often!
[FIX] The synchronization issues seen by some people running full nodes / validators were fixed by this PR, which ensures that other nodes send a full block when doing a full sync. https://github.com/paritytech/substrate/pull/5052
[RELEASE] Substrate v2.0.0-alpha3 has been tagged
[CHANGE] Substrate now exports blocks in JSON by default, rather than binary
[BUGHUNT] A "Kusama Memory Leak Task Force" has been created to not only find, but pre-emptively fix, memory leaks in Substrate. Also notice the detailed Hackmd file inside that issue.
[FEATURE] With this PR, Substrate now has the ability to do
vested_transfer
, i.e. the ability to transfer tokens with a vesting schedule that starts at an arbitrary block.
Tools
Joshy from Parity created a proof-of-work chain with Substrate for a Cleveland meetup. It’s still going strong, and is a very good example of how to do this yourself. Learn about it in this webinar.
VueJS-based Polkadot libraries are growing! Matej presented them in this webinar (same as above).
Rust can now run in Dart language, and thereby Flutter. Could this mean Flutter-based Substrate nodes? 😱
Polkacube lets you optimize your nomination strategy for profit!
Education
Cointelligence Academy has a free 20 minute intro video about Polkadot. Scroll to the bottom on this page to find it, or just watch it below.
The wiki now has a detailed guide on how to participate in on-chain democracy on Kusama and Substrate chains in general
The Web3 Foundation's Legal Counsel, Sonja Prstec, gave a talk on "Legal Compliance on Blockchain". You can watch it here.
A webinar on a Substrate-based Proof of Work chain, and on VueJS-based Polkadot tools.
A video by Kiril Taran about how to use the Substrate EVM module. There is no GUI support yet, but if you feel comfortable with terminal then you already can use Solidity contracts without writing JavaScript yourself.
Ecosystem
HIGHLIGHT
David Hawig from the Web3 Foundation grants team has put together a description of the Polkadot ecosystem stack. It contains everything built so far, and everything being built, along with stuff Web3 Foundation still wants built! If you’re considering a grant application, check it out!
There is now a Web 3.0 Quora Space. Most of the links appearing in this newsletter will go there first.
There is now a Web 3.0 Pepo Community (link will only be useful on mobile). Pepo is tik-tok for crypto where likes are real money.
A tech and research update from Web3 Foundation is out - learn what’s been happening in February!
Crust Network’s Alphanet is live - a TEE+IPFS mix. Basically, incentivized IPFS storage on Substrate!
A post-mortem on a big outage in Edgeware staking by Staking Facilities. Worth a read if you’ve got validator ambitions in any ecosystem.
Polymath's head of blockchain, Adam Dossa, hosted a discussion of Polymesh, the security token chain built on Substrate.
Flexdapps have joined the Polkadot ecosystem by building Gantree - a Heroku-like environment for deploying Substrate nodes
EthCC was preceded by a gaming unconference organized by Edward from W3F’s grants team. The event focused on team-based workshops and brainstorming about common problems in blockchain game development and was a great success, attended by big names such as Ubisoft, Blockchain Game Alliance, Axie Infinity and others.
Enterprise and Partnerships
Crypto investment bank Hash published a comprehensive report on Polkadot’s value proposition. Worth a read if you’re on the fence about joining the ecosystem.
The following address prefixes have been claimed by Acala / Laminar:
8: Acala Karura canary network
9: Laminar Reynolds canary network
10: Acala mainnet
11: Laminar mainnet
Plasm Network, a plasma parachain, had their request for an SS58 network prefix, "5", approved.
Bifrost, a parachain designed for staking liquidity, had their request for an SS58 network prefix, "6", approved.
Polkadot is getting WebAssembly-based Ethereum 2.0 virtual machine from Second State - read more.
Looks like Chainlink will be Polkadot’s first oracle parachain, feeding the ecosystem with data from the outside world.
Web3 Foundation Grants
Sensio has received a grant to work on their namesake project, a network to allow creators to sign, license, and sell their content on-chain. The grant was submitted and received through the open grants process.
Another open grant - Stake Technologies - ECDSA for Polkadot JS (GitHub)
Interlay has been funded to build a trust-minimized Bitcoin-to-Polkadot bridge.
NodeFactory is building a MetaMask plugin for Substrate chains. Github.
Kilt has received a grant from the Web3 Foundation to work on anonymous credentials for Substrate. https://github.com/KILTprotocol
Obsidian Labs is building a Substrate IDE. GitHub.
Attic Lab https://atticlab.net/ was approved to work on a PSP (Polkadot Standardization Protocol) to standardize Polkadot multisig wallets.
Definex was funded to work on a next generation Cross-chain Multi-Asset Defi Protocol. https://github.com/definex/definex-libs
Upcoming Events and Webinars
The event section is a little sparse this time due to COVID-19 scares, so it’s online only.
[VR] March 12th, Polkadot Meetup in VR
[WEBINAR] March 16th, The Path of a Parachain Block by Joe Petrowski
[WEBINAR] March 18th, A Walkthrough of Democracy by Logan Saether
[WEBINAR] March 20th, Build your own app-specific blockchain with Substrate, by Bruno Škvorc
[WEBINAR] March 23rd, EFF Presents the History of Net Neutrality
Special thanks to Bill and David for feeding me a lot of this content, would have been very hard without them!
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.