Coda Protocol Testnet [Beta] Retrospective — Phase 2
by O(1) Labs
2019-12-05

After two more months of testing and hardening the Coda protocol, we’ve arrived at the end of Testnet Phase 2. The goal of Phase 1 was to test feature sets incrementally, and expose Coda for the first time to a public audience. Phase 2 then, was to ensure that these features would be durable — that they would last on longer testnets, and snowball into an increasingly viable mainnet release candidate. See below for more detail on how Phase 2 progressed.

But first, a surprise challenge for the winter and holiday break…

phase-2-retro-twitter-card

Next, we will have a Winter Special edition Testnet planned with an holiday gift for the winner. The event will start next week on Tuesday December 10th, 2 PM UTC-8 and it will last for about a month. Engrave your name on the Winter Special leaderboard before we dive into more exciting things together in 2020! Read on for more details, and sign up here to be notified via email for Testnet updates!

Table of Contents

Testnet: Winter Special Edition

Retrospective Phase 2

Community Phase 2 Winners

Testnet: Winter Special Edition

Winter is here! Testnet Winter Special will begin on December 10th, 2pm UTC-8 and end on January 6th, 2020.

The Winter Special will feature a Winter Special leaderboard, a special challenge with an NVIDIA 2080Ti Graphics Card on the line for the winner, and more challenges including a staking challenge. If you would like to stake on the testnet, check the instructions here to get some stake delegated to you, so you are all set to start staking when the Winter Special starts!

All challenges will be announced on the Discord server. Sign up here for the testnet newsletter to be notified when the Winter Special starts.

Retrospective Phase 2

Here’s a snapshot of numbers from the latest testnet:

  • 4 networks deployed, each running 2-weeks
  • 1000 ledger accounts generated
  • 42 peak peers connected and seen by the O(1) seed nodes
  • Over 10,200 blocks on the longest chain (and over 5,000 in just the last network)

Key developments:

  • Finished migration to libp2p as the peer discovery layer — goodbye Kademlia! libp2p gave us more stability, as the library had been tested and utilized by other networks as well. One downside is the longer peer strings, but that is on our roadmap to fix.
  • Reduced memory footprint of daemon, to prevent nodes from crashing due to running out of memory. Previously the node could consume upwards of 12GB memory due to fragmentation. We changed our memory allocator to jemalloc to help with this. See more here.
  • Began using a modified BG18 SNARK over Groth16 in certain parts of the protocol, in order to avoid malleability attacks. The new construction is simulation-extractable — meaning an adversary cannot create a valid proof even if it has already seen an arbitrary number of simulated proofs.
  • Switched from using Pedersen hashes to Poseidon, a more SNARK-friendly hash function. This helped reducing proving time by making hashing more efficient inside SNARKs.
  • Moved to 2-week (and one 3-week) network releases, and while 2.3 had a bit of instability, both 2.1 and 2.4 (the last release) showed continuous uptime for the 2-week span.
  • Allocated majority stake to non-O(1) Labs nodes, and successfully ran networks without chain halts. Community members were able to stake and delegate tokens throughout the network without issues.
  • Intentionally partitioned the live network in order to test chain splits and organic recovery over time.
  • Expanded GraphQL API to support more features including: getting all data within blocks, recursively query accounts, and also add the graphiql explorer — shout out to the OneGraph team for building an awesome tool!

There were many more contributions, not only from the O(1) Labs team, but the community as well. We couldn’t cover everything here, so please join the Discord server to stay up to date with protocol progress in real time.

Community Growth

We also feel very grateful for the participation from the community in the public Testnet Beta. The community has grown rapidly since we launched in July. In below chart we can see that more and more community members connected to the testnet and tried out Coda!

phase-two-retro-users-chart

Community Phase 2 Winners

Please join us in congratulating Coda’s Testnet Beta Phase 2 winners!

Final Top 10 positions on the Phase 2 Leaderboard:

1st Matt Harrop | Figment Network

2nd pk

3rd Ilya | Genesis Lab

4th y3v63n

5th Kunkomu

6th novy

7th Mikhail

8th niuniu | Bit Cat

9th LatentHero

10th Gordon Freeman

Community MVPs:

  • CrisF — for his active participation, and always being helpful — e.g. by giving feedback on the testnet, submitting bug reports, etc.
  • Star.LI — for always being around and helpful in the (Chinese) community, and his contributions through bug reports, etc.

As always, thank you for being part of this ride with us — we’ll continue together to improve the protocol in our march towards a strong mainnet candidate that will realize Coda’s vision of being decentralized at scale! Stay tuned for more exciting things in 2020 and see you over on Discord!

*Testnet Points (abbreviated pts) are designed solely to track contributions to the Testnet and Testnet Points have no cash or other monetary value. Testnet Points are not transferable and are not redeemable or exchangeable for any cryptocurrency or digital assets. We may at any time amend or eliminate Testnet Points.