Skip to main content

Crate bal_source

Crate bal_source 

Source
Expand description

Source abstraction: the archive never talks to a node directly, it talks to a BalSource (blocks + BALs) and a StateSource (Merkle proofs for bootstrap). Implementations: JSON-RPC (here), Engine API and in-process (later crates). Which of these actually work is the day-0 question; the archive does not care.

Re-exports§

pub use proof::check_requested;
pub use proof::verify_account_proof;
pub use proof::ProofError;

Modules§

proof
Merkle-proof verification for bootstrap values. This is what turns an eth_getProof answer from “the RPC said so” into a value anchored to a block header’s state_root — promise #2 for the only records that do not come from a BAL.

Structs§

AccountProof
eth_getProof response: account leaf plus any number of storage proofs.
Fallback
Primary for the chain, backup for old data.
Header
The parts of a block header the archive needs. Kept minimal on purpose: the full Glamsterdam header layout is not frozen, and only these fields participate in verification.
JsonRpcSource
BalSource + StateSource over plain JSON-RPC. One request per call; no batching, no retries — callers own that policy.
ProbeReport
Day-0 findings for one endpoint. Printed by balq probe.
SourcedBlock
A block as the archive consumes it: header plus decoded, unverified BAL. Verification against header.block_access_list_hash is the archive’s job so that no source implementation can skip it.
StorageProof
One slot’s proof against an account’s storage root.

Enums§

BalProbe
Outcome of fetching one block’s BAL and checking it against its header.
SourceError
What can go wrong between the archive and a node.

Constants§

BAL_HASH_FIELD
Header field carrying keccak(rlp(bal)) on the block object.
BAL_METHOD
JSON-RPC method serving the BAL body (execution-apis).

Traits§

BalSource
Where blocks and their BALs come from.
StateSource
Where Merkle proofs come from.

Type Aliases§

Result
Result of source operations.