@@ -29,9 +29,7 @@ module Cardano.DbSync.Api (
29
29
getHasConsumed ,
30
30
getPrunes ,
31
31
mkSyncEnvFromConfig ,
32
- replaceConnection ,
33
32
verifySnapshotPoint ,
34
- getBackend ,
35
33
getInsertOptions ,
36
34
getTrace ,
37
35
getTopLevelConfig ,
@@ -155,8 +153,7 @@ runExtraMigrationsMaybe env = do
155
153
extraMigr <- liftIO $ readTVarIO $ envExtraMigrations env
156
154
logInfo (getTrace env) $ textShow extraMigr
157
155
unless (emRan extraMigr) $ do
158
- backend <- getBackend env
159
- DB. runDbIohkNoLogging backend $
156
+ DB. runDbIohkNoLogging (envBackend env) $
160
157
DB. runExtraMigrations
161
158
(getTrace env)
162
159
(getSafeBlockNoDiff env)
@@ -199,10 +196,6 @@ defaultInsertOptions = fullInsertOptions
199
196
turboInsertOptions :: InsertOptions
200
197
turboInsertOptions = InsertOptions False False False False
201
198
202
- replaceConnection :: SyncEnv -> SqlBackend -> IO ()
203
- replaceConnection env sqlBackend = do
204
- atomically $ writeTVar (envBackend env) $ Strict. Just sqlBackend
205
-
206
199
initEpochState :: EpochState
207
200
initEpochState =
208
201
EpochState
@@ -259,13 +252,6 @@ getInsertOptions = soptInsertOptions . envOptions
259
252
getSlotHash :: SqlBackend -> SlotNo -> IO [(SlotNo , ByteString )]
260
253
getSlotHash backend = DB. runDbIohkNoLogging backend . DB. querySlotHash
261
254
262
- getBackend :: SyncEnv -> IO SqlBackend
263
- getBackend env = do
264
- mBackend <- readTVarIO $ envBackend env
265
- case mBackend of
266
- Strict. Just conn -> pure conn
267
- Strict. Nothing -> panic " sql connection not initiated"
268
-
269
255
hasLedgerState :: SyncEnv -> Bool
270
256
hasLedgerState syncEnv =
271
257
case envLedgerEnv syncEnv of
@@ -287,18 +273,16 @@ getDbLatestBlockInfo backend = do
287
273
}
288
274
289
275
getDbTipBlockNo :: SyncEnv -> IO (Point. WithOrigin BlockNo )
290
- getDbTipBlockNo env =
291
- getBackend env
292
- >>= getDbLatestBlockInfo
293
- <&> maybe Point. Origin (Point. At . bBlockNo)
276
+ getDbTipBlockNo env = do
277
+ mblk <- getDbLatestBlockInfo (envBackend env)
278
+ pure $ maybe Point. Origin (Point. At . bBlockNo) mblk
294
279
295
280
logDbState :: SyncEnv -> IO ()
296
281
logDbState env = do
297
- backend <- getBackend env
298
- mblk <- getDbLatestBlockInfo backend
282
+ mblk <- getDbLatestBlockInfo (envBackend env)
299
283
case mblk of
300
- Nothing -> logInfo tracer " Cardano.Db is empty"
301
- Just tip -> logInfo tracer $ mconcat [" Cardano.Db tip is at " , showTip tip]
284
+ Nothing -> logInfo tracer " Database is empty"
285
+ Just tip -> logInfo tracer $ mconcat [" Database tip is at " , showTip tip]
302
286
where
303
287
showTip :: TipInfo -> Text
304
288
showTip tipInfo =
@@ -314,15 +298,15 @@ logDbState env = do
314
298
315
299
getCurrentTipBlockNo :: SyncEnv -> IO (WithOrigin BlockNo )
316
300
getCurrentTipBlockNo env = do
317
- backend <- getBackend env
318
- maybeTip <- getDbLatestBlockInfo backend
301
+ maybeTip <- getDbLatestBlockInfo (envBackend env)
319
302
case maybeTip of
320
303
Just tip -> pure $ At (bBlockNo tip)
321
304
Nothing -> pure Origin
322
305
323
306
mkSyncEnv ::
324
307
Trace IO Text ->
325
308
ConnectionString ->
309
+ SqlBackend ->
326
310
SyncOptions ->
327
311
ProtocolInfo IO CardanoBlock ->
328
312
Ledger. Network ->
@@ -332,9 +316,8 @@ mkSyncEnv ::
332
316
Bool ->
333
317
RunMigration ->
334
318
IO SyncEnv
335
- mkSyncEnv trce connString syncOptions protoInfo nw nwMagic systemStart syncNodeParams ranMigrations runMigrationFnc = do
319
+ mkSyncEnv trce connString backend syncOptions protoInfo nw nwMagic systemStart syncNodeParams ranMigrations runMigrationFnc = do
336
320
cache <- if soptCache syncOptions then newEmptyCache 250000 50000 else pure uninitiatedCache
337
- backendVar <- newTVarIO Strict. Nothing
338
321
consistentLevelVar <- newTVarIO Unchecked
339
322
fixDataVar <- newTVarIO $ if ranMigrations then DataFixRan else NoneFixRan
340
323
indexesVar <- newTVarIO $ enpForceIndexes syncNodeParams
@@ -370,7 +353,7 @@ mkSyncEnv trce connString syncOptions protoInfo nw nwMagic systemStart syncNodeP
370
353
, envSystemStart = systemStart
371
354
, envConnString = connString
372
355
, envRunDelayedMigration = runMigrationFnc
373
- , envBackend = backendVar
356
+ , envBackend = backend
374
357
, envOptions = syncOptions
375
358
, envConsistentLevel = consistentLevelVar
376
359
, envIsFixed = fixDataVar
@@ -387,6 +370,7 @@ mkSyncEnv trce connString syncOptions protoInfo nw nwMagic systemStart syncNodeP
387
370
mkSyncEnvFromConfig ::
388
371
Trace IO Text ->
389
372
ConnectionString ->
373
+ SqlBackend ->
390
374
SyncOptions ->
391
375
GenesisConfig ->
392
376
SyncNodeParams ->
@@ -395,7 +379,7 @@ mkSyncEnvFromConfig ::
395
379
-- | run migration function
396
380
RunMigration ->
397
381
IO (Either SyncNodeError SyncEnv )
398
- mkSyncEnvFromConfig trce connString syncOptions genCfg syncNodeParams ranMigration runMigrationFnc =
382
+ mkSyncEnvFromConfig trce connString backend syncOptions genCfg syncNodeParams ranMigration runMigrationFnc =
399
383
case genCfg of
400
384
GenesisCardano _ bCfg sCfg _
401
385
| unProtocolMagicId (Byron. configProtocolMagicId bCfg) /= Shelley. sgNetworkMagic (scConfig sCfg) ->
@@ -419,6 +403,7 @@ mkSyncEnvFromConfig trce connString syncOptions genCfg syncNodeParams ranMigrati
419
403
<$> mkSyncEnv
420
404
trce
421
405
connString
406
+ backend
422
407
syncOptions
423
408
(mkProtocolInfoCardano genCfg [] )
424
409
(Shelley. sgNetworkId $ scConfig sCfg)
@@ -437,8 +422,7 @@ getLatestPoints env = do
437
422
verifySnapshotPoint env snapshotPoints
438
423
NoLedger _ -> do
439
424
-- Brings the 5 latest.
440
- dbBackend <- getBackend env
441
- lastPoints <- DB. runDbIohkNoLogging dbBackend DB. queryLatestPoints
425
+ lastPoints <- DB. runDbIohkNoLogging (envBackend env) DB. queryLatestPoints
442
426
pure $ mapMaybe convert lastPoints
443
427
where
444
428
convert (Nothing , _) = Nothing
@@ -450,8 +434,7 @@ verifySnapshotPoint env snapPoints =
450
434
where
451
435
validLedgerFileToPoint :: SnapshotPoint -> IO (Maybe (CardanoPoint , Bool ))
452
436
validLedgerFileToPoint (OnDisk lsf) = do
453
- backend <- getBackend env
454
- hashes <- getSlotHash backend (lsfSlotNo lsf)
437
+ hashes <- getSlotHash (envBackend env) (lsfSlotNo lsf)
455
438
let valid = find (\ (_, h) -> lsfHash lsf == hashToAnnotation h) hashes
456
439
case valid of
457
440
Just (slot, hash) | slot == lsfSlotNo lsf -> pure $ convertToDiskPoint slot hash
@@ -460,8 +443,7 @@ verifySnapshotPoint env snapPoints =
460
443
case pnt of
461
444
GenesisPoint -> pure Nothing
462
445
BlockPoint slotNo hsh -> do
463
- backend <- getBackend env
464
- hashes <- getSlotHash backend slotNo
446
+ hashes <- getSlotHash (envBackend env) slotNo
465
447
let valid = find (\ (_, dbHash) -> getHeaderHash hsh == dbHash) hashes
466
448
case valid of
467
449
Just (dbSlotNo, _) | slotNo == dbSlotNo -> pure $ Just (pnt, True )
0 commit comments