Skip to content

Instantly share code, notes, and snippets.

View chfast's full-sized avatar

Paweł Bylica chfast

View GitHub Profile
@chfast
chfast / fizzy_0.1_to_0.2.txt
Created July 7, 2020 18:17
Comparing performance of Fizzy 0.1 to 0.2
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
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
------------------------------------------------------------------------------------------------------------------------------
# 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
----------------------------------------------------------------------------------------------------------------------------------------------------
@chfast
chfast / README.md
Last active August 13, 2021 03:18
EVM stack height and memory size stats for Ethereum mainnet
@chfast
chfast / uint384.yul
Created May 5, 2020 17:45
384-bit integer implementation in EVM
object "test" {
code {
// This assumes each limb is 256-bit and the half of the second limb is not dirty.
function add_with_carry_384_orig(x1, x2, y1, y2) -> out1, out2, carry {
// limb 1
out1 := add(x1, y1)
carry := lt(out1, x1)
// limb 2

webassembly

(module
    (memory 1)
    (func (export "test") (param i32 i32) (result i32)
      get_local 0
      get_local 1
      i32.xor
 )
This file has been truncated, but you can view the full file.
aleth, a C++ Ethereum client
INFO 12-16 08:52:24 aleth net Id: ##0c61fc7f…
INFO 12-16 08:52:24 aleth net ENR: [ seq=12 id=v4 key=020c61fc… ip=3.132.57.159 tcp=30303 udp=30303 ]
aleth 1.8.0-alpha.1
INFO 12-16 08:52:26 p2p  info UPnP device not found.
INFO 12-16 08:52:26 p2p  net Active peer count: 0
INFO 12-16 08:52:26 p2p  net Looking for peers...
Node ID: enode://0c61fc7fd20b3a5cabe69a37011b271b61fc405a74dabe44f7ab4ea32791b64e7745be2e247b7c7f9150636a9afbbf74aff285381e5478b919bcb5c76c193dec@127.0.0.1:30303
INFO 12-16 08:52:26 aleth rpc JSON-RPC socket path: /home/ubuntu/.ethereum/geth.ipc
JSONRPC Admin Session Key: tFVuCgml8Io=
@chfast
chfast / aleth.log
Created November 12, 2019 17:08
Aleth: Huge exception dump
INFO 11-12 17:04:15 eth client 308 blocks imported in 1650 ms (186.656 blocks/s) in #987928
INFO 11-12 17:04:16 eth client 277 blocks imported in 1201 ms (230.612 blocks/s) in #988205
INFO 11-12 17:04:17 eth client 249 blocks imported in 941 ms (264.429 blocks/s) in #988454
INFO 11-12 17:04:18 eth client 249 blocks imported in 710 ms (350.666 blocks/s) in #988703
WARN 11-12 17:04:18 eth warn Exception thrown in Worker thread: /home/chfast/Projects/ethereum/aleth/libethereum/EthereumCapability.cpp(1008): Throw in function dev::eth::EthereumPeer& dev::eth::EthereumCapability::peer(const NodeID&)
Dynamic exception type: boost::wrapexcept<dev::eth::PeerDisconnected>
[dev::tag_nodeID*] = 700f30d9d0ef10d2bc43a18baaf94f2c4b865ddef582b2b9bcaf0039148d7baa76ded66665fbb86d74d21b3635ff2f605d0aa2861a615cd6ef000690a4cccb38
WARN 11-12 17:04:18 p2p ethcap Peer ##10f5c3b9… causing an exception: /home/chfast/Projects/ethereum/aleth/libethereum/EthereumCapability.cpp(1008): Throw in function dev::eth::EthereumPee
@chfast
chfast / take_year_from_git.py
Created September 23, 2019 15:46
A script to update copyright notice with a year in which a file was created
import subprocess
import glob
def update_year_in_file(filename):
print('- ' + filename)
c = subprocess.run(
f"git log --diff-filter=A --follow --format=%ad --date=format:'%Y' -- {filename} | tail -1",
shell=True, capture_output=True)
@chfast
chfast / benchmark_comparison.txt
Created September 17, 2019 15:56
Semi-final evmone 0.1 vs evmone 0.2 performance comparison
Comparing bin/evmone-bench-0.1.1 to ../bench-gcc9/bin/evmone-bench
Benchmark Time CPU Time Old Time New CPU Old CPU New
-------------------------------------------------------------------------------------------------------------------------------
blake2b_huff/analysis -0.3575 -0.3575 41 26 41 26
blake2b_huff/empty -0.3912 -0.3912 66 40 66 40
blake2b_huff/2805nulls -0.4844 -0.4844 569 293 569 293
blake2b_huff/5610nulls -0.4926 -0.4926 1073 545 1073 545
blake2b_huff/8415nulls -0.4904 -0.4904 1551 790 1551 790
blake2b_huff/65536nulls -0.4987