@@ -12,7 +12,7 @@ transaction re-executions.
12
12
13
13
In our benchmark, Grevm stands as the ** fastest** open-source parallel EVM implementation to date. For fully
14
14
parallelizable transactions, Grevm is ** 4.13×** faster than sequential execution, running at ** 26.50 gigagas/s.** If we
15
- simulate real-world I/O latency of ** 100 μs** , it is ** 50.84×** faster than sequential execution, with ** 6.80
15
+ simulate real-world I/O latency of ** 100 μs** , it is ** 50.84×** faster than sequential execution, with ** 6.80
16
16
gigagas/s** throughput. This leap in performance is attributed to both the parallelized execution and the integration of
17
17
asynchronous I/O operations—enabled by the parallelism—which further amplifies the speedup by efficiently overlapping
18
18
I/O operations.
@@ -61,7 +61,7 @@ Consider a sequence of transactions ordered as **Tx₁**, **Tx₂**, ..., **Tx
61
61
3 . ** Parallel Execution on Software Transactional Memory (STM) System** :
62
62
- A high-performance ** STM** provides multi-version state access to each thread
63
63
- During execution, each transaction can read the writes of all preceding transactions but not those of subsequent
64
- ones, effectively avoiding read -after-write hazards.
64
+ ones, effectively avoiding write -after-read hazards.
65
65
- ** Write-After-Write Conflict Resolution** :
66
66
- If multiple transactions write to the same storage slot, the STM resolves the conflict by using the value from
67
67
the transaction with the highest sequence number (i.e., the latest transaction in the sequence).
@@ -78,9 +78,9 @@ synchronization—is challenging due to several factors:
78
78
computational overhead, potentially negating the benefits of parallel execution.
79
79
80
80
Recognizing these limitations, our approach leverages transaction simulation results obtained by running each
81
- transaction against the latest state view before execution. These simulations provide estimates of which storage slots a
82
- transaction will read or write, which serves as input to build the data dependency DAG. These hints can be computed
83
- before parallel execution, avoiding introducing additional computational overhead during execution.
81
+ transaction against the most recent available state view before execution. These simulations provide estimates of which
82
+ storage slots a transaction will read or write, which serves as input to build the data dependency DAG. These hints can
83
+ be computed before parallel execution, avoiding introducing additional computational overhead during execution.
84
84
85
85
![ image.png] ( images/glassnode-studio_eth-ethereum-transaction-type-breakdown-relative.png )
86
86
@@ -194,10 +194,11 @@ Replace `${NUM_EOA}`, `${HOT_RATIO}`, and `${DB_LATENCY_US}` with the desired pa
194
194
195
195
We conducted the gigagas block test, a benchmark designed to evaluate the efficiency of parallel execution under varying
196
196
workloads and conditions. We reused some portions of the benchmarking code from pevm. Each mock block contains
197
- transactions totaling ** 1 gigagas** in gas consumption. The transactions include vanilla Ether transfers, ERC20 token
198
- transfers, and Uniswap swaps. Pre-state data is stored entirely in-memory to isolate execution performance from disk I/O
199
- variability. To mimic real-world conditions where disk I/O latency can impact performance, we introduced artificial
200
- latency using the ` db_latency ` parameter.
197
+ transactions totaling ** 1 gigagas** in gas consumption. Note that we use the actual gas consumption of transactions to
198
+ calculate the total gas, which accounts for the gas refunds. The transactions include vanilla Ether transfers, ERC20
199
+ token transfers, and Uniswap swaps. Pre-state data is stored entirely in-memory to isolate execution performance from
200
+ disk I/O variability. To mimic real-world conditions where disk I/O latency can impact performance, we introduced
201
+ artificial latency using the ` db_latency ` parameter.
201
202
202
203
### Conflict-Free Transactions
203
204
0 commit comments