Skip to content

Commit

Permalink
Merge #588
Browse files Browse the repository at this point in the history
588: Update ouroboros-network dependency r=mrBliss a=mrBliss


Issue
------

Pushing through the changes made in IntersectMBO/ouroboros-network#1657


checklist
---------
- [ ] This PR contains all the work required to resolve the linked issue.

- [ ] This PR results in breaking changes to upstream dependencies.

- [ ] The work contained has sufficient documentation to describe what it does and how to do it.

- [ ] The work has sufficient tests and/or testing.

- [ ] I have committed clear and descriptive commits. Be considerate as somebody else will have to read these.

- [ ] I have added the appropriate labels to this PR.


Co-authored-by: Thomas Winant <thomas@well-typed.com>
Co-authored-by: Marcin Szamotulski <profunctor@pm.me>
Co-authored-by: Luke Nadur <19835357+intricate@users.noreply.github.com>
  • Loading branch information
4 people authored Feb 27, 2020
2 parents 65bef97 + 94b440b commit b736a1c
Show file tree
Hide file tree
Showing 25 changed files with 443 additions and 340 deletions.
70 changes: 52 additions & 18 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ package cardano-config
package cardano-node
ghc-options: -Wall -fwarn-redundant-constraints

package ouroboros-consensus-byron
tests: False

package ouroboros-consensus-mock
tests: False

source-repository-package
type: git
location: https://github.com/input-output-hk/cardano-base
Expand Down Expand Up @@ -184,66 +190,94 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: ouroboros-network

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: io-sim

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: ouroboros-network-testing

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: ouroboros-consensus

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: ouroboros-consensus/ouroboros-consensus-mock

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: ouroboros-consensus-byron

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: ouroboros-consensus-cardano

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: typed-protocols

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: typed-protocols-examples

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: ouroboros-network-framework

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: network-mux

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 5f77e24c2263560ad58b9ba092c8cfed174675ae
--sha256: 00bm1fa83lc6jgh36mwr4zymzg9hvmq68y2hm4klk8c8gn7vwqqb
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: io-sim-classes

source-repository-package
type: git
location: https://github.com/input-output-hk/ouroboros-network
tag: 36861a97272de1e4de448925dd9bb9c0fddd80f6
--sha256: 08jb0qj60i5dfsq17dyix3pdv05kg505n9kd7ps9j7dzl1p9pb2y
subdir: Win32-network

source-repository-package
type: git
location: http://github.com/well-typed/canonical-json
Expand Down
2 changes: 2 additions & 0 deletions cardano-config/cardano-config.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ library
, network
, optparse-applicative
, ouroboros-consensus
, ouroboros-consensus-byron
, ouroboros-consensus-cardano
, ouroboros-network
, process
, iproute
Expand Down
85 changes: 42 additions & 43 deletions cardano-config/src/Cardano/Config/Protocol.hs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}

{-# OPTIONS_GHC -Wno-all-missed-specialisations #-}
Expand All @@ -16,48 +16,43 @@ module Cardano.Config.Protocol
, TraceConstraints
) where



import Cardano.Prelude
import Test.Cardano.Prelude (canonicalDecodePretty)

import Codec.CBOR.Read (deserialiseFromBytes, DeserialiseFailure)
import Codec.CBOR.Read (DeserialiseFailure, deserialiseFromBytes)
import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Except.Extra ( bimapExceptT, firstExceptT
, hoistEither, left)
import Control.Monad.Trans.Except.Extra (bimapExceptT, firstExceptT,
hoistEither, left)
import qualified Data.ByteString.Lazy as LB

import qualified Cardano.Chain.Genesis as Genesis
import qualified Cardano.Chain.Update as Update
import Cardano.Crypto (RequiresNetworkMagic, decodeHash)
import qualified Cardano.Crypto.Signing as Signing

