Weekly Update (5/14/2021): Ava Labs Engineering
Development across the Avalanche ecosystem is growing rapidly, with new teams, applications, and assets being created every day. To keep the community up-to-speed on the work Ava Labs is doing to support these amazing efforts, we publish this weekly blog to recap our contributions to key technical areas.
This blog also provides information on how developers can get more involved in the Avalanche ecosystem, through programs like bug bounties, developer office hours, and career opportunities. Without further ado, here is this week’s engineering update:
Bootstrapping and Memory Optimizations: AvalancheGo@v1.4.3
Last week’s engineering update mentioned that we would be releasing the code for the upcoming Database Migration as AvalancheGo@v1.4.3, however, some node operators mentioned in Discord that they were running into issues bootstrapping their node on v1.4.2. We decided to dig into these concerns and to shift the focus of v1.4.3 to adding bootstrapping optimizations to improve startup reliability. Additionally, AvalancheGo@v1.4.3 includes the following changes:
- Networking optimizations that bring the node’s bandwidth usage to <= that of AvalancheGo@v1.3.2
- P-Chain improvements to make managing the validator set more efficient
- Reductions to the size of unnecessarily large caches on the C-Chain
- Fix for a non-deterministic bug that could cause nodes that receive a lot of transaction broadcast requests to temporarily stop producing blocks on the C-Chain until they process a block produced by another node
- Changes to how validators evaluate the uptime of unresponsive peers
To elaborate on the uptime monitoring change mentioned above, AvalancheGo@v1.4.3 is the first release that penalizes validators for being unresponsive for some period of time (known as being “benched”). Specifically, another validator will mark your validator offline if it fails to respond to at least 10 messages in a row over the course of at least 5 minutes. Your validator will be marked by that validator as online again when it becomes more responsive.
For the vast majority of validators, this change will have no effect. However, If your validator is running on a computer with insufficient CPU or a poor internet connection, other validators may consider it as having lower uptime, which could cause it to not receive a staking reward. Each node has a different perspective as to which nodes are unresponsive, so it is not possible to tell exactly how your validator’s uptime or responsiveness is perceived by other validators. However, you can use explorers like Avascan or Vscout to get a few data points:
Database Migration: AvalancheGo@v1.4.4
We are planning on including the previously discussed database migration code in AvalancheGo@v1.4.4. You can read about the performance improvements (90% reduction in DB reads) and mechanisms that enable this upgrade in last week’s engineering update. We are actively testing a pre-release of v1.4.4 on a small collection of nodes run by Ava Labs before a planned public release early next week.
At the time of release, we will distribute a detailed upgrade guide that explains what validators and exchanges should expect when running the migration. To make the rollout of this upgrade as smooth as possible, AvalancheGo@v1.4.4 includes a daemon that automatically orchestrates the entire upgrade if a series of sanity checks are passed (i.e. that there is enough free space to complete the migration).
As part of a recently kicked off refactor of the wallet (wallet.avax.network), it became apparent that its core functionality (mnemonic wallet utilities, address derivation, Ledger communication, UTXO management, etc) could be abstracted into a standalone SDK that could be used by any wallet. But why just tell you about it, when I could show you?
AVAX Send (4 lines of code):
AVAX Delegation (6 lines of code):
Over the last few weeks, we’ve been formalizing the structure of this new SDK and plan to make it publicly available in the coming weeks. We can’t wait to check out the new wallets and tools that the community creates on top!
On May 28th (2 weeks from now), we will be shutting down the graph-node we are hosting at graph-node.avax.network. Anyone relying on this service should migrate to the graph-node service provided by TheGraph. The only two subgraphs deployed on graph-node.avax.network can be accessed on TheGraph at the following URLs:
Each week there are many small but meaningful improvements made to the repos we maintain (usually based on feedback from the Avalanche community). Oftentimes they don’t warrant their own section but are still worth calling attention to. Here are this week’s “everyday” improvements:
- Apricot Phase 2 support added to AvalancheJS
- AvalancheJS hit a new weekly high in downloads:
- Major new features from wallet-beta.avax.network (ERC-20 and ERC-721 support, new login flow supporting multiple accounts, show C-Chain private key, and fixes for C -> X MAX amount send) were rolled out to wallet.avax.network
- C-Chain block explorer now includes the error that caused a transaction to revert
- Docs now include a tutorial for porting your dApp from Ethereum
Over the last few weeks, the Ava Labs engineering team has been hosting focused office hours on Discord from 2–4 PM ET each Wednesday. Last week the dApps team hosted office hours. This Wednesday, office hours will be hosted by the Developer Services (AvalancheJS, Avash, Ledger) team.
Join Ava Labs
Ava Labs was founded by Cornell computer scientists who brought on talent from Wall Street to execute their vision. The company has received funding from Andreessen Horowitz, Initialized Capital, and Polychain Capital, with angel investments from Balaji Srinivasan and Naval Ravikant.
We are actively hiring for a number of key technical roles. To ensure we attract the best and brightest to join our team, we support hiring remote candidates from anywhere in the world. If the work we are doing interests you, we’d love to chat! You can apply here.
If you don’t know what role to apply for or want to bump your application to the top of the stack, you can take a short 25 minute technical assessment to demonstrate your skills. We’ll reach out promptly if you demonstrate the talent that would make you a great fit at Ava Labs.