Skip to content

Commit

Permalink
apply anviking hints
Browse files Browse the repository at this point in the history
rename constructors and functions  in the PipeliningStrategy module
  • Loading branch information
paolino committed May 13, 2022
1 parent 3ea5876 commit 3f185c7
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 47 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ hie.yaml

### auto-generated faulty JSON golden tests ###
*.faulty.json
*.faulty.json
*.faulty.reencoded.json
lib/shelley/test/data/balanceTx/**/actual

### Release scripts output
Expand All @@ -49,5 +49,7 @@ lib/shelley/test/data/balanceTx/**/actual
### Docs build
/_build/
.vscode/settings.json

## local ignored space
ignore-me

9 changes: 5 additions & 4 deletions lib/core/src/Ouroboros/Network/Client/Wallet.hs
Original file line number Diff line number Diff line change
Expand Up @@ -396,10 +396,11 @@ chainSyncWithBlocks tr pipeliningStrategy chainFollower =
then oneByOne
else pipeline
(fromIntegral
$ min distance
$ getPipeliningNumber
$ pipeliningStrategy
$ NE.last blocks'
. min distance
. getPipeliningNumber
. pipeliningStrategy
. NE.last
$ blocks'
)
Zero
clientStIdle strategy
Expand Down
1 change: 1 addition & 0 deletions lib/shelley/bench/latency-bench.hs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import Cardano.Wallet.Logging
import Cardano.Wallet.Network.Ports
( portFromURL )
import Cardano.Wallet.PipeliningStrategy
( variablePipelining )
import Cardano.Wallet.Primitive.AddressDerivation
( NetworkDiscriminant (..) )
import Cardano.Wallet.Primitive.SyncProgress
Expand Down
13 changes: 8 additions & 5 deletions lib/shelley/bench/restore-bench.hs
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,11 @@ import Cardano.Wallet.Network
, ChainSyncLog (..)
, NetworkLayer (..)
)

import Cardano.Wallet.PipeliningStrategy
( PredefinedPipeliningStrategy (..)
, pipeliningStrategyFromPredefined
, variablePipelining
)
import Cardano.Wallet.Primitive.AddressDerivation
( Depth (..)
, NetworkDiscriminant (..)
Expand Down Expand Up @@ -666,7 +669,7 @@ bench_baseline_restoration
( NetworkDiscriminantVal n
, HasNetworkId n
)
=> PipeliningStrat
=> PredefinedPipeliningStrategy
-> Proxy n
-> Tracer IO (BenchmarkLog n)
-> Trace IO Text
Expand All @@ -691,7 +694,7 @@ bench_baseline_restoration
withWalletLayerTracer benchName pipeliningStrat traceToDisk $ \progressTrace ->
withNetworkLayer
networkTrace
(stratPipelining pipeliningStrat np)
(pipeliningStrategyFromPredefined pipeliningStrat np)
networkId np socket vData sTol $ \nw ->
action progressTrace nw
where
Expand Down Expand Up @@ -750,7 +753,7 @@ bench_restoration
, Buildable results
, ToJSON results
)
=> PipeliningStrat
=> PredefinedPipeliningStrategy
-> Proxy n
-> Tracer IO (BenchmarkLog n)
-> Trace IO Text -- ^ For wallet tracing
Expand All @@ -775,7 +778,7 @@ bench_restoration
let networkId = networkIdVal proxy
let tl = newTransactionLayer @k networkId
let gp = genesisParameters np
withNetworkLayer (trMessageText wlTr) (stratPipelining pipeliningStrat np)
withNetworkLayer (trMessageText wlTr) (pipeliningStrategyFromPredefined pipeliningStrat np)
networkId np socket vData sTol $ \nw' -> do
let convert = fromCardanoBlock gp
let nw = convert <$> nw'
Expand Down
67 changes: 32 additions & 35 deletions lib/shelley/src/Cardano/Wallet/PipeliningStrategy.hs
Original file line number Diff line number Diff line change
@@ -1,58 +1,55 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NumericUnderscores #-}

module Cardano.Wallet.PipeliningStrategy where
module Cardano.Wallet.PipeliningStrategy
( variablePipelining
, pipeliningStrategyFromPredefined
, PredefinedPipeliningStrategy (..)
)
where

import Prelude

