@lodestar/beacon-node 1.48.0-dev.b24dce51bf → 1.48.0-dev.b5f4a8f2c6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +0 -7
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/config/index.d.ts.map +1 -1
  5. package/lib/api/impl/config/index.js +4 -1
  6. package/lib/api/impl/config/index.js.map +1 -1
  7. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  8. package/lib/chain/archiveStore/archiveStore.js +4 -1
  9. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  10. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +9 -1
  11. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  12. package/lib/chain/archiveStore/utils/archiveBlocks.js +37 -4
  13. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  14. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  15. package/lib/chain/blocks/importBlock.js +3 -2
  16. package/lib/chain/blocks/importBlock.js.map +1 -1
  17. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  18. package/lib/chain/blocks/utils/chainSegment.js +16 -10
  19. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  20. package/lib/chain/errors/executionPayloadBid.d.ts +4 -0
  21. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  22. package/lib/chain/errors/executionPayloadBid.js +1 -0
  23. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  24. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  25. package/lib/chain/forkChoice/index.js +2 -0
  26. package/lib/chain/forkChoice/index.js.map +1 -1
  27. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  28. package/lib/chain/validation/executionPayloadBid.js +16 -0
  29. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  30. package/lib/execution/builder/validateBid.d.ts.map +1 -1
  31. package/lib/execution/builder/validateBid.js +3 -0
  32. package/lib/execution/builder/validateBid.js.map +1 -1
  33. package/lib/metrics/metrics/lodestar.d.ts +4 -3
  34. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  35. package/lib/metrics/metrics/lodestar.js +5 -5
  36. package/lib/metrics/metrics/lodestar.js.map +1 -1
  37. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  38. package/lib/network/processor/gossipHandlers.js +378 -278
  39. package/lib/network/processor/gossipHandlers.js.map +1 -1
  40. package/lib/network/processor/index.d.ts.map +1 -1
  41. package/lib/network/processor/index.js +11 -16
  42. package/lib/network/processor/index.js.map +1 -1
  43. package/package.json +14 -14
  44. package/src/api/impl/beacon/blocks/index.ts +0 -10
  45. package/src/api/impl/config/index.ts +4 -1
  46. package/src/chain/archiveStore/archiveStore.ts +6 -0
  47. package/src/chain/archiveStore/utils/archiveBlocks.ts +39 -3
  48. package/src/chain/blocks/importBlock.ts +4 -2
  49. package/src/chain/blocks/utils/chainSegment.ts +16 -11
  50. package/src/chain/errors/executionPayloadBid.ts +2 -0
  51. package/src/chain/forkChoice/index.ts +2 -0
  52. package/src/chain/validation/executionPayloadBid.ts +18 -0
  53. package/src/execution/builder/validateBid.ts +4 -0
  54. package/src/metrics/metrics/lodestar.ts +6 -5
  55. package/src/network/processor/gossipHandlers.ts +487 -348
  56. package/src/network/processor/index.ts +11 -17
@@ -11,7 +11,6 @@ import {IBeaconChain} from "../../chain/interface.js";
11
11
  import {IBeaconDb} from "../../db/interface.js";
12
12
  import {Metrics} from "../../metrics/metrics.js";
13
13
  import {ClockEvent} from "../../util/clock.js";
14
- import {callInNextEventLoop} from "../../util/eventLoop.js";
15
14
  import {PeerIdStr} from "../../util/peerId.js";
16
15
  import {
17
16
  getBeaconBlockRootFromExecutionPayloadEnvelopeSerialized,
@@ -781,27 +780,22 @@ export class NetworkProcessor {
781
780
  this.trackJobTime(messageOrArray, 1, acceptanceArr[0]);
782
781
  }
783
782
 
784
- // Use setTimeout to yield to the macro queue
785
- // This is mostly due to too many attestation messages, and a gossipsub RPC may
786
- // contain multiple of them. This helps avoid the I/O lag issue.
787
-
783
+ // Report the validation verdict synchronously so it reaches the network worker before any deferred
784
+ // handler (e.g. block import) runs on the next event loop. At network thread side, gossipsub onValidationResult()
785
+ // has its own callInNextEventLoop
788
786
  if (Array.isArray(messageOrArray)) {
789
787
  for (const [i, msg] of messageOrArray.entries()) {
790
- callInNextEventLoop(() => {
791
- this.events.emit(NetworkEvent.gossipMessageValidationResult, {
792
- msgId: msg.msgId,
793
- propagationSource: msg.propagationSource,
794
- acceptance: acceptanceArr[i],
795
- });
788
+ this.events.emit(NetworkEvent.gossipMessageValidationResult, {
789
+ msgId: msg.msgId,
790
+ propagationSource: msg.propagationSource,
791
+ acceptance: acceptanceArr[i],
796
792
  });
797
793
  }
798
794
  } else {
799
- callInNextEventLoop(() => {
800
- this.events.emit(NetworkEvent.gossipMessageValidationResult, {
801
- msgId: messageOrArray.msgId,
802
- propagationSource: messageOrArray.propagationSource,
803
- acceptance: acceptanceArr[0],
804
- });
795
+ this.events.emit(NetworkEvent.gossipMessageValidationResult, {
796
+ msgId: messageOrArray.msgId,
797
+ propagationSource: messageOrArray.propagationSource,
798
+ acceptance: acceptanceArr[0],
805
799
  });
806
800
  }
807
801
  }