@@ -98,6 +98,7 @@ import Ouroboros.Consensus.Protocol.Abstract (ConsensusProtocol)
98
98
import Ouroboros.Network.Block (BlockNo (.. ), Point (.. ))
99
99
import Ouroboros.Network.Magic (NetworkMagic (.. ))
100
100
import qualified Ouroboros.Network.Point as Point
101
+ import qualified Hasql.Connection as HqlC
101
102
102
103
setConsistentLevel :: SyncEnv -> ConsistentLevel -> IO ()
103
104
setConsistentLevel env cst = do
@@ -180,7 +181,7 @@ runExtraMigrationsMaybe syncEnv = do
180
181
let pcm = getPruneConsume syncEnv
181
182
txOutTableType = getTxOutTableType syncEnv
182
183
logInfo (getTrace syncEnv) $ " runExtraMigrationsMaybe: " <> textShow pcm
183
- DB. runDbIohkNoLogging (envBackend syncEnv) $
184
+ DB. runDbIohkNoLogging (envDbEnv syncEnv) $
184
185
DB. runExtraMigrations
185
186
(getTrace syncEnv)
186
187
txOutTableType
@@ -189,11 +190,17 @@ runExtraMigrationsMaybe syncEnv = do
189
190
190
191
runAddJsonbToSchema :: SyncEnv -> IO ()
191
192
runAddJsonbToSchema syncEnv =
192
- void $ DB. runDbIohkNoLogging (envBackend syncEnv) DB. enableJsonbInSchema
193
-
194
- runRemoveJsonbFromSchema :: SyncEnv -> IO ()
195
- runRemoveJsonbFromSchema syncEnv =
196
- void $ DB. runDbIohkNoLogging (envBackend syncEnv) DB. disableJsonbInSchema
193
+ void $ DB. runDbIohkNoLogging (envDbEnv syncEnv) DB. enableJsonbInSchema
194
+
195
+ runRemoveJsonbFromSchema
196
+ :: (MonadIO m , AsDbError e )
197
+ => SyncEnv
198
+ -> DbAction e m ()
199
+ runRemoveJsonbFromSchema syncEnv = do
200
+ DB. runDbTx DB. Write transx
201
+ where
202
+ dbEnv = envDbEnv syncEnv
203
+ transx = mkDbTransaction " runRemoveJsonbFromSchema" mkCallSite (DB. disableJsonbInSchema (dbConnection dbEnv))
197
204
198
205
getSafeBlockNoDiff :: SyncEnv -> Word64
199
206
getSafeBlockNoDiff syncEnv = 2 * getSecurityParam syncEnv
@@ -332,9 +339,61 @@ getCurrentTipBlockNo env = do
332
339
Just tip -> pure $ At (bBlockNo tip)
333
340
Nothing -> pure Origin
334
341
342
+ mkSyncEnvFromConfig ::
343
+ Trace IO Text ->
344
+ Db. DbEnv ->
345
+ ConnectionString ->
346
+ SyncOptions ->
347
+ GenesisConfig ->
348
+ SyncNodeConfig ->
349
+ SyncNodeParams ->
350
+ -- | migrations were ran on startup
351
+ Bool ->
352
+ -- | run migration function
353
+ RunMigration ->
354
+ IO (Either SyncNodeError SyncEnv )
355
+ mkSyncEnvFromConfig trce dbEnv connectionString syncOptions genCfg syncNodeConfigFromFile syncNodeParams ranMigration runMigrationFnc =
356
+ case genCfg of
357
+ GenesisCardano _ bCfg sCfg _ _
358
+ | unProtocolMagicId (Byron. configProtocolMagicId bCfg) /= Shelley. sgNetworkMagic (scConfig sCfg) ->
359
+ pure
360
+ . Left
361
+ . SNErrCardanoConfig
362
+ $ mconcat
363
+ [ " ProtocolMagicId "
364
+ , textShow (unProtocolMagicId $ Byron. configProtocolMagicId bCfg)
365
+ , " /= "
366
+ , textShow (Shelley. sgNetworkMagic $ scConfig sCfg)
367
+ ]
368
+ | Byron. gdStartTime (Byron. configGenesisData bCfg) /= Shelley. sgSystemStart (scConfig sCfg) ->
369
+ pure
370
+ . Left
371
+ . SNErrCardanoConfig
372
+ $ mconcat
373
+ [ " SystemStart "
374
+ , textShow (Byron. gdStartTime $ Byron. configGenesisData bCfg)
375
+ , " /= "
376
+ , textShow (Shelley. sgSystemStart $ scConfig sCfg)
377
+ ]
378
+ | otherwise ->
379
+ Right
380
+ <$> mkSyncEnv
381
+ trce
382
+ dbEnv
383
+ connectionString
384
+ syncOptions
385
+ (fst $ mkProtocolInfoCardano genCfg [] )
386
+ (Shelley. sgNetworkId $ scConfig sCfg)
387
+ (NetworkMagic . unProtocolMagicId $ Byron. configProtocolMagicId bCfg)
388
+ (SystemStart . Byron. gdStartTime $ Byron. configGenesisData bCfg)
389
+ syncNodeConfigFromFile
390
+ syncNodeParams
391
+ ranMigration
392
+ runMigrationFnc
393
+
335
394
mkSyncEnv ::
336
395
Trace IO Text ->
337
- Pool ->
396
+ Db. DbEnv ->
338
397
ConnectionString ->
339
398
SyncOptions ->
340
399
ProtocolInfo CardanoBlock ->
@@ -346,7 +405,7 @@ mkSyncEnv ::
346
405
Bool ->
347
406
RunMigration ->
348
407
IO SyncEnv
349
- mkSyncEnv trce dbPool connectionString syncOptions protoInfo nw nwMagic systemStart syncNodeConfigFromFile syncNP ranMigrations runMigrationFnc = do
408
+ mkSyncEnv trce dbEnv connectionString syncOptions protoInfo nw nwMagic systemStart syncNodeConfigFromFile syncNP ranMigrations runMigrationFnc = do
350
409
dbCNamesVar <- newTVarIO =<< dbConstraintNamesExists backend
351
410
cache <-
352
411
if soptCache syncOptions
@@ -394,7 +453,7 @@ mkSyncEnv trce dbPool connectionString syncOptions protoInfo nw nwMagic systemSt
394
453
395
454
pure $
396
455
SyncEnv
397
- { envPool = dbPool
456
+ { envDbEnv = dbEnv
398
457
, envBootstrap = bootstrapVar
399
458
, envCache = cache
400
459
, envConnectionString = connectionString
@@ -419,58 +478,6 @@ mkSyncEnv trce dbPool connectionString syncOptions protoInfo nw nwMagic systemSt
419
478
hasLedger' = hasLedger . sioLedger . dncInsertOptions
420
479
isTxOutConsumedBootstrap' = isTxOutConsumedBootstrap . sioTxOut . dncInsertOptions
421
480
422
- mkSyncEnvFromConfig ::
423
- Trace IO Text ->
424
- Pool ->
425
- ConnectionString ->
426
- SyncOptions ->
427
- GenesisConfig ->
428
- SyncNodeConfig ->
429
- SyncNodeParams ->
430
- -- | migrations were ran on startup
431
- Bool ->
432
- -- | run migration function
433
- RunMigration ->
434
- IO (Either SyncNodeError SyncEnv )
435
- mkSyncEnvFromConfig trce dbPool connectionString syncOptions genCfg syncNodeConfigFromFile syncNodeParams ranMigration runMigrationFnc =
436
- case genCfg of
437
- GenesisCardano _ bCfg sCfg _ _
438
- | unProtocolMagicId (Byron. configProtocolMagicId bCfg) /= Shelley. sgNetworkMagic (scConfig sCfg) ->
439
- pure
440
- . Left
441
- . SNErrCardanoConfig
442
- $ mconcat
443
- [ " ProtocolMagicId "
444
- , textShow (unProtocolMagicId $ Byron. configProtocolMagicId bCfg)
445
- , " /= "
446
- , textShow (Shelley. sgNetworkMagic $ scConfig sCfg)
447
- ]
448
- | Byron. gdStartTime (Byron. configGenesisData bCfg) /= Shelley. sgSystemStart (scConfig sCfg) ->
449
- pure
450
- . Left
451
- . SNErrCardanoConfig
452
- $ mconcat
453
- [ " SystemStart "
454
- , textShow (Byron. gdStartTime $ Byron. configGenesisData bCfg)
455
- , " /= "
456
- , textShow (Shelley. sgSystemStart $ scConfig sCfg)
457
- ]
458
- | otherwise ->
459
- Right
460
- <$> mkSyncEnv
461
- trce
462
- dbPool
463
- connectionString
464
- syncOptions
465
- (fst $ mkProtocolInfoCardano genCfg [] )
466
- (Shelley. sgNetworkId $ scConfig sCfg)
467
- (NetworkMagic . unProtocolMagicId $ Byron. configProtocolMagicId bCfg)
468
- (SystemStart . Byron. gdStartTime $ Byron. configGenesisData bCfg)
469
- syncNodeConfigFromFile
470
- syncNodeParams
471
- ranMigration
472
- runMigrationFnc
473
-
474
481
-- | 'True' is for in memory points and 'False' for on disk
475
482
getLatestPoints :: SyncEnv -> IO [(CardanoPoint , Bool )]
476
483
getLatestPoints env = do
0 commit comments