Avalanche Testnet Update — Apr. 24th, 2020

Stephen Buttolph
Avalanche
Published in
3 min readApr 24, 2020

It’s been just a week since we released our first public testnet — featuring the Cascade updates from the Gecko client — and the Avalanche community has already learned a great deal about the client and how people are interacting with the platform. At each milestone of our journey to mainnet, we consider it essential to keep our entire community abreast of the development process, what issues have been discovered, and what solutions are in the works.

Discovered Issues and Actions Taken

NAT Traversal Fixes

The first pain point we discovered surrounded the 2-way handshake with NAT traversal, which prevented clients from operating behind firewalls. The solution was to switch to a newer version of Salticidae which uses a 1-way handshake. While this fixed NAT traversal, it introduced or revealed issues having to do with nodes partially connecting to the network. After running a throughput script over the C-Chain on Thursday, we identified new connectivity issues. We are currently investigating those issues, and will keep the community informed on progress on our Discord channel (https://discord.gg/Ja3CSs7).

NOOP Issuance

Because of these connectivity issues, nodes that were only partially connected to the network would be partitioned from a consensus point of view. Because repolling currently issues a new vertex in Avalanche, this resulted in these nodes issuing large numbers of NOOP vertices to attempt to commit the pending transactions. We will be removing NOOP vertices from the protocol entirely.

Moving Forward with Lessons Learned

Networking

We need further testing of Gecko with Salticidae’s networking. The happy paths continue to work great, but there appear to be some problems left untested. We need to more rigorously test the edge cases on the networking side, and we encourage everyone in the community to chip in and be rewarded through our Bug Bounty program (https://www.avalabs.org/ava-x/explore-open-grants/bug-bounty).

Avalanche Repolling

Removing NOOP vertices had already been on the roadmap as a required future improvement — we had started to take a stab at it at around the time of the testnet release — but should have made this a more high-priority update. This update will result in NOOP vertices becoming invalid. Fully updating requires a network reset. An improvement to this process will assist in similar situations going forward.

Assistance in Upgrading Clients

There will be a hard reset of the Gecko client and all state on the testnet once these issues are fixed. We are going to make upgrading clients as smooth as possible for the immediate upgrades, once released. This may or may not require intervention from the team to assist in the upgrade process. The easy path is a fresh installation of Gecko and all dependent libraries. We also support upgrading existing clients along the way. Please join the Discord channel (https://discord.gg/Ja3CSs7) where there are community members available to assist in this or any other issues in working with the Gecko client.

About Avalanche:

Avalanche is an open-source platform for launching decentralized finance applications and enterprise blockchain deployments in one interoperable, highly scalable ecosystem. Developers who build on Avalanche can easily create powerful, reliable, and secure applications and custom blockchain networks with complex rulesets or build on existing private or public subnets.

Website | Whitepapers | Twitter | Discord | GitHub | Documentation | Explorer | Avalanche-X | Telegram | Facebook | LinkedIn | Reddit | YouTube

--

--