From a1dbfd725097281ed582e2b6ecef45bcd31f72d1 Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Mon, 22 Jan 2024 07:48:00 +0100 Subject: [PATCH 1/2] EVM/Kernel: fix SSTORE model to be constant in ticks --- etherlink/kernel_evm/evm_execution/src/lib.rs | 4 ++-- .../kernel_evm/evm_execution/src/tick_model_opcodes.rs | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/etherlink/kernel_evm/evm_execution/src/lib.rs b/etherlink/kernel_evm/evm_execution/src/lib.rs index f0efcaa96b9c..7416b6d55cd9 100644 --- a/etherlink/kernel_evm/evm_execution/src/lib.rs +++ b/etherlink/kernel_evm/evm_execution/src/lib.rs @@ -709,7 +709,7 @@ mod test { logs: vec![], result: None, withdrawals: vec![], - estimated_ticks_used: 0, + estimated_ticks_used: 620000, })); assert_eq!(expected_result, result); @@ -1405,7 +1405,7 @@ mod test { logs: vec![], result: Some(vec![]), withdrawals: vec![], - estimated_ticks_used: 962434148, + estimated_ticks_used: 428861740, })); // assert that call succeeds diff --git a/etherlink/kernel_evm/evm_execution/src/tick_model_opcodes.rs b/etherlink/kernel_evm/evm_execution/src/tick_model_opcodes.rs index efca8834d4c8..07ef8b853604 100644 --- a/etherlink/kernel_evm/evm_execution/src/tick_model_opcodes.rs +++ b/etherlink/kernel_evm/evm_execution/src/tick_model_opcodes.rs @@ -188,8 +188,9 @@ const MODEL_0X53: u64 = MODEL_0X52; // Average: 2178; Standard deviation: 51 const MODEL_0X54: u64 = 2280; -// Average: 6088; Standard deviation: 1032 -const MODEL_0X55: u64 = 8152; +// Manually patched, the model is +// constant in ticks: 567242 in average, 59454 as standard deviation +const MODEL_0X55: u64 = 620_000; // Average: 954; Standard deviation: 0 const MODEL_0X56: u64 = 954; @@ -518,7 +519,7 @@ pub fn ticks(opcode: &Opcode, gas: u64) -> u64 { 0x52 => MODEL_0X52 * gas, 0x53 => MODEL_0X53 * gas, 0x54 => MODEL_0X54 * gas, - 0x55 => MODEL_0X55 * gas, + 0x55 => MODEL_0X55, // Manually patched: the model is constant in ticks 0x56 => MODEL_0X56 * gas, 0x57 => MODEL_0X57 * gas, 0x58 => MODEL_0X58 * gas, -- GitLab From 72b8ce0ac03426789b930d3af8696a8616dc34fa Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Mon, 22 Jan 2024 07:49:09 +0100 Subject: [PATCH 2/2] EVM/Kernel: fix ERC1155 benchmark's gas limit for contract creation --- .../kernel_evm/benchmarks/scripts/benchmarks/bench_erc1155.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etherlink/kernel_evm/benchmarks/scripts/benchmarks/bench_erc1155.js b/etherlink/kernel_evm/benchmarks/scripts/benchmarks/bench_erc1155.js index cbc5e92fc5c4..da81cc3211a5 100644 --- a/etherlink/kernel_evm/benchmarks/scripts/benchmarks/bench_erc1155.js +++ b/etherlink/kernel_evm/benchmarks/scripts/benchmarks/bench_erc1155.js @@ -48,7 +48,7 @@ let gasLimit = 3_000_000; let txs = []; txs.push(utils.transfer(faucet, player1, 100000000000)); -let create = utils.create(player1, 0, create_data); +let create = utils.create(player1, 0, create_data, { gasLimit }); txs.push(create.tx); txs.push(utils.send(player1, create.addr, 0, batchMint_data, { gasLimit })); txs.push(utils.send(player1, create.addr, 0, safeBatchTransferFrom_data, { gasLimit })); -- GitLab