@lodestar/beacon-node 1.35.0-dev.21ba2777a9 → 1.35.0-dev.287e63792e

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 (142) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +8 -2
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/lodestar/index.js +1 -1
  5. package/lib/api/impl/lodestar/index.js.map +1 -1
  6. package/lib/api/impl/validator/index.d.ts.map +1 -1
  7. package/lib/api/impl/validator/index.js +22 -26
  8. package/lib/api/impl/validator/index.js.map +1 -1
  9. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  10. package/lib/chain/blocks/blockInput/blockInput.js +3 -2
  11. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  12. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  13. package/lib/chain/blocks/importBlock.js +7 -6
  14. package/lib/chain/blocks/importBlock.js.map +1 -1
  15. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  16. package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
  17. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  18. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  19. package/lib/chain/blocks/writeBlockInputToDb.js +1 -7
  20. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  21. package/lib/chain/chain.d.ts.map +1 -1
  22. package/lib/chain/chain.js +3 -4
  23. package/lib/chain/chain.js.map +1 -1
  24. package/lib/chain/lightClient/index.d.ts +2 -2
  25. package/lib/chain/lightClient/index.d.ts.map +1 -1
  26. package/lib/chain/lightClient/index.js +2 -0
  27. package/lib/chain/lightClient/index.js.map +1 -1
  28. package/lib/chain/opPools/attestationPool.d.ts +2 -3
  29. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  30. package/lib/chain/opPools/attestationPool.js +3 -5
  31. package/lib/chain/opPools/attestationPool.js.map +1 -1
  32. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts +3 -2
  33. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  34. package/lib/chain/opPools/syncCommitteeMessagePool.js +6 -5
  35. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  36. package/lib/chain/opPools/types.d.ts +1 -1
  37. package/lib/chain/opPools/types.d.ts.map +1 -1
  38. package/lib/chain/opPools/types.js +1 -1
  39. package/lib/chain/opPools/types.js.map +1 -1
  40. package/lib/chain/prepareNextSlot.d.ts +3 -3
  41. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  42. package/lib/chain/prepareNextSlot.js +8 -8
  43. package/lib/chain/prepareNextSlot.js.map +1 -1
  44. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  45. package/lib/chain/produceBlock/produceBlockBody.js +10 -2
  46. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  47. package/lib/chain/regen/interface.d.ts +1 -0
  48. package/lib/chain/regen/interface.d.ts.map +1 -1
  49. package/lib/chain/regen/interface.js +1 -0
  50. package/lib/chain/regen/interface.js.map +1 -1
  51. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  52. package/lib/chain/seenCache/seenGossipBlockInput.js +8 -1
  53. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  54. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  55. package/lib/chain/stateCache/persistentCheckpointsCache.js +9 -8
  56. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  57. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  58. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  59. package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +1 -1
  60. package/lib/chain/validation/lightClientFinalityUpdate.js +4 -3
  61. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  62. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts +6 -4
  63. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +1 -1
  64. package/lib/chain/validation/lightClientOptimisticUpdate.js +11 -11
  65. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  66. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  67. package/lib/chain/validatorMonitor.js +21 -15
  68. package/lib/chain/validatorMonitor.js.map +1 -1
  69. package/lib/metrics/metrics/lodestar.d.ts +1 -1
  70. package/lib/metrics/metrics/lodestar.js +3 -3
  71. package/lib/metrics/metrics/lodestar.js.map +1 -1
  72. package/lib/network/gossip/gossipsub.js +1 -1
  73. package/lib/network/gossip/gossipsub.js.map +1 -1
  74. package/lib/network/gossip/scoringParameters.js +4 -4
  75. package/lib/network/gossip/scoringParameters.js.map +1 -1
  76. package/lib/network/network.d.ts +1 -1
  77. package/lib/network/network.d.ts.map +1 -1
  78. package/lib/network/network.js +9 -9
  79. package/lib/network/network.js.map +1 -1
  80. package/lib/network/peers/peerManager.d.ts.map +1 -1
  81. package/lib/network/peers/peerManager.js +2 -1
  82. package/lib/network/peers/peerManager.js.map +1 -1
  83. package/lib/network/processor/gossipHandlers.js +1 -1
  84. package/lib/network/processor/gossipHandlers.js.map +1 -1
  85. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  86. package/lib/network/subnets/attnetsService.js +1 -1
  87. package/lib/network/subnets/attnetsService.js.map +1 -1
  88. package/lib/node/notifier.js +1 -1
  89. package/lib/node/notifier.js.map +1 -1
  90. package/lib/sync/unknownBlock.d.ts +0 -1
  91. package/lib/sync/unknownBlock.d.ts.map +1 -1
  92. package/lib/sync/unknownBlock.js +7 -6
  93. package/lib/sync/unknownBlock.js.map +1 -1
  94. package/lib/sync/utils/downloadByRange.d.ts +2 -1
  95. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  96. package/lib/sync/utils/downloadByRange.js +8 -3
  97. package/lib/sync/utils/downloadByRange.js.map +1 -1
  98. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  99. package/lib/sync/utils/downloadByRoot.js +2 -1
  100. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  101. package/lib/util/clock.d.ts +8 -3
  102. package/lib/util/clock.d.ts.map +1 -1
  103. package/lib/util/clock.js +8 -5
  104. package/lib/util/clock.js.map +1 -1
  105. package/lib/util/dataColumns.d.ts.map +1 -1
  106. package/lib/util/dataColumns.js +4 -2
  107. package/lib/util/dataColumns.js.map +1 -1
  108. package/package.json +14 -14
  109. package/src/api/impl/beacon/blocks/index.ts +11 -2
  110. package/src/api/impl/lodestar/index.ts +1 -1
  111. package/src/api/impl/validator/index.ts +25 -28
  112. package/src/chain/blocks/blockInput/blockInput.ts +7 -4
  113. package/src/chain/blocks/importBlock.ts +8 -12
  114. package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -2
  115. package/src/chain/blocks/writeBlockInputToDb.ts +1 -9
  116. package/src/chain/chain.ts +3 -14
  117. package/src/chain/lightClient/index.ts +11 -3
  118. package/src/chain/opPools/attestationPool.ts +2 -3
  119. package/src/chain/opPools/syncCommitteeMessagePool.ts +5 -3
  120. package/src/chain/opPools/types.ts +1 -1
  121. package/src/chain/prepareNextSlot.ts +8 -8
  122. package/src/chain/produceBlock/produceBlockBody.ts +13 -3
  123. package/src/chain/regen/interface.ts +1 -0
  124. package/src/chain/seenCache/seenGossipBlockInput.ts +10 -2
  125. package/src/chain/stateCache/persistentCheckpointsCache.ts +10 -8
  126. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  127. package/src/chain/validation/lightClientFinalityUpdate.ts +4 -3
  128. package/src/chain/validation/lightClientOptimisticUpdate.ts +12 -11
  129. package/src/chain/validatorMonitor.ts +28 -17
  130. package/src/metrics/metrics/lodestar.ts +3 -3
  131. package/src/network/gossip/gossipsub.ts +1 -1
  132. package/src/network/gossip/scoringParameters.ts +4 -4
  133. package/src/network/network.ts +9 -9
  134. package/src/network/peers/peerManager.ts +2 -1
  135. package/src/network/processor/gossipHandlers.ts +1 -1
  136. package/src/network/subnets/attnetsService.ts +3 -6
  137. package/src/node/notifier.ts +1 -1
  138. package/src/sync/unknownBlock.ts +7 -6
  139. package/src/sync/utils/downloadByRange.ts +12 -6
  140. package/src/sync/utils/downloadByRoot.ts +12 -4
  141. package/src/util/clock.ts +14 -6
  142. package/src/util/dataColumns.ts +11 -2
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,mCAAmC,CAAC;AAEvD,OAAO,EAAkC,sBAAsB,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EASL,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAC,wBAAwB,EAAC,MAAM,YAAY,CAAC;AACpD,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAE7B,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,yFAAyF;IACzF,0EAAyD,CAAA;IACzD,gEAAgE;IAChE,wDAAuC,CAAA;IACvC,6DAA6D;IAC7D,qDAAoC,CAAA;IACpC,0GAA0G;IAC1G,6CAA4B,CAAA;IAC5B,qBAAqB;IACrB,kCAAiB,CAAA;AACnB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB;AAQD,MAAM,OAAO,aAAa;IACxB;;OAEG;IACH,uBAAuB,CAAS;IAEhC;;OAEG;IACH,cAAc,CAAgB;IAE9B;;;OAGG;IACH,mBAAmB,CAAa;IAEhC;;OAEG;IACH,iBAAiB,CAAS;IAE1B;;OAEG;IACH,YAAY,CAAiB;IAE7B;;;;;OAKG;IACH,cAAc,CAAgB;IAE9B;;OAEG;IACH,cAAc,CAAW;IAEjB,MAAM,CAAkB;IACxB,MAAM,CAAS;IAEvB,YAAY,IAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAChG,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC5D,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,uBAA+B;QAC3D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,+FAA+F;QAC/F,uEAAuE;QACvE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC5D,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CACrD,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,cAA6B;QAC1D,yFAAyF;QACzF,6CAA6C;QAC7C,MAAM,mBAAmB,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;YACzC,mBAAmB,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;YAClD,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,MAAuB,EAAE,WAAwB;IACnF,OAAO,WAAW,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAuB,EAAE,iBAA2B;IAClG,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;QACrF,OAAO,KAAK,GAAG,gBAAgB,CAAC;IAClC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,6FAA6F;IAC7F,IAAI,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAC3C,yBAAyB,GAAG,MAAM,CAAC,oCAAoC,CACxE,CAAC;IAEF,yFAAyF;IACzF,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAE5G,oDAAoD;IACpD,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAEvG,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAuB,EAAE,YAA0B;IAC/F,IAAI,YAAY,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACpD,MAAM,KAAK,CAAC,yBAAyB,YAAY,OAAO,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACzE,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAuB,EAAE,MAAc,EAAE,iBAAyB;IACjG,IAAI,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACxD,MAAM,KAAK,CAAC,+BAA+B,iBAAiB,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,+CAA+C;IAC/C,IAAI,iBAAiB,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,+DAA+D;IAC/D,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAChD,qBAAqB;QACrB,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CACzB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CACvG,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC;QACtF,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,IAAc,EACd,IAAqB;IAErB,MAAM,QAAQ,GAAI,GAAG,CAAC,IAAI,CAAC,CAAC,eAA2D,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrG,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,MAAc,EAAE,iBAAyB;IAC/F,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;SACvD,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;SAC9E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAkC;IAElC,MAAM,cAAc,GAAkD,EAAE,CAAC;IACzE,KAAK,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChD,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,iBAA0C,EAC1C,cAAqC,EACrC,4BAA+D,EAC/D,iBAAgE;IAEhE,IAAI,iBAAiB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,IAAI,iBAAiB,EAAE,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,WAAW;YACnB,cAAc;YACd,SAAS,EAAE,YAAY;YACvB,iBAAiB;YACjB,4BAA4B;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAuB,EACvB,WAA4C,EAC5C,iBAAgE;IAEhE,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAEvE,+DAA+D;IAC/D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,4BAA4B,GAAG,2CAA2C,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjH,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,iBAAiB,CAAC,CAAC;AACvH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CACpD,OAA+B,EAC/B,iBAAgE;IAEhE,OAAO,qBAAqB,CAC1B,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,4BAA4B,EACpC,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAA6B,EAC7B,OAA0B,EAC1B,OAAuB;IAEvB,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;IAC3C,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;QACrC,sBAAsB;QACtB,OAAO,4BAA4B,CAAC,uBAAuB,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACxC,0CAA0C;QAC1C,OAAO,4BAA4B,CAAC,4BAA4B,CAAC;IACnE,CAAC;IAED,OAAO,EAAE,yBAAyB,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IAClE,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE,CAAC;QAC5C,kDAAkD;QAClD,IAAI,eAAe,CAAC,IAAI,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM;QACR,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,yBAAyB,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAC1E,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACvF,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,4BAA4B,CAAC,YAAY,CAAC;IACnD,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QAC5D,6EAA6E;QAC7E,OAAO,4BAA4B,CAAC,WAAW,CAAC;IAClD,CAAC;IAED,yDAAyD;IACzD,iFAAiF;IACjF,uEAAuE;IACvE,gFAAgF;IAChF,qEAAqE;IACrE,2GAA2G;IAC3G,qEAAqE;IACrE,iGAAiG;IACjG,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,KAAK,MAAM,aAAa,IAAI,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,UAAU,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,UAAU,CAAC,YAAY;gBACrC,aAAa;gBACb,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;gBACnC,MAAM,EAAE,gBAAgB,CAAC,QAAQ;aAClC,CAAC,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IAE/D,OAAO,4BAA4B,CAAC,eAAe,CAAC;AACtD,CAAC;AAED,MAAM,CAAN,IAAY,4BAOX;AAPD,WAAY,4BAA4B;IACtC,8EAA8C,CAAA;IAC9C,6FAA6D,CAAA;IAC7D,8DAA8B,CAAA;IAC9B,4DAA4B,CAAA;IAC5B,oEAAoC,CAAA;IACpC,iDAAiB,CAAA;AACnB,CAAC,EAPW,4BAA4B,KAA5B,4BAA4B,QAOvC"}
1
+ {"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.35.0-dev.21ba2777a9",
14
+ "version": "1.35.0-dev.287e63792e",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -134,18 +134,18 @@
134
134
  "@libp2p/peer-id": "^5.1.0",
135
135
  "@libp2p/prometheus-metrics": "^4.3.15",
136
136
  "@libp2p/tcp": "^10.1.8",
137
- "@lodestar/api": "1.35.0-dev.21ba2777a9",
138
- "@lodestar/config": "1.35.0-dev.21ba2777a9",
139
- "@lodestar/db": "1.35.0-dev.21ba2777a9",
140
- "@lodestar/fork-choice": "1.35.0-dev.21ba2777a9",
141
- "@lodestar/light-client": "1.35.0-dev.21ba2777a9",
142
- "@lodestar/logger": "1.35.0-dev.21ba2777a9",
143
- "@lodestar/params": "1.35.0-dev.21ba2777a9",
144
- "@lodestar/reqresp": "1.35.0-dev.21ba2777a9",
145
- "@lodestar/state-transition": "1.35.0-dev.21ba2777a9",
146
- "@lodestar/types": "1.35.0-dev.21ba2777a9",
147
- "@lodestar/utils": "1.35.0-dev.21ba2777a9",
148
- "@lodestar/validator": "1.35.0-dev.21ba2777a9",
137
+ "@lodestar/api": "1.35.0-dev.287e63792e",
138
+ "@lodestar/config": "1.35.0-dev.287e63792e",
139
+ "@lodestar/db": "1.35.0-dev.287e63792e",
140
+ "@lodestar/fork-choice": "1.35.0-dev.287e63792e",
141
+ "@lodestar/light-client": "1.35.0-dev.287e63792e",
142
+ "@lodestar/logger": "1.35.0-dev.287e63792e",
143
+ "@lodestar/params": "1.35.0-dev.287e63792e",
144
+ "@lodestar/reqresp": "1.35.0-dev.287e63792e",
145
+ "@lodestar/state-transition": "1.35.0-dev.287e63792e",
146
+ "@lodestar/types": "1.35.0-dev.287e63792e",
147
+ "@lodestar/utils": "1.35.0-dev.287e63792e",
148
+ "@lodestar/validator": "1.35.0-dev.287e63792e",
149
149
  "@multiformats/multiaddr": "^12.1.3",
150
150
  "datastore-core": "^10.0.2",
151
151
  "datastore-fs": "^10.0.6",
@@ -180,5 +180,5 @@
180
180
  "beacon",
181
181
  "blockchain"
182
182
  ],
