Skip to content

Commit

Permalink
Network Update
Browse files Browse the repository at this point in the history
  • Loading branch information
coot committed Dec 8, 2023
1 parent 021296c commit 3a7efb3
Showing 1 changed file with 99 additions and 0 deletions.
99 changes: 99 additions & 0 deletions blog/2023-12-08-network.md
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

0 comments on commit 3a7efb3

Please sign in to comment.