@lodestar/beacon-node 1.23.0-dev.0dceb831ca → 1.23.0-dev.1fa3f37ab7

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 (93) hide show
  1. package/lib/api/impl/beacon/pool/index.js +13 -22
  2. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  3. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  4. package/lib/api/impl/beacon/state/index.js +37 -2
  5. package/lib/api/impl/beacon/state/index.js.map +1 -1
  6. package/lib/api/impl/beacon/state/utils.d.ts +2 -1
  7. package/lib/api/impl/beacon/state/utils.js +1 -1
  8. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  9. package/lib/api/impl/config/constants.d.ts +0 -1
  10. package/lib/api/impl/config/constants.js +1 -2
  11. package/lib/api/impl/config/constants.js.map +1 -1
  12. package/lib/api/impl/debug/index.js +30 -0
  13. package/lib/api/impl/debug/index.js.map +1 -1
  14. package/lib/api/impl/errors.d.ts +8 -0
  15. package/lib/api/impl/errors.js +7 -0
  16. package/lib/api/impl/errors.js.map +1 -1
  17. package/lib/api/impl/validator/index.js +1 -1
  18. package/lib/api/impl/validator/index.js.map +1 -1
  19. package/lib/api/rest/base.d.ts +1 -0
  20. package/lib/api/rest/base.js +31 -4
  21. package/lib/api/rest/base.js.map +1 -1
  22. package/lib/api/rest/index.js +1 -0
  23. package/lib/api/rest/index.js.map +1 -1
  24. package/lib/chain/archiver/archiveStates.d.ts +3 -2
  25. package/lib/chain/archiver/archiveStates.js +8 -4
  26. package/lib/chain/archiver/archiveStates.js.map +1 -1
  27. package/lib/chain/archiver/index.d.ts +3 -1
  28. package/lib/chain/archiver/index.js +3 -2
  29. package/lib/chain/archiver/index.js.map +1 -1
  30. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +2 -1
  31. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  32. package/lib/chain/chain.d.ts +2 -41
  33. package/lib/chain/chain.js +3 -2
  34. package/lib/chain/chain.js.map +1 -1
  35. package/lib/chain/historicalState/getHistoricalState.d.ts +2 -1
  36. package/lib/chain/historicalState/getHistoricalState.js.map +1 -1
  37. package/lib/chain/historicalState/worker.js +1 -1
  38. package/lib/chain/historicalState/worker.js.map +1 -1
  39. package/lib/chain/interface.d.ts +2 -1
  40. package/lib/chain/options.js +1 -1
  41. package/lib/chain/options.js.map +1 -1
  42. package/lib/chain/produceBlock/produceBlockBody.js +7 -1
  43. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  44. package/lib/chain/regen/regen.js +1 -1
  45. package/lib/chain/regen/regen.js.map +1 -1
  46. package/lib/chain/rewards/attestationsRewards.js +2 -1
  47. package/lib/chain/rewards/attestationsRewards.js.map +1 -1
  48. package/lib/chain/serializeState.js +63 -10
  49. package/lib/chain/serializeState.js.map +1 -1
  50. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +7 -2
  51. package/lib/chain/stateCache/fifoBlockStateCache.js +7 -2
  52. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  53. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +4 -3
  54. package/lib/chain/stateCache/persistentCheckpointsCache.js +25 -20
  55. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  56. package/lib/chain/validation/attestation.d.ts +3 -17
  57. package/lib/chain/validation/attestation.js +7 -26
  58. package/lib/chain/validation/attestation.js.map +1 -1
  59. package/lib/execution/engine/http.d.ts +3 -2
  60. package/lib/execution/engine/http.js +27 -10
  61. package/lib/execution/engine/http.js.map +1 -1
  62. package/lib/execution/engine/interface.d.ts +5 -4
  63. package/lib/execution/engine/interface.js.map +1 -1
  64. package/lib/execution/engine/mock.js +0 -2
  65. package/lib/execution/engine/mock.js.map +1 -1
  66. package/lib/execution/engine/payloadIdCache.d.ts +0 -17
  67. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  68. package/lib/execution/engine/types.d.ts +29 -25
  69. package/lib/execution/engine/types.js +28 -42
  70. package/lib/execution/engine/types.js.map +1 -1
  71. package/lib/metrics/metrics/lodestar.d.ts +3 -1
  72. package/lib/metrics/metrics/lodestar.js +6 -5
  73. package/lib/metrics/metrics/lodestar.js.map +1 -1
  74. package/lib/network/gossip/interface.d.ts +8 -6
  75. package/lib/network/gossip/interface.js.map +1 -1
  76. package/lib/network/gossip/topic.d.ts +0 -27
  77. package/lib/network/options.js +0 -2
  78. package/lib/network/options.js.map +1 -1
  79. package/lib/network/processor/gossipHandlers.d.ts +0 -2
  80. package/lib/network/processor/gossipHandlers.js +15 -61
  81. package/lib/network/processor/gossipHandlers.js.map +1 -1
  82. package/lib/network/processor/gossipQueues/index.d.ts +1 -1
  83. package/lib/network/processor/gossipQueues/index.js +6 -19
  84. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  85. package/lib/network/processor/gossipQueues/types.d.ts +1 -2
  86. package/lib/network/processor/gossipQueues/types.js +0 -6
  87. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  88. package/lib/network/processor/index.js +1 -1
  89. package/lib/network/processor/index.js.map +1 -1
  90. package/package.json +20 -19
  91. package/lib/network/processor/gossipQueues/indexedAvgTime.d.ts +0 -31
  92. package/lib/network/processor/gossipQueues/indexedAvgTime.js +0 -115
  93. package/lib/network/processor/gossipQueues/indexedAvgTime.js.map +0 -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.23.0-dev.0dceb831ca",