import Cardano.Wallet.Primitive.Types
( blockHeight, header, NetworkParameters, genesisParameters )
( NetworkParameters, blockHeight, genesisParameters, header )
import Cardano.Wallet.Shelley.Compatibility
( CardanoBlock, StandardCrypto, fromCardanoBlock )
import Data.List
( find )
import Data.Quantity
( Quantity (Quantity) )
import Numeric.Natural
( Natural )
import Data.Word
( Word32 )
import Ouroboros.Network.Client.Wallet
( Pipelining (Pipelining), PipeliningStrategy )
import Prelude

data PipeliningStrat = ConstPipelining | VariablePipelining deriving (Show)
-- | Pipelining strategies that have been in use

data PredefinedPipeliningStrategy
= ConstPipelining
| VariablePipelining
deriving (Show)

pipeliningsOfStrat
:: Num y
=> PipeliningStrat
-> ([(Quantity x y, Natural)], Natural)
pipeliningsOfStrat ConstPipelining = ([], 1000)
pipeliningsOfStrat VariablePipelining =
( [ (Quantity 5_200_000, 1000)
, (Quantity 6_100_000, 200)
, (Quantity 6_500_000, 100)
]
, 100
)

pipeliningsOfHeight
:: (Ord y, Num y)
=> PipeliningStrat
-> Quantity x y
:: PredefinedPipeliningStrategy
-> Quantity "block" Word32
-> Pipelining
pipeliningsOfHeight strat tip =
Pipelining $
maybe bed snd (find (\(q, _) -> q >= tip) pipelinings)
where
(pipelinings, bed) = pipeliningsOfStrat strat
pipeliningsOfStrat ConstPipelining _ = Pipelining 1000
pipeliningsOfStrat VariablePipelining (Quantity blockNo)
| blockNo <= 5_200_000 = Pipelining 1000
| blockNo <= 6_100_000 = Pipelining 200
| blockNo <= 6_500_000 = Pipelining 100
| otherwise = Pipelining 75

variablePipelining
:: NetworkParameters
-> PipeliningStrategy (CardanoBlock StandardCrypto)
variablePipelining = stratPipelining VariablePipelining
variablePipelining = pipeliningStrategyFromPredefined VariablePipelining

stratPipelining
:: PipeliningStrat
-> NetworkParameters
pipeliningStrategyFromPredefined
:: PredefinedPipeliningStrategy
-> NetworkParameters
-> PipeliningStrategy (CardanoBlock StandardCrypto)
stratPipelining strat gp =
pipeliningsOfHeight strat
pipeliningStrategyFromPredefined strat gp =
pipeliningsOfStrat strat
. blockHeight
. header
. fromCardanoBlock (genesisParameters gp)
3 changes: 2 additions & 1 deletion lib/shelley/test/integration/shelley-integration-test.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ module Main where

import Prelude

import Cardano.Wallet.PipeliningStrategy
import Cardano.BM.Data.Severity
( Severity (..) )
import Cardano.BM.Data.Tracer
Expand Down Expand Up @@ -46,6 +45,8 @@ import Cardano.Wallet.Logging
( BracketLog, bracketTracer, stdoutTextTracer, trMessageText )
import Cardano.Wallet.Network.Ports
( portFromURL )
import Cardano.Wallet.PipeliningStrategy
( variablePipelining )
import Cardano.Wallet.Primitive.AddressDerivation
( NetworkDiscriminant (..) )
import Cardano.Wallet.Primitive.SyncProgress
Expand Down
3 changes: 2 additions & 1 deletion lib/shelley/test/unit/Cardano/Wallet/Shelley/NetworkSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import Cardano.BM.Trace
( nullTracer, traceInTVarIO )
import Cardano.Wallet.Network
( NetworkLayer (..) )
import Cardano.Wallet.PipeliningStrategy
( variablePipelining )
import Cardano.Wallet.Primitive.SyncProgress
( SyncTolerance (..) )
import Cardano.Wallet.Primitive.Types
Expand Down Expand Up @@ -57,7 +59,6 @@ import UnliftIO.STM

import qualified Data.Map as Map
import qualified Data.Set as Set
import Cardano.Wallet.PipeliningStrategy (variablePipelining)

{-------------------------------------------------------------------------------
Spec
Expand Down

0 comments on commit 3f185c7

Please sign in to comment.