import Ouroboros.Consensus.Block (Header)
import Ouroboros.Consensus.BlockchainTime
(SlotLength, slotLengthFromSec,
SlotLengths, singletonSlotLengths)
import Ouroboros.Consensus.Block (Header, BlockProtocol)
import Ouroboros.Consensus.BlockchainTime (SlotLength, SlotLengths,
singletonSlotLengths,
slotLengthFromSec)
import Ouroboros.Consensus.Cardano hiding (Protocol)
import qualified Ouroboros.Consensus.Cardano as Consensus
import Ouroboros.Consensus.Mempool.API (ApplyTxErr, GenTx, GenTxId,
HasTxId, TxId)
import Ouroboros.Consensus.Node.ProtocolInfo (NumCoreNodes (..),
PBftLeaderCredentials,
PBftLeaderCredentialsError,
PBftSignatureThreshold(..),
mkPBftLeaderCredentials)
import Ouroboros.Consensus.NodeId (CoreNodeId (..), NodeId (..))
import Ouroboros.Consensus.Node.ProtocolInfo (NumCoreNodes (..))

import Ouroboros.Consensus.Byron.Ledger (ByronBlock)
import Ouroboros.Consensus.Node.Run (RunNode)
import Ouroboros.Consensus.Protocol (SecurityParam (..),
PraosParams (..),
PBftParams (..))
import qualified Ouroboros.Consensus.Protocol as Consensus
import qualified Ouroboros.Consensus.Ledger.Byron as Consensus
import Ouroboros.Consensus.Util (Dict(..))
import Ouroboros.Consensus.NodeId (CoreNodeId (..), NodeId (..))
import Ouroboros.Consensus.Protocol.Abstract (SecurityParam (..))
import Ouroboros.Consensus.Util (Dict (..))
import Ouroboros.Consensus.Util.Condense
import Ouroboros.Network.Block
import Ouroboros.Network.Block (HeaderHash)

import Cardano.Config.Types
(DelegationCertFile (..), GenesisFile (..),
LastKnownBlockVersion (..), Update (..),
Protocol (..), SigningKeyFile (..))
import Cardano.Config.Types (DelegationCertFile (..),
GenesisFile (..),
LastKnownBlockVersion (..),
Protocol (..), SigningKeyFile (..),
Update (..))

-- TODO: consider not throwing this, or wrap it in a local error type here
-- that has proper error messages.
Expand Down Expand Up @@ -105,7 +100,7 @@ mockSomeProtocol
=> Maybe NodeId
-> Maybe Word64
-- ^ Number of core nodes
-> (CoreNodeId -> NumCoreNodes -> Consensus.Protocol blk)
-> (CoreNodeId -> NumCoreNodes -> Consensus.Protocol blk (BlockProtocol blk))
-> Either ProtocolInstantiationError SomeProtocol
mockSomeProtocol nId mNumCoreNodes mkConsensusProtocol = do
(cid, numCoreNodes) <- extractNodeInfo nId mNumCoreNodes
Expand All @@ -115,7 +110,7 @@ mockSomeProtocol nId mNumCoreNodes mkConsensusProtocol = do

data SomeProtocol where
SomeProtocol :: (RunNode blk, TraceConstraints blk)
=> Consensus.Protocol blk -> SomeProtocol
=> Consensus.Protocol blk (BlockProtocol blk) -> SomeProtocol

data ProtocolInstantiationError =
ByronLegacyProtocolNotImplemented
Expand Down Expand Up @@ -149,21 +144,25 @@ fromProtocol _ nId mNumCoreNodes _ _ _ _ _ _ BFT =
Consensus.ProtocolMockBFT numCoreNodes cid mockSecurityParam mockSlotLengths
fromProtocol _ nId mNumCoreNodes _ _ _ _ _ _ Praos =
hoistEither $ mockSomeProtocol nId mNumCoreNodes $ \cid numCoreNodes ->
Consensus.ProtocolMockPraos numCoreNodes cid PraosParams {
praosSecurityParam = mockSecurityParam
, praosSlotsPerEpoch = 3
, praosLeaderF = 0.5
, praosLifetimeKES = 1000000
, praosSlotLength = slotLengthFromSec 2
}
Consensus.ProtocolMockPraos
numCoreNodes
cid
PraosParams {
praosSecurityParam = mockSecurityParam
, praosSlotsPerEpoch = 3
, praosLeaderF = 0.5
, praosLifetimeKES = 1000000
}
(singletonSlotLengths (slotLengthFromSec 2))
fromProtocol _ nId mNumCoreNodes _ _ _ _ _ _ MockPBFT =
hoistEither $ mockSomeProtocol nId mNumCoreNodes $ \cid numCoreNodes@(NumCoreNodes numNodes) ->
Consensus.ProtocolMockPBFT
PBftParams { pbftSecurityParam = mockSecurityParam
, pbftNumNodes = numCoreNodes
, pbftSignatureThreshold = (1.0 / fromIntegral numNodes) + 0.1
, pbftSlotLength = mockSlotLength

}
(singletonSlotLengths mockSlotLength)
cid
fromProtocol gHash _ _ mGenFile nMagic sigThresh delCertFp sKeyFp update RealPBFT = do
let genHash = either panic identity $ decodeHash gHash
Expand Down Expand Up @@ -194,7 +193,7 @@ protocolConfigRealPbft :: Update
-> Maybe Double
-> Genesis.Config
-> Maybe PBftLeaderCredentials
-> Consensus.Protocol Consensus.ByronBlock
-> Consensus.Protocol ByronBlock ProtocolRealPBFT
protocolConfigRealPbft (Update appName appVer lastKnownBlockVersion)
pbftSignatureThresh
genesis leaderCredentials =
Expand Down Expand Up @@ -247,6 +246,6 @@ extractNodeInfo mNodeId ncNumCoreNodes = do

