Skip to content

Commit 6de7ea8

Browse files
committed
Fixes
1 parent 7209d87 commit 6de7ea8

File tree

6 files changed

+33
-19
lines changed

6 files changed

+33
-19
lines changed

cardano-db-sync/src/Cardano/DbSync.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@ extractSyncOptions snp aop snc =
243243
not isTxOutConsumedBootstrap'
244244
&& ioInOut iopts
245245
&& not (enpEpochDisabled snp || not (enpHasCache snp))
246+
&& False
246247
, soptAbortOnInvalid = aop
247248
, soptCache = enpHasCache snp
248249
, soptPruneConsumeMigration =

cardano-db-sync/src/Cardano/DbSync/Block.hs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
{-# LANGUAGE NoImplicitPrelude #-}
88
{-# LANGUAGE LambdaCase #-}
99
{-# LANGUAGE ScopedTypeVariables #-}
10+
{-# LANGUAGE GADTs #-}
1011

1112
{-# OPTIONS_GHC -Wno-unused-matches #-}
1213

@@ -49,6 +50,7 @@ import Control.Monad.Extra (whenJust)
4950
import Database.Persist.Sql
5051
import Cardano.DbSync.Threads.Ledger
5152
import Control.Concurrent.Class.MonadSTM.Strict (readTMVar)
53+
import qualified Cardano.DbSync.Era.Byron.Util as Byron
5254

5355
insertListBlocks ::
5456
SyncEnv ->
@@ -104,7 +106,7 @@ applyAndInsertBlocks syncEnv firstAfterRollback = go
104106
where
105107
go [] = pure ()
106108
go ls@(blk : rest) = do
107-
prevBlockId <- DB.runDbLoggingExceptT backend tracer $ queryPrevBlockWithCache "applyAndInsertBlocks" (envCache syncEnv) (cardanoBlockHash blk)
109+
prevBlockId <- DB.runDbLoggingExceptT backend tracer $ getPrevBlockId syncEnv blk
108110
let newBlockId = 1 + DB.unBlockKey prevBlockId
109111
let flagList = firstAfterRollback : replicate (length rest) False
110112
let zippedArgs = zip (DB.BlockKey <$> [newBlockId..]) flagList
@@ -119,12 +121,12 @@ applyAndInsertByronBlock ::
119121
SyncEnv ->
120122
((DB.BlockId, Bool), ByronBlock) ->
121123
ExceptT SyncNodeError (ReaderT SqlBackend (LoggingT IO)) ()
122-
applyAndInsertByronBlock syncEnv ((_blockId, firstAfterRollback), blk) = do
124+
applyAndInsertByronBlock syncEnv ((blockId, firstAfterRollback), blk) = do
123125
(applyResult, tookSnapshot) <- liftIO (mkApplyResult syncEnv (BlockByron blk)) -- TODO use writeLedgerAction here as well for better performance
124126
let isStartEventOrRollback = hasEpochStartEvent (apEvents applyResult) || firstAfterRollback
125127
let details = apSlotDetails applyResult
126128
insertNewEpochLedgerEvents syncEnv (sdEpochNo (apSlotDetails applyResult)) (apEvents applyResult)
127-
ExceptT $ insertByronBlock syncEnv isStartEventOrRollback blk details
129+
ExceptT $ insertByronBlock syncEnv isStartEventOrRollback blockId blk details
128130
insertBlockRest syncEnv blkNo applyResult tookSnapshot
129131
where
130132
cblk :: CardanoBlock = BlockByron blk
@@ -278,3 +280,19 @@ toGenericBlock iopts = \case
278280

279281
cardanoBlockHash :: CardanoBlock -> ByteString
280282
cardanoBlockHash = SBS.fromShort . Consensus.getOneEraHash . blockHash
283+
284+
getPrevBlockId :: MonadIO m => SyncEnv -> CardanoBlock -> ExceptT SyncNodeError (ReaderT SqlBackend m) DB.BlockId
285+
getPrevBlockId syncEnv = \case
286+
BlockByron blk -> getByHash $ Byron.prevHash blk
287+
BlockShelley blk -> getPrev $ Generic.blockPrevHash blk
288+
BlockAllegra blk -> getPrev $ Generic.blockPrevHash blk
289+
BlockMary blk -> getPrev $ Generic.blockPrevHash blk
290+
BlockAlonzo blk -> getPrev $ Generic.blockPrevHash blk
291+
BlockBabbage blk -> getPrev $ Generic.blockPrevHash blk
292+
BlockConway blk -> getPrev $ Generic.blockPrevHash blk
293+
where
294+
getPrev = \case
295+
Nothing -> liftLookupFail "getPrevBlockId" DB.queryGenesis
296+
Just hsh -> getByHash hsh
297+
298+
getByHash = queryPrevBlockWithCache "getPrevBlockId" (envCache syncEnv)

cardano-db-sync/src/Cardano/DbSync/Era/Byron/Insert.hs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,15 @@ insertByronBlock ::
5555
(MonadBaseControl IO m, MonadIO m) =>
5656
SyncEnv ->
5757
Bool ->
58+
DB.BlockId ->
5859
ByronBlock ->
5960
SlotDetails ->
6061
ReaderT SqlBackend m (Either SyncNodeError ())
61-
insertByronBlock syncEnv firstBlockOfEpoch blk details = do
62+
insertByronBlock syncEnv firstBlockOfEpoch blkId blk details = do
6263
res <- runExceptT $
6364
case byronBlockRaw blk of
64-
Byron.ABOBBlock ablk -> insertABlock syncEnv firstBlockOfEpoch ablk details
65-
Byron.ABOBBoundary abblk -> insertABOBBoundary syncEnv abblk details
65+
Byron.ABOBBlock ablk -> insertABlock syncEnv firstBlockOfEpoch blkId ablk details
66+
Byron.ABOBBoundary abblk -> insertABOBBoundary syncEnv blkId abblk details
6667
-- Serializing things during syncing can drastically slow down full sync
6768
-- times (ie 10x or more).
6869
when
@@ -73,15 +74,15 @@ insertByronBlock syncEnv firstBlockOfEpoch blk details = do
7374
insertABOBBoundary ::
7475
(MonadBaseControl IO m, MonadIO m) =>
7576
SyncEnv ->
77+
DB.BlockId ->
7678
Byron.ABoundaryBlock ByteString ->
7779
SlotDetails ->
7880
ExceptT SyncNodeError (ReaderT SqlBackend m) ()
79-
insertABOBBoundary syncEnv blk details = do
81+
insertABOBBoundary syncEnv blkId blk details = do
8082
let tracer = getTrace syncEnv
8183
cache = envCache syncEnv
8284
-- Will not get called in the OBFT part of the Byron era.
8385
pbid <- queryPrevBlockWithCache "insertABOBBoundary" cache (Byron.ebbPrevHash blk)
84-
let blkId = DB.BlockKey $ 1 + DB.unBlockKey pbid
8586
let epochNo = unEpochNo $ sdEpochNo details
8687
slid <-
8788
lift . DB.insertSlotLeader $
@@ -141,12 +142,12 @@ insertABlock ::
141142
(MonadBaseControl IO m, MonadIO m) =>
142143
SyncEnv ->
143144
Bool ->
145+
DB.BlockId ->
144146
Byron.ABlock ByteString ->
145147
SlotDetails ->
146148
ExceptT SyncNodeError (ReaderT SqlBackend m) ()
147-
insertABlock syncEnv firstBlockOfEpoch blk details = do
149+
insertABlock syncEnv firstBlockOfEpoch blkId blk details = do
148150
pbid <- queryPrevBlockWithCache "insertABlock" cache (Byron.blockPreviousHash blk)
149-
let blkId = DB.BlockKey $ 1 + DB.unBlockKey pbid
150151
slid <- lift . DB.insertSlotLeader $ Byron.mkSlotLeader blk
151152
let txs = Byron.blockPayload blk
152153
lift $

cardano-db-sync/src/Cardano/DbSync/Era/Universal/Insert/LedgerEvent.hs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,6 @@ insertNewEpochLedgerEvents syncEnv currentEpochNo@(EpochNo curEpoch) =
5151
cache = envCache syncEnv
5252
ntw = getNetwork syncEnv
5353

54-
subFromCurrentEpoch :: Word64 -> EpochNo
55-
subFromCurrentEpoch m =
56-
if unEpochNo currentEpochNo >= m
57-
then EpochNo $ unEpochNo currentEpochNo - m
58-
else EpochNo 0
59-
6054
toSyncState :: SyncState -> DB.SyncState
6155
toSyncState SyncLagging = DB.SyncLagging
6256
toSyncState SyncFollowing = DB.SyncFollowing
@@ -91,7 +85,7 @@ insertNewEpochLedgerEvents syncEnv currentEpochNo@(EpochNo curEpoch) =
9185
LedgerRestrainedRewards e rwd creds ->
9286
lift $ adjustEpochRewards syncEnv e rwd creds
9387
LedgerTotalRewards _e rwd ->
94-
lift $ validateEpochRewards tracer ntw (subFromCurrentEpoch 2) currentEpochNo rwd
88+
lift $ validateEpochRewards tracer ntw currentEpochNo rwd
9589
LedgerAdaPots _ ->
9690
pure () -- These are handled separately by insertBlock
9791
LedgerGovInfo enacted dropped expired uncl -> do

cardano-db-sync/src/Cardano/DbSync/Era/Universal/Validate.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,9 @@ validateEpochRewards ::
5353
Trace IO Text ->
5454
Network ->
5555
EpochNo ->
56-
EpochNo ->
5756
Map StakeCred (Set (Ledger.Reward StandardCrypto)) ->
5857
ReaderT SqlBackend m ()
59-
validateEpochRewards tracer network _earnedEpochNo spendableEpochNo rmap = do
58+
validateEpochRewards tracer network spendableEpochNo rmap = do
6059
actualCount <- Db.queryNormalEpochRewardCount (unEpochNo spendableEpochNo)
6160
if actualCount /= expectedCount
6261
then do

cardano-db-sync/src/Cardano/DbSync/Ledger/Event.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,4 +476,5 @@ splitRewardsEpochBoundary les =
476476
LedgerDeltaRewards {} -> Left le
477477
LedgerRestrainedRewards {} -> Left le
478478
LedgerTotalRewards {} -> Left le
479+
LedgerPoolReap {} -> Left le
479480
_ -> Right le

0 commit comments

Comments
 (0)