|
| 1 | +--- |
| 2 | +title: Network Team Update |
| 3 | +slug: 2025-02-19-network |
| 4 | +authors: [coot] |
| 5 | +tags: [network] |
| 6 | +hide_table_of_contents: false |
| 7 | +--- |
| 8 | + |
| 9 | +## Overview of [sprint 80][sprint-80] & [sprint 81][sprint-81] |
| 10 | + |
| 11 | +### Current workstream |
| 12 | + |
| 13 | +We decided to hold some PRs in favour of some others to simplify the merging |
| 14 | +process. Here's a dependency graph for PRs on which we're working on. The |
| 15 | +[**Extensible Ouroboros Network Diffusion Stack**][ouroboros-network#5016] PR |
| 16 | +was the largest in our queue. |
| 17 | + |
| 18 | +```mermaid |
| 19 | +flowchart TD; |
| 20 | + SRV[SRV implementation]:::open |
| 21 | + E[Mux: bind threads to a capability]:::open |
| 22 | + D[<b>Peer Selection Exports</b>]:::open |
| 23 | + C[Public Network State]:::open |
| 24 | + B[Drop NonP2P Components]:::open |
| 25 | + A[Extensible Ouroboros Network Components]:::merged |
| 26 | + MAIN[main] |
| 27 | + ouroboros-network-0.19 |
| 28 | + tx[TX Submission Logic]:::open |
| 29 | +
|
| 30 | +
|
| 31 | + B-->A; |
| 32 | + C-->B; |
| 33 | + D-->B; |
| 34 | + E-->A; |
| 35 | + A-->MAIN |
| 36 | + SRV-->A; |
| 37 | + MAIN-->ouroboros-network-0.19 |
| 38 | + tx-->ouroboros-network-0.19 |
| 39 | +
|
| 40 | + click A "https://github.com/IntersectMBO/ouroboros-network/pull/5016" _blank |
| 41 | + click B "https://github.com/IntersectMBO/ouroboros-network/pull/5007" _blank |
| 42 | + click C "https://github.com/IntersectMBO/ouroboros-network/pull/5046" _blank |
| 43 | + click D "https://github.com/IntersectMBO/ouroboros-network/pull/5081" _blank |
| 44 | + click E "https://github.com/IntersectMBO/ouroboros-network/pull/5069" _blank |
| 45 | + click SRV "https://github.com/IntersectMBO/ouroboros-network/pull/5018" _blank |
| 46 | + click tx "https://github.com/IntersectMBO/ouroboros-network/pull/4887" _blank |
| 47 | +
|
| 48 | + classDef merged color:#000000, stroke:#8256D0, fill:#8256D0, font-weight:bold |
| 49 | + classDef open color:#000000, stroke:#347D39, fill:#347D39, font-weight:bold |
| 50 | +``` |
| 51 | + |
| 52 | +### Fixes which made into the on-going `cardano-node-10.2.1` |
| 53 | + |
| 54 | +* We fixed the peer-sharing application to only use the negotiated |
| 55 | + `peerSharing` flag in the [`NodeToNodeVersionData`]; see |
| 56 | + [ouroboros-network#5061]. |
| 57 | +* We modified `IOError` exception handling: [ouroboros-network#5076]. |
| 58 | + |
| 59 | +Previously, we introduced a new `IOError` handling policy due to a discussion with |
| 60 | +an SPO to make some scenarios easier to debug. After testing it (the changes |
| 61 | +never made it into a release), it turned out this could lead to attacks on the |
| 62 | +system. Thus, we advocate for better monitoring of nodes (e.g. if resources |
| 63 | +like file descriptors memory are available, the node is making progress) |
| 64 | +rather than rely on `cardano-node` to be up and running. |
| 65 | + |
| 66 | +### New mux strategy for starting mini-protocols |
| 67 | + |
| 68 | +[Karl Knutsson][karl] ([CF]) implemented a new strategy for starting |
| 69 | +mini-protocols, `StartOnDemandAny`. A mini-protocol which is using this |
| 70 | +strategy will be started as soon as any `StartOnDemand` (or `StartOnDemandAny`) |
| 71 | +mini-protocol receives input from the network. We will use this starting |
| 72 | +strategy for the `keep-alive` mini-protocol. |
| 73 | + |
| 74 | +### Local-TX-Monitor protocol changes |
| 75 | + |
| 76 | +A new query was added, which allows the retrieval of all measures/dimensions of the |
| 77 | +mempool capacity, e.g. byte-size capacity, ledger's execution units for both |
| 78 | +memory and execution steps, and reference |
| 79 | +scripts size. See [ouroboros-network#4918]. |
| 80 | + |
| 81 | +### Network Specification Updates |
| 82 | + |
| 83 | +We made language improvements in the network specification, see |
| 84 | +[ouroboros-network#5044]; and some smaller changes/fixes |
| 85 | +[ouroboros-network#5053]. |
| 86 | + |
| 87 | +### Other minor changes |
| 88 | + |
| 89 | +* [**Label some threads**][ouroboros-network#5050]; |
| 90 | +* [**Churn no timeouts test failure**][ouroboros-network#5072]; |
| 91 | +* [**Added haddocks to MiniProtocol type**][ouroboros-network#5073]; |
| 92 | + |
| 93 | +[sprint-80]: https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+80%22 |
| 94 | +[sprint-81]: https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+81%22 |
| 95 | + |
| 96 | +[karl]: https://github.com/karknu |
| 97 | +[CF]: https://www.cardanofoundation.org/ |
| 98 | + |
| 99 | +[`NodeToNodeVersionData`]: https://ouroboros-network.cardano.intersectmbo.org/ouroboros-network-api/Ouroboros-Network-NodeToNode-Version.html#t:NodeToNodeVersionData |
| 100 | + |
| 101 | +[ouroboros-network#4918]: https://github.com/IntersectMBO/ouroboros-network/pull/4918 |
| 102 | +[ouroboros-network#5007]: https://github.com/IntersectMBO/ouroboros-network/pull/5007 |
| 103 | +[ouroboros-network#5016]: https://github.com/IntersectMBO/ouroboros-network/pull/5016 |
| 104 | +[ouroboros-network#5044]: https://github.com/IntersectMBO/ouroboros-network/pull/5044 |
| 105 | +[ouroboros-network#5046]: https://github.com/IntersectMBO/ouroboros-network/pull/5046 |
| 106 | +[ouroboros-network#5050]: https://github.com/IntersectMBO/ouroboros-network/pull/5050 |
| 107 | +[ouroboros-network#5053]: https://github.com/IntersectMBO/ouroboros-network/pull/5053 |
| 108 | +[ouroboros-network#5061]: https://github.com/IntersectMBO/ouroboros-network/pull/5061 |
| 109 | +[ouroboros-network#5072]: https://github.com/IntersectMBO/ouroboros-network/pull/5072 |
| 110 | +[ouroboros-network#5073]: https://github.com/IntersectMBO/ouroboros-network/pull/5073 |
| 111 | +[ouroboros-network#5076]: https://github.com/IntersectMBO/ouroboros-network/pull/5076 |
0 commit comments