Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
72e8500
fix: add .gitignore
clydemeng Jul 3, 2025
e568a79
feat: define the data-structures (Snapshot, Signer, BlockVote) and ad…
clydemeng Jul 7, 2025
54f0146
feat: using reth_db Table trait in ParliaSnapshots and implment Encod…
clydemeng Jul 7, 2025
422cff9
feat: impl ParliaHeaderValidator with SnapshotProvider
clydemeng Jul 7, 2025
1f68f81
feat: [parlia] add InMemorySnapshotProvider & lorentz/Maxwell epoch &…
clydemeng Jul 8, 2025
611b509
feat: [parlia] Uses reth-mdbx via ParliaSnapshots table.
clydemeng Jul 8, 2025
5ef6dc6
feat: Began ParliaConsensus (implements HeaderValidator + stub Consen…
clydemeng Jul 9, 2025
80f875f
feat: added the first part of fast-finality support
clydemeng Jul 9, 2025
8bea119
feat: Implemented fast-finality attestation verification and snapshot…
clydemeng Jul 9, 2025
795765b
feat: Epoch-checkpoint handling - parse and save new validator set +…
clydemeng Jul 10, 2025
02e1dbf
feat: proposer double-sign / over-propose rules
clydemeng Jul 10, 2025
2e4324c
feat: add light ut for sign_recently method
clydemeng Jul 11, 2025
c9fed32
feat: header-validator can pass slashing evidence to the executor
clydemeng Jul 11, 2025
47d94fa
feat: Added SystemTxMaker impl + slash_tx constructor (tx_maker_ext.rs)
clydemeng Jul 11, 2025
4a72f8e
feat: Executor ↔ Hook refactor
clydemeng Jul 11, 2025
db51214
feat: DbSnapshotProvider only writes to MDBX at every 1 024-block bou…
clydemeng Jul 11, 2025
496890e
feat: add e2e test
clydemeng Jul 14, 2025
e9f85ca
Merge upstream loocapro/reth-bsc main and resolve dependencies (align…
clydemeng Jul 14, 2025
2115701
feat: merge upsteam code and fix e2e tests
clydemeng Jul 14, 2025
45f7c96
fix: fix cometbft_light_block unit test
clydemeng Jul 15, 2025
19d3b6d
fix: fix flow_hooks.rs
clydemeng Jul 16, 2025
2e3c085
feat: Integrated the Parlia header validator into the node’s consensu…
clydemeng Jul 16, 2025
e5c0d23
feat: test parlia_header_basic_validation
clydemeng Jul 16, 2025
459c662
feat: Genesis snapshot bootstrap
clydemeng Jul 16, 2025
692cada
feat(parlia): clean up snapshot plumbing & build fixes
clydemeng Jul 16, 2025
580f164
feat(parlia): emit checkpoint snapshots via reth snapshot_pool & rest…
clydemeng Jul 16, 2025
06c6314
feat: debug e2e test (30%)
clydemeng Jul 17, 2025
871a429
feat: follow bnb-chain/reth 's code structure
clydemeng Jul 17, 2025
cab89e9
fix: test_simple_bsc_payload_builder
clydemeng Jul 17, 2025
63aca5d
feat: Complete Consensus Core with all the missing pre-execution and …
clydemeng Jul 18, 2025
72225ca
feat: update dependencies
clydemeng Jul 18, 2025
06ff609
feat: Validate our BSC consensus works with real BSC blockchain data
clydemeng Jul 18, 2025
668eaa8
feat: Fullnode Preparation & doc
clydemeng Jul 18, 2025
9f08b9c
fix: attestation tiny bug
clydemeng Jul 18, 2025
275df0e
feat: Add bounds checking for Parlia validator parsing and update BSC…
clydemeng Jul 19, 2025
8691678
Merge upstream/main: Add Pascal, Lorentz, Maxwell hardforks and syste…
clydemeng Jul 19, 2025
9b53aea
fix: fix merge issue
clydemeng Jul 19, 2025
7c7c91e
feat: adding more test
clydemeng Jul 21, 2025
4b51e65
fix: fix Ramanujan fork unit test
clydemeng Jul 21, 2025
0bda57c
fix: fix tests after updating dependencies
clydemeng Jul 22, 2025
db5c7e3
Merge parlia consensus branch onto clean base; resolve executor.rs co…
clydemeng Jul 22, 2025
0a235c5
feat: uses bscBlock type instead of standard eth block type
clydemeng Jul 22, 2025
6fdd6f4
feat: use bscBlock and bscBlockBody in reth-primitives
clydemeng Jul 22, 2025
5cd7e16
network: tolerate legacy empty BSC upgrade-status payload to avoid di…
clydemeng Jul 23, 2025
f7bc138
feat: use correct bsc blob_params
clydemeng Jul 23, 2025
b2e438c
fix: support testnet
clydemeng Jul 31, 2025
1423bab
fix: lack of funds (0) issue
clydemeng Aug 1, 2025
5ecbc7f
feat: add branch status
clydemeng Aug 2, 2025
56fb997
feat: enhance ParliaConsensus
clydemeng Aug 3, 2025
08b59c5
feat: integrate parlia engine into main.rs
clydemeng Aug 3, 2025
2dc982a
feat: validate_block_pre_execution_impl & validate_block_post_executi…
clydemeng Aug 3, 2025
13b1435
feat: implement splitTxs logic
clydemeng Aug 3, 2025
ed21c4a
feat: debug
clydemeng Aug 4, 2025
85cc07c
fix: integrating parlia engine and make it run to testnet's first 20k…
clydemeng Aug 4, 2025
b661615
fix: let rpc server runs with the nodes
clydemeng Aug 4, 2025
c72a9e9
feat: make the parlia_getSnapshot rpc working
clydemeng Aug 4, 2025
ad3a1a6
fix: fix issue
clydemeng Aug 5, 2025
84d7f06
fix: fix header stage running slow issue
clydemeng Aug 5, 2025
e20aa55
fix: refine comments
clydemeng Aug 5, 2025
a296ba1
feat: refine readme
clydemeng Aug 5, 2025
a93a391
fix: allow equal time when comparing to parent block
clydemeng Aug 5, 2025
5066973
fix: fix Unauthorized proposer error
clydemeng Aug 5, 2025
097ce17
fix: fix snapshot content is incorrect
clydemeng Aug 5, 2025
f7a6619
fix: fix lint
clydemeng Aug 5, 2025
8790b0e
Merge branch 'main' into feat_parlia_20250805
jhgdike Aug 6, 2025
a6a56fb
chore: note more tip hash
clydemeng Aug 7, 2025
58f53a1
fix: fix the double sign return errcode
clydemeng Aug 8, 2025
10c482c
fix: Post-4844 support: Conditional field encoding for newer BSC bloc…
clydemeng Aug 8, 2025
c2f7c14
fix: make testnet succeed to live-sync with parlia (#3)
will-2012 Aug 9, 2025
04c6cf9
fix: clean up code (#4)
clydemeng Aug 12, 2025
2482afe
chore: polish snap apply and seal hash func (#5)
will-2012 Aug 13, 2025
0e13604
chore: remove useless code to simply (#7)
will-2012 Aug 14, 2025
3b09500
fix: add validate_cancun_blob_gas (#9)
clydemeng Aug 14, 2025
a8b2251
chore: polish some trivals and adjust execute/parlia/snap skeleton (#10)
will-2012 Aug 15, 2025
90e5674
chore: remove stale test (#11)
will-2012 Aug 15, 2025
b3da595
Merge remote-tracking branch 'origin/main' into polish-parlia-5
will-2012 Aug 15, 2025
7c002c3
chore: remove some useless code
will-2012 Aug 15, 2025
6d105b6
Merge pull request #12 from will-2012/polish-parlia-5
will-2012 Aug 15, 2025
5b64c27
chore: polish check new block workflow (#13)
will-2012 Aug 16, 2025
6aaf438
chore: polish finalize new block workflow (#14)
will-2012 Aug 18, 2025
73f93ba
chore: polish finalize system txs (#15)
will-2012 Aug 18, 2025
f7e7a18
feat: add support of bsc protocol (#16)
MatusKysel Aug 19, 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
1,306 changes: 837 additions & 469 deletions Cargo.lock

Large diffs are not rendered by default.

86 changes: 52 additions & 34 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,39 +13,48 @@ name = "reth-bsc"
path = "src/main.rs"

[dependencies]
reth = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-cli = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-engine-local = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-cli-util = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-discv4 = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b", features = ["test-utils"] }
reth-engine-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-ethereum-forks = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b", features = ["serde"] }
reth-ethereum-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-eth-wire-types = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-evm = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-node-core = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-revm = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-network = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b", features = ["test-utils"] }
reth-network-p2p = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-network-api = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b", features = ["test-utils"] }
reth-network-peers = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-provider = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b", features = ["test-utils"] }
reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-tracing = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-trie-common = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth-trie-db = { git = "https://github.com/paradigmxyz/reth", rev = "6487f0b" }
reth = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-cli = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-cli-commands = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-basic-payload-builder = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-db = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-engine-local = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-chainspec = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-cli-util = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-discv4 = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch", features = ["test-utils"] }
reth-engine-primitives = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-ethereum-forks = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch", features = ["serde"] }
reth-ethereum-payload-builder = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-ethereum-primitives = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-eth-wire = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-eth-wire-types = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-evm = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-evm-ethereum = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
# reth-execution-types = { git = "https://github.com/clydemeng/reth.git", branch = "extend-8e0ff926b" }
reth-transaction-pool = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-node-core = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-node-api = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-node-builder = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-payload-builder = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-revm = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-network = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch", features = ["test-utils"] }
reth-network-p2p = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-network-api = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-node-ethereum = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch", features = ["test-utils"] }
reth-network-peers = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-payload-primitives = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-primitives = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-primitives-traits = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-provider = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch", features = ["test-utils"] }
reth-rpc-eth-api = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-rpc-engine-api = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-rpc-api = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-tracing = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-trie-common = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-trie-db = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-rpc = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }
reth-optimism-rpc = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" }

revm = "27.0.3"

# alloy dependencies
Expand Down Expand Up @@ -86,14 +95,17 @@ lazy_static = "1.4.0"
phf = { version = "0.11", features = ["macros"] }
once_cell = { version = "1.19", default-features = false, features = ["alloc"] }
parity-bytes = { version = "0.1.2", default-features = false }
parking_lot = "0.12"
secp256k1 = { version = "0.28", features = ["global-context", "std", "recovery"] }
serde = { version = "1.0", features = ["derive"], default-features = false }
serde_json = "1.0"
serde_cbor = "0.11"
parking_lot = "0.12"
schnellru = "0.2"
thiserror = "1.0"
tokio = { version = "1.36", features = ["full"] }
tokio-stream = "0.1"
tracing = "0.1"
bit-set = "0.5.3"


# precompiles deps
Expand All @@ -107,10 +119,13 @@ cometbft-light-client = { git = "https://github.com/bnb-chain/greenfield-cometbf
prost = { version = "0.12.6" }

tendermint = { git = "https://github.com/bnb-chain/tendermint-rs-parlia", rev = "8c21ccbd58a174e07eed2c9343e63ccd00f0fbd5", features = ["secp256k1"] }
rand = "0.8"

[target.'cfg(unix)'.dependencies]
tikv-jemalloc-ctl = "0.6"
tikv-jemallocator = { version = "0.6", optional = true }
tempfile = "3.0"
dirs = "5.0"
libc = "0.2"

[features]
Expand Down Expand Up @@ -169,3 +184,6 @@ codegen-units = 16
inherits = "release"
lto = "fat"
codegen-units = 1

[dev-dependencies]
uuid = { version = "1", features = ["v4"] }
2 changes: 2 additions & 0 deletions src/consensus/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ where
}
}

pub mod parlia;

#[cfg(test)]
mod tests {
use super::*;
Expand Down
Loading