Skip to content

Commit

Permalink
Network update
Browse files Browse the repository at this point in the history
  • Loading branch information
coot committed Sep 4, 2023
1 parent 9659b9a commit 73d82c5
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 0 deletions.
100 changes: 100 additions & 0 deletions blog/2023-09-01-network.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
---
title: Network Team Update
slug: 2023-09-01-network
authors: coot
tags: [network]
hide_table_of_contents: false
---

## High-level overview of [sprint 43][sprint-43]

In this sprint, we received contributions from [CF] & [Galois]. Karl Knutsson
([CF]) has addressed various issues regarding peer churning in P2P, timeouts
and our `WireShark` dissector. While the [Galois] developers focused on
addressing issues from their review last year. See below for more details.

We continued working on bootstrap peers [ouroboros-network-#4661].

We refactored our test suites: they are split into `io-tests` which require to
be run natively on all platforms (these tests mostly contain tests that
require `IO` system calls) and `sim-tests` which are platform independent. We
run `io-tests` on all supported platforms (e.g. `x86_64-linux`,
`x86-64-darwin`, `aarch64-darwin` and `x86_64-w64-mingw32` (Windows)) natively.
The `sim-tests` are not executed on `Windows` due to memory limitations on
GitHub Actions runners. [ouroboros-network-#4653]

We also started rebasing `typed-protocols` refactoring branches.

Marcin was appointed as the `cardano-node` release engineer for the `8.4.0-pre`
version. So far he integrated `cardano-ledger-conway-1.8` and
`ouroboros-network-0.9.1.0` to `ouroboros-consensus`, `cardano-cli` and
`cardano-api`. Once we will have an integration branch for `cardano-node`,
`cardano-ledger-conway-1.8` and `ouroboros-consensus` packages can be released
to `CHaP` and PRs can be merged once they go through review & CI.

We also fixed some smaller issues regarding peer sharing (both were discovered
by Karl from [CF]). More details are included below.

### Progress on P2P addoption

#### SPO relays

There are currently ~2000 relays running P2P
enabled nodes that belong to 557 pools with a combined stake of 7900Mil Ada. On
16th of August it was ~1700 relays, 531 pools with a combined stake of 7700Mil
Ada.

![P2P relays](/images/network/2023-08-31-p2p-relays.png)

The following graphs show several different versions of relays running on the mainnet. The
green line `NodeToNodeVersionV10.True` denotes P2P relays, which slowly
increase over time. The `V9` and earlier versions of the `node-to-node`
the protocol indicates nodes version `1.35.x` or earlier.
![node versions](/images/network/2023-08-31-relay-versions.png)

Data has been kindly provided by [CF] and their mainnet monitoring
infrastructure.

#### IOG relays

As of this week, 90% of IOG relays are running a P2P setup. In the next sprint all
IOG relays will be running P2P.

## Detailed description

In this sprint, we got a few contributions from [CF]:
* Karl made peer churning mechanism less aggressive [ouroboros-network-#4656]; and
* he added timeouts for idle states in `ChainSync` & `KeepAlive`
miniprotocols. These timeouts help a node remove idle connections from the
responder (server) side [ouroboros-network-#4648].
* he improved the `WireShark` dissector by adding support for the `peer-sharing` mini-protocol [ouroboros-network-#4656].

[Galois] has been making progress in addressing some of the issues they raised in their review (last year):
* Mark Tullsen ([Galois]) has been working on refactoring the main entry function of P2P [ouroboros-network-#4661] (in review);
* Sam Cowger ([Galois]) has been reviewing all use cases of `error` and `unsafe` calls
[ouroboros-network-#4661] (in review).

## Peer Sharing

* Light peer sharing is only enabled when peer sharing is turned on [ouroboros-network-#4652];
* Handshake incorrectly reports peer sharing value. It's supposed to relay the
remote value, but instead, it returns the local value. [ouroboros-network-#4642] (in review).

## Async Demotion Test Fix

* We fixed an async demotion test failure which turned out to be a weakness of
the test itself rather than a bug in the connection manager. [ouroboros-network-#4655]

[CF]: https://cardanofoundation.org/
[Galois]: https://galois.com/
[sprint-43]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+43%22
[ouroboros-network-#4615]: https://github.com/input-output-hk/ouroboros-network/issues/4615
[ouroboros-network-#4648]: https://github.com/input-output-hk/ouroboros-network/pull/4648
[ouroboros-network-#4653]: https://github.com/input-output-hk/ouroboros-network/issues/4653
[ouroboros-network-#4656]: https://github.com/input-output-hk/ouroboros-network/pull/4656
[ouroboros-network-#4657]: https://github.com/input-output-hk/ouroboros-network/pull/4657
[ouroboros-network-#4660]: https://github.com/input-output-hk/ouroboros-network/pull/4660
[ouroboros-network-#4661]: https://github.com/input-output-hk/ouroboros-network/pull/4661
[ouroboros-network-#4652]: https://github.com/input-output-hk/ouroboros-network/pull/4652
[ouroboros-network-#4642]: https://github.com/input-output-hk/ouroboros-network/issues/4642
[ouroboros-network-#4655]: https://github.com/input-output-hk/ouroboros-network/issues/4655
Binary file added static/images/network/2023-08-31-p2p-relays.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 73d82c5

Please sign in to comment.