Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
888f294
50k conns?
transmissions11 Jul 19, 2025
9772d51
rm: json parsing on testserver
transmissions11 Jul 19, 2025
29759bc
huge backlog
transmissions11 Jul 19, 2025
77431ee
allow get
transmissions11 Jul 19, 2025
2bb7ba5
log concurrent
transmissions11 Jul 19, 2025
40cf330
limit to 1 worker
transmissions11 Jul 19, 2025
a090358
50 workers
transmissions11 Jul 19, 2025
361b675
feat: hyper
transmissions11 Jul 19, 2025
0cb8886
fix?
transmissions11 Jul 19, 2025
5fe5ff0
actix -> axum
transmissions11 Jul 19, 2025
9a131d7
Update main.rs
transmissions11 Jul 19, 2025
5d50ac7
rm batch factor
transmissions11 Jul 19, 2025
f842210
3 second measurement interval
transmissions11 Jul 19, 2025
b295b55
Update main.rs
transmissions11 Jul 19, 2025
d7144e6
worker id
transmissions11 Jul 19, 2025
ee32820
request durr
transmissions11 Jul 19, 2025
ddd58f2
fix: workers
transmissions11 Jul 19, 2025
a88f544
Update network.rs
transmissions11 Jul 19, 2025
a790730
fix ids
transmissions11 Jul 20, 2025
4182948
feat: implied total rps
transmissions11 Jul 20, 2025
51573a6
Update network.rs
transmissions11 Jul 20, 2025
f53cf9b
Update network.rs
transmissions11 Jul 20, 2025
7874e2d
Create genesis.json
transmissions11 Jul 20, 2025
0804ba8
genalloc
transmissions11 Jul 20, 2025
6ed267e
25k
transmissions11 Jul 20, 2025
77dff63
start reth
transmissions11 Jul 20, 2025
ed2af20
50k again?
transmissions11 Jul 20, 2025
4d0a616
wip: try one of 10k addrs
transmissions11 Jul 20, 2025
59805d4
even workers
transmissions11 Jul 20, 2025
1f3234b
20k conns
transmissions11 Jul 20, 2025
a8c8176
Update main.rs
transmissions11 Jul 20, 2025
2407ab6
back to 20 acc
transmissions11 Jul 20, 2025
c26a9d3
100 accounts
transmissions11 Jul 20, 2025
a00726e
100 acc
transmissions11 Jul 20, 2025
21a1ce4
2500 accounts
transmissions11 Jul 20, 2025
b56b53d
oops fix tx queue reporting
transmissions11 Jul 20, 2025
76ebc2f
feat: rand addr
transmissions11 Jul 20, 2025
2a6c53a
500 accounts
transmissions11 Jul 20, 2025
93a63ec
use existing people, log
transmissions11 Jul 21, 2025
73e1f4c
allow dead code
transmissions11 Jul 21, 2025
f5177ea
Update tx_gen.rs
transmissions11 Jul 21, 2025
5fb3e85
lawging
transmissions11 Jul 21, 2025
0556336
hrmf
transmissions11 Jul 21, 2025
12ff095
1k accs
transmissions11 Jul 21, 2025
ca4cbe8
10k accounts
transmissions11 Jul 21, 2025
f70736a
wip: startup delay
transmissions11 Jul 21, 2025
580c48d
Update tx_queue.rs
transmissions11 Jul 21, 2025
315a841
Update tx_queue.rs
transmissions11 Jul 21, 2025
919de6a
log
transmissions11 Jul 21, 2025
84db517
moar thresholds
transmissions11 Jul 21, 2025
a0c0fe9
Update tx_queue.rs
transmissions11 Jul 21, 2025
af2303e
feat: rayonify
transmissions11 Jul 21, 2025
fcac70b
Update tx_gen.rs
transmissions11 Jul 21, 2025
34ec48c
50k connections?
transmissions11 Jul 21, 2025
d7d51ee
Revert "50k connections?"
transmissions11 Jul 21, 2025
eb7dde6
log rayon thread pool size
transmissions11 Jul 21, 2025
a37e867
Update tx_gen.rs
transmissions11 Jul 21, 2025
19f66b4
Initialize Rayon with explicit thread count.
transmissions11 Jul 21, 2025
5c42e43
Update tx_gen.rs
transmissions11 Jul 21, 2025
a5cf86c
Update tx_gen.rs
transmissions11 Jul 21, 2025
acd7bd4
feat: alternate ratelimit system
transmissions11 Jul 21, 2025
4ccd65a
Update tx_queue.rs
transmissions11 Jul 21, 2025
cab7c9d
Update tx_queue.rs
transmissions11 Jul 21, 2025
6bd1815
Update tx_queue.rs
transmissions11 Jul 21, 2025
3c32484
Update tx_queue.rs
transmissions11 Jul 21, 2025
18db727
Update tx_queue.rs
transmissions11 Jul 21, 2025
e152c8a
hm
transmissions11 Jul 21, 2025
94296a2
thresholds
transmissions11 Jul 21, 2025
b120def
Update tx_queue.rs
transmissions11 Jul 21, 2025
0359dfb
Update tx_queue.rs
transmissions11 Jul 21, 2025
8ee978c
Update tx_queue.rs
transmissions11 Jul 21, 2025
5a70b25
thresholds
transmissions11 Jul 21, 2025
c773e29
Update tx_queue.rs
transmissions11 Jul 21, 2025
91b0fb0
fewer socket conns
transmissions11 Jul 21, 2025
3b9f04e
10k connections
transmissions11 Jul 21, 2025
7e5d8ca
50k RPS?
transmissions11 Jul 21, 2025
9ad902b
feat: longer ramp
transmissions11 Jul 21, 2025
5c2ad33
35k rps?
transmissions11 Jul 21, 2025
67c8ab7
Update tx_queue.rs
transmissions11 Jul 21, 2025
dd6c9a8
25k
transmissions11 Jul 21, 2025
c17dfc7
Update start-reth.sh
transmissions11 Jul 21, 2025
39ef5f0
Update genesis.json
transmissions11 Jul 21, 2025
51d09c2
Update start-reth.sh
transmissions11 Jul 21, 2025
89da805
batch factor of 5
transmissions11 Jul 21, 2025
4de365f
fix: implied rps
transmissions11 Jul 21, 2025
683103a
disable batching
transmissions11 Jul 21, 2025
cf4bd59
feat: even slower ramp up
transmissions11 Jul 21, 2025
ee482ae
slightly faster
transmissions11 Jul 21, 2025
e28633d
feat: 50k genesis
transmissions11 Jul 22, 2025
10612b3
feat: better ramp
transmissions11 Jul 22, 2025
79043b9
oops
transmissions11 Jul 22, 2025
bce8fa2
worker ratio
transmissions11 Jul 22, 2025
4af668c
feat: pareto distribute recipients
transmissions11 Jul 22, 2025
fe1dd7c
Update tx_gen.rs
transmissions11 Jul 22, 2025
5120e07
Empty the rate limiter.
transmissions11 Jul 22, 2025
6b391fc
feat: empty rate limiter before AND after
transmissions11 Jul 22, 2025
e4e9879
wip: can we remove first set avail?
transmissions11 Jul 22, 2025
51d7116
15k tps
transmissions11 Jul 22, 2025
92b4d4f
20k?
transmissions11 Jul 22, 2025
856b9c4
15k again
transmissions11 Jul 22, 2025
9752bbc
feat: ramp up faster
transmissions11 Jul 22, 2025
5c8d33f
even faster
transmissions11 Jul 22, 2025
963441f
faster!
transmissions11 Jul 22, 2025
5c67176
Merge branch 'main' into dev
transmissions11 Jul 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 139 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 8 additions & 1 deletion crescendo/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,11 @@ alloy = { version = "1", features = ["genesis", "signers"] }
alloy-evm = "0.13"
alloy-consensus = { version = "1", features = ["secp256k1"] }
alloy-signer-local = { version = "1", features = ["mnemonic"] }
core_affinity = "0.8.3"
core_affinity = "0.8.3"
rayon = "1.10"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
hex = "0.4"
simple-tqdm = { version = "0.2.0", features = ["rayon"] }
rand = "0.9.1"
ratelimit = "0.10"
44 changes: 44 additions & 0 deletions crescendo/src/bin/generate_genesis_alloc.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
use std::collections::BTreeMap;
use std::fs;
use std::path::Path;