14
+ "version": "1.23.0-dev.1fa3f37ab7",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -103,13 +103,14 @@
103
103
  "@chainsafe/libp2p-noise": "^15.0.0",
104
104
  "@chainsafe/persistent-merkle-tree": "^0.8.0",
105
105
  "@chainsafe/prometheus-gc-stats": "^1.0.0",
106
+ "@chainsafe/pubkey-index-map": "2.0.0",
106
107
  "@chainsafe/ssz": "^0.17.1",
107
108
  "@chainsafe/threads": "^1.11.1",
108
109
  "@ethersproject/abi": "^5.7.0",
109
- "@fastify/bearer-auth": "^9.0.0",
110
- "@fastify/cors": "^8.2.1",
111
- "@fastify/swagger": "^8.10.0",
112
- "@fastify/swagger-ui": "^1.9.3",
110
+ "@fastify/bearer-auth": "^10.0.1",
111
+ "@fastify/cors": "^10.0.1",
112
+ "@fastify/swagger": "^9.0.0",
113
+ "@fastify/swagger-ui": "^5.0.1",
113
114
  "@libp2p/bootstrap": "^10.0.21",
114
115
  "@libp2p/identify": "^1.0.20",
115
116
  "@libp2p/interface": "^1.3.0",
@@ -119,24 +120,24 @@
119
120
  "@libp2p/peer-id-factory": "^4.1.0",
120
121
  "@libp2p/prometheus-metrics": "^3.0.21",
121
122
  "@libp2p/tcp": "9.0.23",
