Skip to content

Commit

Permalink
Calculate default mempool capacity as 2x the ledger max block size
Browse files Browse the repository at this point in the history
  • Loading branch information
intricate committed Jan 15, 2020
1 parent db34b1f commit 72d93ed
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 5 deletions.
3 changes: 2 additions & 1 deletion ouroboros-consensus/src/Ouroboros/Consensus/Node.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ module Ouroboros.Consensus.Node
, NodeArgs (..)
, NodeKernel (..)
, MaxBlockSizeOverride (..)
, MempoolCapacityBytesOverride (..)
, IPSubscriptionTarget (..)
, DnsSubscriptionTarget (..)
, ConnectionId (..)
Expand Down Expand Up @@ -279,7 +280,7 @@ mkNodeArgs registry cfg initState tracers btime chainDB isProducer = NodeArgs
, blockMatchesHeader = nodeBlockMatchesHeader
, maxUnackTxs = 100 -- TODO
, maxBlockSize = NoOverride
, mempoolCap = MempoolCapacityBytes 128_000 -- TODO
, mempoolCap = NoMempoolCapacityBytesOverride
, chainSyncPipelining = pipelineDecisionLowHighMark 200 300 -- TODO
}
where
Expand Down
26 changes: 23 additions & 3 deletions ouroboros-consensus/src/Ouroboros/Consensus/NodeKernel.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ module Ouroboros.Consensus.NodeKernel (
NodeKernel (..)
, BlockProduction (..)
, MaxBlockSizeOverride (..)
, MempoolCapacityBytesOverride (..)
, NodeArgs (..)
, TraceForgeEvent (..)
, initNodeKernel
Expand Down Expand Up @@ -138,6 +139,15 @@ data MaxBlockSizeOverride
| MaxBlockBodySize !Word32
-- ^ Use the following maximum size in bytes for the block body.

-- | An override for the default 'MempoolCapacityBytes' which is 2x the
-- maximum block size from the protocol parameters in the ledger.
data MempoolCapacityBytesOverride
= NoMempoolCapacityBytesOverride
-- ^ Use 2x the maximum block size from the protocol parameters in the
-- ledger.
| MempoolCapacityBytesOverride !MempoolCapacityBytes
-- ^ Use the following 'MempoolCapacityBytes'.

-- | Arguments required when initializing a node
data NodeArgs m peer blk = NodeArgs {
tracers :: Tracers m peer blk
Expand All @@ -152,7 +162,7 @@ data NodeArgs m peer blk = NodeArgs {
, blockMatchesHeader :: Header blk -> blk -> Bool
, maxUnackTxs :: Word16
, maxBlockSize :: MaxBlockSizeOverride
, mempoolCap :: MempoolCapacityBytes
, mempoolCap :: MempoolCapacityBytesOverride
, chainSyncPipelining :: MkPipelineDecision
}

Expand Down Expand Up @@ -217,7 +227,7 @@ initInternalState
, ProtocolLedgerView blk
, Ord peer
, NoUnexpectedThunks peer
, ApplyTx blk
, RunNode blk
)
=> NodeArgs m peer blk
-> m (InternalState m peer blk)
Expand All @@ -226,10 +236,13 @@ initInternalState NodeArgs { tracers, chainDB, registry, cfg,
initState, mempoolCap } = do
varCandidates <- newTVarM mempty
varState <- newTVarM initState
mpCap <- atomically $ do
ledger <- ledgerState <$> ChainDB.getCurrentLedger chainDB
pure (mempoolCapacity ledger)
mempool <- openMempool registry
(chainDBLedgerInterface chainDB)
(ledgerConfigView cfg)
mempoolCap
mpCap
(mempoolTracer tracers)

fetchClientRegistry <- newFetchClientRegistry
Expand All @@ -242,6 +255,13 @@ initInternalState NodeArgs { tracers, chainDB, registry, cfg,
cfg chainDB getCandidates blockFetchSize blockMatchesHeader btime

return IS {..}
where
mempoolCapacity :: LedgerState blk -> MempoolCapacityBytes
mempoolCapacity ledger = case mempoolCap of
NoMempoolCapacityBytesOverride -> noOverride
MempoolCapacityBytesOverride mcb -> mcb
where
noOverride = MempoolCapacityBytes (nodeMaxBlockSize ledger * 2)

initBlockFetchConsensusInterface
:: forall m peer blk. (IOLike m, SupportedBlock blk)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ runThreadNetwork ThreadNetworkArgs
, blockMatchesHeader = nodeBlockMatchesHeader
, maxUnackTxs = 1000 -- TODO
, maxBlockSize = NoOverride
, mempoolCap = MempoolCapacityBytes 3000 -- TODO
, mempoolCap = NoMempoolCapacityBytesOverride
, chainSyncPipelining = pipelineDecisionLowHighMark 2 4
}

Expand Down

0 comments on commit 72d93ed

Please sign in to comment.