Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

network update #527

Merged
merged 2 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 115 additions & 0 deletions blog/2025-01-20-network.md
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ const config = {
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
additionalLanguages: ['haskell'],
},
}),
};
Expand Down
Loading