Skip to content

fix: Fill out State#7

Merged
exdx merged 1 commit intomainfrom
feat/state
Jun 11, 2025
Merged

fix: Fill out State#7
exdx merged 1 commit intomainfrom
feat/state

Conversation

@exdx
Copy link
Copy Markdown
Contributor

@exdx exdx commented Jun 11, 2025

Signed-off-by: denton denton24646@gmail.com

Signed-off-by: denton <denton24646@gmail.com>
@exdx
Copy link
Copy Markdown
Contributor Author

exdx commented Jun 11, 2025

I'd like to change the Store implementation but will merge as-is for now.

@exdx exdx merged commit 5d7efbd into main Jun 11, 2025
1 check passed
@exdx exdx deleted the feat/state branch June 11, 2025 22:11
0xKitsune pushed a commit that referenced this pull request Aug 2, 2025
* wip: avoid hogging lock

* feat: tx_gen worker batching

* clippy lints

* Update tx_gen.rs
0xKitsune added a commit that referenced this pull request Aug 4, 2025
* feat: initial commit

* docs: readme

* docs: performance -> throughput

* chore: ci

* feat: use all cpus

* feat: signing and firing real ethereum txs (#2)

* wip

* oop

* signer

* does this fix

* guh

* reps

* wut

* Revert "wut"

This reverts commit 2b4ca56a0295012d8806b2c1d2ae05211286c0fd.

* oh spawn more lol

* hm

* Update main.rs

* Reapply "wut"

This reverts commit 699b70daed6406406826f484ada4ae90d3d13749.

* Revert "Reapply "wut""

This reverts commit c8879ce8c34790f65816c7f084226311e7badc4d.

* Update worker.rs

* async tx gen worker

* wuh

* Revert "wuh"

This reverts commit 3c8f5d6ad221f0e08ec979b17fbc7de0e6f2f0c5.

* Revert "async tx gen worker"

This reverts commit aa1c1a71c4ab658030f7255fca1ebd848cd9be28.

* wuh2

* fix async?

* full threads

* ratio, sync again

* Update main.rs

* Update main.rs

* try: cachepad

* Revert "try: cachepad"

This reverts commit 947b586c970739572cc0f13efd554b61e2449829.

* LAWG

* breh

* breh2

* Update main.rs

* lawg

* brh

* bind

* disable pinning for a sec

* feat: current thread tokio

* Update main.rs

* bruh oops

* pin thread

* curious

* just pinned connection workers?

* no pinning

* yes pin

* no pin all

* pin

* Update main.rs

* disable again

* blarg

* blarg

* Update main.rs

* lawgs

* Update queue.rs

* Update queue.rs

* grah

* feat: clean

* Update network.rs

* reorg workers

* feat: ensure each worker gets a core

* comments

* blah

* proper json body

* rm log

* feat: proper decoder on testserver

* Update network.rs

* Update tx_queue.rs

* Update tx_queue.rs

* try cooked ratio

* Update main.rs

* disable thread pinning

* pinning

* actual reth?

* log?

* lawg

* bruh

* log ranges

* Update workers.rs

* todo

* tehehe

* Update network.rs

* Update network.rs

* Update network.rs

* fml

* Update network.rs

* Update tx_gen.rs

* Update network.rs

* new signer each time hehe

* Update tx_gen.rs

* DEBUG way fewer connections, SLEEP

* Revert "DEBUG way fewer connections, SLEEP"

This reverts commit 19cc477c6a1ddb8510a0d04d1c491cab771fb173.

* anvil key

* blarg

* blarg

* 0 gwei?

* todo

* feat: more granular worker specification

* feat: use MnemonicBuilder

* 1 wei

* Update tx_gen.rs

* Update tx_gen.rs

* fix

* pop tx from front

* rm: annoying log

* Update tx_queue.rs

* time req

* Revert "time req"

This reverts commit c63d5c55de5fea7351af14152162091848ccb1dd.

* MOAR CONNECTIONS

* 100k connections?!?!

* 20k connections

* 50k connections?!

* 30k connections

* testserver match port

* bruh

* Update tx_queue.rs

* 20k conn

* upgrade actix max connections

* 100k connections

* extra detail?

* document epehemral ports

* Update network.rs

* Update main.rs

* Update main.rs

* Update main.rs

* Revert "Update main.rs"

This reverts commit 7eaefcef40b663e0803891399bf708d317a49157.

* req async?

* Update network.rs

* undo async reqs

* feat: batching

* lawg

* rm measure

* Update network.rs

* proper rps measure with batching

* Update network.rs

* docs: readme

* feat: axum testserver & higher concurrent (#3)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* feat: ratelimiting and other ux improvements (#4)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: call actual erc20 (#5)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: erc20 precompile testing

* fix: bytes

* Update tx_gen.rs

* lower limit

* erc20 regular spam

* 15k>

* HIGH

* Update tx_queue.rs

* precompile

* Update tx_queue.rs

* feat: config (#6)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: erc20 precompile testing

* fix: bytes

* Update tx_gen.rs

* lower limit

* erc20 regular spam

* 15k>

* HIGH

* Update tx_queue.rs

* precompile

* Update tx_queue.rs

* feat: config

* fix config headers

* u64 gas price

* Update default.toml

* nit: cleanup config

* fix: start script

* docs: update desc

* chore: higher config ratelimits

* chore: ultra high max ratelimit in config

* feat: config inheriting

* docs: cmd

* feat: allow config as a positional arg or flag arg

to prevent annoying footgun

* docs: implied rps note

* fix: delta/s no longer bottoms out at 0

* perf: parking_lot

* perf: avoid lock contention in tx queue (#7)

* wip: avoid hogging lock

* feat: tx_gen worker batching

* clippy lints

* Update tx_gen.rs

* nit: underscore

* perf: dashmap for nonces (#8)

* docs: helpful error

* chore: move binaries to bin

* chore: create malachite crate

* chore: move malachite logic to crate

* chore: update workspace, add lints from reth

* chore: move dep

* chore: tempo bin

* fix: build script, proto path

* fix: update bin for MSRV workflow

* fix: update cli runner

* chore: move benches to tempo-bench

* fmt: cargo fmt

* chore: codespell

* fix: add openssl to Cargo and run cargo update

* chore: update deps

* fmt: remove whitespace

* chore: clippy

* fmt: cargo fmt

* chore: remove genesis.json, update gitignore

* chore: order deps, newline

* chore: pin reth

* docs: remove note about contender

* chore: move reth script to justfile, update readme

* docs: add commmands to clear data dir

---------

Co-authored-by: t11s <greenfeatherhelp@gmail.com>
Co-authored-by: t11s <t11s@mit.edu>
Co-authored-by: Zygimantas <zygis@skip.build>
legion2002 pushed a commit that referenced this pull request Oct 9, 2025
legion2002 pushed a commit that referenced this pull request Oct 9, 2025
* feat: initial commit

* docs: readme

* docs: performance -> throughput

* chore: ci

* feat: use all cpus

* feat: signing and firing real ethereum txs (#2)

* wip

* oop

* signer

* does this fix

* guh

* reps

* wut

* Revert "wut"

This reverts commit 2b4ca56a0295012d8806b2c1d2ae05211286c0fd.

* oh spawn more lol

* hm

* Update main.rs

* Reapply "wut"

This reverts commit 699b70daed6406406826f484ada4ae90d3d13749.

* Revert "Reapply "wut""

This reverts commit c8879ce8c34790f65816c7f084226311e7badc4d.

* Update worker.rs

* async tx gen worker

* wuh

* Revert "wuh"

This reverts commit 3c8f5d6ad221f0e08ec979b17fbc7de0e6f2f0c5.

* Revert "async tx gen worker"

This reverts commit aa1c1a71c4ab658030f7255fca1ebd848cd9be28.

* wuh2

* fix async?

* full threads

* ratio, sync again

* Update main.rs

* Update main.rs

* try: cachepad

* Revert "try: cachepad"

This reverts commit 947b586c970739572cc0f13efd554b61e2449829.

* LAWG

* breh

* breh2

* Update main.rs

* lawg

* brh

* bind

* disable pinning for a sec

* feat: current thread tokio

* Update main.rs

* bruh oops

* pin thread

* curious

* just pinned connection workers?

* no pinning

* yes pin

* no pin all

* pin

* Update main.rs

* disable again

* blarg

* blarg

* Update main.rs

* lawgs

* Update queue.rs

* Update queue.rs

* grah

* feat: clean

* Update network.rs

* reorg workers

* feat: ensure each worker gets a core

* comments

* blah

* proper json body

* rm log

* feat: proper decoder on testserver

* Update network.rs

* Update tx_queue.rs

* Update tx_queue.rs

* try cooked ratio

* Update main.rs

* disable thread pinning

* pinning

* actual reth?

* log?

* lawg

* bruh

* log ranges

* Update workers.rs

* todo

* tehehe

* Update network.rs

* Update network.rs

* Update network.rs

* fml

* Update network.rs

* Update tx_gen.rs

* Update network.rs

* new signer each time hehe

* Update tx_gen.rs

* DEBUG way fewer connections, SLEEP

* Revert "DEBUG way fewer connections, SLEEP"

This reverts commit 19cc477c6a1ddb8510a0d04d1c491cab771fb173.

* anvil key

* blarg

* blarg

* 0 gwei?

* todo

* feat: more granular worker specification

* feat: use MnemonicBuilder

* 1 wei

* Update tx_gen.rs

* Update tx_gen.rs

* fix

* pop tx from front

* rm: annoying log

* Update tx_queue.rs

* time req

* Revert "time req"

This reverts commit c63d5c55de5fea7351af14152162091848ccb1dd.

* MOAR CONNECTIONS

* 100k connections?!?!

* 20k connections

* 50k connections?!

* 30k connections

* testserver match port

* bruh

* Update tx_queue.rs

* 20k conn

* upgrade actix max connections

* 100k connections

* extra detail?

* document epehemral ports

* Update network.rs

* Update main.rs

* Update main.rs

* Update main.rs

* Revert "Update main.rs"

This reverts commit 7eaefcef40b663e0803891399bf708d317a49157.

* req async?

* Update network.rs

* undo async reqs

* feat: batching

* lawg

* rm measure

* Update network.rs

* proper rps measure with batching

* Update network.rs

* docs: readme

* feat: axum testserver & higher concurrent (#3)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* feat: ratelimiting and other ux improvements (#4)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: call actual erc20 (#5)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: erc20 precompile testing

* fix: bytes

* Update tx_gen.rs

* lower limit

* erc20 regular spam

* 15k>

* HIGH

* Update tx_queue.rs

* precompile

* Update tx_queue.rs

* feat: config (#6)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: erc20 precompile testing

* fix: bytes

* Update tx_gen.rs

* lower limit

* erc20 regular spam

* 15k>

* HIGH

* Update tx_queue.rs

* precompile

* Update tx_queue.rs

* feat: config

* fix config headers

* u64 gas price

* Update default.toml

* nit: cleanup config

* fix: start script

* docs: update desc

* chore: higher config ratelimits

* chore: ultra high max ratelimit in config

* feat: config inheriting

* docs: cmd

* feat: allow config as a positional arg or flag arg

to prevent annoying footgun

* docs: implied rps note

* fix: delta/s no longer bottoms out at 0

* perf: parking_lot

* perf: avoid lock contention in tx queue (#7)

* wip: avoid hogging lock

* feat: tx_gen worker batching

* clippy lints

* Update tx_gen.rs

* nit: underscore

* perf: dashmap for nonces (#8)

* docs: helpful error

* chore: move binaries to bin

* chore: create malachite crate

* chore: move malachite logic to crate

* chore: update workspace, add lints from reth

* chore: move dep

* chore: tempo bin

* fix: build script, proto path

* fix: update bin for MSRV workflow

* fix: update cli runner

* chore: move benches to tempo-bench

* fmt: cargo fmt

* chore: codespell

* fix: add openssl to Cargo and run cargo update

* chore: update deps

* fmt: remove whitespace

* chore: clippy

* fmt: cargo fmt

* chore: remove genesis.json, update gitignore

* chore: order deps, newline

* chore: pin reth

* docs: remove note about contender

* chore: move reth script to justfile, update readme

* docs: add commmands to clear data dir

---------

Co-authored-by: t11s <greenfeatherhelp@gmail.com>
Co-authored-by: t11s <t11s@mit.edu>
Co-authored-by: Zygimantas <zygis@skip.build>
unbalancedparentheses pushed a commit to unbalancedparentheses/tempo that referenced this pull request Feb 23, 2026
unbalancedparentheses pushed a commit to unbalancedparentheses/tempo that referenced this pull request Feb 23, 2026
* feat: initial commit

* docs: readme

* docs: performance -> throughput

* chore: ci

* feat: use all cpus

* feat: signing and firing real ethereum txs (tempoxyz#2)

* wip

* oop

* signer

* does this fix

* guh

* reps

* wut

* Revert "wut"

This reverts commit 2b4ca56a0295012d8806b2c1d2ae05211286c0fd.

* oh spawn more lol

* hm

* Update main.rs

* Reapply "wut"

This reverts commit 699b70daed6406406826f484ada4ae90d3d13749.

* Revert "Reapply "wut""

This reverts commit c8879ce8c34790f65816c7f084226311e7badc4d.

* Update worker.rs

* async tx gen worker

* wuh

* Revert "wuh"

This reverts commit 3c8f5d6ad221f0e08ec979b17fbc7de0e6f2f0c5.

* Revert "async tx gen worker"

This reverts commit aa1c1a71c4ab658030f7255fca1ebd848cd9be28.

* wuh2

* fix async?

* full threads

* ratio, sync again

* Update main.rs

* Update main.rs

* try: cachepad

* Revert "try: cachepad"

This reverts commit 947b586c970739572cc0f13efd554b61e2449829.

* LAWG

* breh

* breh2

* Update main.rs

* lawg

* brh

* bind

* disable pinning for a sec

* feat: current thread tokio

* Update main.rs

* bruh oops

* pin thread

* curious

* just pinned connection workers?

* no pinning

* yes pin

* no pin all

* pin

* Update main.rs

* disable again

* blarg

* blarg

* Update main.rs

* lawgs

* Update queue.rs

* Update queue.rs

* grah

* feat: clean

* Update network.rs

* reorg workers

* feat: ensure each worker gets a core

* comments

* blah

* proper json body

* rm log

* feat: proper decoder on testserver

* Update network.rs

* Update tx_queue.rs

* Update tx_queue.rs

* try cooked ratio

* Update main.rs

* disable thread pinning

* pinning

* actual reth?

* log?

* lawg

* bruh

* log ranges

* Update workers.rs

* todo

* tehehe

* Update network.rs

* Update network.rs

* Update network.rs

* fml

* Update network.rs

* Update tx_gen.rs

* Update network.rs

* new signer each time hehe

* Update tx_gen.rs

* DEBUG way fewer connections, SLEEP

* Revert "DEBUG way fewer connections, SLEEP"

This reverts commit 19cc477c6a1ddb8510a0d04d1c491cab771fb173.

* anvil key

* blarg

* blarg

* 0 gwei?

* todo

* feat: more granular worker specification

* feat: use MnemonicBuilder

* 1 wei

* Update tx_gen.rs

* Update tx_gen.rs

* fix

* pop tx from front

* rm: annoying log

* Update tx_queue.rs

* time req

* Revert "time req"

This reverts commit c63d5c55de5fea7351af14152162091848ccb1dd.

* MOAR CONNECTIONS

* 100k connections?!?!

* 20k connections

* 50k connections?!

* 30k connections

* testserver match port

* bruh

* Update tx_queue.rs

* 20k conn

* upgrade actix max connections

* 100k connections

* extra detail?

* document epehemral ports

* Update network.rs

* Update main.rs

* Update main.rs

* Update main.rs

* Revert "Update main.rs"

This reverts commit 7eaefcef40b663e0803891399bf708d317a49157.

* req async?

* Update network.rs

* undo async reqs

* feat: batching

* lawg

* rm measure

* Update network.rs

* proper rps measure with batching

* Update network.rs

* docs: readme

* feat: axum testserver & higher concurrent (tempoxyz#3)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* feat: ratelimiting and other ux improvements (tempoxyz#4)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: call actual erc20 (tempoxyz#5)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: erc20 precompile testing

* fix: bytes

* Update tx_gen.rs

* lower limit

* erc20 regular spam

* 15k>

* HIGH

* Update tx_queue.rs

* precompile

* Update tx_queue.rs

* feat: config (tempoxyz#6)

* 50k conns?

* rm: json parsing on testserver

* huge backlog

* allow get

* log concurrent

* limit to 1 worker

* 50 workers

* feat: hyper

* fix?

* actix -> axum

* Update main.rs

* rm batch factor

* 3 second measurement interval

* Update main.rs

* worker id

* request durr

* fix: workers

* Update network.rs

* fix ids

* feat: implied total rps

* Update network.rs

* Update network.rs

* Create genesis.json

* genalloc

* 25k

* start reth

* 50k again?

* wip: try one of 10k addrs

* even workers

* 20k conns

* Update main.rs

* back to 20 acc

* 100 accounts

* 100 acc

* 2500 accounts

* oops fix tx queue reporting

* feat: rand addr

* 500 accounts

* use existing people, log

* allow dead code

* Update tx_gen.rs

* lawging

* hrmf

* 1k accs

* 10k accounts

* wip: startup delay

* Update tx_queue.rs

* Update tx_queue.rs

* log

* moar thresholds

* Update tx_queue.rs

* feat: rayonify

* Update tx_gen.rs

* 50k connections?

* Revert "50k connections?"

This reverts commit 34ec48cf9fc4593cf20d9a7087ec9815d41803f2.

* log rayon thread pool size

* Update tx_gen.rs

* Initialize Rayon with explicit thread count.

* Update tx_gen.rs

* Update tx_gen.rs

* feat: alternate ratelimit system

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* hm

* thresholds

* Update tx_queue.rs

* Update tx_queue.rs

* Update tx_queue.rs

* thresholds

* Update tx_queue.rs

* fewer socket conns

* 10k connections

* 50k RPS?

* feat: longer ramp

* 35k rps?

* Update tx_queue.rs

* 25k

* Update start-reth.sh

* Update genesis.json

* Update start-reth.sh

* batch factor of 5

* fix: implied rps

* disable batching

* feat: even slower ramp up

* slightly faster

* feat: 50k genesis

* feat: better ramp

* oops

* worker ratio

* feat: pareto distribute recipients

* Update tx_gen.rs

* Empty the rate limiter.

* feat: empty rate limiter before AND after

* wip: can we remove first set avail?

* 15k tps

* 20k?

* 15k again

* feat: ramp up faster

* even faster

* faster!

* feat: erc20 precompile testing

* fix: bytes

* Update tx_gen.rs

* lower limit

* erc20 regular spam

* 15k>

* HIGH

* Update tx_queue.rs

* precompile

* Update tx_queue.rs

* feat: config

* fix config headers

* u64 gas price

* Update default.toml

* nit: cleanup config

* fix: start script

* docs: update desc

* chore: higher config ratelimits

* chore: ultra high max ratelimit in config

* feat: config inheriting

* docs: cmd

* feat: allow config as a positional arg or flag arg

to prevent annoying footgun

* docs: implied rps note

* fix: delta/s no longer bottoms out at 0

* perf: parking_lot

* perf: avoid lock contention in tx queue (tempoxyz#7)

* wip: avoid hogging lock

* feat: tx_gen worker batching

* clippy lints

* Update tx_gen.rs

* nit: underscore

* perf: dashmap for nonces (tempoxyz#8)

* docs: helpful error

* chore: move binaries to bin

* chore: create malachite crate

* chore: move malachite logic to crate

* chore: update workspace, add lints from reth

* chore: move dep

* chore: tempo bin

* fix: build script, proto path

* fix: update bin for MSRV workflow

* fix: update cli runner

* chore: move benches to tempo-bench

* fmt: cargo fmt

* chore: codespell

* fix: add openssl to Cargo and run cargo update

* chore: update deps

* fmt: remove whitespace

* chore: clippy

* fmt: cargo fmt

* chore: remove genesis.json, update gitignore

* chore: order deps, newline

* chore: pin reth

* docs: remove note about contender

* chore: move reth script to justfile, update readme

* docs: add commmands to clear data dir

---------

Co-authored-by: t11s <greenfeatherhelp@gmail.com>
Co-authored-by: t11s <t11s@mit.edu>
Co-authored-by: Zygimantas <zygis@skip.build>
decofe added a commit that referenced this pull request Mar 20, 2026
- Remove Cyclops audit engagement reference
- Fill in empty Motivation section
- Add *(merged)* to #3200 and #3203
- Clarify nonce key gas repricing description with base costs
- Fix 'inexistent' -> 'non-existent'
- Add missing place_flip invariant (#7)

Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019d0ab4-a8d5-7648-ad25-ddf10c043782
littlehand26 referenced this pull request in DeBankDeFi/tempo Mar 25, 2026
CR fixes:
- #1+#2: fee event idx uses block-global log_index, incremented after each
- #3: fee event pos_in_parent_trace from root trace children count
- #6: remove dead code get_storage_diffs_from_cache_no_pre
- #7: selfdestruct trace_address fallback when no child calls
- tempoxyz#8: fix stale comment
- tempoxyz#9: StateDiffTraceDB doc clarifies Database vs DatabaseRef behavior

New test items: 5.3.2 (cross-tx ID uniqueness), 5.4.1-5.4.4 (idx global
sequential verification)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
littlehand26 referenced this pull request in DeBankDeFi/tempo Mar 25, 2026
- #2 (P0): Revert tx with pre-revert EVM events lost fee log because
  receipt_log_count < evm_event_count. Fix: for revert tx, all receipt
  logs are fee logs (EVM logs reverted), use tx_status directly instead
  of comparing counts.

- #3 (P1): Receipt status override was too coarse — merged ALL
  error_traces into traces for successful tx. Fix: only move root
  trace (trace_address=[]) from error_traces to traces for AA tx,
  preserve internal revert sub-call classification.

- #4: Verified 4 idx tests PASS (5.4.1-5.4.4), updated test plan.
- #7/tempoxyz#11: Documented as known limitations.
- tempoxyz#8: Verified receipt converter regression — dev vs prod output identical.
- tempoxyz#9: Synced doc numbers (113/119 PASS).
- tempoxyz#10: staticcall found and verified; selfdestruct scanned 11100 blocks not found.
- Added test block 0x99e15c (revert tx with 6 EVM events) and test cases 6.9/6.10/11.4a/11.4b.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant