|
| 1 | +--- |
| 2 | +title: Network Team Update |
| 3 | +slug: 2024-12-23-network |
| 4 | +authors: coot |
| 5 | +tags: [network] |
| 6 | +hide_table_of_contents: false |
| 7 | +--- |
| 8 | + |
| 9 | +## Overview of [sprint 77][sprint-77] |
| 10 | + |
| 11 | +### Initiator only mode for local roots |
| 12 | + |
| 13 | +We implemented the initiator-only mode for local roots peers described in |
| 14 | +[ouroboros-network#5020]. This feature will be available in |
| 15 | +`cardano-node-10.3` ([cardano-node#6055]). |
| 16 | + |
| 17 | +One will be able to specify `diffusionMode` (either `InitiatorOnly` or |
| 18 | +`IntiatorAndRespoinder`, the latter is the default) for all local roots in |
| 19 | +a given local roots group, e.g. |
| 20 | + |
| 21 | +```json |
| 22 | +{ "localRoots": |
| 23 | + [ { "accessPoints": |
| 24 | + [ { "address": "10.0.0.1" |
| 25 | + , "port": 3001 |
| 26 | + } |
| 27 | + ] |
| 28 | + , "advertise": false |
| 29 | + , "diffusionMode": "InitiatorOnly" |
| 30 | + , "warmValency": 1 |
| 31 | + , "hotValency": 1 |
| 32 | + } |
| 33 | + , { "accessPoints": |
| 34 | + [ { "address": "10.0.0.2" |
| 35 | + , "port": 3001 |
| 36 | + } |
| 37 | + ] |
| 38 | + , "advertise": true |
| 39 | + , "diffusionMode": "InititiatorAndResponder" |
| 40 | + , "warmValency": 1 |
| 41 | + , "hotValency": 1 |
| 42 | + } |
| 43 | + ] |
| 44 | +, "publicRoots": [] |
| 45 | +, "useLedgerAfterSlot": -1 |
| 46 | +} |
| 47 | +``` |
| 48 | + |
| 49 | +As part of [ouroboros-network#5020] we had to change how connections are |
| 50 | +identified in the simulated testnet environment. We exposed |
| 51 | +`ConnStateIdSupply` through P2P interfaces, which allows us to use a global |
| 52 | +`ConnStateIdSupply` for all nodes in the simulation. This way, `ConnStateId` is |
| 53 | +unique for each connection in the simulation. See [ouroboros-network#5026]. |
| 54 | + |
| 55 | +### Support systems with multiple IP addresses |
| 56 | + |
| 57 | +We merged [ouroboros-network#5017] which allows to run `cardano-node` on |
| 58 | +systems with multiple network interfaces or a single interface with multiple IP |
| 59 | +addresses. |
| 60 | + |
| 61 | +[sprint-77]: https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+77%22 |
| 62 | + |
| 63 | +### Reusable diffusion |
| 64 | + |
| 65 | +We were working on early integration of reusable diffusion work stream with |
| 66 | +`ouroboros-consensus` & `cardano-node`. Reusable diffusion will allow us to |
| 67 | +support both `cardano-node` and `mithril-node` in the future. We are |
| 68 | +pleased to say that we are running a `cardano-node` that uses |
| 69 | +refactored diffusion. See: |
| 70 | + |
| 71 | +* [design notes][reusable-diffusion] |
| 72 | +* issue: [ouroboros-network#4929] |
| 73 | + |
| 74 | +### Tx-Submission Logic |
| 75 | + |
| 76 | +We had a discussion with the consensus team (Karl Knutsson [CF], Nick Frisby |
| 77 | +[Tweag]) on network requirements for `tx-mempool`. See: |
| 78 | + |
| 79 | +* issue: [ouroboros-network#3311] |
| 80 | +* pr: [ouroboros-network#4887] |
| 81 | +* [ouroboros-network#4984] (Karl's changes on top of [ouroboros-network#4887]) |
| 82 | + |
| 83 | +### SRV record support |
| 84 | + |
| 85 | +We continued working on the SRV support, see: |
| 86 | +* issue: [ouroboros-network#2883] |
| 87 | +* pr: [ouroboros-network#5018] |
| 88 | + |
| 89 | +### Technical Debt |
| 90 | + |
| 91 | +We renamed some of the test modules to be more consistent across various |
| 92 | +network components, see [ouroboros-network#5028]. |
| 93 | + |
| 94 | +[Tweag]: https://www.tweag.io/ |
| 95 | +[CF]: https://cardanofoundation.org/ |
| 96 | +[cardano-node#6055]: https://github.com/IntersectMBO/cardano-node/pull/6055 |
| 97 | +[ouroboros-network#2883]: https://github.com/IntersectMBO/ouroboros-network/issues/2883 |
| 98 | +[ouroboros-network#3311]: https://github.com/IntersectMBO/ouroboros-network/issues/3311 |
| 99 | +[ouroboros-network#4887]: https://github.com/IntersectMBO/ouroboros-network/pull/4887 |
| 100 | +[ouroboros-network#4929]: https://github.com/IntersectMBO/ouroboros-network/issues/4929 |
| 101 | +[ouroboros-network#4984]: https://github.com/IntersectMBO/ouroboros-network/pull/4984 |
| 102 | +[ouroboros-network#5017]: https://github.com/IntersectMBO/ouroboros-network/issues/5017 |
| 103 | +[ouroboros-network#5018]: https://github.com/IntersectMBO/ouroboros-network/issues/5018 |
| 104 | +[ouroboros-network#5020]: https://github.com/IntersectMBO/ouroboros-network/issues/5020 |
| 105 | +[ouroboros-network#5026]: https://github.com/IntersectMBO/ouroboros-network/issues/5026 |
| 106 | +[ouroboros-network#5028]: https://github.com/IntersectMBO/ouroboros-network/issues/5028 |
| 107 | +[reusable-diffusion]: https://github.com/IntersectMBO/ouroboros-network/discussions/4987#discussioncomment-11026976 |
0 commit comments