-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
100 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
--- | ||
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 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 our `cddl` spec for network codec more inlined 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-cosnensus`. 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 busywork and writeup in finishing up the CNSA, first stage (first | ||
contract). | ||
- Getting Sam Cowger (Galois Inc) up to speed. | ||
|
||
### 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 |