We pushed the system to its limit, we recuperated, and now we’re here with a report. Phase 4 of the ongoing Agoric Incentivized Testnet for validators was the Stress Test phase. The goal of the phase was to exercise performance-related features and code we’d recently put into the system. We had a number of different improvements all coming in simultaneously, and we used mid-phase upgrades to switch between operating modes. This gave us several comparison points to understand different dimensions of system performance.
This was arguably the most intense phase we’ve had so far, and we appreciate all the work the validators put into it. Validators were competing for uptime amidst stressful load, last minute voting conditions, mid-phase upgrades, and required restarts. Agoric came out of the phase with a treasure trove of data that has allowed us to focus our efforts moving into the next incentivized testnet phase and beyond. For a more in-depth overview, check out Brian Warner’s comments in a recent Agoric Community Call.
Phase 4: By the Numbers
900 network tasks submitted
84 community tasks submitted
5 challenge tasks submitted
Better to Look Stressed Than Feel Stressed
One of the tasks was to show yourself doing the stress test and feeling stressed, and there were some great ones. Here is a sample of validators blowing off steam:
https://twitter.com/cjremus/status/1410963212233809930
https://twitter.com/Easy2Stake/status/1411296716226187271
https://twitter.com/ya_cima/status/1410704075767926792
https://twitter.com/aliefaisalaa/status/1409501267823452164
Announcing the Winners
The task was to write a load gen script to try to stress the network itself. We saw various builds come through to battle for the winning spot but two stood out that were used extensively throughout.
Phase 4 Winners
c29r3
The purpose of this submission was to test the performance of validators in the Agoric agorictest-16 test network. The script sends transactions in multithreaded mode, from thousands of wallets.
Details: https://github.com/c29r3/agoric-stress-test
KingSuper
This script has a pair of key functions. The first, Create a Big Tx, created 7,000 addresses on the network and sent each one 1 uBLD, resulting in 133,851,645 in gas spent. The second was to send the uBLD from all 7,000 addresses back to the original address. This caused a tremendous amount of load on the network.
Phase 3 Runners-Up
DSRV
A new load gen script for the “Zoe Simple Exchange” smart contract.
Details: https://github.com/Agoric/testnet-load-generator/pull/9
baberough
Baberough wrote a mischievous tool that allows you to detect validators with an opened RPC port (26657) and send them a heavy payload.
Details: https://github.com/kinrokinro/agoric-stress-tester
What’s Next?
Phase 4.5 of our incentivized testnet wrapped yesterday, Thursday, August 26. Coming soon is Phase 5: Adversarial Testnet.
Even if you’re not a participating validator in our incentivized testnet, you can still take a look under the hood and start building with us. Check out our developer page.
And be sure to follow our incentivized testet through the remaining phases at on our
Thanks for reading. You can join the Agoric community on Twitter, Discord, Telegram, and LinkedIn, and subscribe to our monthly newsletter.