Skip to content

chore: merge develop-v2.2-new into develop (conflict resolved, pin reth to de11c921)#361

Open
chee-chyuan wants to merge 21 commits into
developfrom
merge/develop-v2.2-new-into-develop
Open

chore: merge develop-v2.2-new into develop (conflict resolved, pin reth to de11c921)#361
chee-chyuan wants to merge 21 commits into
developfrom
merge/develop-v2.2-new-into-develop

Conversation

@chee-chyuan
Copy link
Copy Markdown

@chee-chyuan chee-chyuan commented May 26, 2026

Summary

Resolves the merge conflict from PR #360 (develop-v2.2-newdevelop), pulling the reth v2.2 upgrade plus all upstream changes from reth v2.0.0, v2.1.0, and v2.2.0 into reth-bsc's develop branch.

Conflict resolution strategy: take the develop-v2.2-new side for all changes (v2.2 API upgrades), with all bnb-chain/reth.git dependencies pinned to rev de11c921b7f20bb15720d90cb5e4ff1939c058c0 instead of branch = "develop-v2.2-new".

What's coming in from upstream reth

Storage layer (v2.0 default, v2.1 migrator)

  • Storage v2 is the default for new nodes (upstream #22890) — changesets / receipts go to static files, history indices to RocksDB.
  • reth db migrate-v2 command for one-shot v1 → v2 migration without full resync (#23422; pruned-node fix #23716). After migration, the pipeline rebuilds senders / indices / trie locally from preserved Headers/Bodies — no network resync needed.
  • RocksDB WriteOptions::sync=true by default (#23603) — directly affects the --statedb.triedb path; prevents corruption on ungraceful shutdown.

Engine backpressure (v2.0)

  • New --engine.persistence-backpressure-threshold flag (default 16). Stalls new payload processing when canonical_tip - last_persisted ≥ threshold while persistence is in progress (#23280, #23308).
  • Startup constraint: persistence_backpressure_threshold > persistence_threshold (strict).
  • On chains with sub-second block intervals, validator deploy scripts must set parameters so the steady-state gap (≈ memory_block_buffer_target) is below the backpressure threshold — otherwise backpressure stays continuously active and the engine stalls on every block.

Performance (v2.0)

  • SparseTrieCacheTask — persistent sparse trie across blocks for fast state-root computation (#21583).
  • Proof V2 — rewritten merkle proof calculation (#19863, #20336).
  • jemalloc default-on (#23214).
  • Shared execution cache between engine and payload builder (#23242, #23246).
  • Read-only MDBX tx pooling (#22631).
  • Thread priority boosting for engine and sparse trie threads (#22541).

Networking (v2.2)

  • Discv5 enabled by default (#23686) — review BSC EVN / proxied-peer setup.
  • Memory-bounded P2P channels (#23802, #23718).
  • Discv5 + Discv4 same-port binding (#23613).

Dependency bumps

  • revm 38 (was 36) — EIP-8037 state gas support (#23191).
  • alloy 2.0.4 (was 1.8) (#23407, #23828).
  • alloy-evm 0.34 — gas-refund accounting fix for custom precompiles (relevant to BSC precompiles).
  • revm-precompile 34 API migration.

MDBX

  • MDBX_NOTLSMDBX_NOSTICKYTHREADS (#23378) — read tx semantics change.

Conflicts resolved

File Resolution
Cargo.toml Took v2.2-new deps (revm 38, alloy 2.0.4, reth-codecs, rust-eth-triedb-state-trie); pinned reth to rev = de11c921
testing/bsc-ef-tests/Cargo.toml Same — took v2.2-new side, pinned reth to rev = de11c921
src/node/evm/mod.rs Took v2.2-new imports (CfgEnv, ContextTr, JournaledAccountTr)
src/node/network/block_import/service.rs Took v2.2-new (whitespace-only difference)
Cargo.lock Took v2.2-new lockfile

Test focus

High priority — likely BSC-affected behaviour

  1. Validator slashing under high TPS on multi-node reth-bsc cluster — out-of-turn backoff path must produce blocks. Recent investigation found a TrieDB-prefetcher-warmup regression where the speculative-build path during backoff was missing on v2.2-new; verify the speculative build inside bsc::miner::payload::BscPayloadJob::start() still kicks off before the sleep, and that off-turn jobs survive new MiningContext arrivals without silently aborting.
  2. Engine config sanity in deploy scripts — confirm validator deploy passes --engine.persistence-backpressure-threshold > --engine.persistence-threshold ≥ --engine.memory-block-buffer-target. Document recommended values for 0.45s / 1.5s block intervals.
  3. Storage v2 fresh node — start a clean node, sync from genesis, verify canonical chain progresses normally.
  4. reth db migrate-v2 against an existing v1 datadirmigrate-v2 resets SenderRecovery / TransactionLookup / IndexAccountHistory / IndexStorageHistory / MerkleExecute / MerkleUnwind checkpoints to 0; pipeline rebuilds locally. Final head/state-root must match a fresh-synced node.
  5. revm 38 / alloy-evm 0.34 EVM behaviour — replay a sufficient window of mainnet / testnet blocks; compare receipts and state-roots against geth, paying attention to BSC custom precompiles (gas-refund accounting changed).

Medium priority

  1. Discv5 default-on impact on BSC EVN peer discovery and proxied peers.
  2. RocksDB sync=true impact on triedb commit latency and TPS ceiling.
  3. SparseTrieCache + Proof V2 effect on payload build time at high TPS.
  4. ExEx WAL: BSC does not currently use ExEx, but the bincode → RLP change (upstream #23158) is worth noting if any downstream tooling does.

Sanity

  • cargo build passes
  • make maxperf build passes
  • cargo clippy --workspace --tests --all-features clean
  • cargo test --all -- --test-threads=1 passes
  • make ef-tests passes

Known risks / compatibility

  • Storage v1 ↔ v2 not interchangeable. Operators upgrading from an older datadir must run reth db migrate-v2 or accept a full resync.
  • Downgrade target is v2.1.0 (not earlier) per upstream v2.2 release note.
  • Long-lived out-of-process MDBX read transactions can stall persistence under v2 + engine backpressure (per upstream v2.0 note); relevant for any BSC tooling that opens the MDBX for read concurrently with the node.
  • During migrate-v2, the pipeline rebuild leaves the node not producing blocks for a window proportional to chain tip — validators must be removed from the active set or the migration must be scheduled outside in-turn slots.

Closes #360

🤖 Generated with Claude Code

chee-chyuan and others added 18 commits April 29, 2026 14:40
* chore: upgrade reth v0.0.9 → develop-v2 (reth 2.0.0)

Dependency changes:
- All reth-* crates: tag v0.0.9 → branch develop-v2 (reth 2.0.0)
- reth-primitives removed; replaced by reth-ethereum-primitives (already depended on)
- reth-primitives-traits: moved to bnb-chain/reth-core repo (branch main)
- triedb: tag v0.0.2 → branch develop; adds rust-eth-triedb-state-trie
- revm: 34.0.0 → 36.0.0; revm-database: 10→12; drops revm-context-interface;
  adds revm-bytecode, revm-state, revm-primitives, revm-interpreter, revm-database-interface
- alloy: 1.1.3 → 1.8.2 (consensus/eips/genesis/network/rpc-types/signer)
- alloy-primitives/dyn-abi/sol-*: 1.4.1 → 1.5.6
- alloy-chains: 0.2.23 → 0.2.33; alloy-evm: 0.26.3 → 0.30.0; alloy-rlp: 0.3.12 → 0.3.13

Source code conflicts (200 errors) remain to be resolved — see branch notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: implement NodePrimitives/BlockBody for BSC primitives (reth 2.0.0)

- Remove reth_primitives import (crate removed); use reth_primitives_traits::NodePrimitives
  and reth_ethereum_primitives::TransactionSigned directly
- Fix BlockBody::withdrawals() return type: alloy_rpc_types::Withdrawals →
  alloy_eips::eip4895::Withdrawals (trait signature changed)
- Remove serde_bincode_compat module: reth_primitives_traits::serde_bincode_compat
  no longer exists in v0.1.1; BscBlock/BscBlockBody bincode impls dropped
- Use reth-primitives-traits v0.1.1 from crates.io (matches develop-v2's dependency;
  reth-core/main is on alloy 2.0.x which conflicts with develop-v2's alloy 1.8.x)

Reduces compilation errors from 180 → 73.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: source reth-core crates from git tag v0.1.1

Use reth-core git repo (tag v0.1.1) instead of crates.io for all
reth-core-published crates. Patch section ensures reth develop-v2's
internal crates.io deps are also redirected to the same git source,
keeping a single copy of each crate in the dependency graph.

Patches applied: reth-primitives-traits, reth-codecs, reth-codecs-derive,
reth-rpc-traits, reth-zstd-compressors.

Note: reth-core/main (v0.3.0) cannot be used until reth develop-v2 bumps
its reth-primitives-traits requirement to 0.3.x (requires alloy 2.0.x).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: switch reth-core crates to branch v0.1.1-v2

Replaces tag = "v0.1.1" with branch = "v0.1.1-v2" across all five
reth-core patches (reth-primitives-traits, reth-codecs, reth-codecs-derive,
reth-rpc-traits, reth-zstd-compressors). The v0.1.1-v2 branch contains
updates while remaining at version "0.1.1" and alloy 1.x, keeping full
compatibility with reth develop-v2's dependency requirements.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: replace reth_primitives imports with reth 2.0 equivalents

reth-primitives crate was removed in reth 2.0 (develop-v2). Migrate all
usages across 29 files to the correct new crate paths:
- reth_primitives::{TransactionSigned,Transaction,Block,BlockBody} → reth_ethereum_primitives
- reth_primitives::{GotExpected,GotExpectedBoxed,SealedHeader,SealedBlock,RecoveredBlock,NodePrimitives,BlockTy,HeaderTy} → reth_primitives_traits
- reth_primitives::Header → alloy_consensus::Header
- reth_primitives::gas_spent_by_transactions → reth_primitives_traits::receipt::gas_spent_by_transactions
- reth_primitives::InvalidTransactionError → reth_primitives_traits::transaction::error::InvalidTransactionError

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: replace revm_context_interface with revm::context_interface

revm_context_interface is no longer a standalone dependency in revm 36.
It is re-exported via revm::context_interface.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: replace EthPayloadBuilderAttributes with EthPayloadAttributes (Group 3)

EthPayloadBuilderAttributes was fully removed in locked reth commit 6fe9c72.
Replace with alloy_rpc_types_engine::PayloadAttributes (aliased as EthPayloadAttributes):
- Remove PayloadTypes::PayloadBuilderAttributes associated type (removed from trait)
- Replace struct construction (no parent field, explicit fields, no Default)
- Change method calls (.timestamp(), .prev_randao(), etc.) to field access
- Convert withdrawals from Option<Vec<Withdrawal>> to Option<Withdrawals>
- Fix PayloadConfig::new to take 3 args (add payload_id)
- Fix MinerTrieDbPrefetcher::new to take 4 args (add WorkloadExecutor/TaskExecutor)
- Thread TaskExecutor through BscPayloadBuilder and BidSimulator

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: upgrade reth-bsc to develop-v2 (reth 2.0.0)

Adapt to breaking API changes in reth 2.0 / alloy-evm 0.30:
- BlockExecutor: use generic StateDB instead of &mut State<DB>
- BscTxResult: new TxResult trait with result()/into_result()
- ExecutionResult::Success: use ResultGas::new() instead of gas_used/gas_refunded
- PoolBuilder: add Evm type parameter; build_pool takes evm_config
- EthTransactionValidator: now takes 3 generic params (add Evm)
- TransactionValidator: add associated type Block
- BeaconEngineMessage::ForkchoiceUpdated: remove version field
- fork_choice_updated: remove EngineApiMessageVersion argument
- BlockEnv: add slot_num field (default 0)
- Withdrawals: use .as_slice()/.into_inner() for Cow conversions
- BscEngineApiTx: fix Arc<DatabaseEnv> -> DatabaseEnv type mismatch
- StateRoot::overlay_root_with_updates: specify LegacyKeyAdapter explicitly
- EthInstructions::new_mainnet: replace deprecated call with new_mainnet_with_spec
- MainWorkWorker: add task_executor field for new bsc_miner API

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: resolve clippy errors for CI

- Remove unused `accumulate_blob_gas_used` method and its `Transaction` import
- Remove useless `.into()` on `tx_signed.clone()` (same type conversion)
- Suppress `too_many_arguments` lint on `BscPayloadJobGenerator::new`

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: switch reth dependency from develop-v2 to v0.1.1-v2

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: revert reth to develop-v2, remove patch section for reth-core

reth-core deps already reference v0.1.1-v2 directly so [patch.crates-io] is not needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: update Cargo.lock

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: restore [patch.crates-io] for reth-core transitive deps

reth (develop-v2) pulls reth-core packages from crates.io transitively;
the patch is needed to unify them with the git source used by reth-bsc directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: remove [patch.crates-io] and update reth to latest develop-v2

reth develop-v2 now also references bnb-chain/reth-core directly,
so no crates.io patch is needed to unify the types.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: regenerate Cargo.lock after merge conflict resolution

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: remove stale EngineApiMessageVersion::V1 arg from fork_choice_updated

The reth develop-v2 API dropped the version parameter; a second call
site was introduced by the develop-v2 merge and needed the same fix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: replace reth_primitives with reth_primitives_traits in fork_recover tests, remove stale version field from FCU pattern match

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Chee Chyuan Ang <cheechyuanang@Chees-MacBook-Pro-2.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split PrecompileError into fatal PrecompileError and non-fatal PrecompileHalt
- Add reservoir: u64 parameter to all precompile functions (EIP-8037)
- Update PrecompileOutput::new/revert/halt to 3-arg form with reservoir
- Replace output.reverted field with output.is_success()/is_halt()
- Fix PrecompileError::other -> PrecompileError::Fatal(String)
- Add cfg_env() method to Evm impl for BscEvm
- Add gas_limit() and slot_number() to ExecutionPayload for BscExecutionData
- Add slot_number: None to NextBlockEnvAttributes and EthPayloadAttributes literals
- Add block_access_list_hash/slot_number to Header constructors in assembler
- Add slot_number to EthBlockExecutionCtx constructors in config
- Change commit_transaction return type to GasOutput
- Fix HRTB E0276 in builder.rs execute_transaction_with_commit_condition
- Fix InitialAndFloorGas::new(0,0) and ResultGas::new(0,0,0) constructors
- Fix apply_eip7702_auth_list signature to include _init_and_floor_gas param
- Fix Precompile decomposition to use id()/address() getters + store in trace entry

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add block_access_list_hash() and slot_number() to MockHeader in snapshot tests
- Fix iavl.rs test assertions: PrecompileError::other no longer exists,
  invalid proof cases now return Ok(PrecompileOutput::halt(...))

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace deprecated Gas::spent(), ResultGas::new(0,0,0), and
ExecutionResult::gas_used() calls that fail under -D warnings.
Update bsc-ef-tests alloy/revm versions to match main crate (revm 38,
alloy 2.0) and add missing Header fields block_access_list_hash and
slot_number.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Bump bnb-chain/reth branch develop-v2.1 → develop-v2.2 (048b7281)
- Bump bnb-chain/reth-core branch v0.3.0-v2 → v0.3.1-v2
- Bump alloy-evm 0.33.0 → 0.34.0; alloy 2.0.0 → 2.0.4 crates
- Add TxExecutionResult + Executor GAT to BlockExecutorFactory impl
- Change commit_transaction to return GasOutput (infallible); defer
  hertz patch errors to finish() via deferred_error field
- Remove DB: 'a bounds from executor/pre_execution/post_execution impls
- Fix execute_transaction_with_commit_condition return type (GasOutput)
- Extract gas via .tx_gas_used() in payload/bid_simulator
- Wrap ConsensusError::Other strings in Arc<io::Error>

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… branch=develop

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ly dropping

Previously, when engine.new_payload() returned an Err (e.g. EngineUnavailable),
the error was silently discarded with no log, making it impossible to diagnose
broken engine integration from block import logs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Picks up fix(engine): defer MDBX read tx open to after trie wait in
changeset task — reduces long-lived MDBX readers that caused ~16s GC
stalls and validator slashing on BSC.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
BscBlock::rlp_length was filtering out empty withdrawals (Some([]))
by treating them as None, making the computed block size 1 byte
smaller than geth/erigon for any block that carries an empty
withdrawals list.

(cherry picked from commit 12556dc)
* chore: add more for debug p2p

* chore: add more logs

* chore: avoid fetch newest block by newblock which result in failed fetch and p2p reset

* chore: avoid fetch unnecessary newest block

* chore: request_blocks_by_range only by v2 peer

* chore: fetch block prefer announce peer

* chore: make reth-bsc peer-manager similar to geth-bsc

* chore: try some p2p config

* chore: update peer config

* fix: fix forward vote bug which too large msg

* chore: restore reth deps

* chore: remove temp peer dump

* chore: remove useless codes

* chore: add force prune vote when stage sync

* chore: update some trivals

(cherry picked from commit a133c6c)
(cherry picked from commit 7cdb875)
Co-authored-by: joey <10592664+joey0612@users.noreply.github.com>
Co-authored-by: cbh876 <3930922419@qq.com>
Co-authored-by: cbh876 <30834644+constbh@users.noreply.github.com>
(cherry picked from commit a1c132d)
* fix: make receive block metrics correct

* ci: pin udeps job to nightly-2026-05-11

cargo-udeps 0.1.61 segfaults on nightly >= 2026-05-19 due to an
incompatibility with rustc internals. Pin to the last known-good
nightly to unblock CI. A follow-up should migrate to cargo-machete
to remove the nightly fragility entirely.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
(cherry picked from commit 32a07ee)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All reth-* deps from bnb-chain/reth now pinned to rev de11c921b7f20bb15720d90cb5e4ff1939c058c0
instead of branch = "develop-v2.2-new". Resolves conflicts in Cargo.toml,
testing/bsc-ef-tests/Cargo.toml, src/node/evm/mod.rs, and
src/node/network/block_import/service.rs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@chee-chyuan chee-chyuan requested a review from joey0612 as a code owner May 26, 2026 08:59
@hashdit-bot
Copy link
Copy Markdown

hashdit-bot Bot commented May 26, 2026

Pull Request Review

This PR resolves a large merge conflict by adopting the develop-v2.2-new codepath and pinning most bnb-chain/reth dependencies to a fixed commit (de11c921...) instead of floating branches. It also upgrades major runtime dependencies (notably revm and alloy) and performs broad API migration updates across consensus, EVM execution, precompiles, miner/payload flow, and networking imports. The changes include substantial refactors to precompile error handling semantics, block execution interfaces, and task spawning APIs to align with newer upstream crates.

Sensitive Content

No sensitive content detected.

Security Issues

🟠 [HIGH] Potential state corruption risk from synthetic original_value in Hertz patch writes

File: src/node/evm/patch/mod.rs
The patching logic now writes storage slots using EvmStorageSlot { original_value: if value == 0 {1} else {0}, present_value: value, ... } rather than loading true original values from DB/state. This introduces fabricated "original" slot metadata and can violate invariants relied on by journaling/refund/revert accounting or trie/state transition correctness, especially under complex execution/revert flows. Since this code mutates live execution state around consensus-critical hotfix paths, incorrect slot metadata can create subtle consensus divergence or malformed state roots.
Recommendation: Populate original_value from actual loaded storage for each key (or use a safe API that applies direct committed storage updates without synthetic transition metadata). Add explicit regression tests validating state root equivalence and revert behavior before/after patch application.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…erface

revm-context-interface is not a direct dependency; use the re-export path
revm::context_interface instead. Also removes the unused JournaledAccountTr
import from node/evm/mod.rs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hashdit-bot
Copy link
Copy Markdown

hashdit-bot Bot commented May 26, 2026

Pull Request Review

This PR resolves a large merge conflict by taking the develop-v2.2-new side and pins most bnb-chain/reth dependencies to a fixed git revision (de11c921...), while also upgrading major dependency stacks (revm/alloy) and updating API usages accordingly. It includes broad refactors across consensus, EVM execution, precompiles, miner/payload flow, and network/import logic to adapt to new trait signatures and types. The changes also introduce TrieDB-related execution/path updates, new payload/build plumbing, and multiple compatibility adjustments for BSC-specific logic.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hashdit-bot
Copy link
Copy Markdown

hashdit-bot Bot commented May 26, 2026

Pull Request Review

This PR resolves a large merge by taking the develop-v2.2-new side and updates the codebase to newer revm/alloy/reth APIs while pinning most bnb-chain/reth.git dependencies to commit de11c921.... It includes broad refactors across consensus, EVM execution, precompile interfaces, miner/payload flows, and trait/module path migrations (notably from reth_primitives to reth_primitives_traits / reth_ethereum_primitives). It also introduces behavior adjustments around system transactions, precompile halt handling, trie-diff/prefetch integration, and new engine/task API usages.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

Switches all reth-* dependencies from rev de11c921 to
rev = "485e37b738754f96603391f42ee529f9364b47a4" for deterministic builds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hashdit-bot
Copy link
Copy Markdown

hashdit-bot Bot commented May 28, 2026

Pull Request Review

This PR is a large merge and compatibility upgrade that rebases develop onto the develop-v2.2-new line, moving the codebase to newer reth/revm/alloy APIs and updating many type/import paths (notably toward reth_primitives_traits / reth_ethereum_primitives). It also refactors EVM execution and precompile handling to the newer PrecompileOutput/PrecompileHalt model, updates miner/payload flow integration, and introduces broader runtime/task API adjustments. Dependency references are broadly pinned from branch tracking to fixed revisions, with additional trie/state-trie components integrated.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

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.

4 participants