Skip to content

Instantly share code, notes, and snippets.

View jwasinger's full-sized avatar

jwasinger

  • Florida
  • 07:32 (UTC -04:00)
View GitHub Profile
@jwasinger
jwasinger / instructions.md
Last active September 22, 2021 20:27
mev-geth-as-a-plugin demo
go get github.com/jwasinger/geth-mev-plugin
cd $GOPATH/src/github.com/jwasinger/geth-mev-plugin && make

clone https://github.com/jwasinger/mev-geth-demo and copy geth and mev.plugin from geth-mev-plugin into mev-geth-demo folder.

Run Geth: mev-geth-demo/run.sh.

Now run the demo as per instructions in mev-geth-demo.

@jwasinger
jwasinger / memcopies.txt
Created May 27, 2021 15:29
memcopy example
tx: 0x76b00f7304ee723164f116f338c50c5024a9e1116d169974c616f14fa76f5c18
{'copies': [[{'address': '0xc8fb12402cb16970f3c5f4b48ff68eb9d1289301', 'srcOffset': 128, 'srcPC': 962, 'dstOffset': 224, 'dstPC': 966}, {'address': '0xc8fb12402cb16970f3c5f4b48ff68eb9d1289301', 'srcOffset': 160, 'srcPC': 999, 'dstOffset': 256, 'dstPC': 1003}], [{'address': '0xa1c0fa73c39cfbcc11ec9eb1afc665aba9996e2c', 'srcOffset': 192, 'srcPC': 9160, 'dstOffset': 256, 'dstPC': 9164}, {'address': '0xa1c0fa73c39cfbcc11ec9eb1afc665aba9996e2c', 'srcOffset': 224, 'srcPC': 3771, 'dstOffset': 448, 'dstPC': 3773}, {'address': '0xa1c0fa73c39cfbcc11ec9eb1afc665aba9996e2c', 'srcOffset': 256, 'srcPC': 3806, 'dstOffset': 480, 'dstPC': 3810}, {'address': '0xa1c0fa73c39cfbcc11ec9eb1afc665aba9996e2c', 'srcOffset': 288, 'srcPC': 3834, 'dstOffset': 512, 'dstPC': 3836}, {'address': '0xa1c0fa73c39cfbcc11ec9eb1afc665aba9996e2c', 'srcOffset': 320, 'srcPC': 3869, 'dstOffset': 544, 'dstPC': 3873}], [{'address': '0xc8fb12402cb16970f3c5f4b48ff68eb9d1289301', 'srcOf
@jwasinger
jwasinger / trace-output.txt
Created May 24, 2021 15:34
memory copy trace output
block: 10537502
tx: 0xc5e46fe1aa43cf057e555166bc0ab6e7672e9a481f0d57ad346d2810d54bcba7
[[{'address': '0x8a9c67fee641579deba04928c4bc45f66e26343a', 'srcOffset': 0, 'srcPC': 2714, 'dstOffset': 0, 'dstPC': 2725}], [{'address': '0x2b6a25f7c54f43c71c743e627f5663232586c39f', 'srcOffset': 224, 'srcPC': 8366, 'dstOffset': 292, 'dstPC': 8368}, {'address': '0x2b6a25f7c54f43c71c743e627f5663232586c39f', 'srcOffset': 256, 'srcPC': 8366, 'dstOffset': 324, 'dstPC': 8368}]]
tx: 0x882067da645be051ac46d7faaabcf8b250170f5c4f9d7262a546db96ebe52e52
[[{'address': '0x2b6a25f7c54f43c71c743e627f5663232586c39f', 'srcOffset': 224, 'srcPC': 8366, 'dstOffset': 292, 'dstPC': 8368}, {'address': '0x2b6a25f7c54f43c71c743e627f5663232586c39f', 'srcOffset': 256, 'srcPC': 8366, 'dstOffset': 324, 'dstPC': 8368}], [{'address': '0x8a9c67fee641579deba04928c4bc45f66e26343a', 'srcOffset': 0, 'srcPC': 2532, 'dstOffset': 0, 'dstPC': 2543}], [{'address': '0x8a9c67fee641579deba04928c4bc45f66e26343a', 'srcOffset': 0, 'srcPC': 2714, 'dstOffset': 0, 'dstPC':
@jwasinger
jwasinger / op_mcopy_bench.txt
Last active April 14, 2021 16:35
Geth MCOPY bench output
goos: linux
goarch: amd64
pkg: github.com/ethereum/go-ethereum/core/vm
cpu: Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
BenchmarkOpMcopy/64_bytes 31177878 38.82 ns/op
BenchmarkOpMcopy/128_bytes 30576024 39.33 ns/op
BenchmarkOpMcopy/192_bytes 29453343 42.43 ns/op
BenchmarkOpMcopy/256_bytes 28839283 41.15 ns/op
BenchmarkOpMcopy/320_bytes 27700654 43.06 ns/op
BenchmarkOpMcopy/384_bytes 27869232 43.00 ns/op
@jwasinger
jwasinger / Makefile
Last active January 7, 2021 09:40
Instructions for benchmarking Geth-evm384
all:
clang++ -O3 bench.cpp
@jwasinger
jwasinger / main.cpp
Created October 2, 2020 03:29
C++ vs Python (uint128)
#include <stdint.h>
#include <iostream>
int main(int argc, char **argv) {
uint64_t x = 12823323627408599439;
uint64_t y = 5504717096808338412;
__uint128_t res = (__uint128_t)x * y;
std::cout << x << " * " << y << " = " << (uint64_t)res << ", " << (uint64_t)(res >> 64) << std::endl;
@jwasinger
jwasinger / gist:083b59a06ea7c523560b8907b7402689
Created September 29, 2020 23:21
wasmcurves (with subgroup check) vs wasmsnark (without subgroup check)
## wasm-curves:
```
---------------------------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations UserCounters...
---------------------------------------------------------------------------------------------------------------------
fizzy/parse/main_with_websnark_bignum_hostfuncs 1019 us 1019 us 673 rate=127.256M/s size=129.725k
wabt/parse/main_with_websnark_bignum_hostfuncs 2372 us 2372 us 295 rate=54.6813M/s size=129.725k
wasm3/parse/main_with_websnark_bignum_hostfuncs 75.8 us 75.8 us 9217 rate=1.71145G/s size=129.725k
fizzy/instantiate/main_with_websnark_bignum_hostfuncs 1120 us 1120 us 617
for i in [0..vec.len]:
vec[i] = vec[i] * vec[i]
return sorted(vec)
@jwasinger
jwasinger / standalone_wasm_results.csv
Created June 10, 2020 18:24
standalone wasm benchmarks (azure vm) - June 9th 2020
We can't make this file beautiful and searchable because it's too large.
engine,test_name,elapsed_time,compile_time,exec_time
wagon,bn128_mul-chfast2,0.20844221115112305,0.069442,0.131921
wagon,bn128_mul-chfast2,0.2028026580810547,0.068059,0.129828
wagon,bn128_mul-chfast2,0.2083592414855957,0.0695,0.134094
wagon,bn128_mul-chfast2,0.20242953300476074,0.067839,0.130541
wagon,bn128_mul-chfast2,0.20944571495056152,0.073585,0.13122
wagon,bn128_mul-chfast2,0.2013232707977295,0.06854,0.128242
wagon,bn128_mul-chfast2,0.21543478965759277,0.075039,0.135703
wagon,bn128_mul-chfast2,0.2297804355621338,0.081116,0.143863
wagon,bn128_mul-chfast2,0.21126103401184082,0.070672,0.135297
@jwasinger
jwasinger / gist:9e38c1c4d52ac0910bf5a0db64883f3d
Created May 21, 2020 10:20
evm384 f6m mul synth loop v2 evm bytecode
597fabaafffffffffeb9ffff53b1feffab1e24f6b0f6a0d23067bf1285f3844b776481527fd7ac4b43b6a71b4b9ae67f39ea11011a000000000000000000000000000000006020820152604081017f8f2990f3e598f5b1b8f480a3c388306bc023fac151c0104d13ec3aa18159940281527f72d1c8c528a1ce3bcaa280a8e735aa0d0000000000000000000000000000000060608301527f992d7a27906d4cd530b23a7e8c48c0778f8653fbc3332d63db24339d8bc65d7e60808301527fe83b6e91c6550f5aceab102e88e918090000000000000000000000000000000060a08301527f7299907146816f08c4c6a394e91374ed6ff3618a57358cfb124ee6ab4c560e5c60c08301527fac40700b41e2ee8674680728f0c5a6180000000000000000000000000000000060e08301527f0fd77f62b39eb952a0f8d21cec1f93b1d62dd7923aa86882ddf7dd4d3532b0b76101008301527fede8f3fc89fa4a79574067e2d9a9d200000000000000000000000000000000006101208301527f7a69de46b13d8cb4c4833224aaf9ef7ea6a48975ab35c6e123b8539ab84c381a6101408301527f2533401a73c4e79f47d714899d01ac130000000000000000000000000000000061016083015261018082017fa9fa0b0d8156c36a1a9ddacb73ef278f4d149b560e88789f2bfeb9f708b6cc2f81527f988927bfe0186d5bf9cb40cb