Skip to content

Release ouroboros-network-0.22 #5153

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

Merged
merged 3 commits into from
Jun 30, 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
10 changes: 10 additions & 0 deletions cardano-client/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@

### Non-breaking changes

## 0.6.0.0 -- 2025-06-28

### Breaking changes

* SubscriptionTracers: mux tracer was split into two parts.

### Non-breaking changes

* Updated to `io-classes-1.8`

## 0.5.2.0 -- 2025-05-23

### Non-breaking changes
Expand Down
10 changes: 5 additions & 5 deletions cardano-client/cardano-client.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: cardano-client
version: 0.5.2.0
version: 0.6.0.0
synopsis: An API for ouroboros-network
description: An API for ouroboros-network.
license: Apache-2.0
Expand All @@ -27,10 +27,10 @@ library
containers >=0.5 && <0.9,
contra-tracer >=0.1 && <0.3,
io-classes:si-timers ^>=1.8.0.1,
network-mux >=0.6 && <0.9,
ouroboros-network >=0.19 && <0.22,
ouroboros-network-api >=0.12 && <0.15,
ouroboros-network-framework >=0.15 && <0.19,
network-mux ^>=0.9,
ouroboros-network ^>=0.22,
ouroboros-network-api ^>=0.15,
ouroboros-network-framework ^>=0.19,

ghc-options:
-Wall
Expand Down
10 changes: 10 additions & 0 deletions cardano-ping/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@

### Non-breaking changes

## 0.9.0.0 -- 2026-06-28

### Breaking changes

* Added support of `NodeToClientV_21`.

### Non-breaking changes

* Updated to `network-mux-0.9`

## 0.8.0.1 -- 2025-05-13

### Breaking changes
Expand Down
4 changes: 2 additions & 2 deletions cardano-ping/cardano-ping.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: cardano-ping
version: 0.8.0.1
version: 0.9.0.0
synopsis: Utility for pinging cardano nodes
description: Utility for pinging cardano nodes.
license: Apache-2.0
Expand Down Expand Up @@ -34,7 +34,7 @@ library
io-classes:{si-timers, strict-stm} ^>=1.8.0.1,
iproute ^>=1.7.15,
network ^>=3.2.7,
network-mux ^>=0.8,
network-mux ^>=0.9,
tdigest ^>=0.3,
text >=1.2.4 && <2.2,
time >=1.9.1 && <1.14,
Expand Down
8 changes: 8 additions & 0 deletions cardano-ping/src/Cardano/Network/Ping.hs
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ supportedNodeToClientVersions magic =
, NodeToClientVersionV18 magic
, NodeToClientVersionV19 magic
, NodeToClientVersionV20 magic
, NodeToClientVersionV21 magic
]

data InitiatorOnly = InitiatorOnly | InitiatorAndResponder
Expand Down Expand Up @@ -189,6 +190,7 @@ data NodeVersion
| NodeToClientVersionV18 Word32
| NodeToClientVersionV19 Word32
| NodeToClientVersionV20 Word32
| NodeToClientVersionV21 Word32
| NodeToNodeVersionV1 Word32
| NodeToNodeVersionV2 Word32
| NodeToNodeVersionV3 Word32
Expand Down Expand Up @@ -220,6 +222,7 @@ instance ToJSON NodeVersion where
NodeToClientVersionV18 m -> go2 "NodeToClientVersionV18" m
NodeToClientVersionV19 m -> go2 "NodeToClientVersionV19" m
NodeToClientVersionV20 m -> go2 "NodeToClientVersionV20" m
NodeToClientVersionV21 m -> go2 "NodeToClientVersionV21" m
NodeToNodeVersionV1 m -> go2 "NodeToNodeVersionV1" m
NodeToNodeVersionV2 m -> go2 "NodeToNodeVersionV2" m
NodeToNodeVersionV3 m -> go2 "NodeToNodeVersionV3" m
Expand Down Expand Up @@ -365,6 +368,9 @@ handshakeReqEnc versions query =
encodeVersion (NodeToClientVersionV20 magic) =
CBOR.encodeWord (20 `setBit` nodeToClientVersionBit)
<> nodeToClientDataWithQuery magic
encodeVersion (NodeToClientVersionV21 magic) =
CBOR.encodeWord (21 `setBit` nodeToClientVersionBit)
<> nodeToClientDataWithQuery magic

-- node-to-node
encodeVersion (NodeToNodeVersionV1 magic) =
Expand Down Expand Up @@ -514,6 +520,7 @@ handshakeDec = do
(18, True) -> Right . NodeToClientVersionV18 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
(19, True) -> Right . NodeToClientVersionV19 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
(20, True) -> Right . NodeToClientVersionV20 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
(21, True) -> Right . NodeToClientVersionV21 <$> (CBOR.decodeListLen *> CBOR.decodeWord32 <* (modeFromBool <$> CBOR.decodeBool))
_ -> return $ Left $ UnknownVersionInRsp version

