-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revise ouroboros-network-0.16 (#776)
- Loading branch information
Showing
2 changed files
with
385 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 |
---|---|---|
@@ -1,3 +1,7 @@ | ||
timestamp = 2024-05-07T20:33:59Z | ||
github = { repo = "intersectmbo/ouroboros-network", rev = "c5314093f33c01f910be59b24f092be8ceeff9b1" } | ||
subdir = 'ouroboros-network' | ||
|
||
[[revisions]] | ||
number = 1 | ||
timestamp = 2024-05-29T10:15:00Z |
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,381 @@ | ||
cabal-version: 3.0 | ||
name: ouroboros-network | ||
version: 0.16.0.0 | ||
synopsis: A networking layer for the Ouroboros blockchain protocol | ||
description: A networking layer for the Ouroboros blockchain protocol. | ||
license: Apache-2.0 | ||
license-files: LICENSE | ||
NOTICE | ||
copyright: 2019-2023 Input Output Global Inc (IOG), 2023-2024 Intersect | ||
author: Alexander Vieth, Marcin Szamotulski, Duncan Coutts | ||
maintainer: [email protected] | ||
category: Network | ||
build-type: Simple | ||
extra-doc-files: CHANGELOG.md | ||
|
||
flag asserts | ||
description: Enable assertions | ||
manual: False | ||
default: False | ||
|
||
source-repository head | ||
type: git | ||
location: https://github.com/intersectmbo/ouroboros-network | ||
|
||
library | ||
hs-source-dirs: src | ||
|
||
-- At this experiment/prototype stage everything is exposed. | ||
-- This has to be tidied up once the design becomes clear. | ||
exposed-modules: | ||
Ouroboros.Network.BlockFetch | ||
Ouroboros.Network.BlockFetch.Client | ||
Ouroboros.Network.BlockFetch.ClientRegistry | ||
Ouroboros.Network.BlockFetch.ClientState | ||
Ouroboros.Network.BlockFetch.Decision | ||
Ouroboros.Network.BlockFetch.DeltaQ | ||
Ouroboros.Network.BlockFetch.State | ||
Ouroboros.Network.DeltaQ | ||
Ouroboros.Network.Diffusion | ||
Ouroboros.Network.Diffusion.Configuration | ||
Ouroboros.Network.Diffusion.P2P | ||
Ouroboros.Network.Diffusion.NonP2P | ||
Ouroboros.Network.Diffusion.Policies | ||
Ouroboros.Network.ExitPolicy | ||
Ouroboros.Network.KeepAlive | ||
Ouroboros.Network.NodeToNode | ||
Ouroboros.Network.NodeToClient | ||
Ouroboros.Network.Tracers | ||
Ouroboros.Network.PeerSelection.Types | ||
Ouroboros.Network.PeerSelection.LedgerPeers | ||
Ouroboros.Network.PeerSelection.PublicRootPeers | ||
Ouroboros.Network.PeerSelection.PeerMetric | ||
Ouroboros.Network.PeerSelection.PeerSelectionActions | ||
Ouroboros.Network.PeerSelection.PeerStateActions | ||
Ouroboros.Network.PeerSelection.Governor | ||
Ouroboros.Network.PeerSelection.State.EstablishedPeers | ||
Ouroboros.Network.PeerSelection.State.KnownPeers | ||
Ouroboros.Network.PeerSelection.State.LocalRootPeers | ||
Ouroboros.Network.PeerSelection.RootPeersDNS | ||
Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions | ||
Ouroboros.Network.PeerSelection.RootPeersDNS.DNSSemaphore | ||
Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers | ||
Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers | ||
Ouroboros.Network.PeerSharing | ||
Ouroboros.Network.TxSubmission.Inbound | ||
Ouroboros.Network.TxSubmission.Mempool.Reader | ||
Ouroboros.Network.TxSubmission.Outbound | ||
other-modules: Ouroboros.Network.Diffusion.Common | ||
Ouroboros.Network.PeerSelection.Governor.ActivePeers | ||
Ouroboros.Network.PeerSelection.Governor.EstablishedPeers | ||
Ouroboros.Network.PeerSelection.Governor.KnownPeers | ||
Ouroboros.Network.PeerSelection.Governor.BigLedgerPeers | ||
Ouroboros.Network.PeerSelection.Governor.Monitor | ||
Ouroboros.Network.PeerSelection.Governor.RootPeers | ||
Ouroboros.Network.PeerSelection.Governor.Types | ||
Ouroboros.Network.PeerSelection.LedgerPeers.Common | ||
Ouroboros.Network.PeerSelection.RootPeersDNS.LedgerPeers | ||
Ouroboros.Network.PeerSelection.Churn | ||
Ouroboros.Network.Diffusion.Utils | ||
reexported-modules: Ouroboros.Network.AnchoredFragment, | ||
Ouroboros.Network.AnchoredSeq, | ||
Ouroboros.Network.Magic, | ||
Ouroboros.Network.NodeToClient.Version, | ||
Ouroboros.Network.NodeToNode.Version | ||
|
||
default-language: Haskell2010 | ||
default-extensions: ImportQualifiedPost | ||
other-extensions: BangPatterns, | ||
DataKinds, | ||
EmptyCase, | ||
ExistentialQuantification, | ||
FlexibleContexts, | ||
FlexibleInstances, | ||
FunctionalDependencies, | ||
GADTs, | ||
GADTSyntax, | ||
GeneralizedNewtypeDeriving, | ||
MultiParamTypeClasses, | ||
NamedFieldPuns, | ||
OverloadedStrings, | ||
PolyKinds, | ||
RankNTypes, | ||
RecordWildCards, | ||
ScopedTypeVariables, | ||
TemplateHaskell, | ||
TupleSections, | ||
TypeApplications, | ||
TypeFamilies, | ||
TypeInType | ||
build-depends: base >=4.14 && <4.20, | ||
async >=2.2 && <2.3, | ||
bytestring >=0.10 && <0.13, | ||
cborg >=0.2.1 && <0.3, | ||
containers, | ||
deepseq, | ||
dns, | ||
hashable, | ||
iproute, | ||
mtl, | ||
network ^>=3.1.4, | ||
nothunks, | ||
psqueues >=0.2.3 && <0.3, | ||
random, | ||
|
||
cardano-prelude, | ||
cardano-slotting, | ||
cardano-strict-containers, | ||
contra-tracer, | ||
monoidal-synchronisation, | ||
strict-checked-vars ^>= 0.2, | ||
|
||
io-classes ^>=1.4.1, | ||
io-classes-mtl >=0.1 && <0.1.2, | ||
network-mux, | ||
si-timers, | ||
ouroboros-network-api ^>=0.7.2, | ||
ouroboros-network-framework ^>=0.13.1, | ||
ouroboros-network-protocols ^>=0.8, | ||
strict-stm, | ||
typed-protocols ^>=0.1.1, | ||
if !os(windows) | ||
build-depends: directory, | ||
unix | ||
|
||
ghc-options: -Wall | ||
-Wno-unticked-promoted-constructors | ||
-Wcompat | ||
-Wincomplete-uni-patterns | ||
-Wincomplete-record-updates | ||
-Wpartial-fields | ||
-Widentities | ||
-Wredundant-constraints | ||
-Wunused-packages | ||
if flag(asserts) | ||
ghc-options: -fno-ignore-asserts | ||
|
||
|
||
-- Simulation Test Library | ||
library sim-tests-lib | ||
default-language: Haskell2010 | ||
default-extensions: ImportQualifiedPost | ||
visibility: public | ||
hs-source-dirs: sim-tests-lib | ||
build-depends: base >=4.14 && <4.20, | ||
bytestring, | ||
QuickCheck, | ||
quickcheck-monoids, | ||
aeson, | ||
array, | ||
cborg, | ||
containers, | ||
deepseq, | ||
dns, | ||
hashable, | ||
iproute, | ||
mtl, | ||
network, | ||
pipes, | ||
pretty-simple, | ||
psqueues, | ||
random, | ||
serialise, | ||
tasty, | ||
tasty-hunit, | ||
tasty-quickcheck, | ||
text, | ||
time, | ||
|
||
cardano-prelude, | ||
cardano-slotting, | ||
contra-tracer, | ||
nothunks, | ||
|
||
io-classes, | ||
io-sim, | ||
monoidal-synchronisation, | ||
network-mux, | ||
ouroboros-network, | ||
ouroboros-network-api, | ||
ouroboros-network-framework, | ||
ouroboros-network-mock, | ||
ouroboros-network-protocols, | ||
ouroboros-network-protocols:testlib, | ||
ouroboros-network-framework:testlib, | ||
ouroboros-network-testing ^>= 0.6.0, | ||
si-timers, | ||
strict-stm, | ||
typed-protocols, | ||
typed-protocols-examples, | ||
exposed-modules: Ouroboros.Network.BlockFetch.Examples | ||
Ouroboros.Network.MockNode | ||
Test.Ouroboros.Network.BlockFetch | ||
Test.Ouroboros.Network.Diffusion.Node | ||
Test.Ouroboros.Network.Diffusion.Node.ChainDB | ||
Test.Ouroboros.Network.Diffusion.Node.MiniProtocols | ||
Test.Ouroboros.Network.Diffusion.Node.NodeKernel | ||
Test.Ouroboros.Network.Diffusion.Policies | ||
Test.Ouroboros.Network.KeepAlive | ||
Test.Ouroboros.Network.LedgerPeers | ||
Test.Ouroboros.Network.MockNode | ||
Test.Ouroboros.Network.Mux | ||
Test.Ouroboros.Network.NodeToClient.Version | ||
Test.Ouroboros.Network.NodeToNode.Version | ||
Test.Ouroboros.Network.Orphans | ||
Test.Ouroboros.Network.PeerSelection | ||
Test.Ouroboros.Network.PeerSelection.Instances | ||
Test.Ouroboros.Network.PeerSelection.Json | ||
Test.Ouroboros.Network.PeerSelection.KnownPeers | ||
Test.Ouroboros.Network.PeerSelection.LocalRootPeers | ||
Test.Ouroboros.Network.PeerSelection.MockEnvironment | ||
Test.Ouroboros.Network.PeerSelection.PeerGraph | ||
Test.Ouroboros.Network.PeerSelection.PeerMetric | ||
Test.Ouroboros.Network.PeerSelection.RootPeersDNS | ||
Test.Ouroboros.Network.PeerSelection.PublicRootPeers | ||
Test.Ouroboros.Network.PeerState | ||
Test.Ouroboros.Network.Testnet | ||
Test.Ouroboros.Network.Testnet.Simulation.Node | ||
Test.Ouroboros.Network.TxSubmission | ||
Test.Ouroboros.Network.Version | ||
|
||
ghc-options: -Wall | ||
-Wno-unticked-promoted-constructors | ||
-Wcompat | ||
-Wincomplete-uni-patterns | ||
-Wincomplete-record-updates | ||
-Wpartial-fields | ||
-Widentities | ||
-Wunused-packages | ||
-fno-ignore-asserts | ||
|
||
-- Simulation tests, and IO tests which don't require native system calls. | ||
-- (i.e. they don't require system call API provided by `Win32-network` or | ||
-- `network` dependency). test-suite sim-tests | ||
test-suite sim-tests | ||
default-language: Haskell2010 | ||
default-extensions: ImportQualifiedPost | ||
type: exitcode-stdio-1.0 | ||
hs-source-dirs: sim-tests | ||
main-is: Main.hs | ||
build-depends: base >=4.14 && <4.20, | ||
tasty, | ||
tasty-hunit, | ||
tasty-quickcheck, | ||
with-utf8, | ||
|
||
ouroboros-network-protocols:testlib, | ||
ouroboros-network:sim-tests-lib | ||
ghc-options: -Wall | ||
-Wno-unticked-promoted-constructors | ||
-fno-ignore-asserts | ||
-threaded | ||
-rtsopts | ||
+RTS -T -RTS | ||
|
||
-- Tests which require system calls provided by `Win32-network` or `network` | ||
-- library. These tests are compiled natively & run on all supported | ||
-- platforms: x86_64-w64-mingw32 (Windows), x86_64-linux, x86-64-darwin and | ||
-- aarch64-darwin. | ||
test-suite io-tests | ||
type: exitcode-stdio-1.0 | ||
hs-source-dirs: io-tests | ||
main-is: Main.hs | ||
other-modules: Test.Ouroboros.Network.Pipe | ||
Test.Ouroboros.Network.Socket | ||
default-language: Haskell2010 | ||
default-extensions: ImportQualifiedPost | ||
build-depends: base >=4.14 && <4.20, | ||
bytestring, | ||
QuickCheck, | ||
network, | ||
serialise, | ||
tasty, | ||
tasty-quickcheck, | ||
|
||
contra-tracer, | ||
|
||
io-classes, | ||
network-mux, | ||
ouroboros-network, | ||
ouroboros-network-api, | ||
ouroboros-network-framework, | ||
ouroboros-network-mock, | ||
ouroboros-network-protocols, | ||
ouroboros-network-protocols:testlib, | ||
ouroboros-network-framework:testlib, | ||
ouroboros-network-testing ^>= 0.6.1.0, | ||
si-timers, | ||
strict-stm, | ||
with-utf8, | ||
|
||
if os(windows) | ||
build-depends: Win32-network <0.2.0.0, | ||
Win32 >= 2.5.4.1 && <3.0 | ||
else | ||
build-depends: process | ||
|
||
ghc-options: -Wall | ||
-Wno-unticked-promoted-constructors | ||
-fno-ignore-asserts | ||
-threaded | ||
-rtsopts | ||
+RTS -T -RTS | ||
|
||
executable demo-chain-sync | ||
hs-source-dirs: demo | ||
main-is: chain-sync.hs | ||
build-depends: base >=4.14 && <4.20, | ||
async, | ||
bytestring, | ||
containers, | ||
directory, | ||
infinite-list, | ||
optparse-applicative, | ||
random, | ||
serialise, | ||
stm, | ||
|
||
contra-tracer, | ||
|
||
typed-protocols, | ||
strict-stm, | ||
ouroboros-network-api, | ||
ouroboros-network-framework, | ||
ouroboros-network-mock, | ||
ouroboros-network-protocols, | ||
ouroboros-network | ||
|
||
default-language: Haskell2010 | ||
default-extensions: ImportQualifiedPost | ||
ghc-options: -Wall | ||
-threaded | ||
-rtsopts | ||
|
||
benchmark sim-benchmarks | ||
default-language: Haskell2010 | ||
default-extensions: ImportQualifiedPost | ||
type: exitcode-stdio-1.0 | ||
hs-source-dirs: bench | ||
main-is: Main.hs | ||
build-depends: base, | ||
tasty-bench >=0.3.5, | ||
|
||
ouroboros-network:sim-tests-lib | ||
|
||
ghc-options: -Wall | ||
-Wno-unticked-promoted-constructors | ||
-Wcompat | ||
-Wincomplete-uni-patterns | ||
-Wincomplete-record-updates | ||
-Wpartial-fields | ||
-Widentities | ||
-Wunused-packages | ||
-fno-ignore-asserts | ||
-with-rtsopts=-A32m | ||
+RTS -T -RTS | ||
|
||
-- We use this option to avoid skewed results due to changes in cache-line | ||
-- alignment. See | ||
-- https://github.com/Bodigrim/tasty-bench#comparison-against-baseline | ||
if impl(ghc >=8.6) | ||
ghc-options: -fproc-alignment=64 |