Testnet [Beta] Retrospective — Phase 3.2b
by O(1) Labs
2020-07-01

✅ TwitterCard880x690

With testnet participants now numbering over 700 in Coda’s Testnet Phase 3, release 3.2b marked the biggest testnet release in Coda history. Around the start of the release, one of the block explorers observed 278 peers within 24 hours (and this node is only seeing a part of the network!), and at the end of the release, there were at least 275 concurrent nodes! Throughout the release, users were able to earn over 1.3 million testnet points on the Leaderboard, together reaching a block height of 5563 (and counting) by the end of the testnet release after two weeks.

Because of this success, the team is feeling confident and excited to increase the limited testnet spots for the next testnet, so we can include even more members! Sign up for the Genesis mailing list in case you’d like to receive a notification when registration opens for the next testnet. dailypeersseen One of the Coda block explorers (https://coda.bitfly.at/) observer 278 peers within 24 hours after launch 3.2b geographic breakdown Coda’s testnet users are global with over 200 users from testnet 3.2b hailing from over 40 different countries!

TABLE OF CONTENTS

Retrospective Release 3.2b

Bugs Being Worked Out

On Node Synchronization

A Big Thank You to Our Community

Retrospective Release 3.2b

For Testnet Release 3.2b, we introduced a new process internally to ensure a smoother release, which allowed the O(1) team to launch the release with a lot more efficiency. We intend to continue fine-tuning so we can further improve on our upcoming releases. Another notable achievement for this release was that we maintained a healthy network for the 2-week duration, with around 200 peers most of the time. We hit an exciting milestone in that we saw the first successful network with at least 275 nodes concurrently connected. This is great progress compared to the last stable network we’ve seen with ~60 concurrent nodes.

One limitation during this release was the number of participants that could engage in the testnet, which was ~250. We limited the maximum amount because we wanted to ensure the health and efficiency of our network within the testnet release. However, during the last 24 hours of the release, we removed this restriction to test the limits of the network, which resulted in at least 275 connected peers without significant network forks, the largest number the testnet has experienced. As we move forward to future releases, we intend to gradually remove this restriction and open up the testnet to everyone interested in participating. The plan is to include a substantially larger number of users in the next testnet phase!

Bugs Being Worked Out

Reduced txns per block due to snark worker bug

One issue we discovered just before the planned launch of release 3.2b was a regression in the number of snark worker nodes a coordinator can support at once. We investigated quickly, but it wasn’t immediately clear what had caused this bug. Rather than further delay the release, we decided to just drastically reduce the max-txns per block. We are currently looking into the causes of this bug to fix it before the next testnet release.

SNARK challenge: how to encourage market behaviour on the testnet

There was also an issue that stemmed from a poorly worded internal description of the challenge “earn 3 fees” that led to a misinterpretation of the challenge — 3 coda units in fees, rather than 3 snark works bought. The former interpretation is essentially unachievable due partially to the throughput regression, as there is a very limited number of snark work slots per block, and folks quickly realized that if they lower their fees their snark work is more likely to be bought — it’s a free market. Since the market quickly pushed fees to 0, this challenge became impossible to complete and snark work buying on the network became completely random. Folks on the core team and community are discussing the issue, and we believe we can fix this with a carefully structured testnet challenge. There is also some discussion around introducing a minimum wage for snark workers, though we would prefer not to change the protocol in this manner (see github).

Usability

There were a few other bugs related to usability which we’ve taken note of with respect to logging, CLI, and API.

Connection Error

Also, during several sections of the network, around once every other day (but typically only for an hour or two), new nodes were unable to join the network. We are digging into this issue now.

On Node Synchronization

Recently, we’ve heard from community members that they are curious as to why node synchronization takes some time. We wish to address this to stress this is not a limitation of the protocol, merely our current implementation. Let’s address this in a few ways:

A client currently assumes that every participant wants to stake, and so when syncing a node, it downloads the whole ledger (as well as the full non-snarked blocks for a handful of blocks in the past just in case there are short term forks). For future releases, we plan to improve the client so that it knows to avoid downloading the full ledger + non-snarked blocks for those who do not need it (eg. for a snark worker).

Additionally, even if you are running a block producer node, you can expect synchronization time to reduce! We currently have a few issues being worked on that will eventually reduce this time. For example, our catchup data is requested in the wrong direction which adds unnecessary overhead (we are currently working on a fix, see github). For more information, keep your eyes out for future blog posts and docs on this issue!

A Big Thank You to Our Community

Members continue to move the network forward by helping us with testing, and creating and sharing awesome resources and tools with each other. A big thanks to all of you for your passionate participation in the last two weeks, and we also want to give a big shout-out to these Coda users:

garethtdavies for making and continuously improving a Coda block explorer for the community.

kenny for sharing helm charts for coda daemon, see github.

harshjain for sharing a guide on how to use Coda on CentOS:

whataday2day for updating and sharing his snark stopper script with the community, see github.

zkpk for sharing a script to help testnet users randomize their SNARK fees.

fible1 for creating guides for testnet users in 3.2b to complete technical challenges and monitor their nodes.

Garethtdavies, Kunkomu, niuniu | Bit Cat, Nightguy1688, happinapp, aliefaisala, Chromatone, zkpk, SigmoID | DSRV, fible1, Orthoepy, Cyfera | Bitbasic.com, Seok Hyun (Danny), Star.LI, Jonhi8822, Fouda HD, SY.Lai, viboracecata, and whataday2day for always being around, positive and helpful in the community.

A big shout-out to all 173 block producers on Coda’s Testnet Phase 3.2b, and especially the top 3 block producers:

  1. Sleephunger with 42 blocks created
  2. Poppo with 38 blocks created
  3. Arn77 with 37 blocks created

Congrats to all community members for all the achievements we reached together on testnet 3.2b, and we’re looking forward to the next testnet release with you!

Please sign up for the Genesis mailing list to receive notification by email when registration opens for the next testnet.