183
- "gitHead": "9a7fe439a09f9128f4d15977ac20c851ed35cbc5"
183
+ "gitHead": "9caba83d34e4a1593359fa58f25780aff6f43470"
184
184
  }
@@ -3,12 +3,14 @@ import {ApiError, ApplicationMethods} from "@lodestar/api/server";
3
3
  import {
4
4
  ForkPostBellatrix,
5
5
  ForkPostFulu,
6
+ ForkPreGloas,
6
7
  NUMBER_OF_COLUMNS,
7
8
  SLOTS_PER_HISTORICAL_ROOT,
8
9
  isForkPostBellatrix,
9
10
  isForkPostDeneb,
10
11
  isForkPostElectra,
11
12
  isForkPostFulu,
13
+ isForkPostGloas,
12
14
  } from "@lodestar/params";
13
15
  import {
14
16
  computeEpochAtSlot,
@@ -256,7 +258,7 @@ export function getBeaconBlockApi({
256
258
  }
257
259
 
258
260
  // TODO: Validate block
259
- const delaySec = seenTimestampSec - (chain.genesisTime + slot * config.SECONDS_PER_SLOT);
261
+ const delaySec = seenTimestampSec - computeTimeAtSlot(config, slot, chain.genesisTime);
260
262
  metrics?.gossipBlock.elapsedTimeTillReceived.observe({source: OpSource.api}, delaySec);
261
263
  chain.validatorMonitor?.registerBeaconBlock(OpSource.api, delaySec, signedBlock.message);
262
264
 
@@ -360,6 +362,10 @@ export function getBeaconBlockApi({
360
362
  );
361
363
  const fork = config.getForkName(slot);
362
364
 
365
+ if (isForkPostGloas(fork)) {
366
+ throw new ApiError(400, `Blinded blocks are not available for post-gloas fork=${fork}`);
367
+ }
368
+
363
369
  // Either the payload/blobs are cached from i) engine locally or ii) they are from the builder
364
370
  const producedResult = chain.blockProductionCache.get(blockRoot);
365
371
  if (producedResult !== undefined && producedResult.type !== BlockType.Blinded) {
@@ -518,9 +524,12 @@ export function getBeaconBlockApi({
518
524
  async getBlindedBlock({blockId}) {
519
525
  const {block, executionOptimistic, finalized} = await getBlockResponse(chain, blockId);
520
526
  const fork = config.getForkName(block.message.slot);
527
+ if (isForkPostGloas(fork)) {
528
+ throw new ApiError(400, `Blinded blocks are not available for post-gloas fork=${fork}`);
529
+ }
521
530
  return {
522
531
  data: isForkPostBellatrix(fork)
523
- ? signedBeaconBlockToBlinded(config, block as SignedBeaconBlock<ForkPostBellatrix>)
532
+ ? signedBeaconBlockToBlinded(config, block as SignedBeaconBlock<ForkPostBellatrix & ForkPreGloas>)
524
533
  : block,
525
534
  meta: {
526
535
  executionOptimistic,
@@ -26,7 +26,7 @@ export function getLodestarApi({
26
26
  }: Pick<ApiModules, "chain" | "config" | "db" | "network" | "sync">): ApplicationMethods<routes.lodestar.Endpoints> {
27
27
  let writingHeapdump = false;
28
28
  let writingProfile = false;
29
- const defaultProfileMs = SLOTS_PER_EPOCH * config.SECONDS_PER_SLOT * 1000;
29
+ const defaultProfileMs = SLOTS_PER_EPOCH * config.SLOT_DURATION_MS;
30
30
 
31
31
  return {
32
32
  async writeHeapdump({thread = "main", dirpath = "."}) {
@@ -5,6 +5,7 @@ import {ExecutionStatus} from "@lodestar/fork-choice";
5
5
  import {
6
6
  ForkName,
7
7
  ForkPostBellatrix,
8
+ ForkPreGloas,
8
9
  ForkSeq,
9
10
  GENESIS_SLOT,
10
11
  SLOTS_PER_EPOCH,
@@ -22,6 +23,7 @@ import {
22
23
  calculateCommitteeAssignments,
23
24
  computeEpochAtSlot,
24
25
  computeStartSlotAtEpoch,
26
+ computeTimeAtSlot,
25
27
  createCachedBeaconState,
26
28
  getBlockRootAtSlot,
27
29
  getCurrentSlot,
@@ -66,7 +68,7 @@ import {
66
68
  SyncCommitteeErrorCode,
67
69
  } from "../../../chain/errors/index.js";
68
70
  import {ChainEvent, CheckpointHex, CommonBlockBody} from "../../../chain/index.js";
69
- import {SCHEDULER_LOOKAHEAD_FACTOR} from "../../../chain/prepareNextSlot.js";
71
+ import {PREPARE_NEXT_SLOT_BPS} from "../../../chain/prepareNextSlot.js";
70
72
  import {BlockType, ProduceFullDeneb} from "../../../chain/produceBlock/index.js";
71
73
  import {RegenCaller} from "../../../chain/regen/index.js";
72
74
  import {validateApiAggregateAndProof} from "../../../chain/validation/index.js";
@@ -82,7 +84,7 @@ import {getDefaultGraffiti, toGraffitiBytes} from "../../../util/graffiti.js";
82
84
  import {getLodestarClientVersion} from "../../../util/metadata.js";
83
85
  import {ApiOptions} from "../../options.js";
84
86
  import {getStateResponseWithRegen} from "../beacon/state/utils.js";
85
- import {ApiError, NodeIsSyncing, OnlySupportedByDVT} from "../errors.js";
87
+ import {ApiError, FailureList, IndexedError, NodeIsSyncing, OnlySupportedByDVT} from "../errors.js";
86
88
  import {ApiModules} from "../types.js";
87
89
  import {computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProductionSource} from "./utils.js";
88
90
 
@@ -108,6 +110,8 @@ export const SYNC_TOLERANCE_EPOCHS = 1;
108
110
  * Empirically the builder block resolves in ~1 second, and execution block resolves in <500 ms.
109
111
  * A cutoff of 2 seconds gives enough time and if there are unexpected delays it ensures we publish
110
112
  * in time as proposals post 4 seconds into the slot will likely be orphaned due to proposer boost reorg.
113
+ *
114
+ * TODO GLOAS: re-evaluate cutoff timing
111
115
  */
112
116
  const BLOCK_PRODUCTION_RACE_CUTOFF_MS = 2_000;
113
117
  /** Overall timeout for execution and block production apis */
@@ -178,7 +182,7 @@ export function getValidatorApi(
178
182
  * This value is the same to MAXIMUM_GOSSIP_CLOCK_DISPARITY_SEC.
179
183
  * For very fast networks, reduce clock disparity to half a slot.
180
184
  */
181
- const MAX_API_CLOCK_DISPARITY_SEC = Math.min(0.5, config.SECONDS_PER_SLOT / 2);
185
+ const MAX_API_CLOCK_DISPARITY_SEC = Math.min(0.5, config.SLOT_DURATION_MS / 2000);
182
186
  const MAX_API_CLOCK_DISPARITY_MS = MAX_API_CLOCK_DISPARITY_SEC * 1000;
183
187
 
184
188
  /** Compute and cache the genesis block root */
@@ -211,7 +215,7 @@ export function getValidatorApi(
211
215
  return;
212
216
  }
213
217
 
214
- const slotStartSec = chain.genesisTime + slot * config.SECONDS_PER_SLOT;
218
+ const slotStartSec = computeTimeAtSlot(config, slot, chain.genesisTime);
215
219
  const msToSlot = slotStartSec * 1000 - Date.now();
216
220
 
217
221
  if (msToSlot > MAX_API_CLOCK_DISPARITY_MS) {
@@ -242,7 +246,7 @@ export function getValidatorApi(
242
246
  */
243
247
  function msToNextEpoch(): number {
244
248
  const nextEpoch = chain.clock.currentEpoch + 1;
245
- const secPerEpoch = SLOTS_PER_EPOCH * config.SECONDS_PER_SLOT;
249
+ const secPerEpoch = (SLOTS_PER_EPOCH * config.SLOT_DURATION_MS) / 1000;
246
250
  const nextEpochStartSec = chain.genesisTime + nextEpoch * secPerEpoch;
247
251
  return nextEpochStartSec * 1000 - Date.now();
248
252
  }
@@ -666,7 +670,7 @@ export function getValidatorApi(
666
670
  : Promise.reject(new Error("Engine disabled"));
667
671
 
668
672
  // Calculate cutoff time based on start of the slot
669
- const cutoffMs = Math.max(0, BLOCK_PRODUCTION_RACE_CUTOFF_MS - Math.round(chain.clock.secFromSlot(slot) * 1000));
673
+ const cutoffMs = Math.max(0, BLOCK_PRODUCTION_RACE_CUTOFF_MS - chain.clock.msFromSlot(slot));
670
674
 
671
675
  logger.verbose("Block production race (builder vs execution) starting", {
672
676
  ...loggerContext,
@@ -884,13 +888,14 @@ export function getValidatorApi(
884
888
  opts
885
889
  );
886
890
 
887
- if (opts.blindedLocal === true && ForkSeq[meta.version] >= ForkSeq.bellatrix) {
891
+ const fork = ForkSeq[meta.version];
892
+ if (opts.blindedLocal === true && fork >= ForkSeq.bellatrix && fork < ForkSeq.gloas) {
888
893
  if (meta.executionPayloadBlinded) {
889
894
  return {data, meta};
890
895
  }
891
896
 
892
897
  const {block} = data as BlockContents;
893
- const blindedBlock = beaconBlockToBlinded(config, block as BeaconBlock<ForkPostBellatrix>);
898
+ const blindedBlock = beaconBlockToBlinded(config, block as BeaconBlock<ForkPostBellatrix & ForkPreGloas>);
894
899
  return {
895
900
  data: blindedBlock,
896
901
  meta: {...meta, executionPayloadBlinded: true},
@@ -1016,8 +1021,8 @@ export function getValidatorApi(
1016
1021
  const head = chain.forkChoice.getHead();
1017
1022
  let state: CachedBeaconStateAllForks | undefined = undefined;
1018
1023
  const startSlot = computeStartSlotAtEpoch(epoch);
1019
- const slotMs = config.SECONDS_PER_SLOT * 1000;
1020
- const prepareNextSlotLookAheadMs = slotMs / SCHEDULER_LOOKAHEAD_FACTOR;
1024
+ const prepareNextSlotLookAheadMs =
1025
+ config.SLOT_DURATION_MS - config.getSlotComponentDurationMs(PREPARE_NEXT_SLOT_BPS);
1021
1026
  const toNextEpochMs = msToNextEpoch();
1022
1027
  // validators may request next epoch's duties when it's close to next epoch
1023
1028
  // this is to avoid missed block proposal due to 0 epoch look ahead
@@ -1290,7 +1295,7 @@ export function getValidatorApi(
1290
1295
  notWhileSyncing();
1291
1296
 
1292
1297
  const seenTimestampSec = Date.now() / 1000;
1293
- const errors: Error[] = [];
1298
+ const failures: FailureList = [];
1294
1299
  const fork = chain.config.getForkName(chain.clock.currentSlot);
1295
1300
 
1296
1301
  await Promise.all(
@@ -1326,8 +1331,8 @@ export function getValidatorApi(
1326
1331
  return; // Ok to submit the same aggregate twice
1327
1332
  }
1328
1333
 
1329
- errors.push(e as Error);
1330
- logger.error(`Error on publishAggregateAndProofs [${i}]`, logCtx, e as Error);
1334
+ failures.push({index: i, message: (e as Error).message});
1335
+ logger.verbose(`Error on publishAggregateAndProofs [${i}]`, logCtx, e as Error);
1331
1336
  if (e instanceof AttestationError && e.action === GossipAction.REJECT) {
1332
1337
  chain.persistInvalidSszValue(ssz.phase0.SignedAggregateAndProof, signedAggregateAndProof, "api_reject");
1333
1338
  }
@@ -1335,12 +1340,8 @@ export function getValidatorApi(
1335
1340
  })
1336
1341
  );
1337
1342
 
1338
- if (errors.length > 1) {
1339
- throw Error("Multiple errors on publishAggregateAndProofs\n" + errors.map((e) => e.message).join("\n"));
1340
- }
1341
-
1342
- if (errors.length === 1) {
1343
- throw errors[0];
1343
+ if (failures.length > 0) {
1344
+ throw new IndexedError("Error processing aggregate and proofs", failures);
1344
1345
  }
1345
1346
  },
1346
1347
 
@@ -1354,7 +1355,7 @@ export function getValidatorApi(
1354
1355
  async publishContributionAndProofs({contributionAndProofs}) {
1355
1356
  notWhileSyncing();
1356
1357
 
1357
- const errors: Error[] = [];
1358
+ const failures: FailureList = [];
1358
1359
 
1359
1360
  await Promise.all(
1360
1361
  contributionAndProofs.map(async (contributionAndProof, i) => {
@@ -1386,8 +1387,8 @@ export function getValidatorApi(
1386
1387
  return; // Ok to submit the same aggregate twice
1387
1388
  }
1388
1389
 
1389
- errors.push(e as Error);
1390
- logger.error(`Error on publishContributionAndProofs [${i}]`, logCtx, e as Error);
1390
+ failures.push({index: i, message: (e as Error).message});
1391
+ logger.verbose(`Error on publishContributionAndProofs [${i}]`, logCtx, e as Error);
1391
1392
  if (e instanceof SyncCommitteeError && e.action === GossipAction.REJECT) {
1392
1393
  chain.persistInvalidSszValue(ssz.altair.SignedContributionAndProof, contributionAndProof, "api_reject");
1393
1394
  }
@@ -1395,12 +1396,8 @@ export function getValidatorApi(
1395
1396
  })
1396
1397
  );
1397
1398
 
1398
- if (errors.length > 1) {
1399
- throw Error("Multiple errors on publishContributionAndProofs\n" + errors.map((e) => e.message).join("\n"));
1400
- }
1401
-
1402
- if (errors.length === 1) {
1403
- throw errors[0];
1399
+ if (failures.length > 0) {
1400
+ throw new IndexedError("Error processing contribution and proofs", failures);
1404
1401
  }
1405
1402
  },
1406
1403
 
@@ -1,5 +1,5 @@
1
- import {ForkName, ForkPreDeneb} from "@lodestar/params";
2
- import {BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu} from "@lodestar/types";
1
+ import {ForkName, ForkPostFulu, ForkPreDeneb, ForkPreGloas} from "@lodestar/params";
2
+ import {BeaconBlockBody, BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu} from "@lodestar/types";
3
3
  import {fromHex, prettyBytes, toRootHex, withTimeout} from "@lodestar/utils";
4
4
  import {VersionedHashes} from "../../../execution/index.js";
5
5
  import {kzgCommitmentToVersionedHash} from "../../../util/blobs.js";
@@ -652,7 +652,8 @@ export class BlockInputColumns extends AbstractBlockInput<ForkColumnsDA, fulu.Da
652
652
  static createFromColumn(
653
653
  props: AddColumn & CreateBlockInputMeta & {sampledColumns: ColumnIndex[]; custodyColumns: ColumnIndex[]}
654
654
  ): BlockInputColumns {
655
- const hasAllData = props.sampledColumns.length === 0;
655
+ const hasAllData =
656
+ props.daOutOfRange || props.columnSidecar.kzgCommitments.length === 0 || props.sampledColumns.length === 0;
656
657
  const state: BlockInputColumnsState = {
657
658
  hasBlock: false,
658
659
  hasAllData,
@@ -714,7 +715,9 @@ export class BlockInputColumns extends AbstractBlockInput<ForkColumnsDA, fulu.Da
714
715
  );
715
716
  }
716
717
 
717
- const hasAllData = props.block.message.body.blobKzgCommitments.length === 0 || this.state.hasAllData;
718
+ const hasAllData =
719
+ (props.block.message.body as BeaconBlockBody<ForkPostFulu & ForkPreGloas>).blobKzgCommitments.length === 0 ||
720
+ this.state.hasAllData;
718
721
 
719
722
  this.state = {
720
723
  ...this.state,
@@ -7,20 +7,14 @@ import {
7
7
  ForkChoiceErrorCode,
8
8
  NotReorgedReason,
9
9
  } from "@lodestar/fork-choice";
10
- import {
11
- ForkPostAltair,
12
- ForkPostElectra,
13
- ForkSeq,
14
- INTERVALS_PER_SLOT,
15
- MAX_SEED_LOOKAHEAD,
16
- SLOTS_PER_EPOCH,
17
- } from "@lodestar/params";
10
+ import {ForkPostAltair, ForkPostElectra, ForkSeq, MAX_SEED_LOOKAHEAD, SLOTS_PER_EPOCH} from "@lodestar/params";
18
11
  import {
19
12
  CachedBeaconStateAltair,
20
13
  EpochCache,
21
14
  RootCache,
22
15
  computeEpochAtSlot,
23
16
  computeStartSlotAtEpoch,
17
+ computeTimeAtSlot,
24
18
  isExecutionStateType,
25
19
  isStartSlotOfEpoch,
26
20
  isStateValidatorsNodesPopulated,
@@ -85,7 +79,8 @@ export async function importBlock(
85
79
  const currentEpoch = computeEpochAtSlot(currentSlot);
86
80
  const blockEpoch = computeEpochAtSlot(blockSlot);
87
81
  const prevFinalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
88
- const blockDelaySec = (fullyVerifiedBlock.seenTimestampSec - postState.genesisTime) % this.config.SECONDS_PER_SLOT;
82
+ const blockDelaySec =
83
+ fullyVerifiedBlock.seenTimestampSec - computeTimeAtSlot(this.config, blockSlot, postState.genesisTime);
89
84
  const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
90
85
  const fork = this.config.getForkSeq(blockSlot);
91
86
 
@@ -265,10 +260,11 @@ export async function importBlock(
265
260
  this.metrics.headSlot.set(newHead.slot);
266
261
  // Only track "recent" blocks. Otherwise sync can distort this metrics heavily.
267
262
  // We want to track recent blocks coming from gossip, unknown block sync, and API.
268
- if (delaySec < SLOTS_PER_EPOCH * this.config.SECONDS_PER_SLOT) {
263
+ if (delaySec < (SLOTS_PER_EPOCH * this.config.SLOT_DURATION_MS) / 1000) {
269
264
  this.metrics.importBlock.elapsedTimeTillBecomeHead.observe(delaySec);
270
- if (delaySec > this.config.SECONDS_PER_SLOT / INTERVALS_PER_SLOT) {
271
- this.metrics.importBlock.setHeadAfterFirstInterval.inc();
265
+ const cutOffSec = this.config.getAttestationDueMs(this.config.getForkName(blockSlot)) / 1000;
266
+ if (delaySec > cutOffSec) {
267
+ this.metrics.importBlock.setHeadAfterCutoff.inc();
272
268
  }
273
269
  }
274
270
  }
@@ -1,5 +1,5 @@
1
1
  import {DataAvailabilityStatus} from "@lodestar/state-transition";
2
- import {DAType, IBlockInput} from "./blockInput/index.js";
2
+ import {DAData, DAType, IBlockInput} from "./blockInput/index.js";
3
3
 
4
4
  // we can now wait for full 12 seconds because unavailable block sync will try pulling
5
5
  // the blobs from the network anyway after 500ms of seeing the block
@@ -18,7 +18,15 @@ export async function verifyBlocksDataAvailability(
18
18
  dataAvailabilityStatuses: DataAvailabilityStatus[];
19
19
  availableTime: number;
20
20
  }> {
21
- await Promise.all(blocks.map((blockInput) => blockInput.waitForAllData(BLOB_AVAILABILITY_TIMEOUT, signal)));
21
+ const promises: Promise<DAData>[] = [];
22
+ for (const blockInput of blocks) {
23
+ // block verification is triggered on a verified gossip block so we only need to wait for all data
24
+ if (!blockInput.hasAllData()) {
25
+ promises.push(blockInput.waitForAllData(BLOB_AVAILABILITY_TIMEOUT, signal));
26
+ }
27
+ }
28
+ await Promise.all(promises);
29
+
22
30
  const availableTime = Math.max(0, Math.max(...blocks.map((blockInput) => blockInput.getTimeComplete())));
23
31
  const dataAvailabilityStatuses: DataAvailabilityStatus[] = blocks.map((blockInput) => {
24
32
  if (blockInput.type === DAType.PreData) {
@@ -102,15 +102,7 @@ export async function removeEagerlyPersistedBlockInputs(this: BeaconChain, block
102
102
  if (!this.forkChoice.hasBlockHex(blockRootHex)) {
103
103
  blockToRemove.push(block);
104
104
 
105
- if (isBlockInputColumns(blockInput)) {
106
- const {custodyColumns} = this.custodyConfig;
107
- const dataColumnsLen = custodyColumns.length;
108
- const dataColumnSidecars = blockInput.getCustodyColumns();
109
- if (dataColumnSidecars.length !== dataColumnsLen) {
110
- throw Error(
111
- `Invalid dataColumnSidecars=${dataColumnSidecars.length} for custody expected custodyColumnsLen=${dataColumnsLen}`
112
- );
113
- }
105
+ if (isBlockInputColumns(blockInput) && blockInput.getCustodyColumns().length > 0) {
114
106
  dataColumnsToRemove.push(blockRoot);
115
107
  } else if (isBlockInputBlobs(blockInput)) {
116
108
  const blobSidecars = blockInput.getBlobs();
@@ -254,20 +254,9 @@ export class BeaconChain implements IBeaconChain {
254
254
  if (!clock) clock = new Clock({config, genesisTime: this.genesisTime, signal});
255
255
 
256
256
  this.blacklistedBlocks = new Map((opts.blacklistedBlocks ?? []).map((hex) => [hex, null]));
257
- const preAggregateCutOffTime = (2 / 3) * this.config.SECONDS_PER_SLOT;
258
- this.attestationPool = new AttestationPool(
259
- config,
260
- clock,
261
- preAggregateCutOffTime,
262
- this.opts?.preaggregateSlotDistance,
263
- metrics
264
- );
257
+ this.attestationPool = new AttestationPool(config, clock, this.opts?.preaggregateSlotDistance, metrics);
265
258
  this.aggregatedAttestationPool = new AggregatedAttestationPool(this.config, metrics);
266
- this.syncCommitteeMessagePool = new SyncCommitteeMessagePool(
267
- clock,
268
- preAggregateCutOffTime,
269
- this.opts?.preaggregateSlotDistance
270
- );
259
+ this.syncCommitteeMessagePool = new SyncCommitteeMessagePool(config, clock, this.opts?.preaggregateSlotDistance);
271
260
  this.syncContributionAndProofPool = new SyncContributionAndProofPool(clock, metrics, logger);
272
261
 
273
262
  this.seenAggregatedAttestations = new SeenAggregatedAttestations(metrics);
@@ -1150,7 +1139,7 @@ export class BeaconChain implements IBeaconChain {
1150
1139
  const metrics = this.metrics;
1151
1140
  if (metrics && (slot + 1) % SLOTS_PER_EPOCH === 0) {
1152
1141
  // On the last slot of the epoch
1153
- sleep((1000 * this.config.SECONDS_PER_SLOT) / 2)
1142
+ sleep(this.config.SLOT_DURATION_MS / 2)
1154
1143
  .then(() => this.validatorMonitor?.onceEveryEndOfEpoch(this.getHeadState()))
1155
1144
  .catch((e) => {
1156
1145
  if (!isErrorAborted(e)) this.logger.error("Error on validator monitor onceEveryEndOfEpoch", {slot}, e);
@@ -11,6 +11,7 @@ import {
11
11
  ForkName,
12
12
  ForkPostAltair,
13
13
  ForkPostBellatrix,
14
+ ForkPreGloas,
14
15
  ForkSeq,
15
16
  MIN_SYNC_COMMITTEE_PARTICIPANTS,
16
17
  SYNC_COMMITTEE_SIZE,
@@ -741,17 +742,24 @@ export function sumBits(bits: BitArray): number {
741
742
  return bits.getTrueBitIndexes().length;
742
743
  }
743
744
 
744
- export function blockToLightClientHeader(fork: ForkName, block: BeaconBlock<ForkPostAltair>): LightClientHeader {
745
+ // TODO GLOAS: Pending light-client spec but this function probably won't be used
746
+ // in Gloas. So we can assume any types here are pre-gloas
747
+ export function blockToLightClientHeader(
748
+ fork: ForkName,
749
+ block: BeaconBlock<ForkPostAltair & ForkPreGloas>
750
+ ): LightClientHeader {
745
751
  const blockSlot = block.slot;
746
752
  const beacon: phase0.BeaconBlockHeader = {
747
753
  slot: blockSlot,
748
754
  proposerIndex: block.proposerIndex,
749
755
  parentRoot: block.parentRoot,
750
756
  stateRoot: block.stateRoot,
751
- bodyRoot: (ssz[fork].BeaconBlockBody as SSZTypesFor<ForkPostAltair, "BeaconBlockBody">).hashTreeRoot(block.body),
757
+ bodyRoot: (ssz[fork].BeaconBlockBody as SSZTypesFor<ForkPostAltair & ForkPreGloas, "BeaconBlockBody">).hashTreeRoot(
758
+ block.body
759
+ ),
752
760
  };
753
761
  if (ForkSeq[fork] >= ForkSeq.capella) {
754
- const blockBody = block.body as BeaconBlockBody<ForkPostBellatrix>;
762
+ const blockBody = block.body as BeaconBlockBody<ForkPostBellatrix & ForkPreGloas>;
755
763
  const execution = executionPayloadToPayloadHeader(ForkSeq[fork], blockBody.executionPayload);
756
764
  return {
757
765
  beacon,
@@ -74,7 +74,6 @@ export class AttestationPool {
74
74
  constructor(
75
75
  private readonly config: ChainForkConfig,
76
76
  private readonly clock: IClock,
77
- private readonly cutOffSecFromSlot: number,
78
77
  private readonly preaggregateSlotDistance = 0,
79
78
  private readonly metrics: Metrics | null = null
80
79
  ) {}
@@ -98,7 +97,7 @@ export class AttestationPool {
98
97
  * `SignedAggregateAndProof`.
99
98
  *
100
99
  * If the attestation is too old (low slot) to be included in the pool it is simply dropped
101
- * and no error is returned. Also if it's at clock slot but come to the pool later than 2/3
100
+ * and no error is returned. Also if it's at clock slot but come to the pool later than AGGREGATE_DUE_BPS
102
101
  * of slot time, it's dropped too since it's not helpful for the validator anymore
103
102
  *
104
103
  * Expects the attestation to be fully validated:
@@ -126,7 +125,7 @@ export class AttestationPool {
126
125
 
127
126
  // Reject gossip attestations in the current slot but come to this pool very late
128
127
  // for api attestations, we allow them to be added to the pool
129
- if (!priority && this.clock.secFromSlot(slot) > this.cutOffSecFromSlot) {
128
+ if (!priority && this.clock.msFromSlot(slot) > this.config.getAggregateDueMs(fork)) {
130
129
  return InsertOutcome.Late;
131
130
  }
132
131
 
@@ -1,5 +1,6 @@
1
1
  import {Signature, aggregateSignatures} from "@chainsafe/blst";
2
2
  import {BitArray} from "@chainsafe/ssz";
3
+ import {ChainForkConfig} from "@lodestar/config";
3
4
  import {SYNC_COMMITTEE_SIZE, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params";
4
5
  import {Root, Slot, SubcommitteeIndex, SubnetID, altair} from "@lodestar/types";
5
6
  import {MapDef, toRootHex} from "@lodestar/utils";
@@ -44,8 +45,8 @@ export class SyncCommitteeMessagePool {
44
45
  private lowestPermissibleSlot = 0;
45
46
 
46
47
  constructor(
48
+ private readonly config: ChainForkConfig,
47
49
  private readonly clock: IClock,
48
- private readonly cutOffSecFromSlot: number,
49
50
  private readonly preaggregateSlotDistance = 0
50
51
  ) {}
51
52
 
@@ -68,6 +69,7 @@ export class SyncCommitteeMessagePool {
68
69
  priority?: boolean
69
70
  ): InsertOutcome {
70
71
  const {slot, beaconBlockRoot} = signature;
72
+ const fork = this.config.getForkName(slot);
71
73
  const rootHex = toRootHex(beaconBlockRoot);
72
74
  const lowestPermissibleSlot = this.lowestPermissibleSlot;
73
75
 
@@ -76,8 +78,8 @@ export class SyncCommitteeMessagePool {
76
78
  return InsertOutcome.Old;
77
79
  }
78
80
 
79
- // validator gets SyncCommitteeContribution at 2/3 of slot, it's no use to preaggregate later than that time
80
- if (!priority && this.clock.secFromSlot(slot) > this.cutOffSecFromSlot) {
81
+ // validator gets SyncCommitteeContribution at CONTRIBUTION_DUE_BPS of slot, it's no use to preaggregate later than that time
82
+ if (!priority && this.clock.msFromSlot(slot) > this.config.getSyncContributionDueMs(fork)) {
81
83
  return InsertOutcome.Late;
82
84
  }
83
85
 
@@ -13,7 +13,7 @@ export enum InsertOutcome {
13
13
  Old = "Old",
14
14
  /** The pool has reached its limit. No changes were made. */
15
15
  ReachLimit = "ReachLimit",
16
- /** Messages don't bring any value, for example attestations come to the pool at > 2/3 of slot. No changes were made */
16
+ /** Messages don't bring any value, for example attestations come to the pool at > AGGREGATE_DUE_BPS of slot. No changes were made */
17
17
  Late = "Late",
18
18
  /** The data is know, and the new participants have been added to the aggregated signature */
19
19
  Aggregated = "Aggregated",
@@ -22,17 +22,18 @@ import {IBeaconChain} from "./interface.js";
22
22
  import {getPayloadAttributesForSSE, prepareExecutionPayload} from "./produceBlock/produceBlockBody.js";
23
23
  import {RegenCaller} from "./regen/index.js";
24
24
 
25
- /* With 12s slot times, this scheduler will run 4s before the start of each slot (`12 / 3 = 4`). */
26
- export const SCHEDULER_LOOKAHEAD_FACTOR = 3;
25
+ // TODO GLOAS: re-evaluate this timing
26
+ /* With 12s slot times, this scheduler will run 4s before the start of each slot (`12 - 0.6667 * 12 = 4`). */
27
+ export const PREPARE_NEXT_SLOT_BPS = 6667;
27
28
 
28
29
  /* We don't want to do more epoch transition than this */
29
30
  const PREPARE_EPOCH_LIMIT = 1;
30
31
 
31
32
  /**
32
33
  * At Bellatrix, if we are responsible for proposing in next slot, we want to prepare payload
33
- * 4s (1/3 slot) before the start of next slot
34
+ * 4s before the start of next slot at PREPARE_NEXT_SLOT_BPS of the current slot.
34
35
  *
35
- * For all forks, when clock is 1/3 slot before an epoch, we want to prepare for the next epoch
36
+ * For all forks, when clock reaches PREPARE_NEXT_SLOT_BPS of slot before an epoch, we want to prepare for the next epoch
36
37
  * transition from our head so that:
37
38
  * + validators vote for block head on time through attestation
38
39
  * + validators propose blocks on time
@@ -74,10 +75,9 @@ export class PrepareNextSlotScheduler {
74
75
  }
75
76
 
76
77
  try {
77
- // At 1/3 slot time before the next slot, we either prepare payload or precompute
78
- // epoch transition
79
- const slotMs = this.config.SECONDS_PER_SLOT * 1000;
80
- await sleep(slotMs - slotMs / SCHEDULER_LOOKAHEAD_FACTOR, this.signal);
78
+ // At PREPARE_NEXT_SLOT_BPS (~67%) of the current slot we prepare payload for the next slot
79
+ // or precompute epoch transition
80
+ await sleep(this.config.getSlotComponentDurationMs(PREPARE_NEXT_SLOT_BPS), this.signal);
81
81
 
82
82
  // calling updateHead() here before we produce a block to reduce reorg possibility
83
83
  const {slot: headSlot, blockRoot: headRoot} = this.chain.recomputeForkChoiceHead(