-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
78 lines (73 loc) · 3.22 KB
/
Copy pathCargo.toml
File metadata and controls
78 lines (73 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[workspace]
members = [".", "sync", "validation", "state", "mempool", "api", "mining", "p2p", "chain", "store"]
exclude = ["addons/fastsync", "addons/indexer"]
[package]
name = "ergo-node-rust"
version = "0.7.5"
edition = "2021"
license = "MIT"
description = "Full Ergo blockchain node in Rust"
[features]
default = ["jemalloc"]
mimalloc = ["dep:mimalloc"]
jemalloc = ["dep:tikv-jemallocator", "dep:tikv-jemalloc-ctl"]
# Enables jemalloc's built-in heap profiler. Opt-in build
# (`--no-default-features --features jemalloc-prof`) for field
# profiling with jeprof. Activate at runtime via
# `_RJEM_MALLOC_CONF=prof:true,prof_prefix:/var/log/.../jeprof,...`.
jemalloc-prof = ["jemalloc", "tikv-jemallocator/profiling"]
[dependencies]
mimalloc = { version = "0.1", optional = true }
tikv-jemallocator = { version = "0.6", optional = true }
tikv-jemalloc-ctl = { version = "0.6", optional = true, features = ["stats"] }
enr-chain = { path = "chain" }
enr-p2p = { path = "p2p" }
enr-state = { path = "state" }
enr-store = { path = "store" }
ergo-api = { path = "api" }
ergo-sync = { path = "sync" }
ergo_avltree_rust = "0.1.1"
ergo-chain-types = { git = "https://github.com/mwaddip/sigma-rust.git", rev = "f76db922" }
ergo-lib = { git = "https://github.com/mwaddip/sigma-rust.git", rev = "f76db922" }
ergo-mempool = { path = "mempool" }
ergo-mining = { path = "mining" }
ergo-validation = { path = "validation" }
bytes = "1"
clap = { version = "4", features = ["derive"] }
hex = "0.4"
serde = { version = "1", features = ["derive"] }
sigma-ser = { git = "https://github.com/mwaddip/sigma-rust.git", rev = "f76db922" }
toml = "0.8"
tracing = "0.1"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "signal"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
lru = "0.16"
anyhow = "1"
parking_lot = "0.12"
redb = "4"
thiserror = "2"
[dev-dependencies]
sigma-ser = { git = "https://github.com/mwaddip/sigma-rust.git", rev = "f76db922" }
serde_json = "1"
tempfile = "3"
k256 = { version = "0.13.1", features = ["arithmetic"] }
secp256k1 = "0.29"
# Route EVERY ergo_avltree_rust reference — our store/persistence deps AND
# sigma-rust's transitive dep in ergotree-interpreter (the consensus AvlTree
# script-op eval path) — to our fork. [patch] at the build root covers
# transitive deps, so interpreter and store both run the fork: one copy.
#
# Payoff: crates.io 0.1.1's AVL verifier PANICS on degenerate/malformed proofs
# (bad bytes, negative keyLength, wrong value length) — a crafted block's
# degenerate proof would panic block/digest validation instead of cleanly
# rejecting (consensus-robustness / DoS). The fork returns Err there; this puts
# Err-not-panic on the eval path, not just the store.
#
# Rev 2fc88d83 = PR #16: AVLTree::new keeps `impl Fn` (interpreter's bare
# closures compile UNCHANGED — no sigma edit) and adds with_resolver(Resolver)
# for our pre-built Arc resolvers. Node-side cost: our Arc call sites switch
# new → with_resolver (closure sites stay on new). Single source of the fork
# rev: bump HERE (members declare the plain "0.1.1"). Coordinate rev with the
# sigma-rust session (fork main / PR #16).
[patch.crates-io]
ergo_avltree_rust = { git = "https://github.com/mwaddip/ergo_avltree_rust.git", rev = "2fc88d83" }