Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
af008cf
Revert "refactor(setup): simplify genesis allocations in setup.rs"
faddat Apr 30, 2026
86823a2
feat(setup): enhance genesis allocation and load generator configuration
faddat May 3, 2026
1b2bf8b
complete mempool fixes
faddat May 6, 2026
e765215
Merge pull request #35 from Nunchi-trade/mempool-fix-and-test
faddat May 7, 2026
ed54771
docs: add public testnet standup runbook and update README
faddat May 12, 2026
c38cd33
Merge pull request #51 from Nunchi-trade/faddat/unbundle
faddat May 12, 2026
acdee75
feat(testnet): add key generation and configuration files for public …
faddat May 12, 2026
9d8c3e1
feat(ledger): enhance ledger initialization and snapshot restoration
faddat May 13, 2026
e17a728
feat(ledger): add restore persisted digest functionality
faddat May 13, 2026
6462dad
Revert "feat(ledger): add restore persisted digest functionality"
faddat May 13, 2026
4b6f522
feat(runner): introduce consensus timeout constants and refactor time…
faddat May 13, 2026
18e963a
feat(marshal): update default configuration values and introduce stra…
faddat May 13, 2026
01c32a1
fix rpc gas fee oracle
wpank May 15, 2026
7b9ba13
Implement Ethereum HTTP filter API
wpank May 15, 2026
c210ad6
fix rpc indexed response fidelity
wpank May 15, 2026
977703d
Enforce RPC rate limits
wpank May 15, 2026
7751056
fix txpool eviction and introspection RPC
wpank May 15, 2026
971707d
fix(docker): carry runtime healthcheck contract
wpank May 15, 2026
c8116de
fix ledger snapshot chain compaction
wpank May 15, 2026
b067289
fix rpc empty account reads and genesis index
wpank May 15, 2026
92c7349
Fix loadgen account seed validation
wpank May 15, 2026
a105e33
fix block timestamps
wpank May 15, 2026
6c7d2cf
fix txpool confirmed nonce pruning
wpank May 15, 2026
7e352e2
reproduce the bugs
faddat May 20, 2026
a3b6768
feat(runtime): introduce KORA_RUNTIME_DIR for Commonware storage conf…
faddat May 20, 2026
0c519a0
Merge pull request #81 from Nunchi-trade/fix/issue-65-loadgen-devnet-…
faddat May 21, 2026
4b2da7e
fix(docker): align healthcheck comment with script and move ignore ru…
May 21, 2026
39865bb
fix(rpc): widen signature v to u128/U256 for full EIP-155 support
May 21, 2026
ec09eab
fix(rpc): address gas oracle review feedback
May 21, 2026
9a03991
fix: return error instead of silent continue on missing snapshot duri…
May 21, 2026
dd87725
fix: clamp rate limiter burst_size to min 1 and consolidate tower dep
May 21, 2026
7d813e8
Fix eth filter API review feedback (5 items)
May 21, 2026
bafdb02
Address PR review: handle timestamp overflow and thread now_secs
May 21, 2026
d5261d0
docs(docker): add changelog and clarify healthcheck mode descriptions
May 21, 2026
eaff76b
Merge pull request #54 from Nunchi-trade/faddat/testnet-zero
faddat May 21, 2026
f0b329e
audit: add #[must_use] to overlay helpers, add tests, and changelog
May 21, 2026
5151be6
fix(rpc): apply EIP-155 v encoding to pending transactions and add ch…
May 21, 2026
3699aa1
audit: add edge-case tests for rate limiter and changelog for PR #74
May 21, 2026
d6fbf98
audit: add changelog, fix typo in bootstrap module doc
May 21, 2026
70edcff
audit(rpc): add gas oracle tests, changelog, and cleanup unused import
May 21, 2026
2788bbd
Audit eth filter API: fix block_hash filter bug, add tests, add chang…
May 21, 2026
b382017
ci: trigger checks
May 21, 2026
de97c30
style: fix nightly cargo fmt formatting
May 21, 2026
5aa4d14
chore: update changelog testing notes
May 21, 2026
94936c8
docs: clarify now_secs parameter in next_timestamp doc comment
May 21, 2026
3be5a53
Merge pull request #69 from Nunchi-trade/fix/issue-56-rpc-indexed-res…
wpank May 21, 2026
0cf2135
Merge pull request #70 from Nunchi-trade/fix/issue-57-gas-price-oracle
wpank May 21, 2026
d16a74a
Merge pull request #76 from Nunchi-trade/fix/issue-68-docker-build-ru…
wpank May 21, 2026
8ac0b69
Merge pull request #79 from Nunchi-trade/fix/issue-66-txpool-nonce-pr…
faddat May 21, 2026
1d83902
Merge origin/main and resolve eth filter conflicts
Copilot May 21, 2026
4c71974
Merge pull request #74 from Nunchi-trade/fix/issue-61-rpc-rate-limiting
faddat May 21, 2026
17a21ea
Merge origin/main and resolve conflicts
Copilot May 21, 2026
5ddc904
Merge pull request #77 from Nunchi-trade/fix/issue-67-compact-persist…
faddat May 21, 2026
523fdce
Merge origin/main into fix/issue-64-empty-account-genesis-rpc
Copilot May 21, 2026
b12ef65
Merge remote-tracking branch 'origin/main' into fix/issue-63-real-blo…
May 22, 2026
28a7a12
Merge pull request #73 from Nunchi-trade/fix/issue-60-eth-filter-api
faddat May 22, 2026
bcb22f2
fix(rpc): resolve merge conflicts with main and fix test type mismatch
Copilot May 22, 2026
0873046
fix: resolve merge conflicts with main (U64→U256 v field, missing tim…
May 22, 2026
1d98152
Merge pull request #78 from Nunchi-trade/fix/issue-63-real-block-time…
faddat May 22, 2026
ccbb65a
Make validator runtime parameters configurable (#75)
wpank May 22, 2026
6b54991
feat(rpc): add pending transaction and mempool subscriptions (#71)
wpank May 22, 2026
1f8f1c2
Merge origin/main into fix/issue-64-empty-account-genesis-rpc
May 22, 2026
f240348
Merge origin/main into fix/issue-59-txpool-eviction-rpc
May 22, 2026
6909645
Merge origin/main into fix/issue-64-empty-account-genesis-rpc
May 22, 2026
a0fd4c4
Merge origin/main into fix/issue-59-txpool-eviction-rpc
May 22, 2026
8a785c4
style: fix nightly rustfmt formatting
May 22, 2026
9316ba1
style: fix nightly rustfmt formatting
May 22, 2026
3c255ae
Merge pull request #72 from Nunchi-trade/fix/issue-59-txpool-eviction…
wpank May 22, 2026
a144010
Merge pull request #80 from Nunchi-trade/fix/issue-64-empty-account-g…
wpank May 22, 2026
4372409
fix: log errors in critical paths instead of silently discarding (#129)
wpank May 22, 2026
6e38359
fix(dkg): improve error visibility in DKG ceremony (#126)
wpank May 22, 2026
0ea4b18
fix(consensus): bound InMemorySnapshotStore to prevent OOM (#125)
wpank May 22, 2026
4e65834
fix(rpc): set NodeState peer_count so kora_nodeStatus reports correct…
wpank May 22, 2026
cbff463
fix(reporters): ensure mempool pruning on all finalization error path…
wpank May 22, 2026
fd7bae3
fix(executor): skip invalid transactions instead of aborting block (#…
wpank May 22, 2026
1c26f1e
fix(executor): enforce block gas limit during execution (#120)
wpank May 22, 2026
09892eb
fix(runner): detect and abort on consensus task crash (#127)
wpank May 22, 2026
663b3c8
fix(executor): implement BLOCKHASH opcode with recent block hash look…
wpank May 22, 2026
ae2be5c
fix(rpc): reject historical state queries with explicit error (#121)
wpank May 22, 2026
a45df47
feat(ansible): add deployment playbooks for Hetzner devnet (#119)
wpank May 22, 2026
27d7e94
feat(docker): add Prometheus/Loki/Grafana observability stack for dev…
wpank May 22, 2026
3200370
fix(dkg): correct 0-indexed share_index handling in validator startup…
wpank May 22, 2026
b445b7a
fix(rpc): bound pending transaction cache to prevent memory leak (#128)
wpank May 22, 2026
bf04449
refactor(loadgen): per-account sequential nonce ordering and reliabil…
wpank May 22, 2026
af51d17
feat(runner): add Prometheus metrics HTTP server (#116)
wpank May 22, 2026
e43e7a5
fix(docker): eliminate consensus nullification from startup height dr…
wpank May 22, 2026
1abce25
test: critical coverage for finalization pipeline and signed tx execu…
wpank May 22, 2026
1815413
fix(storage): detect non-atomic cross-partition QMDB writes on startu…
wpank May 22, 2026
60fe37d
feat(runner): crash-recovery commit marker and startup validation (#139)
wpank May 22, 2026
42a0a27
feat(gc): track selfdestructed addresses for storage GC (#137)
wpank May 22, 2026
310d45a
fix(txpool): reject same-nonce duplicates at transaction ingress (#134)
wpank May 22, 2026
369cfd2
feat(executor): add pre_execute and post_execute hooks to BlockExecut…
wpank May 22, 2026
18dd8f9
fix(docker): resource limits, RPC health checks, log rotation, gracef…
wpank May 22, 2026
2bce4cc
feat(observability): P2P channel metrics and Grafana dashboard (#135)
wpank May 22, 2026
e0f941f
fix(runner): prevent resolver from permanently blocking peers after r…
wpank May 22, 2026
f2f5f2c
fix(docker): make DKG init-config idempotent to prevent key mismatch …
wpank May 23, 2026
1161b3b
fix(transport): per-channel P2P backlog sizing to reduce message drop…
wpank May 23, 2026
e338410
feat(transport): transaction gossip channel and P2P broadcast (#193)
wpank May 23, 2026
ace5feb
fix(runner): state sync and crash recovery for restarted validators (…
wpank May 23, 2026
9b5a7f0
fix(reporters): typed errors and retry logic for finalization path (#…
wpank May 23, 2026
9dc537e
fix(rpc): return -32004 instead of -32603 for subscriptions over HTTP…
wpank May 23, 2026
e29c044
feat(secondary): scaffold minimal viable secondary node (#188)
wpank May 23, 2026
5de4322
fix(keygen): use fixed timestamp for deterministic genesis block hash…
wpank May 23, 2026
386551c
fix(ansible): clean barrier files, dynamic node counts, portable path…
wpank May 23, 2026
663fd60
fix(loadgen): nonce recovery, progress reporting, and resilient retry…
wpank May 23, 2026
31cef59
fix(security): restrict RPC, metrics, and observability ports to trus…
wpank May 23, 2026
738181b
fix(executor): enable EIP-1559 gas accounting and fix genesis timesta…
wpank May 23, 2026
86ddd88
fix(rpc): accept safe and finalized block tags in state queries (#179)
wpank May 23, 2026
fcafbd8
fix(consensus): nullify block on snapshot chain gap to prevent duplic…
wpank May 23, 2026
911605c
fix(error-handling): improve error handling and logging (#166) (#180)
wpank May 23, 2026
e7f4006
fix(txpool): prune stale-nonce transactions on block finalization (#181)
wpank May 23, 2026
e22bec1
fix(docker): persist runtime state across container restarts (#159) (…
wpank May 23, 2026
295abc2
fix(observability): recording rule duplicates, alert filters, and thr…
wpank May 23, 2026
613889c
fix(runner): handle SIGTERM for graceful Docker shutdown (#168)
wpank May 23, 2026
eac18ba
fix(runner): add execution-paced backpressure to block proposals (#178)
wpank May 23, 2026
c11263a
fix(docker): harden container security for devnet compose stack (#173)
wpank May 23, 2026
b40c5fd
feat(metrics): application-level Prometheus metrics (#191)
wpank May 23, 2026
e6e12b5
fix devnet: (#194)
faddat May 23, 2026
6648076
fix(ledger): eliminate snapshot store TOCTOU race condition (#174)
wpank May 23, 2026
31decda
Improve Performance (#195)
faddat May 23, 2026
fbfeba2
fix(consensus): reduce leader timeout and add proposal lag guard (#185)
wpank May 23, 2026
8236865
fix(docker): skip bootstrap wait on container restart (#172)
wpank May 23, 2026
4a57b35
feat(observability): network partition detection (#187)
wpank May 23, 2026
0b04e0e
fix(consensus): remove dead block_time config, reduce certification t…
May 24, 2026
b4023b9
fix(ledger): eliminate Notify race in wait_for_snapshot
May 24, 2026
5fe74fe
fix(consensus): increase MAX_PROPOSAL_LAG from 8 to 64 to prevent fin…
wpank May 24, 2026
a49fc1d
fix(marshal): reduce cache retention and log archive prune no-ops (#225)
wpank May 24, 2026
307e5c6
fix(executor,storage): reduce log noise and increase QMDB page cache …
wpank May 24, 2026
595be10
fix(rpc): correct partition monitor quorum formula for N3f1 (#227)
wpank May 24, 2026
47ec4e0
fix(runner): reduce thread oversubscription and busy-wait CPU waste (…
wpank May 24, 2026
7f4b742
fix(docker): harden health checks, fix metrics suffix, bind RPC to lo…
wpank May 24, 2026
6124571
fix(p2p): multi-bootstrap peers and channel backlog tuning (#232)
wpank May 24, 2026
7f77b14
perf: reduce hot-path allocations and block_on overhead (#243)
wpank May 24, 2026
5978234
fix(rpc): read from overlay state and fix block format compliance (#235)
wpank May 24, 2026
12f1f4d
fix(storage): add durability guarantees to checkpoint architecture (#…
wpank May 24, 2026
67d316e
fix(dkg): remove misleading --threshold parameter, derive quorum from…
wpank May 24, 2026
e740b3f
Merge origin/main into fix/03-consensus-timing
May 24, 2026
0997e5b
fix(recovery): stabilize node restart catch-up mechanism (#234)
wpank May 24, 2026
2a8c25e
fix(txpool): enforce base fee floor in gas price validation (#230)
wpank May 24, 2026
9c7a5b4
fix(docker): enable TX gossip in devnet validator containers (#233)
wpank May 24, 2026
f076a01
fix(marshal): implement archive pruning to bound freezer growth (#237)
wpank May 24, 2026
c6cdc82
perf(storage): eliminate disk I/O for consensus scratch data (#242)
wpank May 24, 2026
cd9a327
Merge origin/main into fix/03-consensus-timing
May 24, 2026
6cfcecb
fix(consensus): reduce nullification rate via timeout tuning and snap…
wpank May 24, 2026
ba33d58
perf(executor): execution hot path optimizations (#240)
wpank May 24, 2026
41e1b61
Merge origin/main into fix/03-consensus-timing
May 24, 2026
7f6523b
Merge pull request #236 from Nunchi-trade/fix/03-consensus-timing
wpank May 24, 2026
4956ab4
fix(marshal): single epoch for backfill epoch check (was 20-block win…
erenyegit May 25, 2026
b481fdb
fix(devnet): mount startup_barrier into init-setup so just devnet con…
erenyegit May 25, 2026
65a9b88
fix(devnet): mount /tmp as 1777 so non-root containers can write (#247)
erenyegit May 25, 2026
57a20db
fix(consensus): abort on permanent finalization failure (#335)
wpank May 29, 2026
f9460c8
fix(rpc): compute actual transactionsRoot and receiptsRoot (#268) (#350)
wpank May 29, 2026
3a26404
fix(consensus): replace NoOpBlocker with GraduatedBlocker for Byzanti…
wpank May 29, 2026
0947937
fix(rpc): per-connection rate limiting and batch size cap (#331)
wpank May 29, 2026
be11df2
fix(rpc): use gas_used from receipts for eth_feeHistory percentile we…
wpank May 29, 2026
07653b5
fix(executor): forward blob base fee to REVM BlockEnv (#310)
wpank May 29, 2026
a17c789
chore: remove dead code items with zero callers (#330)
wpank May 29, 2026
737ca4c
fix(storage): surface DatabaseCommit errors instead of silently swall…
wpank May 29, 2026
d3f80e5
fix(executor): offload EVM execution to spawn_blocking to free async …
wpank May 29, 2026
39d20ad
fix(consensus): log and count equivocation events (#333)
wpank May 29, 2026
e2a9829
fix(docker): verify consensus participation in health check (#332)
wpank May 29, 2026
9137d3d
fix(rpc): cap eth_getLogs block range and implement blockHash filter …
wpank May 29, 2026
17124ec
fix(rpc): wire eth_syncing to actual catch-up state (#324)
wpank May 29, 2026
187f136
fix(rpc): add missing withdrawals fields to RpcBlock (#306)
wpank May 29, 2026
44fca3a
fix(rpc): disable nonce/balance/basefee checks in simulation RPCs (#304)
wpank May 29, 2026
39ca202
fix(executor): filter unchanged SLOAD slots in extract_changes and Da…
wpank May 29, 2026
4eae208
fix(config): preserve and validate genesis chain_id during bootstrap …
wpank May 29, 2026
5849fdd
fix(security): write key files with mode 0600 instead of default 0644…
wpank May 29, 2026
f5e8a47
fix(indexer): prune old BlockIndex entries to prevent OOM (#313)
wpank May 29, 2026
1a1bcdb
fix(consensus): activate timestamp validation in block verification (…
wpank May 29, 2026
de30a9f
fix(runtime): use available CPU cores for tokio worker threads (#315)
wpank May 29, 2026
3085eca
feat(config): configurable per-component log verbosity and JSON outpu…
wpank May 29, 2026
b070a1e
fix(runner): graceful shutdown -- don't abort on normal close, keep R…
wpank May 29, 2026
ef9fc00
feat(metrics): unpersisted snapshot depth gauge (#319)
wpank May 29, 2026
168a565
fix(execution): make block beneficiary configurable via fee_recipient…
wpank May 29, 2026
c859994
Fix the main branch and improve CI testing (#354)
faddat May 29, 2026
a0132ff
fix(rpc): compute block size instead of returning 0x0 (#311)
wpank May 29, 2026
9f8ed68
fix(e2e): tolerate missing seeds in verify_state_convergence
May 29, 2026
3a5103d
feat(metrics): add EVM execution time and RPC request counter (#328)
wpank May 29, 2026
a7adcbc
fix(rpc): return pending nonce from txpool in eth_getTransactionCount…
wpank May 29, 2026
be4c8de
fix(rpc): compute block-level logsBloom from receipt Bloom filters (#…
wpank May 29, 2026
c8433fe
fix(rpc): return revert data in error responses per execution-apis sp…
wpank May 29, 2026
15f1bf7
fix(rpc): enable WebSocket ping/pong keep-alive on JSON-RPC servers (…
wpank May 29, 2026
384b8e9
fix(executor): wire calculate_base_fee() into block production (EIP-1…
wpank May 29, 2026
d8822b1
fix(runner): add missing logs_bloom field to replay IndexedBlock
May 29, 2026
7d62442
fix(rpc): limit batch JSON-RPC requests to prevent DoS (#309)
wpank May 29, 2026
e458782
fix(rpc): add CORS middleware to JSON-RPC server (#308)
wpank May 29, 2026
d5d92e4
chore(dependencies): update commonware packages to version 2026.5.0 a…
faddat May 30, 2026
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
6 changes: 6 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[[profile.default.overrides]]
filter = 'package(kora-e2e)'
test-group = 'e2e'

[test-groups.e2e]
max-threads = 1
7 changes: 7 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,10 @@ node_modules/
*~
.DS_Store
Thumbs.db

# Documentation - exclude markdown but keep README files needed by crate docs
*.md
!README.md
!bin/**/README.md
!crates/**/README.md
!docker/README.md
27 changes: 24 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build
run: cargo build --all-targets
run: cargo build --workspace --all-targets --locked

test:
name: Test
Expand All @@ -33,7 +33,28 @@ jobs:
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@nextest
- name: Test
run: cargo nextest run --all-features --no-tests=pass
run: cargo nextest run --workspace --all-features --exclude kora-e2e --no-tests=pass

e2e:
name: E2E Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@nextest
- name: E2E tests
run: cargo nextest run -p kora-e2e --all-features --run-ignored all -j1 --no-tests=fail

doctest:
name: Doc Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Doc tests
run: cargo test --workspace --all-features --doc

fmt:
name: Format
Expand All @@ -56,7 +77,7 @@ jobs:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Clippy
run: cargo clippy --all-targets --all-features -- -D warnings
run: cargo clippy --workspace --all-targets --all-features -- -D warnings

deny:
name: Deny
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ target/
*.swp
*.swo
.env

# Ansible inventory contains real server IPs — use hosts.yml.example as template
ansible/inventory/hosts.yml
Loading
Loading