From 6c1d1d47ce120fde3edf1136521a2d7eee3cc2eb Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Mon, 20 Jan 2025 20:13:50 +0100 Subject: [PATCH 1/2] docusaurus: support Haskell highlighting --- docusaurus.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/docusaurus.config.js b/docusaurus.config.js index 9c9c03b682..569b1db262 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -161,6 +161,7 @@ const config = { prism: { theme: lightCodeTheme, darkTheme: darkCodeTheme, + additionalLanguages: ['haskell'], }, }), }; From 1fb029fbcf87c5a91ab4eb7ff3ce7344b6bc5087 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Mon, 20 Jan 2025 20:14:26 +0100 Subject: [PATCH 2/2] network update --- blog/2025-01-20-network.md | 115 +++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 blog/2025-01-20-network.md diff --git a/blog/2025-01-20-network.md b/blog/2025-01-20-network.md new file mode 100644 index 0000000000..87837586fa --- /dev/null +++ b/blog/2025-01-20-network.md @@ -0,0 +1,115 @@ +--- +title: Network Team Update +slug: 2025-01-20-network +authors: coot +tags: [network] +hide_table_of_contents: false +--- + +## Overview of [sprint 78][sprint-78] & [sprint 79][sprint-79] + +### Documentation + +We reviewed the [technical report][network-spec], we closed a number of issues: + +* [__RollBack claimed to sometimes contain a header__][on#4686] +* [__Is BlockFetch mini-protocol inclusive in the argument range?__][on#4628] +* [__Wrong colors in figure 3.7 of network-spec__][on#4662] +* [__Document CBOR encoding of Local TX-Submission mini-protocol__][on#4521] +* [__Document Local Tx-Monitor mini-protocol__][on#3420] +* [__Links to implemented mini-protocols are obsolete__][on#2780] + +This was done in the [Network Spec Update][on#5036] PR, we also fixed many grammar +& spelling errors [network-spec: language][on#5044]. + +### SRV Record Support + +We worked on [SRV records][SRV-rec] support by `ouroboros-network`, [issue +#2780][on#2780], [PR 5018][on#5018]. We will merge it after [reuasble +diffusion][on#5016]. + +### Quarable Network State + +We opened a [draft PR][on#5046], also see the [issue][on#5006], where we +mentioned all the branches where the work is progressing. See below for more +technical details. + +### Extensible Ouroboros Network Diffusion Stack + +The work stream reached the review phase. See [issue#5016][on#5016]. + +### Tx-Submission + +The Consensus team agreed to implement needed mempool performance +optimisations and is making progress on them. See +[ouroboros-consensus#1359][oc#1359]. + +### Ouroboros-Network-0.19 Release + +We cut `ouroboros-network-0.19` and `0.19.1` [releases][on-releases]. + +## Low-level summary + +### Quarable Network State + +In the first interaction, we will make it possible to query the `node-to-node` state +through `LocalStateQuery` mini-protocol (part of the node-to-client protocol). + +```haskell +data ConnectionManagerState peeraddr = ConnectionManagerState { + connectionMap :: Map (ConnectionId peeraddr) AbstractState, + -- ^ map of connections, without outbound connections in + -- `ReservedOutboundSt` state. + + registeredOutboundConnections :: Set peeraddr + -- ^ set of outbound connections in the `ReserverdOutboundSt` state. + } + deriving (Eq, Show) + + +data InboundState peeraddr = InboundState { + remoteHotSet :: !(Set (ConnectionId peeraddr)), + remoteWarmSet :: !(Set (ConnectionId peeraddr)), + remoteColdSet :: !(Set (ConnectionId peeraddr)), + remoteIdleSet :: !(Set (ConnectionId peeraddr)) + } + deriving (Eq, Show) + +data OutboundState peeraddr = OutboundState { + coldPeers :: Set peeraddr, + warmPeers :: Set peeraddr, + hotPeers :: Set peeraddr + } + deriving (Eq, Show) + + +data NetworkState peeraddr = NetworkState { + connectionManagerState :: ConnectionManagerState peeraddr, + inboundGovernorState :: InboundState peeraddr, + outboundGovernorState :: OutboundState peeraddr + } + deriving (Eq, Show) +``` + +[sprint-78]: https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+78%22 +[sprint-79]: https://github.com/orgs/IntersectMBO/projects/5/views/1?filterQuery=sprint%3A%22Sprint+79%22 + +[network-spec]: https://ouroboros-network.cardano.intersectmbo.org/pdfs/network-spec/network-spec.pdf + +[SRV-rec]: https://www.cloudflare.com/en-gb/learning/dns/dns-records/dns-srv-record/ +[oc#1359]: https://github.com/IntersectMBO/ouroboros-consensus/issues/1359 +[on#2780]: https://github.com/IntersectMBO/ouroboros-network/issues/2780 +[on#2883]: https://github.com/IntersectMBO/ouroboros-network/issues/2883 +[on#3420]: https://github.com/IntersectMBO/ouroboros-network/issues/3420 +[on#4521]: https://github.com/IntersectMBO/ouroboros-network/issues/4521 +[on#4628]: https://github.com/IntersectMBO/ouroboros-network/issues/4628 +[on#4662]: https://github.com/IntersectMBO/ouroboros-network/issues/4662 +[on#4686]: https://github.com/IntersectMBO/ouroboros-network/issues/4686 +[on#5006]: https://github.com/IntersectMBO/ouroboros-network/issues/5006 +[on#5016]: https://github.com/IntersectMBO/ouroboros-network/pull/5016 +[on#5018]: https://github.com/IntersectMBO/ouroboros-network/pull/5018 +[on#5033]: https://github.com/IntersectMBO/ouroboros-network/pull/5033 +[on#5036]: https://github.com/IntersectMBO/ouroboros-network/pull/5036 +[on#5044]: https://github.com/IntersectMBO/ouroboros-network/pull/5044 +[on#5046]: https://github.com/IntersectMBO/ouroboros-network/pull/5046 +[on-releases]: https://github.com/orgs/IntersectMBO/projects/5/views/18