decodeWithMode :: (Word32 -> InitiatorOnly -> NodeVersion) -> CBOR.Decoder s (Either HandshakeFailure NodeVersion)
Expand Down Expand Up @@ -837,6 +844,7 @@ isSameVersionAndMagic v1 v2 = extract v1 == extract v2
extract (NodeToClientVersionV18 m) = (-18, m)
extract (NodeToClientVersionV19 m) = (-19, m)
extract (NodeToClientVersionV20 m) = (-20, m)
extract (NodeToClientVersionV21 m) = (-21, m)
extract (NodeToNodeVersionV1 m) = (1, m)
extract (NodeToNodeVersionV2 m) = (2, m)
extract (NodeToNodeVersionV3 m) = (3, m)
Expand Down
10 changes: 5 additions & 5 deletions decentralized-message-queue/decentralized-message-queue.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,13 @@ library
iproute ^>=1.7.15,
monoidal-synchronisation >=0.1 && <0.2,
network ^>=3.2.7,
network-mux ^>=0.8,
network-mux ^>=0.9,
nothunks ^>=0.1.4 || ^>=0.2,
optparse-applicative ^>=0.18,
ouroboros-network:{ouroboros-network, orphan-instances} ^>=0.21,
ouroboros-network-api ^>=0.14,
ouroboros-network-framework ^>=0.18,
ouroboros-network-protocols ^>=0.14.0.1,
ouroboros-network:{ouroboros-network, orphan-instances} ^>=0.22,
ouroboros-network-api ^>=0.15,
ouroboros-network-framework ^>=0.19,
ouroboros-network-protocols ^>=0.15,
random ^>=1.2,
text >=1.2.4 && <2.2,
typed-protocols ^>=1.0,
Expand Down
8 changes: 6 additions & 2 deletions network-mux/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,18 @@

### Breaking changes

### Non-breaking changes

## 0.9.0.0 -- 2025-06-28

### Breaking changes

* run, miniProtocolJob, monitor now accept Tracers record
instead of `Tracer m Trace` type.
* Removed handshake trace events from mux trace.
* `Trace` was split into three traces: `Trace` of mux events, `ChannelTrace`
& `BearerTrace`. As a result `run` & `Bearer` API were modified.

### Non-breaking changes

## 0.8.0.1 -- 2025-06-02

### Breaking changes
Expand Down
2 changes: 1 addition & 1 deletion network-mux/network-mux.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: network-mux
version: 0.8.0.1
version: 0.9.0.0
synopsis: Multiplexing library
description: Multiplexing library.
license: Apache-2.0
Expand Down
6 changes: 6 additions & 0 deletions ouroboros-network-api/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@

### Breaking changes

### Non-breaking changes

## 0.15.0.0 -- 2025-06-28

### Breaking changes

* Added `NodeToClientV_21`.

### Non-breaking changes
Expand Down
4 changes: 2 additions & 2 deletions ouroboros-network-api/ouroboros-network-api.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ouroboros-network-api
version: 0.14.0.0
version: 0.15.0.0
synopsis: A networking api shared with ouroboros-consensus
description: A networking api shared with ouroboros-consensus.
license: Apache-2.0
Expand Down Expand Up @@ -71,7 +71,7 @@ library
iproute ^>=1.7.15,
measures,
network ^>=3.2.7,
network-mux ^>=0.8,
network-mux ^>=0.9,
nothunks,
quiet,
random,
Expand Down
6 changes: 6 additions & 0 deletions ouroboros-network-framework/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@

### Breaking changes

### Non-breaking changes

## 0.19.0.0 -- 28.06.2025

### Breaking changes

* IG performance related improvements changing to interfaces of
* IG `with` and `Arguments`
* CM `with` and `Arguments`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ouroboros-network-framework
version: 0.18.0.1
version: 0.19.0.0
synopsis: Ouroboros network framework
description: Ouroboros network framework.
license: Apache-2.0
Expand Down Expand Up @@ -76,10 +76,10 @@ library
io-classes:{io-classes, si-timers, strict-stm} ^>=1.8.0.1,
monoidal-synchronisation ^>=0.1.0.6,
network ^>=3.2.7,
network-mux ^>=0.8.0.1,
network-mux ^>=0.9,
nothunks,
nothunks ^>=0.1.4 || ^>=0.2,
ouroboros-network-api ^>=0.14,
ouroboros-network-api ^>=0.15,
ouroboros-network-testing,
psqueues,
quiet,
Expand Down
8 changes: 8 additions & 0 deletions ouroboros-network-protocols/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,16 @@

### Breaking changes

### Non-breaking changes

## 0.15.0.0 -- 28.06.2025

### Breaking changes

