diff --git a/blog/2023-12-08-network.md b/blog/2023-12-08-network.md new file mode 100644 index 0000000000..71efc1e46a --- /dev/null +++ b/blog/2023-12-08-network.md @@ -0,0 +1,99 @@ +--- +title: Network Team Update +slug: 2023-12-08-network +authors: coot +tags: [network] +hide_table_of_contents: false +--- + +## High-level overview of [sprint 49][sprint-49] & [sprint 50][sprint-50] + +### Fixed PeerSelection bug + +Karl Knutsson ([Cardano Foundation (CF)][CF]) found a bug in +the `cardano-node-8.7.0` version used on the Sancho Net which was fixed in `8.7.1`. +It resulted in a node not being able to reconnect to an upstream peer once it +was demoted by an asynchronous exception. This bug would be caught by Q&A in +a mainet release, but for testnet releases, Q&A test suite is not used. We also +developed a test which covers the bug in the `ouroboros-network`, we also identified +a missing `PeerSelection` test which we need to port to our simulation network. +See [ouroboros-network#4734], [ouroboros-network#4665]. + +### Bootstrap Peers + +Still under review, [ouroboros-network#4555]. The consensus team is now +implementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of +`cardano-node`. + +### Tx-Submission + +We started working on a new implementation of the tx-submission application. No +`tx-submission` protocol changes are foreseen, but we want to be able to +download each `tx` from just one upstream peer and share the results between +different connections. We want to distribute the bandwidth between multiple +clients. We also think that this work will prepare us for the future +Ouroboros-Leios changes, which will contain various versions of `tx-submission` +like mini-protocols. See [ouroboros-network#4701]. + +## Peer Sharing + +Various fixes and improvements were implemented: + +* [ouroboros-network#4725] + * disabled peer sharing with initiator-only nodes: currently it's not + possible to get peers from initiator-only nodes (edge nodes, e.g. + wallets). In the future, we might change this, which will require running + a server-side of the `peer-sharing` protocol by such nodes. See + [ouroboros-network#4726]. + * fixed `peer-sharing` codec + * fixed a handshake bug which returned a wrong peer-sharing option +* [ouroboros-network#4728] + * disabled `peer-sharing` for `NodeToNodeV_11` and `NodeToNodeV_12` + +* Karl Knutsson ([CF]) has been working on additional improvements, e.g. [ouroboros-network#4735] + +With these fixes, Karl Knutsson ([CF]) was able to see that two peers on the mainnet +can discover themselves through `peer-sharing` and keep being mutually useful +and thus the connection surviving `outbound-governor` churn events. + +### IOSim + +We improved the memory footprint of `IOSim` in [io-sim#126], see +[ouroboros-network#4721] for heap profile improvements on large test cases. + +We are working on optimising the memory footprint of `IOSimPOR`. We are +reimplementing `VectorClocks` using a trie, instead of a map which leads to +significant improvements. + +### Cardano-Ping + +`cardano-node-0.2.0.10` was released to `CHaP`, [ouroboros-network#4746]. This +version exports more APIs which turned out to be useful in `cardano-node` test +suite, see [cardano-node#5536]. + +### Technical Debt + +We addressed some small tech-debt issues in [ouroboros-network#4722]: +* fixed some typos +* using `bracket` instead of `onException` in `withSnocket` +* improved haddocks +* organised `TracePeerSelection` constructors + +We improved the memory footprint of some of our tests in [ouroboros-network#4721]. + +[CF]: https://cardanofoundation.org +[cardano-node#5536]: https://github.com/input-output-hk/cardano-node/pull/5536 +[io-sim#126]: https://github.com/input-output-hk/io-sim/pull/126 +[ouroboros-network#4555]: https://github.com/input-output-hk/ouroboros-network/pull/4555 +[ouroboros-network#4665]: https://github.com/input-output-hk/ouroboros-network/issues/4665 +[ouroboros-network#4701]: https://github.com/input-output-hk/ouroboros-network/pull/4701 +[ouroboros-network#4721]: https://github.com/input-output-hk/ouroboros-network/pull/4722 +[ouroboros-network#4722]: https://github.com/input-output-hk/ouroboros-network/pull/4722 +[ouroboros-network#4725]: https://github.com/input-output-hk/ouroboros-network/pull/4725 +[ouroboros-network#4726]: https://github.com/input-output-hk/ouroboros-network/issues/4726 +[ouroboros-network#4728]: https://github.com/input-output-hk/ouroboros-network/pull/4728 +[ouroboros-network#4734]: https://github.com/input-output-hk/ouroboros-network/pull/4734 +[ouroboros-network#4735]: https://github.com/input-output-hk/ouroboros-network/pull/4735 +[ouroboros-network#4746]: https://github.com/input-output-hk/ouroboros-network/pull/4746 +[sprint-49]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+49%22 +[sprint-50]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+50%22