coreNodeId <- case mNodeId of
Just (CoreId coreNodeId) -> pure coreNodeId
_ -> Left MissingCoreNodeId
_ -> Left MissingCoreNodeId
numCoreNodes <- maybe (Left MissingNumCoreNodes) Right ncNumCoreNodes
return (coreNodeId , NumCoreNodes numCoreNodes)
2 changes: 2 additions & 0 deletions cardano-config/src/Cardano/Config/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ instance FromJSON NodeConfiguration where
<*> v .:? "TraceDNSResolver" .!= False
<*> v .:? "TraceDNSSubscription" .!= True
<*> v .:? "TraceErrorPolicy" .!= True
<*> v .:? "TraceLocalErrorPolicy" .!= True
<*> v .:? "TraceForge" .!= True
<*> v .:? "TraceIpSubscription" .!= True
<*> v .:? "TraceLocalChainSyncProtocol" .!= False
Expand Down Expand Up @@ -277,6 +278,7 @@ data TraceOptions = TraceOptions
, traceDnsResolver :: !Bool
, traceDnsSubscription :: !Bool
, traceErrorPolicy :: !Bool
, traceLocalErrorPolicy :: !Bool
, traceForge :: !Bool
, traceIpSubscription :: !Bool
, traceLocalChainSyncProtocol :: !Bool
Expand Down
1 change: 1 addition & 0 deletions cardano-node/app/cardano-cli.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import Cardano.CLI.Parsers
import Cardano.CLI.Run
import Cardano.Common.TopHandler


main :: IO ()
main = toplevelExceptionHandler $ do

Expand Down
6 changes: 4 additions & 2 deletions cardano-node/app/chairman.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import Control.Monad.Trans.Except.Extra (runExceptT)
import Control.Tracer (stdoutTracer)

import Ouroboros.Network.Block (BlockNo)
import Ouroboros.Network.NodeToClient (withIOManager)
import Ouroboros.Consensus.Protocol.Abstract (SecurityParam (..))

import Cardano.Config.CommonCLI
Expand All @@ -27,7 +28,7 @@ import Cardano.Common.Parsers
import Cardano.Chairman (runChairman)

main :: IO ()
main = do
main = withIOManager $ \iocp -> do
ChairmanArgs { caSecurityParam
, caMaxBlockNo
, caTimeout
Expand Down Expand Up @@ -58,7 +59,8 @@ main = do
Left err -> do putTextLn $ renderPtclInstantiationErr err
exitFailure

let run = runChairman p
let run = runChairman iocp
p
caSecurityParam
caMaxBlockNo
caSocketPaths
Expand Down
3 changes: 2 additions & 1 deletion cardano-node/cardano-node.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ library
Cardano.CLI.Tx
Cardano.Common.Help
Cardano.Common.LocalSocket
Cardano.Common.Orphans
Cardano.Common.Parsers
Cardano.Common.TopHandler
Cardano.Node.Features.Node
Expand Down Expand Up @@ -90,6 +89,8 @@ library
, network-mux
, optparse-applicative
, ouroboros-consensus
, ouroboros-consensus-byron
, ouroboros-consensus-cardano
, ouroboros-network
, safe-exceptions
, serialise
Expand Down
Loading

0 comments on commit b736a1c

Please sign in to comment.