chore: add msrv to manifests, add and use workspace.package (#3006)

This commit is contained in:
DaniPopes
2023-06-06 05:45:44 +02:00
committed by GitHub
parent adf4328cec
commit 171166e84a
48 changed files with 306 additions and 300 deletions

1
.clippy.toml Normal file
View File

@ -0,0 +1 @@
msrv = "1.70"

View File

@ -43,7 +43,7 @@ members = [
"crates/tasks",
"crates/transaction-pool",
"crates/trie",
"testing/ef-tests"
"testing/ef-tests",
]
default-members = ["bin/reth"]
@ -51,6 +51,13 @@ default-members = ["bin/reth"]
# https://doc.rust-lang.org/edition-guide/rust-2021/default-cargo-resolver.html
resolver = "2"
[workspace.package]
edition = "2021"
rust-version = "1.70" # Remember to update .clippy.toml and README.md
license = "MIT OR Apache-2.0"
homepage = "https://paradigmxyz.github.io/reth"
repository = "https://github.com/paradigmxyz/reth"
# Like release, but with full debug symbols. Useful for e.g. `perf`.
[profile.debug-fast]
inherits = "release"
@ -66,6 +73,5 @@ incremental = false
# patched for quantity U256 responses <https://github.com/recmo/uint/issues/224>
ruint = { git = "https://github.com/paradigmxyz/uint" }
[workspace.dependencies]
tracing = "^0.1.0"

View File

@ -23,6 +23,7 @@ Reth (short for Rust Ethereum, [pronunciation](https://twitter.com/kelvinfichter
As a full Ethereum node, Reth allows users to connect to the Ethereum network and interact with the Ethereum blockchain. This includes sending and receiving transactions/logs/traces, as well as accessing and interacting with smart contracts. Building a successful Ethereum node requires creating a high-quality implementation that is both secure and efficient, as well as being easy to use on consumer hardware. It also requires building a strong community of contributors who can help support and improve the software.
More concretely, our goals are:
1. **Modularity**: Every component of Reth is built to be used as a library: well-tested, heavily documented and benchmarked. We envision that developers will import the node's crates, mix and match, and innovate on top of them. Examples of such usage include but are not limited to spinning up standalone P2P networks, talking directly to a node's database, or "unbundling" the node into the components you need. To achieve that, we are licensing Reth under the Apache/MIT permissive license. You can learn more about the project's components [here](./docs/repo/layout.md).
2. **Performance**: Reth aims to be fast, so we used Rust and the [Erigon staged-sync](https://erigon.substack.com/p/erigon-stage-sync-and-control-flows) node architecture. We also use our Ethereum libraries (including [ethers-rs](https://github.com/gakonst/ethers-rs/) and [revm](https://github.com/bluealloy/revm/)) which weve battle-tested and optimized via [Foundry](https://github.com/foundry-rs/foundry/).
3. **Free for anyone to use any way they want**: Reth is free open source software, built for the community, by the community. By licensing the software under the Apache/MIT license, we want developers to use it without being bound by business licenses, or having to think about the implications of GPL-like licenses.
@ -30,7 +31,6 @@ More concretely, our goals are:
5. **Support as many EVM chains as possible**: We aspire that Reth can full-sync not only Ethereum, but also other chains like Optimism, Polygon, BNB Smart Chain, and more. If you're working on any of these projects, please reach out.
6. **Configurability**: We want to solve for node operators that care about fast historical queries, but also for hobbyists who cannot operate on large hardware. We also want to support teams and individuals who want both sync from genesis and via "fast sync". We envision that Reth will be configurable enough and provide configurable "profiles" for the tradeoffs that each team faces.
## Status
The project is not ready for use. We hope to have full sync implemented sometime in Q1 2023, followed by optimizations. In the meantime, we're working on making sure every crate of the repository is well documented, abstracted and tested.
@ -43,9 +43,9 @@ See the [Reth Book](https://paradigmxyz.github.io/reth) for instructions on how
### Build & Test
Rust minimum required version to build this project is 1.70.0 published 01.06.2023.
The Minimum Supported Rust Version (MSRV) of this project is [1.70.0](https://blog.rust-lang.org/2023/06/01/Rust-1.70.0.html).
See the book for detailed instructions on how to build from [source](https://paradigmxyz.github.io/reth/installation/source.html).
See the book for detailed instructions on how to [build from source](https://paradigmxyz.github.io/reth/installation/source.html).
To fully test Reth, you will need to have [Geth installed](https://geth.ethereum.org/docs/getting-started/installing-geth), but it is possible to run a subset of tests without Geth.
@ -60,10 +60,10 @@ Next, run the tests:
```sh
# Without Geth
cargo test --all
cargo test --workspace
# With Geth
cargo test --all --features geth-tests
cargo test --workspace --features geth-tests
```
We recommend using [`cargo nextest`](https://nexte.st/) to speed up testing. With nextest installed, simply substitute `cargo test` with `cargo nextest run`.

View File

@ -1,11 +1,11 @@
[package]
name = "reth"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
build = "build.rs"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[dependencies]
# reth
@ -17,7 +17,7 @@ reth-provider = { path = "../../crates/storage/provider", features = ["test-util
reth-revm = { path = "../../crates/revm" }
reth-revm-inspectors = { path = "../../crates/revm/revm-inspectors" }
reth-staged-sync = { path = "../../crates/staged-sync" }
reth-stages = { path = "../../crates/stages"}
reth-stages = { path = "../../crates/stages" }
reth-interfaces = { path = "../../crates/interfaces", features = ["test-utils"] }
reth-transaction-pool = { path = "../../crates/transaction-pool" }
reth-beacon-consensus = { path = "../../crates/consensus/beacon" }
@ -40,11 +40,7 @@ reth-metrics = { path = "../../crates/metrics" }
jemallocator = { version = "0.5.0", optional = true }
# crypto
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery",
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery"] }
# tracing
tracing = { workspace = true }
@ -56,7 +52,7 @@ serde_json = "1.0"
shellexpand = "3.0.0"
dirs-next = "2.0.0"
confy = "0.5"
toml = {version = "0.7", features = ["display"]}
toml = { version = "0.7", features = ["display"] }
# metrics
metrics-exporter-prometheus = "0.11.0"

View File

@ -1,10 +1,11 @@
[package]
name = "reth-blockchain-tree"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[package.metadata.cargo-udeps.ignore]
normal = [
@ -19,9 +20,8 @@ reth-interfaces = { path = "../interfaces" }
reth-db = { path = "../storage/db" }
reth-provider = { path = "../storage/provider" }
# common
parking_lot = { version = "0.12"}
parking_lot = { version = "0.12" }
lru = "0.10"
tracing = { workspace = true }
@ -29,12 +29,11 @@ tracing = { workspace = true }
aquamarine = "0.3.0"
linked_hash_set = "0.1.4"
[dev-dependencies]
reth-db = { path = "../storage/db", features = ["test-utils"] }
reth-interfaces = { path = "../interfaces", features = ["test-utils"] }
reth-primitives = { path = "../primitives", features = ["test-utils"] }
reth-provider = { path = "../storage/provider", features = ["test-utils"] }
reth-provider = { path = "../storage/provider", features = ["test-utils"] }
parking_lot = "0.12"
assert_matches = "1.5"
tokio = { version = "1", features = ["macros", "sync"] }

View File

@ -1,10 +1,11 @@
[package]
name = "reth-config"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[dependencies]
# reth
@ -18,13 +19,8 @@ serde = "1.0"
serde_json = "1.0.91"
#crypto
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery",
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery"] }
confy = "0.5"
tempfile = "3.4"

View File

@ -1,10 +1,11 @@
[package]
name = "reth-auto-seal-consensus"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "A consensus impl for local testing purposes"
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-beacon-consensus"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[dependencies]
# reth

View File

@ -1,10 +1,11 @@
[package]
name = "reth-consensus-common"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[dependencies]
# reth
@ -12,7 +13,6 @@ reth-primitives = { path = "../../primitives" }
reth-interfaces = { path = "../../interfaces" }
reth-provider = { path = "../../storage/provider" }
[dev-dependencies]
reth-interfaces = { path = "../../interfaces", features = ["test-utils"] }
reth-provider = { path = "../../storage/provider", features = ["test-utils"] }

View File

@ -1,10 +1,11 @@
[package]
name = "reth-interfaces"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[dependencies]
reth-codecs = { path = "../storage/codecs" }

View File

@ -1,9 +1,11 @@
[package]
name = "reth-metrics"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "reth metrics utilities"
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-metrics-derive"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[lib]
proc-macro = true

View File

@ -1,9 +1,11 @@
[package]
name = "reth-net-common"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Types shared across network code
"""

View File

@ -1,10 +1,11 @@
[package]
name = "reth-discv4"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Ethereum network discovery
"""
@ -19,15 +20,8 @@ reth-net-nat = { path = "../nat" }
# ethereum
discv5 = { git = "https://github.com/sigp/discv5" }
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery",
"serde"
] }
enr = { version = "0.8.1", default-features = false, features = [
"rust-secp256k1",
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery", "serde"] }
enr = { version = "0.8.1", default-features = false, features = ["rust-secp256k1"] }
# async/futures
tokio = { version = "1", features = ["io-util", "net", "time"] }

View File

@ -1,10 +1,11 @@
[package]
name = "reth-dns-discovery"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Support for EIP-1459 Node Discovery via DNS"
[dependencies]
@ -14,12 +15,7 @@ reth-net-common = { path = "../common" }
reth-rlp = { path = "../../rlp" }
# ethereum
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery",
"serde"
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery", "serde"] }
enr = { version = "0.8.1", default-features = false, features = ["rust-secp256k1"] }
# async/futures

View File

@ -1,10 +1,11 @@
[package]
name = "reth-downloaders"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Implementations of various block downloaders"
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-ecies"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[dependencies]
reth-rlp = { path = "../../rlp", features = ["derive", "ethereum-types", "std"] }

View File

@ -2,10 +2,11 @@
name = "reth-eth-wire"
description = "Implements the eth/64 and eth/65 P2P protocols"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[dependencies]
bytes = "1.4"
@ -16,11 +17,17 @@ serde = { version = "1", optional = true }
reth-codecs = { path = "../../storage/codecs" }
reth-primitives = { path = "../../primitives" }
reth-ecies = { path = "../ecies" }
reth-rlp = { path = "../../rlp", features = ["alloc", "derive", "std", "ethereum-types", "smol_str"] }
reth-rlp = { path = "../../rlp", features = [
"alloc",
"derive",
"std",
"ethereum-types",
"smol_str",
] }
reth-metrics = { path = "../../metrics" }
# used for Chain and builders
ethers-core = { version = "2.0.7", default-features = false}
ethers-core = { version = "2.0.7", default-features = false }
tokio = { version = "1.21.2", features = ["full"] }
tokio-util = { version = "0.7.4", features = ["io", "codec"] }
@ -40,7 +47,7 @@ proptest-derive = { version = "0.3", optional = true }
[dev-dependencies]
reth-primitives = { path = "../../primitives", features = ["arbitrary"] }
reth-tracing = { path = "../../tracing" }
ethers-core = { version = "2.0.7", default-features = false}
ethers-core = { version = "2.0.7", default-features = false }
test-fuzz = "3.0.4"
tokio-util = { version = "0.7.4", features = ["io", "codec"] }

View File

@ -1,9 +1,11 @@
[package]
name = "reth-net-nat"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Helpers for working around NAT
"""
@ -13,10 +15,7 @@ Helpers for working around NAT
# nat
public-ip = "0.2"
## fork of rust-igd with ipv6 support: https://github.com/sbstp/rust-igd/issues/47
igd = { git = "https://github.com/stevefan1999-personal/rust-igd", features = [
"aio",
"tokio1",
] }
igd = { git = "https://github.com/stevefan1999-personal/rust-igd", features = ["aio", "tokio1"] }
# misc
tracing = { workspace = true }

View File

@ -1,10 +1,11 @@
[package]
name = "reth-network-api"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Network interfaces"
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-network"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Ethereum network support
"""
@ -12,7 +13,7 @@ Ethereum network support
[package.metadata.cargo-udeps.ignore]
normal = [
# Used for diagrams in docs
"aquamarine"
"aquamarine",
]
[dependencies]
@ -29,7 +30,7 @@ reth-rlp = { path = "../../rlp" }
reth-rlp-derive = { path = "../../rlp/rlp-derive" }
reth-tasks = { path = "../../tasks" }
reth-transaction-pool = { path = "../../transaction-pool" }
reth-provider = { path = "../../storage/provider"}
reth-provider = { path = "../../storage/provider" }
reth-metrics = { path = "../../metrics", features = ["common"] }
reth-rpc-types = { path = "../../rpc/rpc-types" }
@ -56,11 +57,7 @@ async-trait = "0.1"
linked_hash_set = "0.1"
linked-hash-map = "0.5.6"
rand = "0.8"
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery",
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery"] }
enr = { version = "0.8.1", features = ["rust-secp256k1"], optional = true }
ethers-core = { version = "2.0.7", default-features = false, optional = true }
@ -79,10 +76,10 @@ reth-provider = { path = "../../storage/provider", features = ["test-utils"] }
reth-tracing = { path = "../../tracing" }
reth-transaction-pool = { path = "../../transaction-pool", features = ["test-utils"] }
ethers-core = { version = "2.0.7", default-features = false}
ethers-providers = {version = "2.0.7", default-features = false }
ethers-signers = {version = "2.0.7", default-features = false }
ethers-middleware = {version = "2.0.7", default-features = false }
ethers-core = { version = "2.0.7", default-features = false }
ethers-providers = { version = "2.0.7", default-features = false }
ethers-signers = { version = "2.0.7", default-features = false }
ethers-middleware = { version = "2.0.7", default-features = false }
enr = { version = "0.8.1", features = ["serde", "rust-secp256k1"] }
@ -95,4 +92,4 @@ serial_test = "0.10"
default = ["serde"]
serde = ["dep:serde", "dep:humantime-serde", "secp256k1/serde", "enr?/serde", "dep:serde_json"]
test-utils = ["reth-provider/test-utils", "dep:enr", "dep:ethers-core", "dep:tempfile"]
geth-tests = []
geth-tests = []

View File

@ -1,10 +1,11 @@
[package]
name = "reth-basic-payload-builder"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "A basic payload builder for reth that uses the txpool API to build payloads."
[dependencies]
@ -27,4 +28,4 @@ futures-core = "0.3"
futures-util = "0.3"
## misc
tracing = { workspace = true }
tracing = { workspace = true }

View File

@ -1,10 +1,11 @@
[package]
name = "reth-payload-builder"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "reth payload builder"
[dependencies]
@ -30,6 +31,5 @@ sha2 = { version = "0.10", default-features = false }
tracing = { workspace = true }
hashbrown = "0.13"
[features]
test-utils = []
test-utils = []

View File

@ -1,10 +1,11 @@
[package]
name = "reth-primitives"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Commonly used types in reth."
[dependencies]
@ -22,9 +23,7 @@ crunchy = { version = "0.2.2", default-features = false, features = ["limit_256"
ruint = { version = "1.7.0", features = ["primitive-types", "rlp"] }
# Bloom
fixed-hash = { version = "0.8", default-features = false, features = [
"rustc-hex",
] }
fixed-hash = { version = "0.8", default-features = false, features = ["rustc-hex"] }
# crypto
secp256k1 = { version = "0.27.0", default-features = false, features = [
@ -85,20 +84,11 @@ proptest-derive = "0.3"
# https://github.com/paradigmxyz/reth/pull/177#discussion_r1021172198
secp256k1 = "0.27.0"
criterion = "0.4.0"
pprof = { version = "0.11", features = [
"flamegraph",
"frame-pointer",
"criterion",
] }
pprof = { version = "0.11", features = ["flamegraph", "frame-pointer", "criterion"] }
[features]
default = []
arbitrary = [
"revm-primitives/arbitrary",
"dep:arbitrary",
"dep:proptest",
"dep:proptest-derive",
]
arbitrary = ["revm-primitives/arbitrary", "dep:arbitrary", "dep:proptest", "dep:proptest-derive"]
test-utils = []
[[bench]]

View File

@ -1,9 +1,11 @@
[package]
name = "reth-revm"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "reth specific revm utilities"
[dependencies]

View File

@ -1,9 +1,11 @@
[package]
name = "reth-revm-inspectors"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "revm inspector implementations used by reth"
[dependencies]
@ -15,4 +17,4 @@ revm = { version = "3" }
# remove from reth and reexport from revm
hashbrown = "0.13"
serde = { version = "1.0", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }

View File

@ -1,9 +1,11 @@
[package]
name = "reth-revm-primitives"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "core reth specific revm utilities"
[dependencies]

View File

@ -1,10 +1,12 @@
[package]
name = "reth-rlp"
version = "0.1.2"
edition = "2021"
edition.workspace = true
rust-version.workspace = true
license = "Apache-2.0"
description = "Fast RLP serialization library"
repository = "https://github.com/paradigmxyz/reth"
homepage.workspace = true
repository.workspace = true
[dependencies]
arrayvec = { version = "0.7", default-features = false }
@ -22,7 +24,7 @@ reth-rlp = { path = ".", package = "reth-rlp", features = [
"std",
"ethnum",
"ethereum-types",
"smol_str"
"smol_str",
] }
criterion = "0.4.0"
hex-literal = "0.3"

View File

@ -2,9 +2,11 @@
name = "reth-rlp-derive"
version = "0.1.1"
license = "Apache-2.0"
edition = "2021"
edition.workspace = true
rust-version.workspace = true
description = "Procedural macros for reth-rlp"
repository = "https://github.com/paradigmxyz/reth"
homepage.workspace = true
repository.workspace = true
[lib]
proc-macro = true

View File

@ -1,10 +1,11 @@
[package]
name = "reth-ipc"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
IPC support for reth
"""

View File

@ -1,10 +1,11 @@
[package]
name = "reth-rpc-api"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Reth RPC interfaces
"""

View File

@ -1,9 +1,11 @@
[package]
name = "reth-rpc-builder"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Helpers for configuring RPC"
[dependencies]

View File

@ -1,9 +1,11 @@
[package]
name = "reth-rpc-engine-api"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Implementation of Engine API"
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-rpc-types"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Reth RPC types
"""
@ -32,4 +33,4 @@ reth-interfaces = { path = "../../interfaces", features = ["test-utils"] }
# misc
rand = "0.8"
assert_matches = "1.5"
assert_matches = "1.5"

View File

@ -1,10 +1,11 @@
[package]
name = "reth-rpc"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Reth RPC implementation
"""
@ -16,20 +17,21 @@ reth-rpc-api = { path = "../rpc-api" }
reth-rlp = { path = "../../rlp" }
reth-rpc-types = { path = "../rpc-types" }
reth-provider = { path = "../../storage/provider", features = ["test-utils"] }
reth-transaction-pool = { path = "../../transaction-pool", features = [
"test-utils",
] }
reth-transaction-pool = { path = "../../transaction-pool", features = ["test-utils"] }
reth-network-api = { path = "../../net/network-api", features = ["test-utils"] }
reth-rpc-engine-api = { path = "../rpc-engine-api" }
reth-revm = { path = "../../revm" }
reth-tasks = { path = "../../tasks" }
# eth
revm = { version = "3", features = ["optional_block_gas_limit", "optional_eip3607", "optional_no_base_fee"] }
ethers-core = { version = "2.0.7", features = ["eip712"]}
revm = { version = "3", features = [
"optional_block_gas_limit",
"optional_eip3607",
"optional_no_base_fee",
] }
ethers-core = { version = "2.0.7", features = ["eip712"] }
revm-primitives = { version = "1.1", features = ["serde"] }
# rpc
jsonrpsee = { version = "0.18" }
http = "0.2.8"
@ -46,11 +48,7 @@ tokio-util = "0.7"
pin-project = "1.0"
bytes = "1.4"
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery"
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "1.0"

View File

@ -1,15 +1,16 @@
[package]
name = "reth-staged-sync"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Puts together all the Reth stages in a unified abstraction"
[dependencies]
# reth
reth-db = {path = "../../crates/storage/db", features = ["mdbx", "test-utils"] }
reth-db = { path = "../../crates/storage/db", features = ["mdbx", "test-utils"] }
reth-discv4 = { path = "../../crates/net/discv4" }
reth-network-api = { path = "../../crates/net/network-api" }
reth-network = { path = "../../crates/net/network", features = ["serde"] }
@ -31,11 +32,7 @@ tracing = { workspace = true }
# crypto
rand = { version = "0.8", optional = true }
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery",
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery"] }
# errors
thiserror = "1"
@ -44,14 +41,22 @@ thiserror = "1"
enr = { version = "0.8.1", features = ["serde", "rust-secp256k1"], optional = true }
# ethers
ethers-core = { version = "2.0.7", default-features = false, optional = true}
ethers-providers = { version = "2.0.7", features = ["ws"], default-features = false, optional = true }
ethers-core = { version = "2.0.7", default-features = false, optional = true }
ethers-providers = { version = "2.0.7", features = [
"ws",
], default-features = false, optional = true }
ethers-middleware = { version = "2.0.7", default-features = false, optional = true }
ethers-signers = { version = "2.0.7", default-features = false, optional = true }
# async / futures
async-trait = { version = "0.1", optional = true }
tokio = { version = "1", features = ["io-util", "net", "macros", "rt-multi-thread", "time"], optional = true }
tokio = { version = "1", features = [
"io-util",
"net",
"macros",
"rt-multi-thread",
"time",
], optional = true }
# misc
hex = { version = "0.4", optional = true }
@ -70,11 +75,7 @@ futures = "0.3"
tokio = { version = "1", features = ["io-util", "net", "macros", "rt-multi-thread", "time"] }
# crypto
secp256k1 = { version = "0.27.0", features = [
"global-context",
"rand-std",
"recovery",
] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std", "recovery"] }
confy = "0.5"
@ -93,6 +94,6 @@ test-utils = [
"dep:ethers-signers",
"dep:ethers-providers",
"dep:ethers-middleware",
"dep:async-trait"
"dep:async-trait",
]
geth-tests = []

View File

@ -1,10 +1,11 @@
[package]
name = "reth-stages"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Staged syncing primitives used in reth."
[package.metadata.cargo-udeps.ignore]
@ -46,7 +47,7 @@ reth-primitives = { path = "../primitives", features = ["arbitrary"] }
reth-db = { path = "../storage/db", features = ["test-utils", "mdbx"] }
reth-interfaces = { path = "../interfaces", features = ["test-utils"] }
reth-downloaders = { path = "../net/downloaders" }
reth-eth-wire = { path = "../net/eth-wire" } # TODO(onbjerg): We only need this for [BlockBody]
reth-eth-wire = { path = "../net/eth-wire" } # TODO(onbjerg): We only need this for [BlockBody]
reth-blockchain-tree = { path = "../blockchain-tree" }
reth-rlp = { path = "../rlp" }
reth-revm = { path = "../revm" }
@ -59,17 +60,12 @@ rand = "0.8.5"
paste = "1.0"
# Stage benchmarks
pprof = { version = "0.11", features = [
"flamegraph",
"frame-pointer",
"criterion",
] }
pprof = { version = "0.11", features = ["flamegraph", "frame-pointer", "criterion"] }
criterion = { version = "0.4.0", features = ["async_futures"] }
[features]
test-utils = []
[[bench]]
name = "criterion"
harness = false

View File

@ -1,10 +1,11 @@
[package]
name = "reth-codecs"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[features]
default = ["compact"]
@ -12,13 +13,7 @@ compact = ["codecs-derive/compact"]
scale = ["codecs-derive/scale"]
postcard = ["codecs-derive/postcard"]
no_codec = ["codecs-derive/no_codec"]
arbitrary = [
"revm-primitives/arbitrary",
"dep:arbitrary",
"dep:proptest",
"dep:proptest-derive",
]
arbitrary = ["revm-primitives/arbitrary", "dep:arbitrary", "dep:proptest", "dep:proptest-derive"]
[dependencies]
bytes = "1.4"
@ -31,10 +26,7 @@ proptest = { version = "1.0", optional = true }
proptest-derive = { version = "0.3", optional = true }
[dev-dependencies]
revm-primitives = { version = "1.1", features = [
"serde",
"arbitrary"
] }
revm-primitives = { version = "1.1", features = ["serde", "arbitrary"] }
serde = "1.0"
modular-bitfield = "0.11.2"

View File

@ -1,9 +1,11 @@
[package]
name = "codecs-derive"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
readme = "../README.md"
[package.metadata.cargo-udeps.ignore]
@ -11,7 +13,7 @@ normal = [
# Used in proc macros
"serde",
# Used in proc macros
"parity-scale-codec"
"parity-scale-codec",
]
[lib]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-db"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Staged syncing primitives used in reth."
[dependencies]
@ -12,7 +13,7 @@ description = "Staged syncing primitives used in reth."
reth-primitives = { path = "../../primitives" }
reth-interfaces = { path = "../../interfaces" }
reth-codecs = { path = "../codecs" }
reth-libmdbx = { path = "../libmdbx-rs", optional = true , features = ["return-borrowed"] }
reth-libmdbx = { path = "../libmdbx-rs", optional = true, features = ["return-borrowed"] }
reth-metrics = { path = "../../metrics" }
# codecs
@ -44,7 +45,7 @@ proptest-derive = { version = "0.3", optional = true }
[dev-dependencies]
# reth libs with arbitrary
reth-primitives = { path = "../../primitives", features = ["arbitrary"]}
reth-primitives = { path = "../../primitives", features = ["arbitrary"] }
reth-codecs = { path = "../codecs", features = ["arbitrary"] }
reth-interfaces = { path = "../../interfaces", features = ["bench"] }
@ -70,7 +71,6 @@ serde_json = "1.0"
paste = "1.0"
[features]
default = ["mdbx"]
test-utils = ["tempfile", "arbitrary"]

View File

@ -1,11 +1,12 @@
[package]
name = "reth-libmdbx"
version = "0.1.6"
edition = "2021"
edition.workspace = true
rust-version.workspace = true
license = "Apache-2.0"
description = "Idiomatic and safe MDBX wrapper with good licence"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
homepage.workspace = true
repository.workspace = true
[lib]
name = "reth_libmdbx"

View File

@ -1,11 +1,12 @@
[package]
name = "reth-mdbx-sys"
version = "0.12.6-0"
edition = "2021"
edition.workspace = true
rust-version.workspace = true
license = "Apache-2.0"
description = "Rust bindings for libmdbx with good licence."
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
homepage.workspace = true
repository.workspace = true
[lib]
name = "reth_mdbx_sys"

View File

@ -1,10 +1,11 @@
[package]
name = "reth-provider"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Reth storage provider."
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-tasks"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Task management"
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-tracing"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "tracing helpers"
[dependencies]

View File

@ -1,10 +1,11 @@
[package]
name = "reth-transaction-pool"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Transaction pool implementation
"""
@ -12,12 +13,12 @@ Transaction pool implementation
[package.metadata.cargo-udeps.ignore]
normal = [
# Used for diagrams in docs
"aquamarine"
"aquamarine",
]
[dependencies]
# reth
reth-primitives = { path = "../primitives" }
reth-primitives = { path = "../primitives" }
reth-provider = { path = "../storage/provider" }
reth-interfaces = { path = "../interfaces" }
reth-rlp = { path = "../rlp" }
@ -46,7 +47,6 @@ paste = { version = "1.0", optional = true }
paste = "1.0"
rand = "0.8"
[features]
default = ["serde"]
serde = ["dep:serde"]

View File

@ -1,18 +1,19 @@
[package]
name = "reth-trie"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = """
Merkle trie implementation
"""
[dependencies]
# reth
reth-primitives = { path = "../primitives" }
reth-interfaces = { path = "../interfaces" }
reth-primitives = { path = "../primitives" }
reth-interfaces = { path = "../interfaces" }
reth-rlp = { path = "../rlp" }
reth-db = { path = "../storage/db" }
@ -32,7 +33,7 @@ triehash = { version = "0.8", optional = true }
[dev-dependencies]
# reth
reth-primitives = { path = "../primitives", features = ["test-utils", "arbitrary"] }
reth-primitives = { path = "../primitives", features = ["test-utils", "arbitrary"] }
reth-db = { path = "../storage/db", features = ["test-utils"] }
reth-provider = { path = "../storage/provider" }

View File

@ -1,11 +1,12 @@
[package]
name = "ef-tests"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/reth"
readme = "README.md"
description = "Staged syncing primitives used in reth."
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
[features]
ef-tests = []
@ -22,4 +23,4 @@ tokio = "1.28.1"
walkdir = "2.3.3"
serde = "1.0.163"
serde_json = "1.0.96"
thiserror = "1.0.40"
thiserror = "1.0.40"