Skip to content

Commit d7ce177

Browse files
committed
Remove the InvalidBlockReason data type
... since it was only wrapping up an `ExtValidationError` value.
1 parent d106323 commit d7ce177

File tree

11 files changed

+27
-52
lines changed

11 files changed

+27
-52
lines changed

ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Node/Tracers.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,14 @@ import Ouroboros.Consensus.Block
2424
import Ouroboros.Consensus.BlockchainTime
2525
import Ouroboros.Consensus.Forecast (OutsideForecastRange)
2626
import Ouroboros.Consensus.Genesis.Governor (TraceGDDEvent)
27+
import Ouroboros.Consensus.Ledger.Extended (ExtValidationError)
2728
import Ouroboros.Consensus.Ledger.SupportsMempool
2829
import Ouroboros.Consensus.Ledger.SupportsProtocol
2930
import Ouroboros.Consensus.Mempool (MempoolSize, TraceEventMempool)
3031
import Ouroboros.Consensus.MiniProtocol.BlockFetch.Server
3132
(TraceBlockFetchServerEvent)
3233
import Ouroboros.Consensus.MiniProtocol.ChainSync.Client
33-
(InvalidBlockReason, TraceChainSyncClientEvent)
34+
(TraceChainSyncClientEvent)
3435
import Ouroboros.Consensus.MiniProtocol.ChainSync.Server
3536
(TraceChainSyncServerEvent)
3637
import Ouroboros.Consensus.MiniProtocol.LocalTxSubmission.Server
@@ -343,7 +344,7 @@ data TraceForgeEvent blk
343344
-- | We forged a block that is invalid according to the ledger in the
344345
-- ChainDB. This means there is an inconsistency between the mempool
345346
-- validation and the ledger validation. This is a serious error!
346-
| TraceForgedInvalidBlock SlotNo blk (InvalidBlockReason blk)
347+
| TraceForgedInvalidBlock SlotNo blk (ExtValidationError blk)
347348

348349
-- | We adopted the block we produced, we also trace the transactions
349350
-- that were adopted.

ouroboros-consensus/bench/ChainSync-client-bench/Main.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ oneBenchRun
159159
-- | No invalid blocks in this benchmark
160160
invalidBlock ::
161161
WithFingerprint
162-
(HeaderHash blk -> Maybe (ChainDB.InvalidBlockReason blk))
162+
(HeaderHash blk -> Maybe (Extended.ExtValidationError blk))
163163
invalidBlock =
164164
WithFingerprint isInvalidBlock fp
165165
where