use alloy::signers::local::MnemonicBuilder;
use alloy::signers::utils::secret_key_to_address;
use alloy_signer_local::coins_bip39::English;
use rayon::prelude::*;
use serde::{Deserialize, Serialize};
use simple_tqdm::ParTqdm;

#[derive(Debug, Serialize, Deserialize)]
struct AccountBalance {
balance: String,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
const NUM_ACCOUNTS: u32 = 50_000;
const MNEMONIC: &str = "test test test test test test test test test test test junk";

println!("Generating {} accounts...", NUM_ACCOUNTS);

let genesis_alloc: BTreeMap<String, AccountBalance> = (0..NUM_ACCOUNTS)
.into_par_iter()
.tqdm()
.map(|worker_id| {
let signer =
MnemonicBuilder::<English>::default().phrase(MNEMONIC).index(worker_id).unwrap().build().unwrap();

let address = secret_key_to_address(&signer.credential());

(format!("{:?}", address), AccountBalance { balance: "0xD3C21BCECCEDA1000000".to_string() })
})
.collect();

let output_path = Path::new("genesis-alloc.json");
let json = serde_json::to_string_pretty(&genesis_alloc)?;
fs::write(output_path, json)?;

println!("\nSuccessfully generated {} accounts!", NUM_ACCOUNTS);
println!("Accounts saved to: {}", output_path.display());

Ok(())
}
7 changes: 5 additions & 2 deletions crescendo/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use crate::workers::{DesireType, WorkerType};
static GLOBAL: MiMalloc = MiMalloc;

// TODO: Configurable CLI args.
const TOTAL_CONNECTIONS: u64 = 50_000; // This is limited by the amount of ephemeral ports available on the system.
const TOTAL_CONNECTIONS: u64 = 10_000; // This is limited by the amount of ephemeral ports available on the system.
const THREAD_PINNING: bool = true;
const TARGET_URL: &str = "http://127.0.0.1:8545";

Expand All @@ -33,13 +33,16 @@ async fn main() {
let mut core_ids = core_affinity::get_core_ids().unwrap();
println!("[*] Detected {} effective cores.", core_ids.len());

// Initialize Rayon with explicit thread count.
rayon::ThreadPoolBuilder::new().num_threads(core_ids.len()).build_global().unwrap();

// Pin the tokio runtime to a core (if enabled).
utils::maybe_pin_thread(core_ids.pop().unwrap(), THREAD_PINNING);

// Given our desired breakdown of workers, translate this into actual numbers of workers to spawn.
let (workers, worker_counts) = workers::assign_workers(
core_ids, // Doesn't include the main runtime core.
vec![(WorkerType::TxGen, DesireType::Exact(20)), (WorkerType::Network, DesireType::Percentage(1.0))],
vec![(WorkerType::TxGen, DesireType::Percentage(0.1)), (WorkerType::Network, DesireType::Percentage(0.9))],
THREAD_PINNING, // Only log core ranges if thread pinning is actually enabled.
);

Expand Down
Loading
Loading