* Chain-sync protocol is providing `ProtocolTimeLimitsWithRnd`. It now must be
run using either `runPeerWithLimitsRnd` or `runPipelinedPeerWithLimitsRnd`.
* `ChainSyncTimeout` data type is removed.
* `timeLimitsChainSync` changed type: it is a function which takes the idle timeout as an argument.
* `Ouroboros.Network.Protocols.TxSubmission2.Codec.{encode,decode}TxSubmission2`
are no longer exported.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ouroboros-network-protocols
version: 0.14.0.1
version: 0.15.0.0
synopsis: Ouroboros Network Protocols
description: Ouroboros Network Protocols.
license: Apache-2.0
Expand Down Expand Up @@ -104,7 +104,7 @@ library
deepseq,
io-classes:{io-classes, si-timers} ^>=1.8.0.1,
nothunks,
ouroboros-network-api ^>=0.14,
ouroboros-network-api ^>=0.15,
quiet,
random,
serialise,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ module Ouroboros.Network.Protocol.ChainSync.Codec
, timeLimitsChainSync
, maxChainSyncTimeout
, minChainSyncTimeout
, ChainSyncIdleTimeout (..)
) where

import Control.Monad.Class.MonadST
Expand Down Expand Up @@ -63,6 +64,15 @@ maxChainSyncTimeout :: DiffTime
maxChainSyncTimeout = 269


-- | ChainSync timeout for the `StIdle` state, e.g. how long the client can
-- await for `MsgRollForward`, `MsgRollBackward`, `MsgIntersectFound` or
-- `MsgIntersectNotFound`.
--
data ChainSyncIdleTimeout
= ChainSyncIdleTimeout DiffTime
| ChainSyncNoIdleTimeout


-- | Time Limits
--
-- +----------------------------+-------------------------------------------------------------+
Expand All @@ -81,13 +91,19 @@ maxChainSyncTimeout = 269
-- +----------------------------+-------------------------------------------------------------+
--
timeLimitsChainSync :: forall (header :: Type) (point :: Type) (tip :: Type).
ProtocolTimeLimitsWithRnd (ChainSync header point tip)
timeLimitsChainSync = ProtocolTimeLimitsWithRnd stateToLimit
ChainSyncIdleTimeout
-- ^ idle timeout, the default value
-- `Configuration.defaultChainSyncIdleTimeout`.
-> ProtocolTimeLimitsWithRnd (ChainSync header point tip)
timeLimitsChainSync idleTimeout = ProtocolTimeLimitsWithRnd stateToLimit
where
stateToLimit :: forall (st :: ChainSync header point tip).
ActiveState st
=> StateToken st -> StdGen -> (Maybe DiffTime, StdGen)
stateToLimit SingIdle rnd = (Just 3673, rnd)
stateToLimit SingIdle rnd | ChainSyncIdleTimeout timeout <- idleTimeout
= (Just timeout, rnd)
| otherwise
= (Nothing, rnd)
stateToLimit SingIntersect rnd = (shortWait, rnd)
stateToLimit (SingNext SingCanAwait) rnd = (shortWait, rnd)
stateToLimit (SingNext SingMustReply) rnd =
Expand Down
8 changes: 8 additions & 0 deletions ouroboros-network-testing/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@

### Non-breaking changes

## 0.8.2.0 -- 28.06.2025

### Non-breaking changes

* Support `io-classes-1.8`.
* Improved `Arbitrary` instances for `Delay` and `SmallDelay`.
* Improved `Show` instances for `WithName` and `WithTime`.

## 0.8.1.0 -- 2025-02-25

### Non-breaking changes
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ouroboros-network-testing
version: 0.8.1.0
version: 0.8.2.0
synopsis: Common modules used for testing in ouroboros-network and ouroboros-consensus
description: Common modules used for testing in ouroboros-network and ouroboros-consensus.
license: Apache-2.0
Expand Down
20 changes: 13 additions & 7 deletions ouroboros-network/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,11 @@

## next release

### Breaking changes

### Non-breaking changes

* Tracing of DNS results is now directly performed by `dnsLookupWithTTL`,
which is captured by the new `DNSTrace` type. Results are tagged with
the new `DNSLookupResult` type. The type of peer that traces are tagged with
are captured by the `DNSPeersKind` type, which also distinguishes the type
of ledger peer.
* Added `dispatchLookupWithTTL`
* Lower the time to cache DNS errors to at most 15min.
## 0.22.0.0 -- 28.06.2025

### Breaking changes

Expand Down Expand Up @@ -40,6 +36,16 @@
- `runM` function now receives `ExtraParameters` as an argument
- Configurable Mux Egress Poll Interval

### Non-breaking changes

* Tracing of DNS results is now directly performed by `dnsLookupWithTTL`,
which is captured by the new `DNSTrace` type. Results are tagged with
the new `DNSLookupResult` type. The type of peer that traces are tagged with
are captured by the `DNSPeersKind` type, which also distinguishes the type
of ledger peer.
* Added `dispatchLookupWithTTL`
* Lower the time to cache DNS errors to at most 15min.

## 0.21.2.0 -- 2025-06-02

### Breaking changes
Expand Down
Loading