I would like to tell you about my experience of participating in the Agoric testnet.
Before that, I had a lot of experience in testnets of various projects: MINA, Clover, NYM, Solana, Hopr, Iris, Concordium, and many others.
To get on the testnet, it was necessary to complete and send a form to the project team. Here I can note that, unlike other projects, the form was rather difficult to complete, there were deep questions about the applicant’s experience and his additional skills, for example, it was important to have experience with Prometheus — a system for collecting metrics and parameters of your nodes.
According to the results of the selection, I got on the waiting list, in which there were 49 more people besides me. In the main recruitment were 150 participants.
The first phase of the testnet ended somewhere in mid-April, based on the results, the team decided to bring in an additional 10 people from the waiting list. I was lucky to be one of them :)
In total, 5 phases are expected in the testnet:
— Phase 1: Onboarding
Dedicated to the setting up the validator environment and getting familiar with the Agoric network.
— Phase 2: Infrastructure
Focused on testing the hardware, using XS, running network load and performing maintenance tasks.
— Phase 3: Staking Dynamics
Test all aspects of staking, jailing, bonding, and beyond.
— Phase 4: Stress Test
Validators will participate in various tasks to test the upper bounds of our testnet, including coordinated strikes, network-wide votes, and how our network reacts to emergency updates.
— Phase 5: Adversarial
A coordinated strike to bring as much complexity as possible to the Agoric network. Validators will compete with (and against) one another to take the largest portion of the reward pool.
I start with the second phase, we were given only 24 hours to familiarize ourselves with the documentation, instructions and testnet rules, prepare the node and set up the Prometheus metrics collection system. I decided to put the node on a slightly more powerful config than the minimum required. My VPS: 4 cores CPU, 8GB RAM, 120 GB SSD.
It is worth noting that the official guide for configuring the Agoric node is very detailed, covers most of the possible problems, and in general it was a pleasure to work on it. It was not difficult for me to raise the node. Also, members who had less experience could use excellent guides from members of the community, or ask questions in a private discord channel. The team is always trying to help.
It was more difficult to configure the ports for Prometheus. Initially, I decided to use a script published by one of the community members, but as a result, not all the necessary ports were open, and I had to roll back the changes and return to the official guide. As a result, I was pleasantly surprised that everything went smoothly and everything worked from the first time. Excellent guides!
Next, I’ll tell you about the process of earning points by testnet participants.
As a general metric, Agoric is allocating over 1,000,000 tokens to reward participation in the phases of the incentivized testnet. The total points each participant can earn for completing all network and community task at each phase is listed below. The number of tasks to complete is subject to change. Points per task increase with each phase. Network tasks are worth twice as much as community tasks.
Here is the list of tasks for Phase 2:
After spending some time, I successfully completed the first two tasks. The main difficulty for me here was the limited time and the fact that I was a newcomer who did not participate in the 1st phase, where the guys had already gained experience in performing similar tasks.
Another funny incident happened during the upgrade of the network to new version and an attempt to launch the network, having received the signature of the genesis block by ≥66% of the validators. The event was scheduled for 3 a.m. in my time zone, most of the validators gathered to be personally present at the launch, but in the process we encountered the problem “Consensus failure on genesis initial height other than 1” and it was decided to postpone the launch by about 20 hours.
On the second attempt, the project team and validators successfully coped with the task and the network started working.
The first thing I did after starting the network was registering the validator. Here, test tokens were needed, which we had to requeste from the faucet. However, since the first attempt to start the network was unsuccessful, it was necessary to reset the first request for test tokens and repeat it, which was successfully done with the help of the admins.
The state of the network, the parameters of the validators, transactions, blocks can be viewed in a convenient dashboard: https://testnet.explorer.agoric.net/validators
After registering the validator, my node was displayed there almost instantly.
Next, I completed the task Cause your validator to be jailed and then recover. The process looked like this:
1) Stop the node, wait for 50 skipped blocks -> the node is jailed
2) Run the node, wait until it catch up with the network
3) We send a transaction to unjail.
In general, the node works smoothly for me, the uptime tends to 100%.
In addition to technical challenges, there is a community task: Write and publish a 400–750 word article demonstrating knowledge of Agoric’s technology and fit within the DeFi ecosystem. For this task, I decided to share my experience of participating in the testnet.
The final and most difficult task in Phase 2 will be Create a tool to help diversify the validator community. The goal of this task is to build a tool that improves the Agoric validator ecosystem. I also plan to participate here, I want to write a bot that will help control the status of the node and notify the owner in popular messengers if he urgently needs to fix something.
I’m really glad to take part in the Agoric Testnet and I’m looking forward to new challenges.
That’s all :) See you!