@lodestar/beacon-node 1.22.0 → 1.23.0-dev.0d1fd9c839
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/pool/index.js +13 -22
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.d.ts +1 -1
- package/lib/api/impl/beacon/state/index.js +42 -3
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +2 -1
- package/lib/api/impl/beacon/state/utils.js +1 -1
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/config/constants.d.ts +0 -1
- package/lib/api/impl/config/constants.js +1 -2
- package/lib/api/impl/config/constants.js.map +1 -1
- package/lib/api/impl/errors.d.ts +8 -0
- package/lib/api/impl/errors.js +7 -0
- package/lib/api/impl/errors.js.map +1 -1
- package/lib/api/impl/validator/index.js +9 -4
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/rest/base.d.ts +1 -0
- package/lib/api/rest/base.js +31 -4
- package/lib/api/rest/base.js.map +1 -1
- package/lib/api/rest/index.js +1 -0
- package/lib/api/rest/index.js.map +1 -1
- package/lib/chain/archiver/archiveBlocks.js +4 -5
- package/lib/chain/archiver/archiveBlocks.js.map +1 -1
- package/lib/chain/archiver/archiveStates.d.ts +3 -2
- package/lib/chain/archiver/archiveStates.js +8 -4
- package/lib/chain/archiver/archiveStates.js.map +1 -1
- package/lib/chain/archiver/index.d.ts +3 -1
- package/lib/chain/archiver/index.js +3 -2
- package/lib/chain/archiver/index.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +3 -10
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +2 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
- package/lib/chain/chain.d.ts +2 -41
- package/lib/chain/chain.js +26 -17
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/forkChoice/index.js +1 -2
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/historicalState/getHistoricalState.d.ts +2 -1
- package/lib/chain/historicalState/getHistoricalState.js.map +1 -1
- package/lib/chain/historicalState/worker.js +1 -1
- package/lib/chain/historicalState/worker.js.map +1 -1
- package/lib/chain/initState.d.ts +1 -5
- package/lib/chain/initState.js +2 -30
- package/lib/chain/initState.js.map +1 -1
- package/lib/chain/interface.d.ts +2 -1
- package/lib/chain/lightClient/proofs.d.ts +2 -2
- package/lib/chain/lightClient/proofs.js +3 -2
- package/lib/chain/lightClient/proofs.js.map +1 -1
- package/lib/chain/opPools/opPool.js +3 -4
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/options.js +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +7 -1
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/regen.js +3 -4
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/rewards/attestationsRewards.js +2 -1
- package/lib/chain/rewards/attestationsRewards.js.map +1 -1
- package/lib/chain/serializeState.js +63 -10
- package/lib/chain/serializeState.js.map +1 -1
- package/lib/chain/shufflingCache.d.ts +37 -13
- package/lib/chain/shufflingCache.js +85 -76
- package/lib/chain/shufflingCache.js.map +1 -1
- package/lib/chain/stateCache/datastore/file.js +5 -5
- package/lib/chain/stateCache/datastore/file.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts +7 -2
- package/lib/chain/stateCache/fifoBlockStateCache.js +7 -2
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +4 -3
- package/lib/chain/stateCache/persistentCheckpointsCache.js +33 -37
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/db/repositories/lightclientCheckpointHeader.d.ts +1 -0
- package/lib/db/repositories/lightclientCheckpointHeader.js +3 -0
- package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
- package/lib/eth1/index.js +2 -2
- package/lib/eth1/index.js.map +1 -1
- package/lib/eth1/provider/eth1Provider.js +2 -3
- package/lib/eth1/provider/eth1Provider.js.map +1 -1
- package/lib/eth1/provider/utils.js +4 -5
- package/lib/eth1/provider/utils.js.map +1 -1
- package/lib/eth1/utils/depositContract.js +5 -5
- package/lib/eth1/utils/depositContract.js.map +1 -1
- package/lib/eth1/utils/eth1Vote.js +0 -1
- package/lib/eth1/utils/eth1Vote.js.map +1 -1
- package/lib/execution/engine/http.d.ts +3 -2
- package/lib/execution/engine/http.js +27 -10
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +5 -4
- package/lib/execution/engine/interface.js.map +1 -1
- package/lib/execution/engine/mock.js +0 -2
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/payloadIdCache.d.ts +0 -17
- package/lib/execution/engine/payloadIdCache.js.map +1 -1
- package/lib/execution/engine/types.d.ts +29 -25
- package/lib/execution/engine/types.js +29 -43
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/metrics/metrics/beacon.js +1 -1
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +13 -4
- package/lib/metrics/metrics/lodestar.js +43 -19
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/networkCore.js +2 -3
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +0 -27
- package/lib/network/peers/utils/assertPeerRelevance.js +2 -3
- package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +11 -11
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/index.js +1 -5
- package/lib/network/processor/gossipQueues/index.js.map +1 -1
- package/lib/network/processor/gossipQueues/types.d.ts +1 -2
- package/lib/network/processor/gossipQueues/types.js +0 -6
- package/lib/network/processor/gossipQueues/types.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +2 -2
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/network/reqresp/types.d.ts +5 -5
- package/lib/network/reqresp/types.js +1 -1
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/node/utils/interop/state.js +1 -0
- package/lib/node/utils/interop/state.js.map +1 -1
- package/lib/node/utils/state.d.ts +3 -0
- package/lib/node/utils/state.js +3 -0
- package/lib/node/utils/state.js.map +1 -1
- package/lib/sync/backfill/backfill.js +1 -2
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/unknownBlock.js +3 -4
- package/lib/sync/unknownBlock.js.map +1 -1
- package/package.json +20 -19
- package/lib/network/processor/gossipQueues/indexedAvgTime.d.ts +0 -31
- package/lib/network/processor/gossipQueues/indexedAvgTime.js +0 -115
- package/lib/network/processor/gossipQueues/indexedAvgTime.js.map +0 -1
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
function listScore(list) {
|
|
2
|
-
return list.items.length / Math.max(1000, Date.now() - list.avgRecvTimestampMs);
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* An implementation of GossipQueue that tries to run the batch with highest score first.
|
|
6
|
-
* TODO: add unit tests
|
|
7
|
-
* - index items by indexFn using a map
|
|
8
|
-
* - compute avgRecvTimestampMs for each key every time we add new item
|
|
9
|
-
* - on next, pick the key with the highest score (check the score function above)
|
|
10
|
-
*/
|
|
11
|
-
export class IndexedGossipQueueAvgTime {
|
|
12
|
-
constructor(opts) {
|
|
13
|
-
this.opts = opts;
|
|
14
|
-
this._length = 0;
|
|
15
|
-
this.indexedItems = new Map();
|
|
16
|
-
}
|
|
17
|
-
get length() {
|
|
18
|
-
return this._length;
|
|
19
|
-
}
|
|
20
|
-
get keySize() {
|
|
21
|
-
return this.indexedItems.size;
|
|
22
|
-
}
|
|
23
|
-
clear() {
|
|
24
|
-
this.indexedItems = new Map();
|
|
25
|
-
this._length = 0;
|
|
26
|
-
}
|
|
27
|
-
// not implemented for this gossip queue
|
|
28
|
-
getDataAgeMs() {
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Add item to gossip queue. If queue is full, drop first item of first key.
|
|
33
|
-
* Return number of items dropped
|
|
34
|
-
*/
|
|
35
|
-
add(item) {
|
|
36
|
-
const key = this.opts.indexFn(item);
|
|
37
|
-
if (key == null) {
|
|
38
|
-
// this comes from getAttDataBase64FromAttestationSerialized() return type
|
|
39
|
-
// should not happen
|
|
40
|
-
return 0;
|
|
41
|
-
}
|
|
42
|
-
item.indexed = key;
|
|
43
|
-
let list = this.indexedItems.get(key);
|
|
44
|
-
if (list == null) {
|
|
45
|
-
list = {
|
|
46
|
-
items: [],
|
|
47
|
-
avgRecvTimestampMs: Date.now(),
|
|
48
|
-
};
|
|
49
|
-
this.indexedItems.set(key, list);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
list.avgRecvTimestampMs = (list.avgRecvTimestampMs * list.items.length + Date.now()) / (list.items.length + 1);
|
|
53
|
-
list.items.push(item);
|
|
54
|
-
}
|
|
55
|
-
this._length++;
|
|
56
|
-
if (this._length <= this.opts.maxLength) {
|
|
57
|
-
return 0;
|
|
58
|
-
}
|
|
59
|
-
// overload, need to drop more items
|
|
60
|
-
const firstKey = this.indexedItems.keys().next().value;
|
|
61
|
-
// there should be at least 1 key
|
|
62
|
-
if (firstKey == null) {
|
|
63
|
-
return 0;
|
|
64
|
-
}
|
|
65
|
-
const firstList = this.indexedItems.get(firstKey);
|
|
66
|
-
// should not happen
|
|
67
|
-
if (firstList == null) {
|
|
68
|
-
return 0;
|
|
69
|
-
}
|
|
70
|
-
const deletedItem = firstList.items.shift();
|
|
71
|
-
if (deletedItem != null) {
|
|
72
|
-
this._length--;
|
|
73
|
-
if (firstList.items.length === 0) {
|
|
74
|
-
this.indexedItems.delete(firstKey);
|
|
75
|
-
}
|
|
76
|
-
return 1;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
return 0;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Try to get list of items of the same key with highest score
|
|
84
|
-
*/
|
|
85
|
-
next() {
|
|
86
|
-
let maxScore = 0;
|
|
87
|
-
let maxScoreKey;
|
|
88
|
-
for (const [key, list] of this.indexedItems) {
|
|
89
|
-
const score = listScore(list);
|
|
90
|
-
if (score > maxScore) {
|
|
91
|
-
maxScore = score;
|
|
92
|
-
maxScoreKey = key;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (maxScoreKey == null) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
const items = this.indexedItems.get(maxScoreKey)?.items;
|
|
99
|
-
if (items == null) {
|
|
100
|
-
// should not happen
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
this.indexedItems.delete(maxScoreKey);
|
|
104
|
-
this._length = Math.max(0, this._length - items.length);
|
|
105
|
-
return items;
|
|
106
|
-
}
|
|
107
|
-
getAll() {
|
|
108
|
-
const items = [];
|
|
109
|
-
for (const list of this.indexedItems.values()) {
|
|
110
|
-
items.push(...list.items);
|
|
111
|
-
}
|
|
112
|
-
return items;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=indexedAvgTime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexedAvgTime.js","sourceRoot":"","sources":["../../../../src/network/processor/gossipQueues/indexedAvgTime.ts"],"names":[],"mappings":"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"}
|