High-level overview of 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.
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.
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 thepeer-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
andunsafe
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