@@ -1321,23 +1321,17 @@ public void pushBlock(final BlockCapsule block)
13211321
13221322 return ;
13231323 }
1324+ long oldSolidNum = getDynamicPropertiesStore ().getLatestSolidifiedBlockNum ();
13241325 try (ISession tmpSession = revokingStore .buildSession ()) {
1325-
1326- long oldSolidNum =
1327- chainBaseManager .getDynamicPropertiesStore ().getLatestSolidifiedBlockNum ();
1328-
13291326 applyBlock (newBlock , txs );
13301327 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 ());
13361328 } catch (Throwable throwable ) {
13371329 logger .error (throwable .getMessage (), throwable );
13381330 khaosDb .removeBlk (block .getBlockId ());
13391331 throw throwable ;
13401332 }
1333+ long newSolidNum = getDynamicPropertiesStore ().getLatestSolidifiedBlockNum ();
1334+ blockTrigger (newBlock , oldSolidNum , newSolidNum );
13411335 }
13421336 logger .info (SAVE_BLOCK , newBlock );
13431337 }
@@ -1367,6 +1361,19 @@ public void pushBlock(final BlockCapsule block)
13671361 }
13681362 }
13691363
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+
13701377 public void updateDynamicProperties (BlockCapsule block ) {
13711378
13721379 chainBaseManager .getDynamicPropertiesStore ()
@@ -2216,7 +2223,7 @@ private void postLogsFilter(final BlockCapsule blockCapsule, boolean solidified,
22162223 }
22172224 }
22182225
2219- private void postBlockTrigger (final BlockCapsule blockCapsule ) {
2226+ void postBlockTrigger (final BlockCapsule blockCapsule ) {
22202227 // post block and logs for jsonrpc
22212228 if (CommonParameter .getInstance ().isJsonRpcHttpFullNodeEnable ()) {
22222229 postBlockFilter (blockCapsule , false );
0 commit comments