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.

Image result for 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 in system.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


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!


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.


Web3 Foundation Grants


Upcoming Events and Webinars

The event section is a little sparse this time due to COVID-19 scares, so it’s online only.


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.