From a021a8e7d2252645f73f363d8697b7bf459092f7 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Fri, 18 Aug 2023 16:16:44 +0200 Subject: [PATCH] Network update (sprint 42) --- blog/2023-08-18-network.md | 102 +++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 blog/2023-08-18-network.md diff --git a/blog/2023-08-18-network.md b/blog/2023-08-18-network.md new file mode 100644 index 0000000000..6f46ea7c2e --- /dev/null +++ b/blog/2023-08-18-network.md @@ -0,0 +1,102 @@ +--- +title: Network Team Update +slug: 2023-08-18-network +authors: coot +tags: [network] +hide_table_of_contents: false +--- + +## High-level overview of [sprint 42][sprint-42] + +### Eclipse Evasion + +We merged and released a new version of the `ouroboros-network` package (version +`0.9.0.0`) which includes [big ledger peers feature][ouroboros-network#3886]. +This is the primary peer selection mechanism to defend against eclipses. We +also prepared a PR to updated [`ouroboros-cosnensus`][ouroboros-consensus#165] +and [`ekg-forward`][ekg-forward#30] packages. + +### CDDL specs for protocol codecs + +We made the `cddl` spec for network codec more inline with the implementation +which is highly polymorphic. `cddl` doesn't have the notion of polymorphism, +but has `any` which can generate any valid cbor term. We matched it with an +`Any` type on the Haskell side and made all remaining tests & specs use it. +This simplified the specifications and made it easier to understand which parts +are defined in the spec, and which parts are left unspecified. See +[ouroboros-network#4595]. + +### Ouroboros-Network-Framework API changes + +We also released `ouroboros-network-framework` and other network components. +The `ouroboros-network-framework` package contains a redesign of API exposed to +`ouroboros-consensus`. We consolidated, cleaned it and made it easier to +extend in the future if there will be new arguments that need to be passed to +mini-protocol initiator and responders which comes from the low-level network +layer. + +### Nix setup (CI) + +We also made a major review of our `nix` setup. With help from our DevX team +we ended up with a clean `flake.nix` file which can: + +* compile & test the code on `x86_64-linux`, `x86_64-darwin` and `aarch64-darwin` +* cross-compile to `Windows` on `x86_64-linux` + +And provides a shell which contains all the build tools, including `ghc-9.6`, +`hls`, `cddl`, and more. See [ouroboros-network#4640], +[ouroboros-network#4643]. + + +## Other contributions + +### Cardano Network Service Assurance + +* The work and writeup in finishing up the CNSA, first stage (first + contract). +* Getting Sam Cowger (Galois Inc) up to speed. +* The IOG Networking team carried a reivew of CNSA project progress: a limitted + code & design review. + +### Galois Review + +Sam Cowger and Mark Tullsen (Galois Inc) have made some progress on each of the tech debt issues + +* [ouroboros-network#3832], +* [ouroboros-network#3834], +* [ouroboros-network#3835], +* [ouroboros-network#3836]; + +scoping, requirements, and getting started. + +### CI + +We added a nightly run for GitHub actions and made the GitHub actions test be +executed with extra concurrency [ouroboros-network#4637], [ouroboros-network#4649]. + +We also added GitHub's dependabot [ouroboros-network#4650]. + +### Bootstrap Peers + +We settled on implementation design of bootstrap peers which is being +implemented, [ouroboros-network#4615]. + + +[sprint-42]: https://github.com/orgs/input-output-hk/projects/19/views/16?filterQuery=sprint%3A%22sprint+42%22 + +[ekg-forward#30]: https://github.com/input-output-hk/ekg-forward/pull/30 + +[ouroboros-consensus#165]: https://github.com/input-output-hk/ouroboros-consensus/pull/165 + +[ouroboros-network#3832]: https://github.com/input-output-hk/ouroboros-network/issues/3832 +[ouroboros-network#3834]: https://github.com/input-output-hk/ouroboros-network/issues/3834 +[ouroboros-network#3835]: https://github.com/input-output-hk/ouroboros-network/issues/3835 +[ouroboros-network#3836]: https://github.com/input-output-hk/ouroboros-network/issues/3836 +[ouroboros-network#3886]: https://github.com/input-output-hk/ouroboros-network/issues/3886 +[ouroboros-network#4595]: https://github.com/input-output-hk/ouroboros-network/issues/4595 +[ouroboros-network#4615]: https://github.com/input-output-hk/ouroboros-network/issues/4615 +[ouroboros-network#4637]: https://github.com/input-output-hk/ouroboros-network/pull/4637 +[ouroboros-network#4640]: https://github.com/input-output-hk/ouroboros-network/pull/4640 +[ouroboros-network#4643]: https://github.com/input-output-hk/ouroboros-network/pull/4643 +[ouroboros-network#4649]: https://github.com/input-output-hk/ouroboros-network/pull/4649 +[ouroboros-network#4650]: https://github.com/input-output-hk/ouroboros-network/pull/4650