Skip to content

Instantly share code, notes, and snippets.

@chfast
chfast / JUMPDEST_n0.bin-runtime
Created February 10, 2022 17:27
PUSH0 synthetic benchmarks
View JUMPDEST_n0.bin-runtime
7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b
@chfast
chfast / ethereum_priv2address_openssl.cpp
Created January 26, 2022 20:38
How to compute Ethereum address from EC private key using OpenSSL
View ethereum_priv2address_openssl.cpp
#include <ethash/keccak.hpp>
#include <evmc/hex.hpp>
#include <openssl/ec.h>
#include <openssl/evp.h>
#include <iostream>
#include <dlfcn.h>
int main(int argc, const char* argv[])
@chfast
chfast / README.md
Last active August 13, 2021 03:18
EVM stack height and memory size stats for Ethereum mainnet
View README.md
@chfast
chfast / Keccak-simple.c
Created December 10, 2020 09:55
Keccak "simple" C implementation
View Keccak-simple.c
/*
The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
Michaël Peeters and Gilles Van Assche. For more information, feedback or
questions, please refer to our website: http://keccak.noekeon.org/
Implementation by Ronny Van Keer,
hereby denoted as "the implementer".
To the extent possible under law, the implementer has waived all copyright
and related or neighboring rights to the source code in this file.
@chfast
chfast / evm384_synthetic_benchmark_bytecodes.md
Created December 4, 2020 10:44
EVM384 synthetic benchmarks bytecodes
View evm384_synthetic_benchmark_bytecodes.md
PUSH16/min_stack:
60ff5b6f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f0000000000000000000000
@chfast
chfast / EIP2537_benchmark_results.txt
Last active November 24, 2020 18:11
EVM384v7 benchmark results
View EIP2537_benchmark_results.txt
> ./run_benchmark.sh
Finished bench [optimized] target(s) in 0.04s
Running target/release/deps/eth_pairings-69a4e69246dcf782
running 9 tests
test bench::eip_2537::bench_eip_2537_g1_add ... bench: 5,702 ns/iter (+/- 180)
test bench::eip_2537::bench_eip_2537_g1_double ... bench: 5,815 ns/iter (+/- 398)
test bench::eip_2537::bench_eip_2537_g1_mul_worst_case_double_and_add ... bench: 266,373 ns/iter (+/- 2,488)
test bench::eip_2537::bench_eip_2537_g2_add ... bench: 9,356 ns/iter (+/- 1,776)
@chfast
chfast / fizzy_05_performance_comparison.md
Last active September 29, 2020 09:55
Compare performance of Fizzy 0.5, WABT 1.0.12, WABT 1.0.19, wasm3 0.4.7
View fizzy_05_performance_comparison.md

Instantiation

                         fizzy 0.5.0  fizzy 0.4.0   wabt 1.0.19  wasm3 0.4.7
                 abs. [µs]  rel. [%]     rel. [%]      rel. [%]     rel. [%]
geometric mean                   100          101           279           27
blake2b                 28       100           99           306           38
ecpairing             1399       100          101           305            3
keccak256               47       100          103           289           18
memset                  10       100          100           285           79
@chfast
chfast / results.md
Created September 15, 2020 20:30
Fizzy vs WABT and wasm3
View results.md
[wasm3 vs. fizzy]/execute/blake2b/512_bytes_rounds_1_mean                     +3.0371         +3.0371            21            86            21            86
[wasm3 vs. fizzy]/execute/blake2b/512_bytes_rounds_16_mean                    +2.9860         +2.9860           328          1309           328          1309
[wasm3 vs. fizzy]/execute/ecpairing/onepoint_mean                             +1.7467         +1.7466        161430        443391        161431        443395
[wasm3 vs. fizzy]/execute/keccak256/512_bytes_rounds_1_mean                   +4.9237         +4.9237            18           105            18           105
[wasm3 vs. fizzy]/execute/keccak256/512_bytes_rounds_16_mean                  +4.9273         +4.9273           261          1549           261          1549
[wasm3 vs. fizzy]/execute/memset/256_bytes_mean                               +2.9192         +2.9192             2             7             2             7
[wasm3 vs. fizzy]/execute/memset/60000_bytes_mean                       
@chfast
chfast / fizzy_0.1_to_0.2.txt
Created July 7, 2020 18:17
Comparing performance of Fizzy 0.1 to 0.2
View fizzy_0.1_to_0.2.txt
Comparing Fizzy 0.1 to 0.2
Benchmark CPU Time [µs] Old New
----------------------------------------------------------------------------
fizzy/parse/blake2b +0.1637 12 14
fizzy/instantiate/blake2b +0.1793 16 19
fizzy/parse/ecpairing +0.1551 681 786
fizzy/instantiate/ecpairing +0.1352 730 828
fizzy/parse/keccak256 +0.2674 20 26
fizzy/instantiate/keccak256 +0.2974 24 31
@chfast
chfast / benchmark_results.txt
Created June 23, 2020 08:14
Quick check of evmone performance 0.1.1 vs 0.4.1 and GCC-7 vs GCC-10
View benchmark_results.txt
Comparing v0.1.1/gcc-7 to v0.1.1/gcc-10
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------
blake2b_huff/8415nulls_mean -0.0278 -0.0278 1502 1460 1502 1460
blake2b_shifts/8415nulls_mean -0.0415 -0.0415 23791 22804 23790 22803
Comparing v0.1.1/gcc-10 to v0.4.1/gcc-10
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------