@@ -1321,23 +1321,17 @@ public void pushBlock(final BlockCapsule block)
1321
1321
1322
1322
return ;
1323
1323
}
1324
+ long oldSolidNum = getDynamicPropertiesStore ().getLatestSolidifiedBlockNum ();
1324
1325
try (ISession tmpSession = revokingStore .buildSession ()) {
1325
-
1326
- long oldSolidNum =
1327
- chainBaseManager .getDynamicPropertiesStore ().getLatestSolidifiedBlockNum ();
1328
-
1329
1326
applyBlock (newBlock , txs );
1330
1327
tmpSession .commit ();
1331
- // if event subscribe is enabled, post block trigger to queue
1332
- postBlockTrigger (newBlock );
1333
- // if event subscribe is enabled, post solidity trigger to queue
1334
- postSolidityTrigger (oldSolidNum ,
1335
- getDynamicPropertiesStore ().getLatestSolidifiedBlockNum ());
1336
1328
} catch (Throwable throwable ) {
1337
1329
logger .error (throwable .getMessage (), throwable );
1338
1330
khaosDb .removeBlk (block .getBlockId ());
1339
1331
throw throwable ;
1340
1332
}
1333
+ long newSolidNum = getDynamicPropertiesStore ().getLatestSolidifiedBlockNum ();
1334
+ blockTrigger (newBlock , oldSolidNum , newSolidNum );
1341
1335
}
1342
1336
logger .info (SAVE_BLOCK , newBlock );
1343
1337
}
@@ -1367,6 +1361,19 @@ public void pushBlock(final BlockCapsule block)
1367
1361
}
1368
1362
}
1369
1363
1364
+ void blockTrigger (final BlockCapsule block , long oldSolid , long newSolid ) {
1365
+ try {
1366
+ // if event subscribe is enabled, post block trigger to queue
1367
+ postBlockTrigger (block );
1368
+ // if event subscribe is enabled, post solidity trigger to queue
1369
+ postSolidityTrigger (oldSolid , newSolid );
1370
+ } catch (Exception e ) {
1371
+ logger .error ("Block trigger failed. head: {}, oldSolid: {}, newSolid: {}" ,
1372
+ block .getNum (), oldSolid , newSolid , e );
1373
+ System .exit (1 );
1374
+ }
1375
+ }
1376
+
1370
1377
public void updateDynamicProperties (BlockCapsule block ) {
1371
1378
1372
1379
chainBaseManager .getDynamicPropertiesStore ()
@@ -2206,7 +2213,7 @@ private void postLogsFilter(final BlockCapsule blockCapsule, boolean solidified,
2206
2213
}
2207
2214
}
2208
2215
2209
- private void postBlockTrigger (final BlockCapsule blockCapsule ) {
2216
+ void postBlockTrigger (final BlockCapsule blockCapsule ) {
2210
2217
// post block and logs for jsonrpc
2211
2218
if (CommonParameter .getInstance ().isJsonRpcHttpFullNodeEnable ()) {
2212
2219
postBlockFilter (blockCapsule , false );
0 commit comments