Network Quarterly Update
2022-11 - 2023-01
The primary goal of the networking team was to focus on the single relay release of P2P. We fixed a number of small late bugs, and concluded QA & performance testing. Although it was discovered a regression in performance of block production when P2P is enabled, relaying with P2P performs better comparing to a non p2p. We concluded that this is not a blocker for the Single Relay Release which is planned shortly.
Peer sharing has gone through review and final review is just being done right now. After merging it will still be disabled (hidden behind a flag) as it's not safe without eclipse evasion. We started implementing light peer sharing (i.e. include inbound peers into known peer set of the outbound governor).
We started a detailed eclipse evasion design, it will continue in the next quarter.
We also made a major revision of package structure of the network packages. We ended up with a very clean dependency graph (pr #4155).
Armando Santos delivered a talk at the ODOPIS 2022 conference on principles of distributed systems in Brussels. The slides are available here.
Neil Davies gave an invited seminar on
DeltaQ at Université Catholique de
We also found and fixed a few of bugs:
a bug in keep alive mini-protocol which resulted in warm to cold transitions to be always executed through a timeout path rather than do a clean demotion ([pr #4168]).
fixed an assetion failure in the outbound governor (issue #4177)
- we fixed DNS test failure issue #4191
We will work towards the next release of P2P for block producer nodes. This includes:
- analysing performance regression for BP nodes when using P2P
- finish the work on controlling the block forger through node kernel (pr #3800)
- address issue #3907 and write a script to analyse deployment of P2P relays
We would like also to push forward eclipse evasion. Although most of the work
has be done already the release of
Hackage will happen in the
We would also like to address chain-sync timeout issue recently diagnosed by Karl Knutsson.
If time permits we would also like to address some technical debt, especially:
The performance regression for block producer with P2P needs to be investigated in the near future. This is blocker for the release of P2P on BP nodes.
Contributions to Ouroboros-Network
- We added
TraceDemoteLocalAsynchronous, which enables notification of critical issues for SPOs
- We fixed
NodeToNodeV_10(P2P, pr #4165)
- We fixed a bug in demotion peers to cold which affected P2P nodes (commit-61058aa5c2)
- Karl Knutsson enhanced
SendFetchRequest(commit-bb1c3dddee), open-source contribution)
- We turned
SizeInBytesinto a newtype.
- We extended
- We fixed DNS test failure issue #4191
- We fixed a simulation bug found in issue #4258
- [pr #4168]
- issue #4177
Contributions to Cardano-Node
- We maintained the Single Relay Release pr #4612, (e.g. fixing CI issues, Rebasing it when necessary, publishing packages to Cardano Haskell Packages);
- We enhanced
JSONserialisation / deserialisation of
Contributions to IOSim
- We started to use Cardano Haskell Packages for
- We updated change log files
- We added support of
We also addressed the following issues in pr #57 in order to prepare the package for publication on Hackage:
io-classestimers API (issue #46);
- created a new package
si-timerswhich exposes an interface using SI units and is safe on 32-bit systems (issue #59);
- added monad transformers instances for classes defined in
io-classes-mtlpackage which includes (experimental) instances for monad transformers;
si-timers(which allowed us to hide fancy timer api and clean
- added support for
js_HOST_ARCH(the new GHC JS backend)
Note the pr #57 contains almost 40 commits, and was a major step forward for
io-sim ecosystem. We also prepared a draft pr #4281 which updates
Other changes for
184.108.40.206 release on Hackage: