| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Ouroboros.Consensus.Network.LeiosFetch
Description
Running LeiosFetch as a node-to-node mini-protocol.
Documentation
leiosFetchPipelineDepth ∷ Int Source #
The most LeiosFetch requests to leave outstanding on one connection: enough
to fetch the five closures maxLeiosFetchIngressBytes allows for, with some
headroom. A 12 MB closure takes 24 requests of
maxLeiosTxsRequestBytesSize,
or a few more, since a request cannot split a transaction.
TODO Revisit once the client requests transactions.
maxLeiosFetchIngressBytes ∷ Int Source #
The most reply bytes the node's client may have requested and not yet
consumed on one connection: five endorser blocks' closures of the largest
size, 12 MB each, CIP-0164's S_EB-tx. So a big-ledger peer can be asked
for several whole closures at once, while an adversarial peer still cannot
drown the node.
The client must never leave more requested bytes outstanding than this, else
the mux tears the connection down (Network.Mux.Ingress's
IngressQueueOverRun).
TODO Make it the constitution's guardrail on maxEndorserBlockTxsSize, as for
maxEndorserBlockBytesSize.
TODO The ledger's example Dijkstra genesis, which this repository's tools and
test genesis copy, sets maxEndorserBlockTxsSize to 12 MiB rather than
12 MB. Remove this note once it corrects that.