@lodestar/beacon-node 1.47.0 → 1.48.0-dev.02b355c4db
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.
- package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/blocks/index.js +8 -11
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/utils.js +14 -0
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/config/index.d.ts.map +1 -1
- package/lib/api/impl/config/index.js +4 -1
- package/lib/api/impl/config/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +44 -39
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
- package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +5 -1
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -0
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/metrics.js +12 -1
- package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/types.d.ts +2 -0
- package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js +4 -1
- package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +9 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +68 -38
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts +5 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +12 -18
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/index.d.ts +8 -4
- package/lib/chain/blocks/index.d.ts.map +1 -1
- package/lib/chain/blocks/index.js +89 -23
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +8 -0
- package/lib/chain/blocks/types.d.ts.map +1 -1
- package/lib/chain/blocks/types.js.map +1 -1
- package/lib/chain/blocks/utils/chainSegment.d.ts +1 -1
- package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
- package/lib/chain/blocks/utils/chainSegment.js +26 -11
- package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
- package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlock.js +5 -2
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +9 -16
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/chain.d.ts +12 -6
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +131 -76
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +1 -1
- package/lib/chain/emitter.js +1 -1
- package/lib/chain/errors/blockError.d.ts +19 -7
- package/lib/chain/errors/blockError.d.ts.map +1 -1
- package/lib/chain/errors/blockError.js +2 -2
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts +15 -2
- package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
- package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
- package/lib/chain/errors/executionPayloadBid.d.ts +9 -0
- package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
- package/lib/chain/errors/executionPayloadBid.js +2 -0
- package/lib/chain/errors/executionPayloadBid.js.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.d.ts +10 -11
- package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.js +0 -2
- package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/errors/gossipValidation.d.ts +2 -1
- package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
- package/lib/chain/errors/gossipValidation.js +1 -0
- package/lib/chain/errors/gossipValidation.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +2 -0
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +6 -6
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/lightClient/index.d.ts +3 -3
- package/lib/chain/lightClient/index.d.ts.map +1 -1
- package/lib/chain/lightClient/index.js +21 -23
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/lightClient/proofs.d.ts +2 -1
- package/lib/chain/lightClient/proofs.d.ts.map +1 -1
- package/lib/chain/lightClient/proofs.js +5 -1
- package/lib/chain/lightClient/proofs.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts +5 -0
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +37 -14
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js +3 -25
- package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +46 -64
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/interface.d.ts +1 -0
- package/lib/chain/regen/interface.d.ts.map +1 -1
- package/lib/chain/regen/interface.js +1 -0
- package/lib/chain/regen/interface.js.map +1 -1
- package/lib/chain/validation/block.d.ts.map +1 -1
- package/lib/chain/validation/block.js +74 -63
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.js +38 -13
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/chain/validation/executionPayloadBid.d.ts +15 -3
- package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadBid.js +199 -28
- package/lib/chain/validation/executionPayloadBid.js.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js +10 -29
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.js +5 -6
- package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +7 -1
- package/lib/chain/validatorMonitor.d.ts.map +1 -1
- package/lib/chain/validatorMonitor.js +22 -5
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/db/beacon.d.ts +14 -5
- package/lib/db/beacon.d.ts.map +1 -1
- package/lib/db/beacon.js +17 -3
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/dataColumnStore.d.ts +39 -0
- package/lib/db/dataColumnStore.d.ts.map +1 -0
- package/lib/db/dataColumnStore.js +81 -0
- package/lib/db/dataColumnStore.js.map +1 -0
- package/lib/db/flatFileStore/atomicWrite.d.ts +8 -0
- package/lib/db/flatFileStore/atomicWrite.d.ts.map +1 -0
- package/lib/db/flatFileStore/atomicWrite.js +61 -0
- package/lib/db/flatFileStore/atomicWrite.js.map +1 -0
- package/lib/db/flatFileStore/dcolFormat.d.ts +90 -0
- package/lib/db/flatFileStore/dcolFormat.d.ts.map +1 -0
- package/lib/db/flatFileStore/dcolFormat.js +286 -0
- package/lib/db/flatFileStore/dcolFormat.js.map +1 -0
- package/lib/db/flatFileStore/errors.d.ts +82 -0
- package/lib/db/flatFileStore/errors.d.ts.map +1 -0
- package/lib/db/flatFileStore/errors.js +32 -0
- package/lib/db/flatFileStore/errors.js.map +1 -0
- package/lib/db/flatFileStore/flatFileStore.d.ts +41 -0
- package/lib/db/flatFileStore/flatFileStore.d.ts.map +1 -0
- package/lib/db/flatFileStore/flatFileStore.js +251 -0
- package/lib/db/flatFileStore/flatFileStore.js.map +1 -0
- package/lib/db/flatFileStore/index.d.ts +4 -0
- package/lib/db/flatFileStore/index.d.ts.map +1 -0
- package/lib/db/flatFileStore/index.js +2 -0
- package/lib/db/flatFileStore/index.js.map +1 -0
- package/lib/db/flatFileStore/interface.d.ts +25 -0
- package/lib/db/flatFileStore/interface.d.ts.map +1 -0
- package/lib/db/flatFileStore/interface.js +2 -0
- package/lib/db/flatFileStore/interface.js.map +1 -0
- package/lib/db/flatFileStore/metrics.d.ts +24 -0
- package/lib/db/flatFileStore/metrics.d.ts.map +1 -0
- package/lib/db/flatFileStore/metrics.js +25 -0
- package/lib/db/flatFileStore/metrics.js.map +1 -0
- package/lib/db/flatFileStore/path.d.ts +9 -0
- package/lib/db/flatFileStore/path.d.ts.map +1 -0
- package/lib/db/flatFileStore/path.js +21 -0
- package/lib/db/flatFileStore/path.js.map +1 -0
- package/lib/db/flatFileStore/slotIndex.d.ts +14 -0
- package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -0
- package/lib/db/flatFileStore/slotIndex.js +46 -0
- package/lib/db/flatFileStore/slotIndex.js.map +1 -0
- package/lib/db/flatFileStore/snappy.d.ts +3 -0
- package/lib/db/flatFileStore/snappy.d.ts.map +1 -0
- package/lib/db/flatFileStore/snappy.js +12 -0
- package/lib/db/flatFileStore/snappy.js.map +1 -0
- package/lib/db/index.d.ts +1 -0
- package/lib/db/index.d.ts.map +1 -1
- package/lib/db/interface.d.ts +8 -1
- package/lib/db/interface.d.ts.map +1 -1
- package/lib/db/repositories/blockArchive.d.ts +8 -1
- package/lib/db/repositories/blockArchive.d.ts.map +1 -1
- package/lib/db/repositories/blockArchive.js +65 -28
- package/lib/db/repositories/blockArchive.js.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +1 -2
- package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.js +3 -7
- package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
- package/lib/execution/builder/apiClient.d.ts +6 -0
- package/lib/execution/builder/apiClient.d.ts.map +1 -1
- package/lib/execution/builder/apiClient.js +19 -1
- package/lib/execution/builder/apiClient.js.map +1 -1
- package/lib/execution/builder/validateBid.d.ts +1 -0
- package/lib/execution/builder/validateBid.d.ts.map +1 -1
- package/lib/execution/builder/validateBid.js +17 -6
- package/lib/execution/builder/validateBid.js.map +1 -1
- package/lib/execution/engine/mock.d.ts.map +1 -1
- package/lib/execution/engine/mock.js +4 -1
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +32 -4
- package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
- package/lib/metrics/metrics/lodestar.js +78 -8
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/monitoring/clientStats.js +1 -1
- package/lib/monitoring/clientStats.js.map +1 -1
- package/lib/network/gossip/encoding.d.ts.map +1 -1
- package/lib/network/gossip/encoding.js +0 -6
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +2 -1
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/lib/network/gossip/topic.js +4 -20
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/network.d.ts.map +1 -1
- package/lib/network/network.js +7 -6
- package/lib/network/network.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +388 -285
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.js +0 -1
- package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
- package/lib/network/processor/index.d.ts +49 -3
- package/lib/network/processor/index.d.ts.map +1 -1
- package/lib/network/processor/index.js +270 -122
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +112 -91
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +2 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/protocols.d.ts.map +1 -1
- package/lib/network/reqresp/protocols.js +6 -22
- package/lib/network/reqresp/protocols.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +2 -1
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +2 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js +14 -9
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
- package/lib/node/nodejs.d.ts +2 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +4 -2
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/range/chain.d.ts.map +1 -1
- package/lib/sync/range/chain.js +9 -2
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts.map +1 -1
- package/lib/sync/range/range.js +25 -2
- package/lib/sync/range/range.js.map +1 -1
- package/lib/util/sszBytes.d.ts +6 -0
- package/lib/util/sszBytes.d.ts.map +1 -1
- package/lib/util/sszBytes.js +1 -1
- package/lib/util/sszBytes.js.map +1 -1
- package/package.json +18 -18
- package/src/api/impl/beacon/blocks/index.ts +12 -14
- package/src/api/impl/beacon/state/utils.ts +15 -0
- package/src/api/impl/config/index.ts +4 -1
- package/src/api/impl/validator/index.ts +49 -43
- package/src/chain/archiveStore/archiveStore.ts +12 -1
- package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +1 -0
- package/src/chain/archiveStore/historicalState/metrics.ts +14 -1
- package/src/chain/archiveStore/historicalState/types.ts +2 -0
- package/src/chain/archiveStore/historicalState/worker.ts +4 -1
- package/src/chain/archiveStore/utils/archiveBlocks.ts +73 -42
- package/src/chain/blocks/importBlock.ts +25 -20
- package/src/chain/blocks/index.ts +126 -29
- package/src/chain/blocks/types.ts +9 -0
- package/src/chain/blocks/utils/chainSegment.ts +26 -12
- package/src/chain/blocks/verifyBlock.ts +5 -2
- package/src/chain/blocks/writeBlockInputToDb.ts +10 -17
- package/src/chain/chain.ts +155 -85
- package/src/chain/emitter.ts +1 -1
- package/src/chain/errors/blockError.ts +22 -10
- package/src/chain/errors/dataColumnSidecarError.ts +24 -8
- package/src/chain/errors/executionPayloadBid.ts +8 -0
- package/src/chain/errors/executionPayloadEnvelope.ts +14 -11
- package/src/chain/errors/gossipValidation.ts +1 -0
- package/src/chain/forkChoice/index.ts +2 -0
- package/src/chain/interface.ts +6 -6
- package/src/chain/lightClient/index.ts +32 -36
- package/src/chain/lightClient/proofs.ts +10 -0
- package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
- package/src/chain/prepareNextSlot.ts +42 -17
- package/src/chain/produceBlock/computeNewStateRoot.ts +3 -38
- package/src/chain/produceBlock/produceBlockBody.ts +50 -71
- package/src/chain/regen/interface.ts +1 -0
- package/src/chain/validation/block.ts +77 -79
- package/src/chain/validation/dataColumnSidecar.ts +47 -14
- package/src/chain/validation/executionPayloadBid.ts +230 -32
- package/src/chain/validation/executionPayloadEnvelope.ts +10 -37
- package/src/chain/validation/payloadAttestationMessage.ts +8 -9
- package/src/chain/validatorMonitor.ts +24 -7
- package/src/db/beacon.ts +33 -6
- package/src/db/dataColumnStore.ts +113 -0
- package/src/db/flatFileStore/atomicWrite.ts +65 -0
- package/src/db/flatFileStore/dcolFormat.ts +389 -0
- package/src/db/flatFileStore/errors.ts +53 -0
- package/src/db/flatFileStore/flatFileStore.ts +310 -0
- package/src/db/flatFileStore/index.ts +3 -0
- package/src/db/flatFileStore/interface.ts +21 -0
- package/src/db/flatFileStore/metrics.ts +48 -0
- package/src/db/flatFileStore/path.ts +32 -0
- package/src/db/flatFileStore/slotIndex.ts +56 -0
- package/src/db/flatFileStore/snappy.ts +14 -0
- package/src/db/index.ts +1 -0
- package/src/db/interface.ts +9 -1
- package/src/db/repositories/blockArchive.ts +89 -30
- package/src/db/repositories/blockArchiveIndex.ts +4 -9
- package/src/execution/builder/apiClient.ts +21 -1
- package/src/execution/builder/validateBid.ts +26 -7
- package/src/execution/engine/mock.ts +4 -1
- package/src/metrics/metrics/lodestar.ts +83 -9
- package/src/monitoring/clientStats.ts +1 -1
- package/src/network/gossip/encoding.ts +0 -6
- package/src/network/gossip/topic.ts +3 -25
- package/src/network/network.ts +9 -6
- package/src/network/processor/gossipHandlers.ts +500 -355
- package/src/network/processor/gossipQueues/indexed.ts +0 -1
- package/src/network/processor/index.ts +312 -176
- package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +139 -105
- package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -0
- package/src/network/reqresp/protocols.ts +7 -24
- package/src/network/reqresp/rateLimit.ts +2 -1
- package/src/network/reqresp/utils/dataColumnResponseValidation.ts +15 -7
- package/src/node/nodejs.ts +6 -1
- package/src/sync/range/chain.ts +9 -2
- package/src/sync/range/range.ts +24 -2
- package/src/util/sszBytes.ts +1 -1
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.
|
|
14
|
+
"version": "1.48.0-dev.02b355c4db",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -104,12 +104,12 @@
|
|
|
104
104
|
"@chainsafe/discv5": "^12.0.2",
|
|
105
105
|
"@chainsafe/enr": "^6.0.2",
|
|
106
106
|
"@chainsafe/libp2p-noise": "^17.0.0",
|
|
107
|
-
"@chainsafe/libp2p-quic": "^2.1.
|
|
107
|
+
"@chainsafe/libp2p-quic": "^2.1.4",
|
|
108
108
|
"@chainsafe/lodestar-z": "catalog:",
|
|
109
109
|
"@chainsafe/persistent-merkle-tree": "^1.3.1",
|
|
110
110
|
"@chainsafe/prometheus-gc-stats": "^1.0.0",
|
|
111
111
|
"@chainsafe/snappy-wasm": "^0.5.0",
|
|
112
|
-
"@chainsafe/ssz": "^1.
|
|
112
|
+
"@chainsafe/ssz": "^1.7.0",
|
|
113
113
|
"@chainsafe/threads": "^1.11.3",
|
|
114
114
|
"@crate-crypto/node-eth-kzg": "0.9.1",
|
|
115
115
|
"@fastify/bearer-auth": "^10.0.1",
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"@fastify/swagger-ui": "^5.0.1",
|
|
119
119
|
"@libp2p/bootstrap": "^12.0.30",
|
|
120
120
|
"@libp2p/crypto": "^5.1.23",
|
|
121
|
-
"@libp2p/gossipsub": "^
|
|
121
|
+
"@libp2p/gossipsub": "^17.1.0",
|
|
122
122
|
"@libp2p/identify": "^4.1.13",
|
|
123
123
|
"@libp2p/interface": "^3.3.0",
|
|
124
124
|
"@libp2p/mdns": "^12.0.30",
|
|
@@ -126,17 +126,17 @@
|
|
|
126
126
|
"@libp2p/peer-id": "^6.0.15",
|
|
127
127
|
"@libp2p/prometheus-metrics": "^5.0.28",
|
|
128
128
|
"@libp2p/tcp": "^11.0.27",
|
|
129
|
-
"@lodestar/api": "^1.
|
|
130
|
-
"@lodestar/config": "^1.
|
|
131
|
-
"@lodestar/db": "^1.
|
|
132
|
-
"@lodestar/fork-choice": "^1.
|
|
133
|
-
"@lodestar/logger": "^1.
|
|
134
|
-
"@lodestar/params": "^1.
|
|
135
|
-
"@lodestar/reqresp": "^1.
|
|
136
|
-
"@lodestar/state-transition": "^1.
|
|
137
|
-
"@lodestar/types": "^1.
|
|
138
|
-
"@lodestar/utils": "^1.
|
|
139
|
-
"@lodestar/validator": "^1.
|
|
129
|
+
"@lodestar/api": "^1.48.0-dev.02b355c4db",
|
|
130
|
+
"@lodestar/config": "^1.48.0-dev.02b355c4db",
|
|
131
|
+
"@lodestar/db": "^1.48.0-dev.02b355c4db",
|
|
132
|
+
"@lodestar/fork-choice": "^1.48.0-dev.02b355c4db",
|
|
133
|
+
"@lodestar/logger": "^1.48.0-dev.02b355c4db",
|
|
134
|
+
"@lodestar/params": "^1.48.0-dev.02b355c4db",
|
|
135
|
+
"@lodestar/reqresp": "^1.48.0-dev.02b355c4db",
|
|
136
|
+
"@lodestar/state-transition": "^1.48.0-dev.02b355c4db",
|
|
137
|
+
"@lodestar/types": "^1.48.0-dev.02b355c4db",
|
|
138
|
+
"@lodestar/utils": "^1.48.0-dev.02b355c4db",
|
|
139
|
+
"@lodestar/validator": "^1.48.0-dev.02b355c4db",
|
|
140
140
|
"@multiformats/multiaddr": "^13.0.1",
|
|
141
141
|
"datastore-core": "^12.0.1",
|
|
142
142
|
"datastore-level": "^13.0.1",
|
|
@@ -148,6 +148,7 @@
|
|
|
148
148
|
"multiformats": "^13.4.2",
|
|
149
149
|
"prom-client": "^15.1.0",
|
|
150
150
|
"qs": "^6.14.2",
|
|
151
|
+
"snappy": "^7.2.2",
|
|
151
152
|
"strict-event-emitter-types": "^2.0.0",
|
|
152
153
|
"systeminformation": "^5.22.9",
|
|
153
154
|
"uint8arraylist": "^2.4.7",
|
|
@@ -158,14 +159,13 @@
|
|
|
158
159
|
"@libp2p/interface-internal": "^3.1.12",
|
|
159
160
|
"@libp2p/logger": "^6.2.13",
|
|
160
161
|
"@libp2p/utils": "^7.4.0",
|
|
161
|
-
"@lodestar/spec-test-util": "^1.
|
|
162
|
+
"@lodestar/spec-test-util": "^1.48.0-dev.02b355c4db",
|
|
162
163
|
"@types/js-yaml": "^4.0.5",
|
|
163
164
|
"@types/qs": "^6.9.7",
|
|
164
165
|
"@types/tmp": "^0.2.3",
|
|
165
166
|
"dotenv": "^16.4.5",
|
|
166
167
|
"js-yaml": "^4.1.0",
|
|
167
168
|
"rimraf": "^4.4.1",
|
|
168
|
-
"snappy": "^7.2.2",
|
|
169
169
|
"snappyjs": "^0.7.0",
|
|
170
170
|
"tmp": "^0.2.1"
|
|
171
171
|
},
|
|
@@ -175,5 +175,5 @@
|
|
|
175
175
|
"beacon",
|
|
176
176
|
"blockchain"
|
|
177
177
|
],
|
|
178
|
-
"gitHead": "
|
|
178
|
+
"gitHead": "6126f34d391a1ed3c8d4cb161c2c13399fc5bf34"
|
|
179
179
|
}
|
|
@@ -234,7 +234,8 @@ export function getBeaconBlockApi({
|
|
|
234
234
|
chain.persistInvalidSszValue(
|
|
235
235
|
chain.config.getForkTypes(slot).SignedBeaconBlock,
|
|
236
236
|
signedBlock,
|
|
237
|
-
"api_reject_gossip_failure"
|
|
237
|
+
"api_reject_gossip_failure",
|
|
238
|
+
blockRoot
|
|
238
239
|
);
|
|
239
240
|
throw error;
|
|
240
241
|
}
|
|
@@ -257,7 +258,8 @@ export function getBeaconBlockApi({
|
|
|
257
258
|
chain.persistInvalidSszValue(
|
|
258
259
|
chain.config.getForkTypes(slot).SignedBeaconBlock,
|
|
259
260
|
signedBlock,
|
|
260
|
-
"api_reject_parent_unknown"
|
|
261
|
+
"api_reject_parent_unknown",
|
|
262
|
+
blockRoot
|
|
261
263
|
);
|
|
262
264
|
throw new BlockError(signedBlock, {
|
|
263
265
|
code: BlockErrorCode.PARENT_BLOCK_UNKNOWN,
|
|
@@ -277,7 +279,8 @@ export function getBeaconBlockApi({
|
|
|
277
279
|
chain.persistInvalidSszValue(
|
|
278
280
|
chain.config.getForkTypes(slot).SignedBeaconBlock,
|
|
279
281
|
signedBlock,
|
|
280
|
-
"api_reject_consensus_failure"
|
|
282
|
+
"api_reject_consensus_failure",
|
|
283
|
+
blockRoot
|
|
281
284
|
);
|
|
282
285
|
throw error;
|
|
283
286
|
}
|
|
@@ -306,7 +309,8 @@ export function getBeaconBlockApi({
|
|
|
306
309
|
chain.persistInvalidSszValue(
|
|
307
310
|
chain.config.getForkTypes(slot).SignedBeaconBlock,
|
|
308
311
|
signedBlock,
|
|
309
|
-
"api_reject_consensus_failure"
|
|
312
|
+
"api_reject_consensus_failure",
|
|
313
|
+
blockRoot
|
|
310
314
|
);
|
|
311
315
|
throw e;
|
|
312
316
|
}
|
|
@@ -1064,21 +1068,15 @@ export function getBeaconBlockApi({
|
|
|
1064
1068
|
throw new ApiError(400, `publishExecutionPayloadBid not supported for pre-gloas fork=${fork}`);
|
|
1065
1069
|
}
|
|
1066
1070
|
|
|
1071
|
+
const validationTimer = metrics?.opPool.executionPayloadBidPool.apiValidationTime.startTimer();
|
|
1072
|
+
// TODO: once the builder is tested and can be trusted, skip this local validation
|
|
1073
|
+
// to publish faster, accepting peer-score risk if it ever emits an invalid bid.
|
|
1067
1074
|
await validateApiExecutionPayloadBid(chain, signedExecutionPayloadBid);
|
|
1075
|
+
validationTimer?.();
|
|
1068
1076
|
|
|
1069
1077
|
const elapsedSec = chain.clock.secFromSlot(slot, seenTimestampSec);
|
|
1070
1078
|
metrics?.gossipExecutionPayloadBid.elapsedTimeTillReceived.observe({source: OpSource.api}, elapsedSec);
|
|
1071
1079
|
|
|
1072
|
-
try {
|
|
1073
|
-
const insertOutcome = chain.executionPayloadBidPool.add(
|
|
1074
|
-
signedExecutionPayloadBid,
|
|
1075
|
-
Math.floor(elapsedSec * 1000)
|
|
1076
|
-
);
|
|
1077
|
-
metrics?.opPool.executionPayloadBidPool.apiInsertOutcome.inc({insertOutcome});
|
|
1078
|
-
} catch (e) {
|
|
1079
|
-
chain.logger.error("Error adding to executionPayloadBid pool", {}, e as Error);
|
|
1080
|
-
}
|
|
1081
|
-
|
|
1082
1080
|
const sentPeers = await network.publishSignedExecutionPayloadBid(signedExecutionPayloadBid);
|
|
1083
1081
|
|
|
1084
1082
|
chain.emitter.emit(routes.events.EventType.executionPayloadBid, {
|
|
@@ -15,7 +15,9 @@ import {
|
|
|
15
15
|
} from "@lodestar/types";
|
|
16
16
|
import {byteArrayEquals, fromHex} from "@lodestar/utils";
|
|
17
17
|
import {IBeaconChain} from "../../../../chain/index.js";
|
|
18
|
+
import {GENESIS_EPOCH} from "../../../../constants/index.js";
|
|
18
19
|
import {IBeaconSync} from "../../../../sync/index.js";
|
|
20
|
+
import {isOptimisticBlock} from "../../../../util/forkChoice.js";
|
|
19
21
|
import {ApiError, ValidationError} from "../../errors.js";
|
|
20
22
|
import {notWhileSyncing} from "../../utils.js";
|
|
21
23
|
|
|
@@ -65,6 +67,19 @@ export async function getStateResponseWithRegen(
|
|
|
65
67
|
notWhileSyncing(chain, sync.state);
|
|
66
68
|
}
|
|
67
69
|
|
|
70
|
+
if (inStateId === "head") {
|
|
71
|
+
const head = chain.forkChoice.getHead();
|
|
72
|
+
// Head block's post-state is not cached after init from an anchor state at a skipped boundary slot,
|
|
73
|
+
// it does not exist anywhere and regen has no seed for it, serve the closest head state instead
|
|
74
|
+
const state = chain.regen.getStateSync(head.stateRoot) ?? chain.getHeadState();
|
|
75
|
+
const finalizedEpoch = chain.forkChoice.getFinalizedCheckpoint().epoch;
|
|
76
|
+
return {
|
|
77
|
+
state,
|
|
78
|
+
executionOptimistic: isOptimisticBlock(head),
|
|
79
|
+
finalized: state.epoch <= finalizedEpoch && finalizedEpoch !== GENESIS_EPOCH,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
68
83
|
const stateId = resolveStateId(chain.forkChoice, inStateId);
|
|
69
84
|
|
|
70
85
|
const res =
|
|
@@ -20,11 +20,14 @@ export function renderJsonSpec(config: ChainConfig): routes.config.Spec {
|
|
|
20
20
|
const presetJson = presetToJson(activePreset);
|
|
21
21
|
const constantsJson = specValuesToJson(specConstants);
|
|
22
22
|
|
|
23
|
-
// TODO Fulu: remove
|
|
23
|
+
// TODO Fulu/Gloas: remove these checks once interop issues are resolved
|
|
24
24
|
// see https://github.com/attestantio/go-eth2-client/issues/230
|
|
25
25
|
if (config.FULU_FORK_EPOCH === Infinity) {
|
|
26
26
|
delete configJson.BLOB_SCHEDULE;
|
|
27
27
|
}
|
|
28
|
+
if (config.GLOAS_FORK_EPOCH === Infinity) {
|
|
29
|
+
delete configJson.GAS_LIMIT_SCHEDULE;
|
|
30
|
+
}
|
|
28
31
|
|
|
29
32
|
return {...configJson, ...presetJson, ...constantsJson};
|
|
30
33
|
}
|
|
@@ -133,40 +133,37 @@ type BidCandidate = {
|
|
|
133
133
|
};
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* p2p bid, and the earlier received bid between builder api bids.
|
|
136
|
+
* Ranking value of a bid, the boosted total payment scaled by 100 as `boostFactor` is a percentage.
|
|
137
|
+
* Kept scaled so bids that differ by less than a percent are not truncated into a tie.
|
|
139
138
|
*/
|
|
140
|
-
function
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (candidateIsMaxBoost !== bestIsMaxBoost) {
|
|
152
|
-
if (candidateIsMaxBoost) {
|
|
153
|
-
best = candidate;
|
|
154
|
-
}
|
|
155
|
-
continue;
|
|
156
|
-
}
|
|
157
|
-
const candidateValue = boostedValue(candidate);
|
|
158
|
-
const bestValue = boostedValue(best);
|
|
159
|
-
if (candidateValue > bestValue) {
|
|
160
|
-
best = candidate;
|
|
161
|
-
} else if (
|
|
162
|
-
candidateValue === bestValue &&
|
|
163
|
-
// A tie prefers a builder api bid over the p2p bid, and the earlier received bid otherwise
|
|
164
|
-
(best.url === undefined || (candidate.url !== undefined && candidate.receivedMs < best.receivedMs))
|
|
165
|
-
) {
|
|
166
|
-
best = candidate;
|
|
167
|
-
}
|
|
139
|
+
function getBoostedTotalScaled({totalGwei, boostFactor}: BidCandidate): bigint {
|
|
140
|
+
return boostFactor * totalGwei;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** Order bid candidates by preference, best first, used to select a bid and to log the ranking */
|
|
144
|
+
function compareBidCandidates(a: BidCandidate, b: BidCandidate): number {
|
|
145
|
+
// Preserve max boost preference before comparing bid values
|
|
146
|
+
const aIsMaxBoost = a.boostFactor === MAX_BUILDER_BOOST_FACTOR;
|
|
147
|
+
const bIsMaxBoost = b.boostFactor === MAX_BUILDER_BOOST_FACTOR;
|
|
148
|
+
if (aIsMaxBoost !== bIsMaxBoost) {
|
|
149
|
+
return aIsMaxBoost ? -1 : 1;
|
|
168
150
|
}
|
|
169
|
-
|
|
151
|
+
|
|
152
|
+
const aBoostedTotal = getBoostedTotalScaled(a);
|
|
153
|
+
const bBoostedTotal = getBoostedTotalScaled(b);
|
|
154
|
+
if (aBoostedTotal !== bBoostedTotal) {
|
|
155
|
+
return aBoostedTotal > bBoostedTotal ? -1 : 1;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// A tie prefers a builder api bid over the p2p bid
|
|
159
|
+
const aIsBuilderApi = a.url !== undefined;
|
|
160
|
+
const bIsBuilderApi = b.url !== undefined;
|
|
161
|
+
if (aIsBuilderApi !== bIsBuilderApi) {
|
|
162
|
+
return aIsBuilderApi ? -1 : 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// and the earlier received bid between builder api bids
|
|
166
|
+
return a.receivedMs - b.receivedMs;
|
|
170
167
|
}
|
|
171
168
|
|
|
172
169
|
type ProduceBlockContentsRes = {executionPayloadValue: Wei; consensusBlockValue: Wei} & {
|
|
@@ -1007,6 +1004,7 @@ export function getValidatorApi(
|
|
|
1007
1004
|
// builder directly.
|
|
1008
1005
|
const bestBidPromise: Promise<BidCandidate | null> = (async () => {
|
|
1009
1006
|
const [builderApiBids, p2pBid] = await Promise.all([builderApiBidsPromise, p2pBidPromise]);
|
|
1007
|
+
let parentExecutionRequestsPromise: Promise<gloas.ExecutionRequests> | null = null;
|
|
1010
1008
|
|
|
1011
1009
|
const candidates = (
|
|
1012
1010
|
await Promise.all(
|
|
@@ -1018,6 +1016,10 @@ export function getValidatorApi(
|
|
|
1018
1016
|
parentBlockHash: bidParentBlockHash,
|
|
1019
1017
|
parentBlockRoot: parentBlockRootHex,
|
|
1020
1018
|
entry,
|
|
1019
|
+
getParentExecutionRequests: () => {
|
|
1020
|
+
parentExecutionRequestsPromise ??= chain.getParentExecutionRequests(parentSlot, parentBlockRootHex);
|
|
1021
|
+
return parentExecutionRequestsPromise;
|
|
1022
|
+
},
|
|
1021
1023
|
});
|
|
1022
1024
|
return {
|
|
1023
1025
|
signedBid,
|
|
@@ -1044,20 +1046,24 @@ export function getValidatorApi(
|
|
|
1044
1046
|
});
|
|
1045
1047
|
}
|
|
1046
1048
|
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1049
|
+
if (candidates.length === 0) {
|
|
1050
|
+
return null;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
const rankedCandidates = candidates.toSorted(compareBidCandidates);
|
|
1054
|
+
for (const [index, candidate] of rankedCandidates.entries()) {
|
|
1055
|
+
logger.debug("Builder bid candidate", {
|
|
1050
1056
|
slot,
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1057
|
+
rank: index + 1,
|
|
1058
|
+
source: candidate.url !== undefined ? toPrintableUrl(candidate.url) : "p2p",
|
|
1059
|
+
builder: candidate.signedBid.message.builderIndex,
|
|
1060
|
+
total: prettyGweiToEth(candidate.totalGwei),
|
|
1061
|
+
boost: candidate.boostFactor,
|
|
1062
|
+
boosted: prettyGweiToEth(getBoostedTotalScaled(candidate) / 100n),
|
|
1063
|
+
receivedMs: candidate.receivedMs,
|
|
1058
1064
|
});
|
|
1059
1065
|
}
|
|
1060
|
-
return
|
|
1066
|
+
return rankedCandidates[0];
|
|
1061
1067
|
})();
|
|
1062
1068
|
|
|
1063
1069
|
const commonBlockBodyPromise = chain.produceCommonBlockBody({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {CheckpointWithHex} from "@lodestar/fork-choice";
|
|
2
2
|
import {LoggerNode} from "@lodestar/logger/node";
|
|
3
|
+
import {SLOTS_PER_EPOCH} from "@lodestar/params";
|
|
3
4
|
import {Checkpoint} from "@lodestar/types/phase0";
|
|
4
5
|
import {callFnWhenAwait} from "@lodestar/utils";
|
|
5
6
|
import {IBeaconDb} from "../../db/index.js";
|
|
@@ -24,7 +25,11 @@ type ArchiveStoreModules = {
|
|
|
24
25
|
metrics: Metrics | null;
|
|
25
26
|
};
|
|
26
27
|
|
|
27
|
-
type ArchiveStoreInitOpts = ArchiveStoreOpts & {
|
|
28
|
+
type ArchiveStoreInitOpts = ArchiveStoreOpts & {
|
|
29
|
+
dbName: string;
|
|
30
|
+
dataColumnDir: string;
|
|
31
|
+
anchorState: {finalizedCheckpoint: Checkpoint};
|
|
32
|
+
};
|
|
28
33
|
|
|
29
34
|
export enum ArchiveStoreTask {
|
|
30
35
|
ArchiveBlocks = "archive_blocks",
|
|
@@ -120,6 +125,7 @@ export class ArchiveStore {
|
|
|
120
125
|
opts: {
|
|
121
126
|
genesisTime: this.chain.clock.genesisTime,
|
|
122
127
|
dbLocation: this.opts.dbName,
|
|
128
|
+
dataColumnDir: this.opts.dataColumnDir,
|
|
123
129
|
nativeStateView: this.opts.nativeStateView ?? false,
|
|
124
130
|
},
|
|
125
131
|
config: this.chain.config,
|
|
@@ -208,6 +214,9 @@ export class ArchiveStore {
|
|
|
208
214
|
const finalizedEpoch = finalized.epoch;
|
|
209
215
|
this.logger.verbose("Start processing finalized checkpoint", {epoch: finalizedEpoch, rootHex: finalized.rootHex});
|
|
210
216
|
|
|
217
|
+
// we want to track late imported canonical blocks, but it's not nice to do it at syncig time
|
|
218
|
+
const isNodeSynced = this.chain.clock.currentSlot - this.chain.forkChoice.getHead().slot <= SLOTS_PER_EPOCH;
|
|
219
|
+
|
|
211
220
|
let timer = this.metrics?.processFinalizedCheckpoint.durationByTask.startTimer();
|
|
212
221
|
await archiveBlocks(
|
|
213
222
|
this.chain.config,
|
|
@@ -217,6 +226,8 @@ export class ArchiveStore {
|
|
|
217
226
|
this.logger,
|
|
218
227
|
finalized,
|
|
219
228
|
this.chain.clock.currentEpoch,
|
|
229
|
+
this.metrics,
|
|
230
|
+
isNodeSynced,
|
|
220
231
|
this.archiveDataEpochs,
|
|
221
232
|
this.chain.opts.persistOrphanedBlocks,
|
|
222
233
|
this.chain.opts.persistOrphanedBlocksDir
|
|
@@ -33,6 +33,7 @@ export class HistoricalStateRegen implements HistoricalStateWorkerApi {
|
|
|
33
33
|
maxConcurrency: 1,
|
|
34
34
|
maxLength: 50,
|
|
35
35
|
dbLocation: modules.opts.dbLocation,
|
|
36
|
+
dataColumnDir: modules.opts.dataColumnDir,
|
|
36
37
|
metricsEnabled: Boolean(modules.metrics),
|
|
37
38
|
loggerOpts: modules.logger.toOpts(),
|
|
38
39
|
nativeStateView: modules.opts.nativeStateView,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {ForkName} from "@lodestar/params";
|
|
2
2
|
import {
|
|
3
3
|
BeaconStateTransitionMetrics,
|
|
4
|
+
BlockProcessStep,
|
|
4
5
|
EpochTransitionStep,
|
|
6
|
+
ProcessOperationsStep,
|
|
5
7
|
ProposerRewardType,
|
|
6
8
|
StateCloneSource,
|
|
7
9
|
StateHashTreeRootSource,
|
|
@@ -70,10 +72,21 @@ export function createHistoricalStateTransitionMetrics(
|
|
|
70
72
|
processBlockTime: metricsRegister.histogram({
|
|
71
73
|
name: "lodestar_historical_state_stfn_process_block_seconds",
|
|
72
74
|
help: "Time to process a single block in seconds",
|
|
73
|
-
// TODO: Add metrics for each step
|
|
74
75
|
// Block processing can take 5-40ms, 100ms max
|
|
75
76
|
buckets: [0.005, 0.01, 0.02, 0.05, 0.1, 1],
|
|
76
77
|
}),
|
|
78
|
+
processBlockStepTime: metricsRegister.histogram<{step: BlockProcessStep}>({
|
|
79
|
+
name: "lodestar_historical_state_stfn_process_block_step_seconds",
|
|
80
|
+
help: "Time to call each step of process block in seconds",
|
|
81
|
+
labelNames: ["step"],
|
|
82
|
+
buckets: [0.001, 0.005, 0.01, 0.025, 0.05, 0.1],
|
|
83
|
+
}),
|
|
84
|
+
processOperationsStepTime: metricsRegister.histogram<{step: ProcessOperationsStep}>({
|
|
85
|
+
name: "lodestar_historical_state_stfn_process_operations_step_seconds",
|
|
86
|
+
help: "Time to call each step of process operations in seconds",
|
|
87
|
+
labelNames: ["step"],
|
|
88
|
+
buckets: [0.001, 0.005, 0.01, 0.025, 0.05, 0.1],
|
|
89
|
+
}),
|
|
77
90
|
processBlockCommitTime: metricsRegister.histogram({
|
|
78
91
|
name: "lodestar_historical_state_stfn_process_block_commit_seconds",
|
|
79
92
|
help: "Time to call commit after process a single block in seconds",
|
|
@@ -7,6 +7,7 @@ export type HistoricalStateRegenInitModules = {
|
|
|
7
7
|
opts: {
|
|
8
8
|
genesisTime: number;
|
|
9
9
|
dbLocation: string;
|
|
10
|
+
dataColumnDir: string;
|
|
10
11
|
nativeStateView: boolean;
|
|
11
12
|
};
|
|
12
13
|
config: BeaconConfig;
|
|
@@ -25,6 +26,7 @@ export type HistoricalStateWorkerData = {
|
|
|
25
26
|
maxConcurrency: number;
|
|
26
27
|
maxLength: number;
|
|
27
28
|
dbLocation: string;
|
|
29
|
+
dataColumnDir: string;
|
|
28
30
|
metricsEnabled: boolean;
|
|
29
31
|
loggerOpts: LoggerNodeOpts;
|
|
30
32
|
nativeStateView: boolean;
|
|
@@ -25,7 +25,10 @@ logger.info("Historical state worker started");
|
|
|
25
25
|
|
|
26
26
|
const config = createBeaconConfig(chainConfigFromJson(workerData.chainConfigJson), workerData.genesisValidatorsRoot);
|
|
27
27
|
|
|
28
|
-
const db = new BeaconDb(config, await LevelDbController.create({name: workerData.dbLocation}, {logger})
|
|
28
|
+
const db = new BeaconDb(config, await LevelDbController.create({name: workerData.dbLocation}, {logger}), {
|
|
29
|
+
dataColumnDir: workerData.dataColumnDir,
|
|
30
|
+
logger,
|
|
31
|
+
});
|
|
29
32
|
|
|
30
33
|
const abortController = new AbortController();
|
|
31
34
|
|