Skip to content

Instantly share code, notes, and snippets.

@chfast
chfast / JUMPDEST_n0.bin-runtime
Created Feb 10, 2022
PUSH0 synthetic benchmarks
View JUMPDEST_n0.bin-runtime
7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b
@chfast
chfast / ethereum_priv2address_openssl.cpp
Created Jan 26, 2022
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 / Keccak-simple.c
Created Dec 10, 2020
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 Dec 4, 2020
EVM384 synthetic benchmarks bytecodes
View evm384_synthetic_benchmark_bytecodes.md
PUSH16/min_stack:
60ff5b6f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f00000000000000000000000000000000506f0000000000000000000000
@chfast
chfast / EIP2537_benchmark_results.txt
Last active Nov 24, 2020
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 Sep 29, 2020
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 Sep 15, 2020
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 Jul 7, 2020
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 Jun 23, 2020
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
------------------------------------------------------------------------------------------------------------------------------
View fizzy_vs_wabt_bls_benchmark.txt
# Get data with:
> bin/fizzy-bench ../../test/benchmarks --benchmark_min_time=1 --benchmark_repetitions=10 --be
nchmark_filter='(fizzy|wabt).*bls' --benchmark_out=bls
# Compare benchmark filters, aggregate data with compare.py from https://github.com/google/benchmark/blob/master/tools/compare.py (it requires some dependencies to be installed with pip).
> compare.py -a filters bls 'fizzy' ' wabt'
Comparing fizzy to wabt (from bls)
Benchmark Time CPU Time Old Time New CPU Old CPU New
----------------------------------------------------------------------------------------------------------------------------------------------------