Benchmark Reproduction Guide
Altius provides the necessary tooling for partners to reproduce these benchmarks on their own infrastructure. We utilize a Dual-Node Architecture to ensure that performance metrics reflect pure execution capability rather than data-serving overhead.
System Architecture
The benchmark environment separates the Data Source from the Execution Target:
Source Node (Terminal 1): A static reference node holding pre-computed chain data. It serves block data via RPC.
Target Node (Terminal 2): The System Under Test. A fresh, ephemeral node that receives blocks and executes them using the Altius engine (Serial or Parallel).
Bench Tool (Terminal 3): The conductor. It fetches payloads from the Source and submits them to the Target via the Engine API (
newPayload,forkchoiceUpdated).
Technical Access
The specialized node binaries, including op-altius-reth and reth-bench, are available within our private repository.
Workload Reproduction: Partners can use the
generatecommand to create custom datasets, such as Uniswap simulations with varying conflict rates.Environment Configuration: The system supports toggling between serial and parallel modes via environment variables, allowing for clear A/B testing on the same hardware.
Requesting Repository Access
To verify these results or to run benchmarks against your specific production workloads, please reach out to our team for access to the Altius private repository. We provide full documentation on build requirements, security setup, and data preparation to assist with your internal audit.
Step 1: Build & Preparation
Before launching the cluster, we must compile the specialized node binaries and generate secure authentication keys.
a) Update and Compile
Clone the repository and build the op-altius-reth node and reth-bench tool in release mode for maximum performance.
b) Security Setup (JWT)
The nodes communicate via the Engine API, which requires a shared JWT secret.
Note: If you are running an external Consensus Client (like aleth), ensure you update its [eth_server] config to use this same secret.
c) Data Preparation
Unpack the benchmark dataset. This contains the pre-computed chain state required by the Source Node.
Step 2: Source Node Setup (Data Server)
Terminal 1 This node acts as the "Feeder." It runs on custom ports to prevent conflicts with the target node.
Note: Ensure you see RPC HTTP server started url=127.0.0.1:18545.
Step 3: Target Node Setup (System Under Test)
Terminal 2 This is where the magic happens. We configure this node to use the Altius Parallel Engine.
Note: Ensure you see RPC HTTP server started url=127.0.0.1:8545.
Step 4: Execution & Verification
Terminal 3 With both nodes active, use the reth-bench tool to drive the workload.
Analyzing the Output
The tool will output processing stats for each payload. Payload 11 is the critical data point containing 1,000 Uniswap transactions.
Key Metrics:
newPayload latency: The pure execution time. In parallel mode, this should be significantly lower (e.g., ~1.1s vs ~4s).Total Ggas/s: The aggregated throughput. Look for numbers exceeding 0.38 Ggas/s in this specific mixed workload.
Switching Modes (A/B Testing)
To compare Serial vs. Parallel performance, you do not need to restart the Source Node.
Stop Terminal 2 (Ctrl+C).
Set
export ENABLE_PARALLEL=false.Clean the data directory (
rm -rf /tmp/datadir).Restart Terminal 2 and re-run the benchmark in Terminal 3.
Last updated

