- New tests
- Using
quickcheck-monoids
- connection-manager: maintain it's own source of randomness for
PrunePolicy
. The typesPrunPolicy
,ConnectionManagerArguments
changed. - server accepts a callback which receives an
STM
action allowing to observe public part ofInboundGovernorState
. The refactorisation changed how exceptions are propagated through from the threads run by the server to the main thread.InboundGovernorObservableState
was replaced withPublicInboundGovernorState
. - removed the outbound information channel between the connection manager
& outbound governor; the outbound governor now can use the
PublichInboundGovernorState
. - Added
serverDebugInboundGovernor
tracer was added toServerArguments
.
- Let light peer sharing depend on the configured peer sharing flag
- Added
Generic
andNFData
instance derivations forNodeToNodeVersion
data type - Added
NFData
forHandshake
protocol related types
- Fixed correct transition tracing in the case of self connect
- Moved
configureOutboundSocket
toouroboros-network
(it's not exported anymore).
- ghc-9.8 support.
- Add Socket.NoDelay option to
configureOutboundSocket
- Use
io-sim-1.3.1.0
.
- Updated code to accommodate changes on
PeerSharing
data type. - Fixed Server2 sim test by synchronizing connection/disconnection events.
- Changed connection manager
readState
function to be inSTM
instead ofm
- Added
waitForOutboundDemotion
function to Connection Manager's API - Use
io-sim-1.3.0.0
.
- Updated code to accommodate changes on
PeerSharing
data type. - Updated version bounds.
ResourceException
is now an existential type.
- An inbound peer is considered hot if any hot protocol is running.
- Split
test
component intoio-tests
andsim-tests
. demo-ping-pong
: improved tracer.- Fixed a bug in
connection-manager
which could result in leaking a connection.
- Pass
Maybe InformationChannel
to connection manger. This gives us a way to disable light peer sharing.
-
MuxProtocolBundle
type alias was removed, since it was just reduced to a list of 'MiniProtocol's. -
Added
ExpandedInitiatorContext
,MinimalInitiatorContext
andResponderInitiatorContext
types in a new module:Ouroboros.Network.Context
. The module also re-exportsConnectionId
,IsBigLedgerPeer
andControlMessageSTM
thus an unqualified import might cause some warnings. -
RunMiniProtocol
now contains callbacks which receive a context. The type is polymorphic over initiator and responder contexts. We also provide type aliases forRunMiniProtocolWithExpandedCtx
andRunMiniProtocolWithMinimalCtx
which instatiate initiator and responider contexts. -
Added
OuroborosBundleWithExpandedCtx
andOuroborosBundleWithMinimalCtx
type aliases. -
Added
OuroborosApplicationWithMinimalCtx
type aliases. -
Added
contramMapInitiatorCtx
which contramaps the initiator context of anOuroborosApplication
. -
Added
fromOuroborosBundle
which createsOuroborosApplication
fromOuroborosBundle
by forgetting the hot / warm / established distinction between all mini-protocols. -
Removed
MuxBundle
andmkMuxApplicationBundle
which is no longer needed. -
Due to the above changes the following APIs changed their type signatures:
Ouroboros.Network.Socket.connectToNode
Ouroboros.Network.Socket.connectToNode'
Ouroboros.Network.Socket.connectToNodeSocket
Ouroboros.Network.Socket.SomeResponderApplication
Ouroboros.Network.Socket.withServerNode
- inbound governor API
-
MuxPeer
changed it's kind and it was renamed toMiniProtocolCb
, the old type is still provided but deprecated. TheMuxPeerRaw
constructor was renamed toMiniProtocolCb
(the old one is still provided but deprecated).MuxPeer
andMuxPeerPipelined
constructors also changed its type and are now deprecated. UsemkMiniProtocolCbFromPeer
andmkMiniProtocolCbFromPeerPipelined
instead.Also note that even the deprecated constructors have changed their types.
-
runMuxPeer
change its type but also is now deprecated in favour ofrunMiniProtocolCb
. The latter receives two arguments: the context andNetwork.Mux.Channel.Channel
rather thanOuroboros.Network.Channel.Channel
(no need to useOuroboros.Network.Channel.fromChannel
).runMuxPeer
accepts the context (added argument) andOuroboros.Network.Channel.Channel
.
- Added
Functor
instance forConnectionId
.
- light peer sharing:
- Added
cmGetPeerSharing
field toConnectionManagerArguments
. - Added
getProtocolPeerSharing
field toDataFlowProtocolData
record. - Renamed
serverControlChannel
asserverInboundInfoChannel
of theServerArguments
record. - Moved
OurboundGovernorInfoChannel
toouroboros-network
.
- Added
- Fixed query shutdown timeout in the legacy (non-p2p) mode (20s).
- Updated to use
ouroboros-network-api-0.5.0.0
.
- Handshake support for querying:
- Use
ouroboros-network-api-0.4.0.0
- Added
haQueryVersion
toHandshakeArguments
handshakeServerPeer
recieves extra argumentvData -> Bool
- Added
MsgQueryReply
toHandshake
mini-protocol. - Added
Ouroboros.Network.Protocol.Handshake.Client.handshakeCleintPeerTestVersions
- Added
HandshakeResult
andHandshakeException
types.
- Use
- Use
io-classes-1.1
.
ghc-9.4
andghc-9.6
compatibility.
- Fix interop problems between NonP2P and P2P nodes (PR #4465)
- Fix incorrect transition order (issue #4370)
- Removed
TrImpossibleConnection
trace (PR #4385) - Peer Sharing integration
- Removed
toBearer
method ofSnocket
, instead theOuroboros.Network.Snocket
module exposesmakeSocketBearer
,makeLocalBearer
and re-exportsMakeBearer
newtype wrapper. - Update dependencies after repository restructure.
- Added
ipv6
cabal flag. - Support
ghc-9.2
- Export
WithAddr
fromSimulation.Network.Snocket
- Use
io-sim-0.3.0.0
ExceptionInHandler
is an existential type which makes it easier to catch.- Connection handler rethrows exceptions wrapped in
ExceptionInHandler
. - We don't configure sockets in
bind
method anymore, many functions accept an argument to configure a socket, e.g.ConnectionManagerArguments
. AddedconfigureSocket
,configureSystemdSocket
andconfigureOutboundSocket
functions inOuroboros.Network.Socket
module. Also addedSystemdSocketTracer
- Removed
StructLinger
(it's available from thenetwork-3.1.2.2
package) - Renamed
TrError
asTrConnectionHandlerError
which is a constructor ofConnectionHandlerTrace
type. - Changed
Show
instance ofTestAddress
- Removed
TrUnknownConnection
trace (connection-manager). - Changed type of
serverInboundIdleTimeout
field ofServerArguments
fromDiffTime
toMaybe DiffTime
. - Renamed
Ouroboros.Network.Mux.TokProtocolTemperature
asOuroboros.Network.Mux.SingProtocolTemperature
. - Renamed
Ouroboros.Network.Mux.Bundle
asOuroboros.Network.Mux.TemperatureBundle
. - Connection manager's
ControlChannel
type changed (internal).
- First version. Released on an unsuspecting world.