Files
lighthouse/beacon_node/network/Cargo.toml
dapplion 9afaaf71df WIP: Gloas full/empty child fork harness + tests + Option B sketch
Harness/tests (foundation):
- make_gloas_block_with_status: produce a gloas block with explicit parent
  payload status (builds FULL vs EMPTY children); returns its data columns.
- TestRig::build_full_empty_fork: G(full) -> A(full) -> B(FULL child), A -> C(EMPTY).
- SimulateConfig::return_no_envelope_for_block: withhold a block's payload envelope.
- Tests: gloas_build_full_empty_fork_shape (shape), gloas_full_empty_children_
  retain_parent_for_payload (happy path), gloas_empty_child_continues_while_
  parent_payload_withheld (red: C must complete, B+A retained while payload withheld).

Option B sketch (untested, mod.rs) -- to be implemented properly:
- continue_child_lookups on a SingleBlock Imported result (children re-evaluate
  on parent block import, before its payload).
- retain a failed lookup while another lookup awaits it (is_awaited).
2026-06-05 00:29:40 +02:00

69 lines
2.2 KiB
TOML

[package]
name = "network"
version = "0.2.0"
authors = ["Sigma Prime <contact@sigmaprime.io>"]
edition = { workspace = true }
[features]
# NOTE: This can be run via cargo build --bin lighthouse --features network/disable-backfill
disable-backfill = []
fork_from_env = ["beacon_chain/fork_from_env"]
fake_crypto = ["bls/fake_crypto", "kzg/fake_crypto"]
portable = ["beacon_chain/portable"]
[dependencies]
alloy-primitives = { workspace = true }
alloy-rlp = { workspace = true }
anyhow = { workspace = true }
async-channel = { workspace = true }
beacon_chain = { workspace = true }
beacon_processor = { workspace = true }
delay_map = { workspace = true }
educe = { workspace = true }
ethereum_ssz = { workspace = true }
execution_layer = { workspace = true }
fixed_bytes = { workspace = true }
fnv = { workspace = true }
futures = { workspace = true }
hex = { workspace = true }
igd-next = { version = "0.16", features = ["aio_tokio"] }
itertools = { workspace = true }
lighthouse_network = { workspace = true }
logging = { workspace = true }
lru_cache = { workspace = true }
metrics = { workspace = true }
operation_pool = { workspace = true }
parking_lot = { workspace = true }
rand = { workspace = true }
slot_clock = { workspace = true }
smallvec = { workspace = true }
ssz_types = { workspace = true }
store = { workspace = true }
strum = { workspace = true }
task_executor = { workspace = true }
tokio = { workspace = true }
tokio-stream = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
typenum = { workspace = true }
types = { workspace = true }
[dev-dependencies]
arbitrary = { workspace = true }
beacon_chain = { workspace = true, features = ["arbitrary"] }
bls = { workspace = true }
eth2 = { workspace = true }
eth2_network_config = { workspace = true }
genesis = { workspace = true }
k256 = "0.13.4"
kzg = { workspace = true }
libp2p = { workspace = true }
matches = "0.1.8"
paste = { workspace = true }
proto_array = { workspace = true }
rand_08 = { package = "rand", version = "0.8.5" }
rand_chacha = "0.9.0"
rand_chacha_03 = { package = "rand_chacha", version = "0.3.1" }
serde_json = { workspace = true }
types = { workspace = true, features = ["arbitrary"] }