122
- "@lodestar/api": "1.23.0-dev.0dceb831ca",
123
- "@lodestar/config": "1.23.0-dev.0dceb831ca",
124
- "@lodestar/db": "1.23.0-dev.0dceb831ca",
125
- "@lodestar/fork-choice": "1.23.0-dev.0dceb831ca",
126
- "@lodestar/light-client": "1.23.0-dev.0dceb831ca",
127
- "@lodestar/logger": "1.23.0-dev.0dceb831ca",
128
- "@lodestar/params": "1.23.0-dev.0dceb831ca",
129
- "@lodestar/reqresp": "1.23.0-dev.0dceb831ca",
130
- "@lodestar/state-transition": "1.23.0-dev.0dceb831ca",
131
- "@lodestar/types": "1.23.0-dev.0dceb831ca",
132
- "@lodestar/utils": "1.23.0-dev.0dceb831ca",
133
- "@lodestar/validator": "1.23.0-dev.0dceb831ca",
123
+ "@lodestar/api": "1.23.0-dev.1fa3f37ab7",
124
+ "@lodestar/config": "1.23.0-dev.1fa3f37ab7",
125
+ "@lodestar/db": "1.23.0-dev.1fa3f37ab7",
126
+ "@lodestar/fork-choice": "1.23.0-dev.1fa3f37ab7",
127
+ "@lodestar/light-client": "1.23.0-dev.1fa3f37ab7",
128
+ "@lodestar/logger": "1.23.0-dev.1fa3f37ab7",
129
+ "@lodestar/params": "1.23.0-dev.1fa3f37ab7",
130
+ "@lodestar/reqresp": "1.23.0-dev.1fa3f37ab7",
131
+ "@lodestar/state-transition": "1.23.0-dev.1fa3f37ab7",
132
+ "@lodestar/types": "1.23.0-dev.1fa3f37ab7",
133
+ "@lodestar/utils": "1.23.0-dev.1fa3f37ab7",
134
+ "@lodestar/validator": "1.23.0-dev.1fa3f37ab7",
134
135
  "@multiformats/multiaddr": "^12.1.3",
135
136
  "c-kzg": "^2.1.2",
136
137
  "datastore-core": "^9.1.1",
137
138
  "datastore-level": "^10.1.1",
138
139
  "deepmerge": "^4.3.1",
139
- "fastify": "^4.27.0",
140
+ "fastify": "^5.0.0",
140
141
  "interface-datastore": "^8.2.7",
141
142
  "it-all": "^3.0.4",
142
143
  "it-pipe": "^3.0.1",
@@ -167,5 +168,5 @@
167
168
  "beacon",
168
169
  "blockchain"
169
170
  ],
170
- "gitHead": "27a77fd230c016028503e6ef86eae66f507348fa"
171
+ "gitHead": "29609489b5b7907a3bac2205f883f30e0a3a6980"
171
172
  }
@@ -1,31 +0,0 @@
1
- import { GossipQueue, IndexedGossipQueueOpts } from "./types.js";
2
- /**
3
- * An implementation of GossipQueue that tries to run the batch with highest score first.
4
- * TODO: add unit tests
5
- * - index items by indexFn using a map
6
- * - compute avgRecvTimestampMs for each key every time we add new item
7
- * - on next, pick the key with the highest score (check the score function above)
8
- */
9
- export declare class IndexedGossipQueueAvgTime<T extends {
10
- indexed?: string;
11
- }> implements GossipQueue<T> {
12
- private readonly opts;
13
- private _length;
14
- private indexedItems;
15
- constructor(opts: IndexedGossipQueueOpts<T>);
16
- get length(): number;
17
- get keySize(): number;
18
- clear(): void;
19
- getDataAgeMs(): number[];
20
- /**
21
- * Add item to gossip queue. If queue is full, drop first item of first key.
22
- * Return number of items dropped
23
- */
24
- add(item: T): number;
25
- /**
26
- * Try to get list of items of the same key with highest score
27
- */
28
- next(): T[] | null;
29
- getAll(): T[];
30
- }
31
- //# sourceMappingURL=indexedAvgTime.d.ts.map
@@ -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":"AAOA,SAAS,SAAS,CAAI,IAAiB;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,yBAAyB;IAIpC,YAA6B,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;QAHpD,YAAO,GAAG,CAAC,CAAC;QACZ,iBAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;IAEI,CAAC;IAEhE,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,wCAAwC;IACxC,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAAO;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,0EAA0E;YAC1E,oBAAoB;YACpB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,GAAG;gBACL,KAAK,EAAE,EAAE;gBACT,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE;aAC/B,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/G,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC;QACjE,iCAAiC;QACjC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,oBAAoB;QACpB,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAA+B,CAAC;QACpC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,QAAQ,GAAG,KAAK,CAAC;gBACjB,WAAW,GAAG,GAAG,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;QACxD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,oBAAoB;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}