ouroboros-consensus/changelog.d/20240927_125606_damian.nadales_1260_remove_cdbFutureBlocks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
- Remove `CheckInFuture m blk` argument from `initialChainSelection`.
99
- Remove `cdbsCheckInFuture` from `ChainDbSpecificArgs`.
1010
- Delete module `Ouroboros.Consensus.Fragment.InFuture`. `ClockSkew` functions live now in `Ouroboros.Consensus.MiniProtocol.ChainSync.Client.InFutureCheck`.
11-
* Remove `InFutureExceedsClockSkew` from `ValidationError`.
11+
* Remove ``InvalidBlockReason`, since it was now simply wrapping up `ExtValidationError`.

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/MiniProtocol/ChainSync/Client.hs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ module Ouroboros.Consensus.MiniProtocol.ChainSync.Client (
6060
, ChainSyncLoPBucketConfig (..)
6161
, ChainSyncLoPBucketEnabledConfig (..)
6262
-- * Trace events
63-
, InvalidBlockReason
6463
, TraceChainSyncClientEvent (..)
6564
-- * State shared with other components
6665
, ChainSyncClientHandle (..)
@@ -114,8 +113,7 @@ import Ouroboros.Consensus.MiniProtocol.ChainSync.Client.State
114113
import Ouroboros.Consensus.Node.GsmState (GsmState (..))
115114
import Ouroboros.Consensus.Node.NetworkProtocolVersion
116115
import Ouroboros.Consensus.Protocol.Abstract
117-
import Ouroboros.Consensus.Storage.ChainDB (ChainDB,
118-
InvalidBlockReason)
116+
import Ouroboros.Consensus.Storage.ChainDB (ChainDB)
119117
import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB
120118
import Ouroboros.Consensus.Util
121119
import Ouroboros.Consensus.Util.AnchoredFragment (cross)
@@ -158,7 +156,7 @@ data ChainDbView m blk = ChainDbView {
158156
getIsInvalidBlock ::
159157
STM m
160158
(WithFingerprint
161-
(HeaderHash blk -> Maybe (InvalidBlockReason blk)))
159+
(HeaderHash blk -> Maybe (ExtValidationError blk)))
162160
}
163161

164162
-- | Configuration of the leaky bucket when it is enabled.
@@ -1984,12 +1982,12 @@ invalidBlockRejector ::
19841982
=> Tracer m (TraceChainSyncClientEvent blk)
19851983
-> NodeToNodeVersion
19861984
-> DiffusionPipeliningSupport
1987-
-> STM m (WithFingerprint (HeaderHash blk -> Maybe (InvalidBlockReason blk)))
1985+
-> STM m (WithFingerprint (HeaderHash blk -> Maybe (ExtValidationError blk)))
19881986
-- ^ Get the invalid block checker
19891987
-> STM m (AnchoredFragment (Header blk))
19901988
-- ^ Get the candidate
19911989
-> Watcher m
1992-
(WithFingerprint (HeaderHash blk -> Maybe (InvalidBlockReason blk)))
1990+
(WithFingerprint (HeaderHash blk -> Maybe (ExtValidationError blk)))
19931991
Fingerprint
19941992
invalidBlockRejector tracer _version pipelining getIsInvalidBlock getCandidate =
19951993
Watcher {
@@ -1999,7 +1997,7 @@ invalidBlockRejector tracer _version pipelining getIsInvalidBlock getCandidate =
19991997
, wReader = getIsInvalidBlock
20001998
}
20011999
where
2002-
checkInvalid :: (HeaderHash blk -> Maybe (InvalidBlockReason blk)) -> m ()
2000+
checkInvalid :: (HeaderHash blk -> Maybe (ExtValidationError blk)) -> m ()
20032001
checkInvalid isInvalidBlock = do
20042002
theirFrag <- atomically getCandidate
20052003
-- The invalid block is likely to be a more recent block, so check from
@@ -2019,7 +2017,7 @@ invalidBlockRejector tracer _version pipelining getIsInvalidBlock getCandidate =
20192017
)
20202018
$ AF.toNewestFirst theirFrag
20212019

2022-
disconnect :: Header blk -> InvalidBlockReason blk -> m ()
2020+
disconnect :: Header blk -> ExtValidationError blk -> m ()
20232021
disconnect invalidHeader reason = do
20242022
let ex =
20252023
InvalidBlock
@@ -2157,7 +2155,7 @@ data ChainSyncClientException =
21572155
(HeaderHash blk)
21582156
-- ^ Invalid block. If pipelining was negotiated, this can be
21592157
-- different from the previous argument.
2160-
(InvalidBlockReason blk)
2158+
(ExtValidationError blk)
21612159
-- ^ The upstream node's chain contained a block that we know is invalid.
21622160
|
21632161
InFutureHeaderExceedsClockSkew !InFutureCheck.HeaderArrivalException

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/ChainDB/API.hs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ module Ouroboros.Consensus.Storage.ChainDB.API (
5151
, streamFrom
5252
, traverseIterator
5353
, validBounds
54-
-- * Invalid block reason
55-
, InvalidBlockReason (..)
5654
-- * Followers
5755
, ChainType (..)
5856
, Follower (..)
@@ -347,7 +345,7 @@ data ChainDB m blk = ChainDB {
347345
-- In particular, this affects the watcher in 'bracketChainSyncClient',
348346
-- which rechecks the blocks in all candidate chains whenever a new
349347
-- invalid block is detected. These blocks are likely to be valid.
350-
, getIsInvalidBlock :: STM m (WithFingerprint (HeaderHash blk -> Maybe (InvalidBlockReason blk)))
348+
, getIsInvalidBlock :: STM m (WithFingerprint (HeaderHash blk -> Maybe (ExtValidationError blk)))
351349

352350
, closeDB :: m ()
353351

@@ -682,19 +680,6 @@ streamFrom from db registry blockComponent = do
682680
Right it -> return it
683681
Left e -> error $ "failed to stream from genesis to tip: " <> show e
684682

685-
{-------------------------------------------------------------------------------
686-
Invalid block reason
687-
-------------------------------------------------------------------------------}
688-
689-
-- | The reason why a block is invalid.
690-
data InvalidBlockReason blk
691-
= ValidationError !(ExtValidationError blk)
692-
-- ^ The ledger found the block to be invalid.
693-
deriving (Eq, Show, Generic)
694-
695-
instance LedgerSupportsProtocol blk
696-
=> NoThunks (InvalidBlockReason blk)
697-
698683
{-------------------------------------------------------------------------------
699684
Followers
700685
-------------------------------------------------------------------------------}

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/ChainDB/Impl/ChainSel.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ import Ouroboros.Consensus.Ledger.Inspect
5656
import Ouroboros.Consensus.Ledger.SupportsProtocol
5757
import Ouroboros.Consensus.Storage.ChainDB.API (AddBlockPromise (..),
5858
AddBlockResult (..), BlockComponent (..), ChainType (..),
59-
InvalidBlockReason (..), LoE (..))
59+
LoE (..))
6060
import Ouroboros.Consensus.Storage.ChainDB.API.Types.InvalidBlockPunishment
6161
(InvalidBlockPunishment, noPunishment)
6262
import qualified Ouroboros.Consensus.Storage.ChainDB.API.Types.InvalidBlockPunishment as InvalidBlockPunishment
@@ -1219,7 +1219,7 @@ ledgerValidateCandidate chainSelEnv chainDiff@(ChainDiff rollback suffix) =
12191219
addInvalidBlock e (RealPoint slot hash) = atomically $
12201220
modifyTVar varInvalid $ \(WithFingerprint invalid fp) ->
12211221
WithFingerprint
1222-
(Map.insert hash (InvalidBlockInfo (ValidationError e) slot) invalid)
1222+
(Map.insert hash (InvalidBlockInfo e slot) invalid)
12231223
(succ fp)
12241224

12251225
-- | Validate a candidate chain using 'ledgerValidateCandidate'.

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/ChainDB/Impl/Query.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import Ouroboros.Consensus.Ledger.Abstract (IsLedger, LedgerState)
3636
import Ouroboros.Consensus.Ledger.Extended
3737
import Ouroboros.Consensus.Protocol.Abstract
3838
import Ouroboros.Consensus.Storage.ChainDB.API (BlockComponent (..),
39-
ChainDbFailure (..), InvalidBlockReason)
39+
ChainDbFailure (..))
4040
import qualified Ouroboros.Consensus.Storage.ChainDB.Impl.LgrDB as LgrDB
4141
import Ouroboros.Consensus.Storage.ChainDB.Impl.Types
4242
import Ouroboros.Consensus.Storage.ImmutableDB (ImmutableDB)
@@ -177,7 +177,7 @@ getIsFetched CDB{..} = basedOnHash <$> VolatileDB.getIsMember cdbVolatileDB
177177
getIsInvalidBlock ::
178178
forall m blk. (IOLike m, HasHeader blk)
179179
=> ChainDbEnv m blk
180-
-> STM m (WithFingerprint (HeaderHash blk -> Maybe (InvalidBlockReason blk)))
180+
-> STM m (WithFingerprint (HeaderHash blk -> Maybe (ExtValidationError blk)))
181181
getIsInvalidBlock CDB{..} =
182182
fmap (fmap (fmap invalidBlockReason) . flip Map.lookup) <$> readTVar cdbInvalid
183183

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Storage/ChainDB/Impl/Types.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ import Ouroboros.Consensus.Ledger.SupportsProtocol
8383
import Ouroboros.Consensus.Protocol.Abstract
8484
import Ouroboros.Consensus.Storage.ChainDB.API (AddBlockPromise (..),
8585
AddBlockResult (..), ChainDbError (..),
86-
ChainSelectionPromise (..), ChainType, InvalidBlockReason,
87-
LoE, StreamFrom, StreamTo, UnknownRange)
86+
ChainSelectionPromise (..), ChainType, LoE, StreamFrom,
87+
StreamTo, UnknownRange)
8888
import Ouroboros.Consensus.Storage.ChainDB.API.Types.InvalidBlockPunishment
8989
(InvalidBlockPunishment)
9090
import Ouroboros.Consensus.Storage.ChainDB.Impl.LgrDB (LgrDB,
@@ -400,7 +400,7 @@ type InvalidBlocks blk = Map (HeaderHash blk) (InvalidBlockInfo blk)
400400
-- VolatileDB for some slot @s@, the hashes older or equal to @s@ can be
401401
-- removed from this map.
402402
data InvalidBlockInfo blk = InvalidBlockInfo
403-
{ invalidBlockReason :: !(InvalidBlockReason blk)
403+
{ invalidBlockReason :: !(ExtValidationError blk)
404404
, invalidBlockSlotNo :: !SlotNo
405405
} deriving (Eq, Show, Generic, NoThunks)
406406

@@ -617,7 +617,7 @@ data TraceAddBlockEvent blk =
617617
| IgnoreBlockAlreadyInVolatileDB (RealPoint blk)
618618

619619
-- | A block that is know to be invalid was ignored.
620-
| IgnoreInvalidBlock (RealPoint blk) (InvalidBlockReason blk)
620+
| IgnoreInvalidBlock (RealPoint blk) (ExtValidationError blk)
621621

622622
-- | The block was added to the queue and will be added to the ChainDB by
623623
-- the background thread. The size of the queue is included.

ouroboros-consensus/src/unstable-consensus-testlib/Test/Util/Orphans/ToExpr.hs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import Ouroboros.Consensus.HeaderValidation
1818
import Ouroboros.Consensus.Ledger.Abstract
1919
import Ouroboros.Consensus.Ledger.Extended
2020
import Ouroboros.Consensus.Protocol.Abstract
21-
import Ouroboros.Consensus.Storage.ChainDB (InvalidBlockReason)
2221
import Ouroboros.Consensus.Storage.ChainDB.API (LoE (..))
2322
import Ouroboros.Consensus.Storage.ChainDB.Impl.LgrDB
2423
import Ouroboros.Consensus.Storage.ImmutableDB
@@ -113,7 +112,3 @@ deriving instance ( ToExpr blk
113112
)
114113
=> ToExpr (ChainProducerState blk)
115114
deriving instance ToExpr a => ToExpr (WithFingerprint a)
116-
deriving instance ( ToExpr (HeaderHash blk)
117-
, ToExpr (ExtValidationError blk)
118-
)
119-
=> ToExpr (InvalidBlockReason blk)

ouroboros-consensus/test/consensus-test/Test/Consensus/MiniProtocol/ChainSync/Client.hs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,6 @@ import Ouroboros.Consensus.Node.NetworkProtocolVersion
9999
import Ouroboros.Consensus.Node.ProtocolInfo
100100
import Ouroboros.Consensus.NodeId
101101
import Ouroboros.Consensus.Protocol.BFT
102-
import Ouroboros.Consensus.Storage.ChainDB.API
103-
(InvalidBlockReason (ValidationError))
104102
import Ouroboros.Consensus.Util (lastMaybe, whenJust)
105103
import Ouroboros.Consensus.Util.Condense
106104
import Ouroboros.Consensus.Util.IOLike
@@ -384,7 +382,6 @@ runChainSync skew securityParam (ClientUpdates clientUpdates)
384382
let isInvalidBlock hash =
385383
if hash `Set.member` knownInvalid
386384
then Just
387-
. ValidationError
388385
. ExtValidationErrorLedger
389386
$ TestBlock.InvalidBlock
390387
else Nothing

0 commit comments

Comments
 (0)