-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
99 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |