This article, co-authored by Blockingradigm CTO and research partner Georgios Konstantopoulos and data assistant Storm Slivkoff, introduces Flood, a load testing tool for benchmarking EVM nodes, providing unprecedented views of the performance characteristics of blockchain nodes. The Chinese version is translated and published by DeepTech TechFlow.
Load testing is a key step in building resilient and high-performance data systems during development, yet it has not been widely applied in the development of cryptocurrency infrastructure. We introduce Flood, a benchmarking tool specifically designed for RPC endpoint performance analysis, to fill this gap. Initially, we used Flood as a tool to optimize Reth and understand its trade-offs in latency and throughput under different loads. Later, we discovered that Flood has significant practical value in optimizing the performance of many types of cryptocurrency infrastructure, beyond Reth.
Unlike latency testing, Flood provides an unprecedented view of the performance characteristics of RPC endpoints through load testing and extends coverage to all relevant RPC methods. Flood consists of three basic components: 1) Call generation engine: generates large sets of parameterized RPC calls, randomly sampling distributions similar to different types of blockchain workloads. Uses the Blockingradigm Data Portal dataset to ensure complete coverage of blockchain history; 2) Load testing engine: orchestrates Vegeta to perform load testing on RPC endpoints using the above calls; 3) Reporting engine: after the test is executed, summarizes the results using various charts, tables, and reports. These summaries are easy to integrate into scripts and data.
- Launching a value network through Sats’ micro-payment economic model
- Technical: Analyzing the Pros and Cons of FPGA and GPU Accelerated Zero-Knowledge Proof Calculations
- Three implications of blockchain technology for the beauty industry
In the normal operation process, the user specifies the RPC methods and endpoint list to be tested, and Flood displays tables and charts that summarize how performance metrics change with load, revealing system bottlenecks and ultimate performance capacity. In addition, Flood also provides advanced features to accommodate various types of advanced users: 1) different load testing plans can be used, including “stress testing” (gradually increasing load over time), “spike testing” (sudden large loads), and “soak testing” (running load for a long time); 2) load testing can be orchestrated to run natively on each RPC node to eliminate noise caused by network bottlenecks; 3) has an “equivalence” testing mode to check if each RPC endpoint returns the same response.