@aztec/p2p 3.0.0-rc.5 → 4.0.0-nightly.20260107
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/dest/client/factory.d.ts +2 -2
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +2 -3
- package/dest/client/p2p_client.d.ts +2 -2
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +395 -21
- package/dest/config.d.ts +4 -7
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +6 -9
- package/dest/mem_pools/instrumentation.d.ts +7 -1
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +29 -2
- package/dest/mem_pools/interface.d.ts +3 -4
- package/dest/mem_pools/interface.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +28 -24
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +261 -323
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +18 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +56 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +83 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +5 -0
- package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts +15 -0
- package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.js +88 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +76 -0
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
- package/dest/mem_pools/tx_pool/index.d.ts +1 -2
- package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/index.js +0 -1
- package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/priority.js +6 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +8 -4
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +25 -20
- package/dest/services/libp2p/libp2p_service.d.ts +4 -4
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +447 -64
- package/dest/services/peer-manager/metrics.d.ts +6 -1
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +17 -0
- package/dest/services/peer-manager/peer_manager.d.ts +1 -1
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +385 -9
- package/dest/services/reqresp/protocols/tx.d.ts +2 -3
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +402 -24
- package/dest/services/tx_provider.d.ts +2 -1
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +11 -2
- package/dest/services/tx_provider_instrumentation.d.ts +5 -2
- package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
- package/dest/services/tx_provider_instrumentation.js +14 -1
- package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +1 -0
- package/package.json +14 -14
- package/src/client/factory.ts +5 -10
- package/src/client/p2p_client.ts +12 -17
- package/src/config.ts +8 -14
- package/src/mem_pools/instrumentation.ts +33 -0
- package/src/mem_pools/interface.ts +2 -4
- package/src/mem_pools/tx_pool/README.md +255 -0
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +308 -368
- package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +71 -0
- package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +93 -0
- package/src/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.ts +108 -0
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +91 -0
- package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
- package/src/mem_pools/tx_pool/index.ts +0 -1
- package/src/mem_pools/tx_pool/priority.ts +8 -1
- package/src/mem_pools/tx_pool/tx_pool.ts +8 -3
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +18 -13
- package/src/services/libp2p/libp2p_service.ts +12 -17
- package/src/services/peer-manager/metrics.ts +22 -0
- package/src/services/peer-manager/peer_manager.ts +2 -0
- package/src/services/reqresp/protocols/tx.ts +1 -2
- package/src/services/tx_provider.ts +17 -2
- package/src/services/tx_provider_instrumentation.ts +19 -2
- package/src/test-helpers/mock-pubsub.ts +1 -1
- package/src/test-helpers/reqresp-nodes.ts +1 -1
- package/src/testbench/p2p_client_testbench_worker.ts +2 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -81
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -239
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -285
|
@@ -1,10 +1,377 @@
|
|
|
1
1
|
// @attribution: lodestar impl for inspiration
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
function applyDecs2203RFactory() {
|
|
3
|
+
function createAddInitializerMethod(initializers, decoratorFinishedRef) {
|
|
4
|
+
return function addInitializer(initializer) {
|
|
5
|
+
assertNotFinished(decoratorFinishedRef, "addInitializer");
|
|
6
|
+
assertCallable(initializer, "An initializer");
|
|
7
|
+
initializers.push(initializer);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
|
|
11
|
+
var kindStr;
|
|
12
|
+
switch(kind){
|
|
13
|
+
case 1:
|
|
14
|
+
kindStr = "accessor";
|
|
15
|
+
break;
|
|
16
|
+
case 2:
|
|
17
|
+
kindStr = "method";
|
|
18
|
+
break;
|
|
19
|
+
case 3:
|
|
20
|
+
kindStr = "getter";
|
|
21
|
+
break;
|
|
22
|
+
case 4:
|
|
23
|
+
kindStr = "setter";
|
|
24
|
+
break;
|
|
25
|
+
default:
|
|
26
|
+
kindStr = "field";
|
|
27
|
+
}
|
|
28
|
+
var ctx = {
|
|
29
|
+
kind: kindStr,
|
|
30
|
+
name: isPrivate ? "#" + name : name,
|
|
31
|
+
static: isStatic,
|
|
32
|
+
private: isPrivate,
|
|
33
|
+
metadata: metadata
|
|
34
|
+
};
|
|
35
|
+
var decoratorFinishedRef = {
|
|
36
|
+
v: false
|
|
37
|
+
};
|
|
38
|
+
ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
|
|
39
|
+
var get, set;
|
|
40
|
+
if (kind === 0) {
|
|
41
|
+
if (isPrivate) {
|
|
42
|
+
get = desc.get;
|
|
43
|
+
set = desc.set;
|
|
44
|
+
} else {
|
|
45
|
+
get = function() {
|
|
46
|
+
return this[name];
|
|
47
|
+
};
|
|
48
|
+
set = function(v) {
|
|
49
|
+
this[name] = v;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
} else if (kind === 2) {
|
|
53
|
+
get = function() {
|
|
54
|
+
return desc.value;
|
|
55
|
+
};
|
|
56
|
+
} else {
|
|
57
|
+
if (kind === 1 || kind === 3) {
|
|
58
|
+
get = function() {
|
|
59
|
+
return desc.get.call(this);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (kind === 1 || kind === 4) {
|
|
63
|
+
set = function(v) {
|
|
64
|
+
desc.set.call(this, v);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
ctx.access = get && set ? {
|
|
69
|
+
get: get,
|
|
70
|
+
set: set
|
|
71
|
+
} : get ? {
|
|
72
|
+
get: get
|
|
73
|
+
} : {
|
|
74
|
+
set: set
|
|
75
|
+
};
|
|
76
|
+
try {
|
|
77
|
+
return dec(value, ctx);
|
|
78
|
+
} finally{
|
|
79
|
+
decoratorFinishedRef.v = true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function assertNotFinished(decoratorFinishedRef, fnName) {
|
|
83
|
+
if (decoratorFinishedRef.v) {
|
|
84
|
+
throw new Error("attempted to call " + fnName + " after decoration was finished");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function assertCallable(fn, hint) {
|
|
88
|
+
if (typeof fn !== "function") {
|
|
89
|
+
throw new TypeError(hint + " must be a function");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function assertValidReturnValue(kind, value) {
|
|
93
|
+
var type = typeof value;
|
|
94
|
+
if (kind === 1) {
|
|
95
|
+
if (type !== "object" || value === null) {
|
|
96
|
+
throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
|
|
97
|
+
}
|
|
98
|
+
if (value.get !== undefined) {
|
|
99
|
+
assertCallable(value.get, "accessor.get");
|
|
100
|
+
}
|
|
101
|
+
if (value.set !== undefined) {
|
|
102
|
+
assertCallable(value.set, "accessor.set");
|
|
103
|
+
}
|
|
104
|
+
if (value.init !== undefined) {
|
|
105
|
+
assertCallable(value.init, "accessor.init");
|
|
106
|
+
}
|
|
107
|
+
} else if (type !== "function") {
|
|
108
|
+
var hint;
|
|
109
|
+
if (kind === 0) {
|
|
110
|
+
hint = "field";
|
|
111
|
+
} else if (kind === 10) {
|
|
112
|
+
hint = "class";
|
|
113
|
+
} else {
|
|
114
|
+
hint = "method";
|
|
115
|
+
}
|
|
116
|
+
throw new TypeError(hint + " decorators must return a function or void 0");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
|
|
120
|
+
var decs = decInfo[0];
|
|
121
|
+
var desc, init, value;
|
|
122
|
+
if (isPrivate) {
|
|
123
|
+
if (kind === 0 || kind === 1) {
|
|
124
|
+
desc = {
|
|
125
|
+
get: decInfo[3],
|
|
126
|
+
set: decInfo[4]
|
|
127
|
+
};
|
|
128
|
+
} else if (kind === 3) {
|
|
129
|
+
desc = {
|
|
130
|
+
get: decInfo[3]
|
|
131
|
+
};
|
|
132
|
+
} else if (kind === 4) {
|
|
133
|
+
desc = {
|
|
134
|
+
set: decInfo[3]
|
|
135
|
+
};
|
|
136
|
+
} else {
|
|
137
|
+
desc = {
|
|
138
|
+
value: decInfo[3]
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
} else if (kind !== 0) {
|
|
142
|
+
desc = Object.getOwnPropertyDescriptor(base, name);
|
|
143
|
+
}
|
|
144
|
+
if (kind === 1) {
|
|
145
|
+
value = {
|
|
146
|
+
get: desc.get,
|
|
147
|
+
set: desc.set
|
|
148
|
+
};
|
|
149
|
+
} else if (kind === 2) {
|
|
150
|
+
value = desc.value;
|
|
151
|
+
} else if (kind === 3) {
|
|
152
|
+
value = desc.get;
|
|
153
|
+
} else if (kind === 4) {
|
|
154
|
+
value = desc.set;
|
|
155
|
+
}
|
|
156
|
+
var newValue, get, set;
|
|
157
|
+
if (typeof decs === "function") {
|
|
158
|
+
newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
|
|
159
|
+
if (newValue !== void 0) {
|
|
160
|
+
assertValidReturnValue(kind, newValue);
|
|
161
|
+
if (kind === 0) {
|
|
162
|
+
init = newValue;
|
|
163
|
+
} else if (kind === 1) {
|
|
164
|
+
init = newValue.init;
|
|
165
|
+
get = newValue.get || value.get;
|
|
166
|
+
set = newValue.set || value.set;
|
|
167
|
+
value = {
|
|
168
|
+
get: get,
|
|
169
|
+
set: set
|
|
170
|
+
};
|
|
171
|
+
} else {
|
|
172
|
+
value = newValue;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
} else {
|
|
176
|
+
for(var i = decs.length - 1; i >= 0; i--){
|
|
177
|
+
var dec = decs[i];
|
|
178
|
+
newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
|
|
179
|
+
if (newValue !== void 0) {
|
|
180
|
+
assertValidReturnValue(kind, newValue);
|
|
181
|
+
var newInit;
|
|
182
|
+
if (kind === 0) {
|
|
183
|
+
newInit = newValue;
|
|
184
|
+
} else if (kind === 1) {
|
|
185
|
+
newInit = newValue.init;
|
|
186
|
+
get = newValue.get || value.get;
|
|
187
|
+
set = newValue.set || value.set;
|
|
188
|
+
value = {
|
|
189
|
+
get: get,
|
|
190
|
+
set: set
|
|
191
|
+
};
|
|
192
|
+
} else {
|
|
193
|
+
value = newValue;
|
|
194
|
+
}
|
|
195
|
+
if (newInit !== void 0) {
|
|
196
|
+
if (init === void 0) {
|
|
197
|
+
init = newInit;
|
|
198
|
+
} else if (typeof init === "function") {
|
|
199
|
+
init = [
|
|
200
|
+
init,
|
|
201
|
+
newInit
|
|
202
|
+
];
|
|
203
|
+
} else {
|
|
204
|
+
init.push(newInit);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (kind === 0 || kind === 1) {
|
|
211
|
+
if (init === void 0) {
|
|
212
|
+
init = function(instance, init) {
|
|
213
|
+
return init;
|
|
214
|
+
};
|
|
215
|
+
} else if (typeof init !== "function") {
|
|
216
|
+
var ownInitializers = init;
|
|
217
|
+
init = function(instance, init) {
|
|
218
|
+
var value = init;
|
|
219
|
+
for(var i = 0; i < ownInitializers.length; i++){
|
|
220
|
+
value = ownInitializers[i].call(instance, value);
|
|
221
|
+
}
|
|
222
|
+
return value;
|
|
223
|
+
};
|
|
224
|
+
} else {
|
|
225
|
+
var originalInitializer = init;
|
|
226
|
+
init = function(instance, init) {
|
|
227
|
+
return originalInitializer.call(instance, init);
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
ret.push(init);
|
|
231
|
+
}
|
|
232
|
+
if (kind !== 0) {
|
|
233
|
+
if (kind === 1) {
|
|
234
|
+
desc.get = value.get;
|
|
235
|
+
desc.set = value.set;
|
|
236
|
+
} else if (kind === 2) {
|
|
237
|
+
desc.value = value;
|
|
238
|
+
} else if (kind === 3) {
|
|
239
|
+
desc.get = value;
|
|
240
|
+
} else if (kind === 4) {
|
|
241
|
+
desc.set = value;
|
|
242
|
+
}
|
|
243
|
+
if (isPrivate) {
|
|
244
|
+
if (kind === 1) {
|
|
245
|
+
ret.push(function(instance, args) {
|
|
246
|
+
return value.get.call(instance, args);
|
|
247
|
+
});
|
|
248
|
+
ret.push(function(instance, args) {
|
|
249
|
+
return value.set.call(instance, args);
|
|
250
|
+
});
|
|
251
|
+
} else if (kind === 2) {
|
|
252
|
+
ret.push(value);
|
|
253
|
+
} else {
|
|
254
|
+
ret.push(function(instance, args) {
|
|
255
|
+
return value.call(instance, args);
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
} else {
|
|
259
|
+
Object.defineProperty(base, name, desc);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function applyMemberDecs(Class, decInfos, metadata) {
|
|
264
|
+
var ret = [];
|
|
265
|
+
var protoInitializers;
|
|
266
|
+
var staticInitializers;
|
|
267
|
+
var existingProtoNonFields = new Map();
|
|
268
|
+
var existingStaticNonFields = new Map();
|
|
269
|
+
for(var i = 0; i < decInfos.length; i++){
|
|
270
|
+
var decInfo = decInfos[i];
|
|
271
|
+
if (!Array.isArray(decInfo)) continue;
|
|
272
|
+
var kind = decInfo[1];
|
|
273
|
+
var name = decInfo[2];
|
|
274
|
+
var isPrivate = decInfo.length > 3;
|
|
275
|
+
var isStatic = kind >= 5;
|
|
276
|
+
var base;
|
|
277
|
+
var initializers;
|
|
278
|
+
if (isStatic) {
|
|
279
|
+
base = Class;
|
|
280
|
+
kind = kind - 5;
|
|
281
|
+
staticInitializers = staticInitializers || [];
|
|
282
|
+
initializers = staticInitializers;
|
|
283
|
+
} else {
|
|
284
|
+
base = Class.prototype;
|
|
285
|
+
protoInitializers = protoInitializers || [];
|
|
286
|
+
initializers = protoInitializers;
|
|
287
|
+
}
|
|
288
|
+
if (kind !== 0 && !isPrivate) {
|
|
289
|
+
var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
|
|
290
|
+
var existingKind = existingNonFields.get(name) || 0;
|
|
291
|
+
if (existingKind === true || existingKind === 3 && kind !== 4 || existingKind === 4 && kind !== 3) {
|
|
292
|
+
throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
|
|
293
|
+
} else if (!existingKind && kind > 2) {
|
|
294
|
+
existingNonFields.set(name, kind);
|
|
295
|
+
} else {
|
|
296
|
+
existingNonFields.set(name, true);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
|
|
300
|
+
}
|
|
301
|
+
pushInitializers(ret, protoInitializers);
|
|
302
|
+
pushInitializers(ret, staticInitializers);
|
|
303
|
+
return ret;
|
|
304
|
+
}
|
|
305
|
+
function pushInitializers(ret, initializers) {
|
|
306
|
+
if (initializers) {
|
|
307
|
+
ret.push(function(instance) {
|
|
308
|
+
for(var i = 0; i < initializers.length; i++){
|
|
309
|
+
initializers[i].call(instance);
|
|
310
|
+
}
|
|
311
|
+
return instance;
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
function applyClassDecs(targetClass, classDecs, metadata) {
|
|
316
|
+
if (classDecs.length > 0) {
|
|
317
|
+
var initializers = [];
|
|
318
|
+
var newClass = targetClass;
|
|
319
|
+
var name = targetClass.name;
|
|
320
|
+
for(var i = classDecs.length - 1; i >= 0; i--){
|
|
321
|
+
var decoratorFinishedRef = {
|
|
322
|
+
v: false
|
|
323
|
+
};
|
|
324
|
+
try {
|
|
325
|
+
var nextNewClass = classDecs[i](newClass, {
|
|
326
|
+
kind: "class",
|
|
327
|
+
name: name,
|
|
328
|
+
addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef),
|
|
329
|
+
metadata
|
|
330
|
+
});
|
|
331
|
+
} finally{
|
|
332
|
+
decoratorFinishedRef.v = true;
|
|
333
|
+
}
|
|
334
|
+
if (nextNewClass !== undefined) {
|
|
335
|
+
assertValidReturnValue(10, nextNewClass);
|
|
336
|
+
newClass = nextNewClass;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return [
|
|
340
|
+
defineMetadata(newClass, metadata),
|
|
341
|
+
function() {
|
|
342
|
+
for(var i = 0; i < initializers.length; i++){
|
|
343
|
+
initializers[i].call(newClass);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
];
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
function defineMetadata(Class, metadata) {
|
|
350
|
+
return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), {
|
|
351
|
+
configurable: true,
|
|
352
|
+
enumerable: true,
|
|
353
|
+
value: metadata
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
return function applyDecs2203R(targetClass, memberDecs, classDecs, parentClass) {
|
|
357
|
+
if (parentClass !== void 0) {
|
|
358
|
+
var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
|
|
359
|
+
}
|
|
360
|
+
var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
|
|
361
|
+
var e = applyMemberDecs(targetClass, memberDecs, metadata);
|
|
362
|
+
if (!classDecs.length) defineMetadata(targetClass, metadata);
|
|
363
|
+
return {
|
|
364
|
+
e: e,
|
|
365
|
+
get c () {
|
|
366
|
+
return applyClassDecs(targetClass, classDecs, metadata);
|
|
367
|
+
}
|
|
368
|
+
};
|
|
369
|
+
};
|
|
7
370
|
}
|
|
371
|
+
function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
372
|
+
return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
|
|
373
|
+
}
|
|
374
|
+
var _dec, _dec1, _dec2, _initProto;
|
|
8
375
|
import { compactArray } from '@aztec/foundation/collection';
|
|
9
376
|
import { AbortError, TimeoutError } from '@aztec/foundation/error';
|
|
10
377
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -21,6 +388,16 @@ import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, responseFromBuffer
|
|
|
21
388
|
import { ReqRespMetrics } from './metrics.js';
|
|
22
389
|
import { RateLimitStatus, RequestResponseRateLimiter, prettyPrintRateLimitStatus } from './rate-limiter/rate_limiter.js';
|
|
23
390
|
import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqRespStatus } from './status.js';
|
|
391
|
+
_dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
|
|
392
|
+
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol,
|
|
393
|
+
[Attributes.P2P_REQ_RESP_BATCH_REQUESTS_COUNT]: requests.length
|
|
394
|
+
})), _dec1 = trackSpan('ReqResp.sendRequestToPeer', (peerId, subProtocol, _)=>({
|
|
395
|
+
[Attributes.P2P_ID]: peerId.toString(),
|
|
396
|
+
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol
|
|
397
|
+
})), _dec2 = trackSpan('ReqResp.streamHandler', (protocol, { connection })=>({
|
|
398
|
+
[Attributes.P2P_REQ_RESP_PROTOCOL]: protocol,
|
|
399
|
+
[Attributes.P2P_ID]: connection.remotePeer.toString()
|
|
400
|
+
}));
|
|
24
401
|
/**
|
|
25
402
|
* The Request Response Service
|
|
26
403
|
*
|
|
@@ -38,6 +415,25 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
38
415
|
libp2p;
|
|
39
416
|
peerScoring;
|
|
40
417
|
logger;
|
|
418
|
+
static{
|
|
419
|
+
({ e: [_initProto] } = _apply_decs_2203_r(this, [
|
|
420
|
+
[
|
|
421
|
+
_dec,
|
|
422
|
+
2,
|
|
423
|
+
"sendBatchRequest"
|
|
424
|
+
],
|
|
425
|
+
[
|
|
426
|
+
_dec1,
|
|
427
|
+
2,
|
|
428
|
+
"sendRequestToPeer"
|
|
429
|
+
],
|
|
430
|
+
[
|
|
431
|
+
_dec2,
|
|
432
|
+
2,
|
|
433
|
+
"streamHandler"
|
|
434
|
+
]
|
|
435
|
+
], []));
|
|
436
|
+
}
|
|
41
437
|
individualRequestTimeoutMs;
|
|
42
438
|
dialTimeoutMs;
|
|
43
439
|
subProtocolHandlers;
|
|
@@ -50,7 +446,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
50
446
|
this.libp2p = libp2p;
|
|
51
447
|
this.peerScoring = peerScoring;
|
|
52
448
|
this.logger = logger;
|
|
53
|
-
this.individualRequestTimeoutMs = DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS;
|
|
449
|
+
this.individualRequestTimeoutMs = (_initProto(this), DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS);
|
|
54
450
|
this.dialTimeoutMs = DEFAULT_REQRESP_DIAL_TIMEOUT_MS;
|
|
55
451
|
this.subProtocolHandlers = {};
|
|
56
452
|
this.subProtocolValidators = {};
|
|
@@ -587,21 +983,3 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
587
983
|
return PeerErrorSeverity.HighToleranceError;
|
|
588
984
|
}
|
|
589
985
|
}
|
|
590
|
-
_ts_decorate([
|
|
591
|
-
trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
|
|
592
|
-
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol,
|
|
593
|
-
[Attributes.P2P_REQ_RESP_BATCH_REQUESTS_COUNT]: requests.length
|
|
594
|
-
}))
|
|
595
|
-
], ReqResp.prototype, "sendBatchRequest", null);
|
|
596
|
-
_ts_decorate([
|
|
597
|
-
trackSpan('ReqResp.sendRequestToPeer', (peerId, subProtocol, _)=>({
|
|
598
|
-
[Attributes.P2P_ID]: peerId.toString(),
|
|
599
|
-
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol
|
|
600
|
-
}))
|
|
601
|
-
], ReqResp.prototype, "sendRequestToPeer", null);
|
|
602
|
-
_ts_decorate([
|
|
603
|
-
trackSpan('ReqResp.streamHandler', (protocol, { connection })=>({
|
|
604
|
-
[Attributes.P2P_REQ_RESP_PROTOCOL]: protocol,
|
|
605
|
-
[Attributes.P2P_ID]: connection.remotePeer.toString()
|
|
606
|
-
}))
|
|
607
|
-
], ReqResp.prototype, "streamHandler", null);
|
|
@@ -44,7 +44,8 @@ export declare class TxProvider implements ITxProvider {
|
|
|
44
44
|
private getOrderedTxsFromAllSources;
|
|
45
45
|
private orderTxs;
|
|
46
46
|
private getTxsFromAllSources;
|
|
47
|
+
private collectFromP2P;
|
|
47
48
|
private extractFromProposal;
|
|
48
49
|
private processProposalTxs;
|
|
49
50
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcHJvdmlkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy90eF9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFlLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUE4QixZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU3RTs7O0dBR0c7QUFDSCxxQkFBYSxVQUFXLFlBQVcsV0FBVztJQUkxQyxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxHQUFHO0lBTmIsU0FBUyxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztJQUVyRCxZQUNVLFlBQVksRUFBRSxZQUFZLEVBQzFCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQ3hDLEdBQUcsR0FBRSxNQUF5QyxFQUN0RCxNQUFNLEdBQUUsZUFBc0MsRUFHL0M7SUFFRCxzREFBc0Q7SUFDekMsZUFBZSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBa0I3RjtJQUVELGtGQUFrRjtJQUMzRSxzQkFBc0IsQ0FDM0IsYUFBYSxFQUFFLGFBQWEsRUFDNUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsSUFBSSxFQUFFO1FBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFBO0tBQUUsR0FDdkQsT0FBTyxDQUFDO1FBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFBO0tBQUUsQ0FBQyxDQU85QztJQUVELG1FQUFtRTtJQUM1RCxjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7UUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUM7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBTy9HO1lBRWEsMkJBQTJCO0lBZ0N6QyxPQUFPLENBQUMsUUFBUTtZQUtGLG9CQUFvQjtZQXlGcEIsY0FBYztJQVk1QixPQUFPLENBQUMsbUJBQW1CO1lBT2Isa0JBQWtCO0NBT2pDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAErD,YACU,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACxC,GAAG,GAAE,MAAyC,EACtD,MAAM,GAAE,eAAsC,EAG/C;IAED,sDAAsD;IACzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB7F;IAED,kFAAkF;IAC3E,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO9C;IAED,mEAAmE;IAC5D,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO/G;YAEa,2BAA2B;IAgCzC,OAAO,CAAC,QAAQ;YAKF,oBAAoB;
|
|
1
|
+
{"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAErD,YACU,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACxC,GAAG,GAAE,MAAyC,EACtD,MAAM,GAAE,eAAsC,EAG/C;IAED,sDAAsD;IACzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB7F;IAED,kFAAkF;IAC3E,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO9C;IAED,mEAAmE;IAC5D,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO/G;YAEa,2BAA2B;IAgCzC,OAAO,CAAC,QAAQ;YAKF,oBAAoB;YAyFpB,cAAc;IAY5B,OAAO,CAAC,mBAAmB;YAOb,kBAAkB;CAOjC"}
|
|
@@ -115,6 +115,7 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
115
115
|
]
|
|
116
116
|
});
|
|
117
117
|
if (missingTxHashes.size === 0) {
|
|
118
|
+
this.instrumentation.incTxsFromP2P(0, txHashes.length);
|
|
118
119
|
return {
|
|
119
120
|
txsFromMempool
|
|
120
121
|
};
|
|
@@ -137,6 +138,7 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
137
138
|
}
|
|
138
139
|
if (missingTxHashes.size === 0) {
|
|
139
140
|
await this.processProposalTxs(txsFromProposal);
|
|
141
|
+
this.instrumentation.incTxsFromP2P(0, txHashes.length);
|
|
140
142
|
return {
|
|
141
143
|
txsFromMempool,
|
|
142
144
|
txsFromProposal
|
|
@@ -144,14 +146,13 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
144
146
|
}
|
|
145
147
|
// Start tx collection from the network if needed, while we validate the txs taken from the proposal in parallel
|
|
146
148
|
const [txsFromNetwork] = await Promise.all([
|
|
147
|
-
this.
|
|
149
|
+
this.collectFromP2P(request, [
|
|
148
150
|
...missingTxHashes
|
|
149
151
|
], opts),
|
|
150
152
|
this.processProposalTxs(txsFromProposal)
|
|
151
153
|
]);
|
|
152
154
|
if (txsFromNetwork.length > 0) {
|
|
153
155
|
txsFromNetwork.forEach((tx)=>missingTxHashes.delete(tx.txHash.toString()));
|
|
154
|
-
this.instrumentation.incTxsFromP2P(txsFromNetwork.length);
|
|
155
156
|
this.log.debug(`Retrieved ${txsFromNetwork.length} txs from network for block proposal (${missingTxHashes.size} pending)`, {
|
|
156
157
|
...blockInfo,
|
|
157
158
|
missingTxHashes: [
|
|
@@ -159,6 +160,7 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
159
160
|
]
|
|
160
161
|
});
|
|
161
162
|
}
|
|
163
|
+
this.instrumentation.incTxsFromP2P(txsFromNetwork.length, txHashes.length);
|
|
162
164
|
if (missingTxHashes.size === 0) {
|
|
163
165
|
return {
|
|
164
166
|
txsFromNetwork,
|
|
@@ -194,6 +196,13 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
194
196
|
]
|
|
195
197
|
};
|
|
196
198
|
}
|
|
199
|
+
async collectFromP2P(input, txHashes, opts) {
|
|
200
|
+
const requestedAt = Date.now();
|
|
201
|
+
const result = await this.txCollection.collectFastFor(input, txHashes, opts);
|
|
202
|
+
const requestProcessedAt = Date.now();
|
|
203
|
+
this.instrumentation.recordTxsRequestDelay(requestProcessedAt - requestedAt);
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
197
206
|
extractFromProposal(proposal, missingTxHashes) {
|
|
198
207
|
if (!proposal) {
|
|
199
208
|
return [];
|
|
@@ -4,10 +4,13 @@ export declare class TxProviderInstrumentation {
|
|
|
4
4
|
private txFromMempoolCount;
|
|
5
5
|
private txFromP2PCount;
|
|
6
6
|
private missingTxsCount;
|
|
7
|
+
private fractionOfTxsRequestedFromP2P;
|
|
8
|
+
private txsRequestDelay;
|
|
7
9
|
constructor(client: TelemetryClient, name: string);
|
|
8
10
|
incTxsFromProposals(count: number): void;
|
|
9
11
|
incTxsFromMempool(count: number): void;
|
|
10
|
-
incTxsFromP2P(count: number): void;
|
|
12
|
+
incTxsFromP2P(count: number, total: number): void;
|
|
13
|
+
recordTxsRequestDelay(delay: number): void;
|
|
11
14
|
incMissingTxs(count: number): void;
|
|
12
15
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcHJvdmlkZXJfaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvdHhfcHJvdmlkZXJfaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFFNUcscUJBQWEseUJBQXlCO0lBQ3BDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBZ0I7SUFDM0MsT0FBTyxDQUFDLGtCQUFrQixDQUFnQjtJQUMxQyxPQUFPLENBQUMsY0FBYyxDQUFnQjtJQUN0QyxPQUFPLENBQUMsZUFBZSxDQUFnQjtJQUV2QyxPQUFPLENBQUMsNkJBQTZCLENBQVk7SUFDakQsT0FBTyxDQUFDLGVBQWUsQ0FBWTtJQUVuQyxZQUFZLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUEyQmhEO0lBRUQsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFaEM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxRQUU5QjtJQUVELGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLFFBR3pDO0lBRUQscUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFbEM7SUFFRCxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFMUI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_provider_instrumentation.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tx_provider_instrumentation.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAE5G,qBAAa,yBAAyB;IACpC,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO,CAAC,6BAA6B,CAAY;IACjD,OAAO,CAAC,eAAe,CAAY;IAEnC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EA2BhD;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,QAEhC;IAED,iBAAiB,CAAC,KAAK,EAAE,MAAM,QAE9B;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAGzC;IAED,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAElC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,QAE1B;CACF"}
|
|
@@ -4,6 +4,8 @@ export class TxProviderInstrumentation {
|
|
|
4
4
|
txFromMempoolCount;
|
|
5
5
|
txFromP2PCount;
|
|
6
6
|
missingTxsCount;
|
|
7
|
+
fractionOfTxsRequestedFromP2P;
|
|
8
|
+
txsRequestDelay;
|
|
7
9
|
constructor(client, name){
|
|
8
10
|
const meter = client.getMeter(name);
|
|
9
11
|
this.txFromProposalCount = meter.createUpDownCounter(Metrics.TX_PROVIDER_TXS_FROM_PROPOSALS_COUNT, {
|
|
@@ -18,6 +20,13 @@ export class TxProviderInstrumentation {
|
|
|
18
20
|
this.missingTxsCount = meter.createUpDownCounter(Metrics.TX_PROVIDER_MISSING_TXS_COUNT, {
|
|
19
21
|
description: 'The number of txs not found anywhere'
|
|
20
22
|
});
|
|
23
|
+
this.fractionOfTxsRequestedFromP2P = meter.createHistogram(Metrics.TX_PROVIDER_P2P_TXS_REQUESTED_FRACTION, {
|
|
24
|
+
description: 'The fraction of transaction requested from peers'
|
|
25
|
+
});
|
|
26
|
+
this.txsRequestDelay = meter.createHistogram(Metrics.TX_PROVIDER_P2P_TXS_REQUEST_DELAY, {
|
|
27
|
+
unit: 'ms',
|
|
28
|
+
description: 'The time it took to request missing transactions from p2p'
|
|
29
|
+
});
|
|
21
30
|
}
|
|
22
31
|
incTxsFromProposals(count) {
|
|
23
32
|
this.txFromProposalCount.add(count);
|
|
@@ -25,8 +34,12 @@ export class TxProviderInstrumentation {
|
|
|
25
34
|
incTxsFromMempool(count) {
|
|
26
35
|
this.txFromMempoolCount.add(count);
|
|
27
36
|
}
|
|
28
|
-
incTxsFromP2P(count) {
|
|
37
|
+
incTxsFromP2P(count, total) {
|
|
29
38
|
this.txFromP2PCount.add(count);
|
|
39
|
+
this.fractionOfTxsRequestedFromP2P.record(count / total);
|
|
40
|
+
}
|
|
41
|
+
recordTxsRequestDelay(delay) {
|
|
42
|
+
this.txsRequestDelay.record(delay);
|
|
30
43
|
}
|
|
31
44
|
incMissingTxs(count) {
|
|
32
45
|
this.missingTxsCount.add(count);
|
|
@@ -29,7 +29,7 @@ export declare function createLibp2pNode(boostrapAddrs?: string[], peerId?: Peer
|
|
|
29
29
|
*
|
|
30
30
|
*
|
|
31
31
|
*/
|
|
32
|
-
export declare function createTestLibP2PService<T extends P2PClientType>(clientType: T, boostrapAddrs: string[] | undefined, archiver: L2BlockSource & ContractDataSource, worldStateSynchronizer: WorldStateSynchronizer, epochCache: EpochCache, mempools: MemPools
|
|
32
|
+
export declare function createTestLibP2PService<T extends P2PClientType>(clientType: T, boostrapAddrs: string[] | undefined, archiver: L2BlockSource & ContractDataSource, worldStateSynchronizer: WorldStateSynchronizer, epochCache: EpochCache, mempools: MemPools, telemetry: TelemetryClient, port?: number, peerId?: PeerId, chainConfig?: ChainConfig): Promise<LibP2PService<T>>;
|
|
33
33
|
/**
|
|
34
34
|
* A p2p / req resp node pairing the req node will always contain the p2p node.
|
|
35
35
|
* they are provided as a pair to allow access the p2p node directly
|
|
@@ -67,4 +67,4 @@ export declare function createBootstrapNodeFromPrivateKey(privateKey: string, po
|
|
|
67
67
|
*/
|
|
68
68
|
export declare function getBootstrapNodeEnr(privateKey: string, port: number): Promise<SignableENR>;
|
|
69
69
|
export declare function createBootstrapNode(port: number, telemetry?: TelemetryClient, chainConfig?: ChainConfig): Promise<BootstrapNode>;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTXJELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBT25GLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSww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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAOnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,KAAK,MAAM,EAAoC,MAAM,QAAQ,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAEvE,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAElC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,KAAK,UAAU,EAA2E,MAAM,YAAY,CAAC;AAGtH;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,GAAE,MAAM,EAAO,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,eAAe,GAAE,OAAe,EAChC,KAAK,GAAE,OAAc,GACpB,OAAO,CAAC,UAAU,CAAC,CAqCrB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,aAAa,EACnE,UAAU,EAAE,CAAC,EACb,aAAa,sBAAe,EAC5B,QAAQ,EAAE,aAAa,GAAG,kBAAkB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ function mockTxPool() {
|
|
|
38
38
|
hasTx: ()=>Promise.resolve(false),
|
|
39
39
|
updateConfig: ()=>{},
|
|
40
40
|
markTxsAsNonEvictable: ()=>Promise.resolve(),
|
|
41
|
+
clearNonEvictableTxs: ()=>Promise.resolve(),
|
|
41
42
|
cleanupDeletedMinedTxs: ()=>Promise.resolve(0)
|
|
42
43
|
};
|
|
43
44
|
return Object.assign(new EventEmitter(), pool);
|