@aztec/p2p 0.57.0 → 0.59.0
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/index.d.ts +4 -4
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +11 -9
- package/dest/client/p2p_client.d.ts +9 -10
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +375 -350
- package/dest/config.js +3 -3
- package/dest/index.d.ts +3 -3
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +4 -4
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -0
- package/dest/{attestation_pool → mem_pools/attestation_pool}/attestation_pool.js +1 -1
- package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -0
- package/dest/{attestation_pool → mem_pools/attestation_pool}/index.js +1 -1
- package/dest/{attestation_pool → mem_pools/attestation_pool}/memory_attestation_pool.d.ts +4 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +114 -0
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/mocks.js +31 -0
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.js +2 -0
- package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts.map +1 -0
- package/dest/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/index.js +1 -1
- package/dest/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/memory_epoch_proof_quote_pool.d.ts +3 -1
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.js +30 -0
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts.map +1 -0
- package/dest/mem_pools/epoch_proof_quote_pool/test_utils.js +21 -0
- package/dest/mem_pools/index.d.ts +5 -0
- package/dest/mem_pools/index.d.ts.map +1 -0
- package/dest/mem_pools/index.js +2 -0
- package/dest/mem_pools/instrumentation.d.ts +25 -0
- package/dest/mem_pools/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/instrumentation.js +70 -0
- package/dest/mem_pools/interface.d.ts +12 -0
- package/dest/mem_pools/interface.d.ts.map +1 -0
- package/dest/mem_pools/interface.js +2 -0
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -0
- package/dest/{tx_pool → mem_pools/tx_pool}/aztec_kv_tx_pool.js +9 -9
- package/dest/mem_pools/tx_pool/index.d.ts.map +1 -0
- package/dest/{tx_pool → mem_pools/tx_pool}/index.js +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +111 -0
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -0
- package/dest/{tx_pool → mem_pools/tx_pool}/tx_pool.js +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +55 -0
- package/dest/service/libp2p_service.d.ts +12 -7
- package/dest/service/libp2p_service.d.ts.map +1 -1
- package/dest/service/libp2p_service.js +453 -381
- package/package.json +6 -6
- package/src/client/index.ts +16 -20
- package/src/client/p2p_client.ts +33 -10
- package/src/config.ts +2 -2
- package/src/index.ts +3 -3
- package/src/{attestation_pool → mem_pools/attestation_pool}/memory_attestation_pool.ts +40 -8
- package/src/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/memory_epoch_proof_quote_pool.ts +17 -1
- package/src/mem_pools/index.ts +4 -0
- package/src/mem_pools/instrumentation.ts +85 -0
- package/src/mem_pools/interface.ts +12 -0
- package/src/{tx_pool → mem_pools/tx_pool}/aztec_kv_tx_pool.ts +9 -9
- package/src/{tx_pool → mem_pools/tx_pool}/memory_tx_pool.ts +9 -9
- package/src/service/libp2p_service.ts +76 -18
- package/dest/attestation_pool/attestation_pool.d.ts.map +0 -1
- package/dest/attestation_pool/index.d.ts.map +0 -1
- package/dest/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
- package/dest/attestation_pool/memory_attestation_pool.js +0 -89
- package/dest/attestation_pool/mocks.d.ts.map +0 -1
- package/dest/attestation_pool/mocks.js +0 -31
- package/dest/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts.map +0 -1
- package/dest/epoch_proof_quote_pool/epoch_proof_quote_pool.js +0 -2
- package/dest/epoch_proof_quote_pool/index.d.ts.map +0 -1
- package/dest/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts.map +0 -1
- package/dest/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.js +0 -22
- package/dest/epoch_proof_quote_pool/test_utils.d.ts.map +0 -1
- package/dest/epoch_proof_quote_pool/test_utils.js +0 -21
- package/dest/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
- package/dest/tx_pool/index.d.ts.map +0 -1
- package/dest/tx_pool/instrumentation.d.ts +0 -25
- package/dest/tx_pool/instrumentation.d.ts.map +0 -1
- package/dest/tx_pool/instrumentation.js +0 -61
- package/dest/tx_pool/memory_tx_pool.d.ts.map +0 -1
- package/dest/tx_pool/memory_tx_pool.js +0 -111
- package/dest/tx_pool/tx_pool.d.ts.map +0 -1
- package/dest/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
- package/dest/tx_pool/tx_pool_test_suite.js +0 -55
- package/src/tx_pool/instrumentation.ts +0 -73
- /package/dest/{attestation_pool → mem_pools/attestation_pool}/attestation_pool.d.ts +0 -0
- /package/dest/{attestation_pool → mem_pools/attestation_pool}/index.d.ts +0 -0
- /package/dest/{attestation_pool → mem_pools/attestation_pool}/mocks.d.ts +0 -0
- /package/dest/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/epoch_proof_quote_pool.d.ts +0 -0
- /package/dest/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/index.d.ts +0 -0
- /package/dest/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/test_utils.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/aztec_kv_tx_pool.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/index.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/memory_tx_pool.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/tx_pool.d.ts +0 -0
- /package/dest/{tx_pool → mem_pools/tx_pool}/tx_pool_test_suite.d.ts +0 -0
- /package/src/{attestation_pool → mem_pools/attestation_pool}/attestation_pool.ts +0 -0
- /package/src/{attestation_pool → mem_pools/attestation_pool}/index.ts +0 -0
- /package/src/{attestation_pool → mem_pools/attestation_pool}/mocks.ts +0 -0
- /package/src/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/epoch_proof_quote_pool.ts +0 -0
- /package/src/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/index.ts +0 -0
- /package/src/{epoch_proof_quote_pool → mem_pools/epoch_proof_quote_pool}/test_utils.ts +0 -0
- /package/src/{tx_pool → mem_pools/tx_pool}/index.ts +0 -0
- /package/src/{tx_pool → mem_pools/tx_pool}/tx_pool.ts +0 -0
- /package/src/{tx_pool → mem_pools/tx_pool}/tx_pool_test_suite.ts +0 -0
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
BlockAttestation,
|
|
3
3
|
BlockProposal,
|
|
4
4
|
type ClientProtocolCircuitVerifier,
|
|
5
|
+
EpochProofQuote,
|
|
5
6
|
type Gossipable,
|
|
6
7
|
type L2BlockSource,
|
|
7
8
|
MerkleTreeId,
|
|
@@ -17,6 +18,7 @@ import { createDebugLogger } from '@aztec/foundation/log';
|
|
|
17
18
|
import { SerialQueue } from '@aztec/foundation/queue';
|
|
18
19
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
19
20
|
import type { AztecKVStore } from '@aztec/kv-store';
|
|
21
|
+
import { Attributes, type TelemetryClient, WithTracer, trackSpan } from '@aztec/telemetry-client';
|
|
20
22
|
|
|
21
23
|
import { type ENR } from '@chainsafe/enr';
|
|
22
24
|
import { type GossipSub, type GossipSubComponents, gossipsub } from '@chainsafe/libp2p-gossipsub';
|
|
@@ -31,9 +33,8 @@ import { createFromJSON, createSecp256k1PeerId } from '@libp2p/peer-id-factory';
|
|
|
31
33
|
import { tcp } from '@libp2p/tcp';
|
|
32
34
|
import { createLibp2p } from 'libp2p';
|
|
33
35
|
|
|
34
|
-
import { type AttestationPool } from '../attestation_pool/attestation_pool.js';
|
|
35
36
|
import { type P2PConfig } from '../config.js';
|
|
36
|
-
import { type
|
|
37
|
+
import { type MemPools } from '../mem_pools/interface.js';
|
|
37
38
|
import {
|
|
38
39
|
DataTxValidator,
|
|
39
40
|
DoubleSpendTxValidator,
|
|
@@ -77,7 +78,7 @@ export async function createLibP2PPeerId(privateKey?: string): Promise<PeerId> {
|
|
|
77
78
|
/**
|
|
78
79
|
* Lib P2P implementation of the P2PService interface.
|
|
79
80
|
*/
|
|
80
|
-
export class LibP2PService implements P2PService {
|
|
81
|
+
export class LibP2PService extends WithTracer implements P2PService {
|
|
81
82
|
private jobQueue: SerialQueue = new SerialQueue();
|
|
82
83
|
private peerManager: PeerManager;
|
|
83
84
|
private discoveryRunningPromise?: RunningPromise;
|
|
@@ -96,14 +97,17 @@ export class LibP2PService implements P2PService {
|
|
|
96
97
|
private config: P2PConfig,
|
|
97
98
|
private node: PubSubLibp2p,
|
|
98
99
|
private peerDiscoveryService: PeerDiscoveryService,
|
|
99
|
-
private
|
|
100
|
-
private attestationPool: AttestationPool,
|
|
100
|
+
private mempools: MemPools,
|
|
101
101
|
private l2BlockSource: L2BlockSource,
|
|
102
102
|
private proofVerifier: ClientProtocolCircuitVerifier,
|
|
103
103
|
private worldStateSynchronizer: WorldStateSynchronizer,
|
|
104
|
+
telemetry: TelemetryClient,
|
|
104
105
|
private requestResponseHandlers: ReqRespSubProtocolHandlers = DEFAULT_SUB_PROTOCOL_HANDLERS,
|
|
105
106
|
private logger = createDebugLogger('aztec:libp2p_service'),
|
|
106
107
|
) {
|
|
108
|
+
// Instatntiate tracer
|
|
109
|
+
super(telemetry, 'LibP2PService');
|
|
110
|
+
|
|
107
111
|
this.peerManager = new PeerManager(node, peerDiscoveryService, config, logger);
|
|
108
112
|
this.node.services.pubsub.score.params.appSpecificScore = (peerId: string) => {
|
|
109
113
|
return this.peerManager.getPeerScore(peerId);
|
|
@@ -200,12 +204,12 @@ export class LibP2PService implements P2PService {
|
|
|
200
204
|
config: P2PConfig,
|
|
201
205
|
peerDiscoveryService: PeerDiscoveryService,
|
|
202
206
|
peerId: PeerId,
|
|
203
|
-
|
|
204
|
-
attestationPool: AttestationPool,
|
|
207
|
+
mempools: MemPools,
|
|
205
208
|
l2BlockSource: L2BlockSource,
|
|
206
209
|
proofVerifier: ClientProtocolCircuitVerifier,
|
|
207
210
|
worldStateSynchronizer: WorldStateSynchronizer,
|
|
208
211
|
store: AztecKVStore,
|
|
212
|
+
telemetry: TelemetryClient,
|
|
209
213
|
) {
|
|
210
214
|
const { tcpListenAddress, tcpAnnounceAddress, minPeerCount, maxPeerCount } = config;
|
|
211
215
|
const bindAddrTcp = convertToMultiaddr(tcpListenAddress, 'tcp');
|
|
@@ -260,6 +264,21 @@ export class LibP2PService implements P2PService {
|
|
|
260
264
|
invalidMessageDeliveriesWeight: -20,
|
|
261
265
|
invalidMessageDeliveriesDecay: 0.5,
|
|
262
266
|
}),
|
|
267
|
+
[BlockAttestation.p2pTopic]: createTopicScoreParams({
|
|
268
|
+
topicWeight: 1,
|
|
269
|
+
invalidMessageDeliveriesWeight: -20,
|
|
270
|
+
invalidMessageDeliveriesDecay: 0.5,
|
|
271
|
+
}),
|
|
272
|
+
[BlockAttestation.p2pTopic]: createTopicScoreParams({
|
|
273
|
+
topicWeight: 1,
|
|
274
|
+
invalidMessageDeliveriesWeight: -20,
|
|
275
|
+
invalidMessageDeliveriesDecay: 0.5,
|
|
276
|
+
}),
|
|
277
|
+
[EpochProofQuote.p2pTopic]: createTopicScoreParams({
|
|
278
|
+
topicWeight: 1,
|
|
279
|
+
invalidMessageDeliveriesWeight: -20,
|
|
280
|
+
invalidMessageDeliveriesDecay: 0.5,
|
|
281
|
+
}),
|
|
263
282
|
},
|
|
264
283
|
}),
|
|
265
284
|
}) as (components: GossipSubComponents) => GossipSub,
|
|
@@ -274,7 +293,7 @@ export class LibP2PService implements P2PService {
|
|
|
274
293
|
*/
|
|
275
294
|
const txHandler = (msg: Buffer): Promise<Uint8Array> => {
|
|
276
295
|
const txHash = TxHash.fromBuffer(msg);
|
|
277
|
-
const foundTx = txPool.getTxByHash(txHash);
|
|
296
|
+
const foundTx = mempools.txPool.getTxByHash(txHash);
|
|
278
297
|
const asUint8Array = Uint8Array.from(foundTx ? foundTx.toBuffer() : Buffer.alloc(0));
|
|
279
298
|
return Promise.resolve(asUint8Array);
|
|
280
299
|
};
|
|
@@ -289,11 +308,11 @@ export class LibP2PService implements P2PService {
|
|
|
289
308
|
config,
|
|
290
309
|
node,
|
|
291
310
|
peerDiscoveryService,
|
|
292
|
-
|
|
293
|
-
attestationPool,
|
|
311
|
+
mempools,
|
|
294
312
|
l2BlockSource,
|
|
295
313
|
proofVerifier,
|
|
296
314
|
worldStateSynchronizer,
|
|
315
|
+
telemetry,
|
|
297
316
|
requestResponseHandlers,
|
|
298
317
|
);
|
|
299
318
|
}
|
|
@@ -372,6 +391,10 @@ export class LibP2PService implements P2PService {
|
|
|
372
391
|
const block = BlockProposal.fromBuffer(Buffer.from(message.data));
|
|
373
392
|
await this.processBlockFromPeer(block);
|
|
374
393
|
}
|
|
394
|
+
if (message.topic == EpochProofQuote.p2pTopic) {
|
|
395
|
+
const epochProofQuote = EpochProofQuote.fromBuffer(Buffer.from(message.data));
|
|
396
|
+
this.processEpochProofQuoteFromPeer(epochProofQuote);
|
|
397
|
+
}
|
|
375
398
|
|
|
376
399
|
return;
|
|
377
400
|
}
|
|
@@ -381,9 +404,15 @@ export class LibP2PService implements P2PService {
|
|
|
381
404
|
*
|
|
382
405
|
* @param attestation - The attestation to process.
|
|
383
406
|
*/
|
|
407
|
+
@trackSpan('Libp2pService.processAttestationFromPeer', attestation => ({
|
|
408
|
+
[Attributes.BLOCK_NUMBER]: attestation.payload.header.globalVariables.blockNumber.toNumber(),
|
|
409
|
+
[Attributes.SLOT_NUMBER]: attestation.payload.header.globalVariables.slotNumber.toNumber(),
|
|
410
|
+
[Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
|
|
411
|
+
[Attributes.P2P_ID]: attestation.p2pMessageIdentifier().toString(),
|
|
412
|
+
}))
|
|
384
413
|
private async processAttestationFromPeer(attestation: BlockAttestation): Promise<void> {
|
|
385
|
-
this.logger.
|
|
386
|
-
await this.attestationPool.addAttestations([attestation]);
|
|
414
|
+
this.logger.debug(`Received attestation ${attestation.p2pMessageIdentifier()} from external peer.`);
|
|
415
|
+
await this.mempools.attestationPool.addAttestations([attestation]);
|
|
387
416
|
}
|
|
388
417
|
|
|
389
418
|
/**Process block from peer
|
|
@@ -393,6 +422,12 @@ export class LibP2PService implements P2PService {
|
|
|
393
422
|
* @param block - The block to process.
|
|
394
423
|
*/
|
|
395
424
|
// REVIEW: callback pattern https://github.com/AztecProtocol/aztec-packages/issues/7963
|
|
425
|
+
@trackSpan('Libp2pService.processBlockFromPeer', block => ({
|
|
426
|
+
[Attributes.BLOCK_NUMBER]: block.payload.header.globalVariables.blockNumber.toNumber(),
|
|
427
|
+
[Attributes.SLOT_NUMBER]: block.payload.header.globalVariables.slotNumber.toNumber(),
|
|
428
|
+
[Attributes.BLOCK_ARCHIVE]: block.archive.toString(),
|
|
429
|
+
[Attributes.P2P_ID]: block.p2pMessageIdentifier().toString(),
|
|
430
|
+
}))
|
|
396
431
|
private async processBlockFromPeer(block: BlockProposal): Promise<void> {
|
|
397
432
|
this.logger.verbose(`Received block ${block.p2pMessageIdentifier()} from external peer.`);
|
|
398
433
|
const attestation = await this.blockReceivedCallback(block);
|
|
@@ -400,16 +435,39 @@ export class LibP2PService implements P2PService {
|
|
|
400
435
|
// TODO: fix up this pattern - the abstraction is not nice
|
|
401
436
|
// The attestation can be undefined if no handler is registered / the validator deems the block invalid
|
|
402
437
|
if (attestation != undefined) {
|
|
403
|
-
this.
|
|
438
|
+
this.logger.verbose(`Broadcasting attestation ${attestation.p2pMessageIdentifier()}`);
|
|
439
|
+
this.broadcastAttestation(attestation);
|
|
404
440
|
}
|
|
405
441
|
}
|
|
406
442
|
|
|
443
|
+
/**
|
|
444
|
+
* Broadcast an attestation to all peers.
|
|
445
|
+
* @param attestation - The attestation to broadcast.
|
|
446
|
+
*/
|
|
447
|
+
@trackSpan('Libp2pService.broadcastAttestation', attestation => ({
|
|
448
|
+
[Attributes.BLOCK_NUMBER]: attestation.payload.header.globalVariables.blockNumber.toNumber(),
|
|
449
|
+
[Attributes.SLOT_NUMBER]: attestation.payload.header.globalVariables.slotNumber.toNumber(),
|
|
450
|
+
[Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
|
|
451
|
+
[Attributes.P2P_ID]: attestation.p2pMessageIdentifier().toString(),
|
|
452
|
+
}))
|
|
453
|
+
private broadcastAttestation(attestation: BlockAttestation): void {
|
|
454
|
+
this.propagate(attestation);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
private processEpochProofQuoteFromPeer(epochProofQuote: EpochProofQuote): void {
|
|
458
|
+
this.logger.verbose(`Received epoch proof quote ${epochProofQuote.p2pMessageIdentifier()} from external peer.`);
|
|
459
|
+
this.mempools.epochProofQuotePool.addQuote(epochProofQuote);
|
|
460
|
+
}
|
|
461
|
+
|
|
407
462
|
/**
|
|
408
463
|
* Propagates provided message to peers.
|
|
409
464
|
* @param message - The message to propagate.
|
|
410
465
|
*/
|
|
411
466
|
public propagate<T extends Gossipable>(message: T): void {
|
|
412
|
-
|
|
467
|
+
this.logger.debug(`[${message.p2pMessageIdentifier()}] queued`);
|
|
468
|
+
void this.jobQueue.put(async () => {
|
|
469
|
+
await this.sendToPeers(message);
|
|
470
|
+
});
|
|
413
471
|
}
|
|
414
472
|
|
|
415
473
|
private async processTxFromPeer(tx: Tx, peerId: PeerId): Promise<void> {
|
|
@@ -420,7 +478,7 @@ export class LibP2PService implements P2PService {
|
|
|
420
478
|
const isValidTx = await this.validatePropagatedTx(tx, peerId);
|
|
421
479
|
|
|
422
480
|
if (isValidTx) {
|
|
423
|
-
await this.txPool.addTxs([tx]);
|
|
481
|
+
await this.mempools.txPool.addTxs([tx]);
|
|
424
482
|
}
|
|
425
483
|
}
|
|
426
484
|
|
|
@@ -481,7 +539,7 @@ export class LibP2PService implements P2PService {
|
|
|
481
539
|
// double spend validation
|
|
482
540
|
const doubleSpendValidator = new DoubleSpendTxValidator({
|
|
483
541
|
getNullifierIndex: async (nullifier: Fr) => {
|
|
484
|
-
const merkleTree = this.worldStateSynchronizer.
|
|
542
|
+
const merkleTree = this.worldStateSynchronizer.getCommitted();
|
|
485
543
|
const index = await merkleTree.findLeafIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBuffer());
|
|
486
544
|
return index;
|
|
487
545
|
},
|
|
@@ -533,10 +591,10 @@ export class LibP2PService implements P2PService {
|
|
|
533
591
|
const parent = message.constructor as typeof Gossipable;
|
|
534
592
|
|
|
535
593
|
const identifier = message.p2pMessageIdentifier().toString();
|
|
536
|
-
this.logger.verbose(`
|
|
594
|
+
this.logger.verbose(`[${identifier}] sending`);
|
|
537
595
|
|
|
538
596
|
const recipientsNum = await this.publishToTopic(parent.p2pTopic, message.toBuffer());
|
|
539
|
-
this.logger.verbose(`
|
|
597
|
+
this.logger.verbose(`[${identifier}] sent to ${recipientsNum} peers`);
|
|
540
598
|
}
|
|
541
599
|
|
|
542
600
|
// Libp2p seems to hang sometimes if new peers are initiating connections.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attestation_pool.d.ts","sourceRoot":"","sources":["../../src/attestation_pool/attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;;;;;OAQG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CACvF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/attestation_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../src/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,uBAAwB,YAAW,eAAe;IAGjD,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,YAAY,CAAgG;gBAEhG,GAAG,yCAA8C;IAI9D,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWrF,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhE,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgB3E"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
|
-
export class InMemoryAttestationPool {
|
|
3
|
-
constructor(log = createDebugLogger('aztec:attestation_pool')) {
|
|
4
|
-
this.log = log;
|
|
5
|
-
this.attestations = new Map();
|
|
6
|
-
}
|
|
7
|
-
getAttestationsForSlot(slot, proposalId) {
|
|
8
|
-
const slotAttestationMap = this.attestations.get(slot);
|
|
9
|
-
if (slotAttestationMap) {
|
|
10
|
-
const proposalAttestationMap = slotAttestationMap.get(proposalId);
|
|
11
|
-
if (proposalAttestationMap) {
|
|
12
|
-
return Promise.resolve(Array.from(proposalAttestationMap.values()));
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return Promise.resolve([]);
|
|
16
|
-
}
|
|
17
|
-
addAttestations(attestations) {
|
|
18
|
-
for (const attestation of attestations) {
|
|
19
|
-
// Perf: order and group by slot before insertion
|
|
20
|
-
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
21
|
-
const proposalId = attestation.p2pMessageIdentifier().toString();
|
|
22
|
-
const address = attestation.getSender();
|
|
23
|
-
const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber.toBigInt());
|
|
24
|
-
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
25
|
-
proposalAttestationMap.set(address.toString(), attestation);
|
|
26
|
-
this.log.verbose(`Added attestation for slot ${slotNumber} from ${address}`);
|
|
27
|
-
}
|
|
28
|
-
return Promise.resolve();
|
|
29
|
-
}
|
|
30
|
-
deleteAttestationsForSlot(slot) {
|
|
31
|
-
// TODO(md): check if this will free the memory of the inner hash map
|
|
32
|
-
this.attestations.delete(slot);
|
|
33
|
-
this.log.verbose(`Removed attestation for slot ${slot}`);
|
|
34
|
-
return Promise.resolve();
|
|
35
|
-
}
|
|
36
|
-
deleteAttestationsForSlotAndProposal(slot, proposalId) {
|
|
37
|
-
const slotAttestationMap = this.attestations.get(slot);
|
|
38
|
-
if (slotAttestationMap) {
|
|
39
|
-
slotAttestationMap.delete(proposalId);
|
|
40
|
-
this.log.verbose(`Removed attestation for slot ${slot}`);
|
|
41
|
-
}
|
|
42
|
-
return Promise.resolve();
|
|
43
|
-
}
|
|
44
|
-
deleteAttestations(attestations) {
|
|
45
|
-
for (const attestation of attestations) {
|
|
46
|
-
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
47
|
-
const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
|
|
48
|
-
if (slotAttestationMap) {
|
|
49
|
-
const proposalId = attestation.p2pMessageIdentifier().toString();
|
|
50
|
-
const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
|
|
51
|
-
if (proposalAttestationMap) {
|
|
52
|
-
const address = attestation.getSender();
|
|
53
|
-
proposalAttestationMap.delete(address.toString());
|
|
54
|
-
this.log.debug(`Deleted attestation for slot ${slotNumber} from ${address}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return Promise.resolve();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get Slot or Default
|
|
63
|
-
*
|
|
64
|
-
* Fetch the slot mapping, if it does not exist, then create a mapping and return it
|
|
65
|
-
* @param map - The map to fetch from
|
|
66
|
-
* @param slot - The slot to fetch
|
|
67
|
-
* @returns The slot mapping
|
|
68
|
-
*/
|
|
69
|
-
function getSlotOrDefault(map, slot) {
|
|
70
|
-
if (!map.has(slot)) {
|
|
71
|
-
map.set(slot, new Map());
|
|
72
|
-
}
|
|
73
|
-
return map.get(slot);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get Proposal or Default
|
|
77
|
-
*
|
|
78
|
-
* Fetch the proposal mapping, if it does not exist, then create a mapping and return it
|
|
79
|
-
* @param map - The map to fetch from
|
|
80
|
-
* @param proposalId - The proposal id to fetch
|
|
81
|
-
* @returns The proposal mapping
|
|
82
|
-
*/
|
|
83
|
-
function getProposalOrDefault(map, proposalId) {
|
|
84
|
-
if (!map.has(proposalId)) {
|
|
85
|
-
map.set(proposalId, new Map());
|
|
86
|
-
}
|
|
87
|
-
return map.get(proposalId);
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2F0dGVzdGF0aW9uX3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXR0ZXN0YXRpb25fcG9vbC9tZW1vcnlfYXR0ZXN0YXRpb25fcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUkxRCxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQW9CLE1BQU0saUJBQWlCLENBQUMsd0JBQXdCLENBQUM7UUFBakQsUUFBRyxHQUFILEdBQUcsQ0FBOEM7UUFDbkUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsVUFBa0I7UUFDNUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDdkIsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUMzQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxZQUFnQztRQUNyRCxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLGlEQUFpRDtZQUNqRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO1lBRXpFLE1BQU0sVUFBVSxHQUFHLFdB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,sBAAsB,CAAC;AAGlF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,yBAG3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,WAClB,iBAAiB,SACnB,MAAM,YACH,EAAE,KACV,QAAQ,gBAAgB,CAY1B,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { BlockAttestation, ConsensusPayload, TxHash } from '@aztec/circuit-types';
|
|
2
|
-
import { makeHeader } from '@aztec/circuits.js/testing';
|
|
3
|
-
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
6
|
-
/** Generate Account
|
|
7
|
-
*
|
|
8
|
-
* Create a random signer
|
|
9
|
-
* @returns A random viem signer
|
|
10
|
-
*/
|
|
11
|
-
export const generateAccount = () => {
|
|
12
|
-
const privateKey = generatePrivateKey();
|
|
13
|
-
return privateKeyToAccount(privateKey);
|
|
14
|
-
};
|
|
15
|
-
/** Mock Attestation
|
|
16
|
-
*
|
|
17
|
-
* @param signer A viem signer to create a signature
|
|
18
|
-
* @param slot The slot number the attestation is for
|
|
19
|
-
* @returns A Block Attestation
|
|
20
|
-
*/
|
|
21
|
-
export const mockAttestation = async (signer, slot = 0, archive = Fr.random()) => {
|
|
22
|
-
// Use arbitrary numbers for all other than slot
|
|
23
|
-
const header = makeHeader(1, 2, slot);
|
|
24
|
-
const txs = [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
25
|
-
const payload = new ConsensusPayload(header, archive, txs);
|
|
26
|
-
const message = `0x${payload.getPayloadToSign().toString('hex')}`;
|
|
27
|
-
const sigString = await signer.signMessage({ message });
|
|
28
|
-
const signature = Signature.from0xString(sigString);
|
|
29
|
-
return new BlockAttestation(payload, signature);
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXR0ZXN0YXRpb25fcG9vbC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQ2xDLE1BQXlCLEVBQ3pCLE9BQWUsQ0FBQyxFQUNoQixVQUFjLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFDRSxFQUFFO0lBQzdCLGdEQUFnRDtJQUNoRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTFELE1BQU0sT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUzRCxNQUFNLE9BQU8sR0FBa0IsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNqRixNQUFNLFNBQVMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"epoch_proof_quote_pool.d.ts","sourceRoot":"","sources":["../../src/epoch_proof_quote_pool/epoch_proof_quote_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;IAC5C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2hfcHJvb2ZfcXVvdGVfcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcG9jaF9wcm9vZl9xdW90ZV9wb29sL2Vwb2NoX3Byb29mX3F1b3RlX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/epoch_proof_quote_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory_epoch_proof_quote_pool.d.ts","sourceRoot":"","sources":["../../src/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,qBAAa,yBAA0B,YAAW,mBAAmB;IACnE,OAAO,CAAC,MAAM,CAAiC;;IAI/C,QAAQ,CAAC,KAAK,EAAE,eAAe;IAO/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE;IAG3C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAMzC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export class MemoryEpochProofQuotePool {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.quotes = new Map();
|
|
4
|
-
}
|
|
5
|
-
addQuote(quote) {
|
|
6
|
-
const epoch = quote.payload.epochToProve;
|
|
7
|
-
if (!this.quotes.has(epoch)) {
|
|
8
|
-
this.quotes.set(epoch, []);
|
|
9
|
-
}
|
|
10
|
-
this.quotes.get(epoch).push(quote);
|
|
11
|
-
}
|
|
12
|
-
getQuotes(epoch) {
|
|
13
|
-
return this.quotes.get(epoch) || [];
|
|
14
|
-
}
|
|
15
|
-
deleteQuotesToEpoch(epoch) {
|
|
16
|
-
const expiredEpochs = Array.from(this.quotes.keys()).filter(k => k <= epoch);
|
|
17
|
-
for (const expiredEpoch of expiredEpochs) {
|
|
18
|
-
this.quotes.delete(expiredEpoch);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2Vwb2NoX3Byb29mX3F1b3RlX3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXBvY2hfcHJvb2ZfcXVvdGVfcG9vbC9tZW1vcnlfZXBvY2hfcHJvb2ZfcXVvdGVfcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBc0I7UUFDN0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxLQUFhO1FBQy9CLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUM3RSxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../src/epoch_proof_quote_pool/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAA2B,MAAM,0BAA0B,CAAC;AAEpF,wBAAgB,gCAAgC,IAAI,sBAAsB,CAQzE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG;IAC3E,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB,CAOA"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { EpochProofQuote, EpochProofQuotePayload } from '@aztec/circuit-types';
|
|
2
|
-
import { EthAddress } from '@aztec/circuits.js';
|
|
3
|
-
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
4
|
-
import { Secp256k1Signer, randomBigInt, randomInt } from '@aztec/foundation/crypto';
|
|
5
|
-
export function makeRandomEpochProofQuotePayload() {
|
|
6
|
-
return EpochProofQuotePayload.from({
|
|
7
|
-
basisPointFee: randomInt(10000),
|
|
8
|
-
bondAmount: 1000000000000000000n,
|
|
9
|
-
epochToProve: randomBigInt(1000000n),
|
|
10
|
-
prover: EthAddress.random(),
|
|
11
|
-
validUntilSlot: randomBigInt(1000000n),
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
export function makeRandomEpochProofQuote(payload) {
|
|
15
|
-
const signer = Secp256k1Signer.random();
|
|
16
|
-
return {
|
|
17
|
-
quote: EpochProofQuote.new(Buffer32.random(), payload ?? makeRandomEpochProofQuotePayload(), signer),
|
|
18
|
-
signer,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF91dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcG9jaF9wcm9vZl9xdW90ZV9wb29sL3Rlc3RfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsTUFBTSxVQUFVLGdDQUFnQztJQUM5QyxPQUFPLHNCQUFzQixDQUFDLElBQUksQ0FBQztRQUNqQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUMvQixVQUFVLEVBQUUsb0JBQW9CO1FBQ2hDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQzNCLGNBQWMsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDO0tBQ3ZDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsT0FBZ0M7SUFJeEUsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRXhDLE9BQU87UUFDTCxLQUFLLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxJQUFJLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxDQUFDO1FBQ3BHLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAgC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAe1C;;;;OAIG;gBACS,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAqC;IAU9F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,MAAM,EAAE;IAI5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAWnE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;CAGlC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tx_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
-
export type TxStatus = 'pending' | 'mined';
|
|
4
|
-
/**
|
|
5
|
-
* Instrumentation class for the TxPool.
|
|
6
|
-
*/
|
|
7
|
-
export declare class TxPoolInstrumentation {
|
|
8
|
-
/** The number of txs in the mempool */
|
|
9
|
-
private txInMempool;
|
|
10
|
-
/** Tracks tx size */
|
|
11
|
-
private txSize;
|
|
12
|
-
constructor(telemetry: TelemetryClient, name: string);
|
|
13
|
-
recordTxSize(tx: Tx): void;
|
|
14
|
-
/**
|
|
15
|
-
* Updates the metrics with the new transactions.
|
|
16
|
-
* @param txs - The transactions to record
|
|
17
|
-
*/
|
|
18
|
-
recordAddedTxs(status: string, count?: number): void;
|
|
19
|
-
/**
|
|
20
|
-
* Updates the metrics by removing transactions from the mempool.
|
|
21
|
-
* @param count - The number of transactions to remove from the mempool
|
|
22
|
-
*/
|
|
23
|
-
recordRemovedTxs(status: string, count?: number): void;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/tx_pool/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAuC,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAExH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3C;;GAEG;AACH,qBAAa,qBAAqB;IAChC,uCAAuC;IACvC,OAAO,CAAC,WAAW,CAAgB;IACnC,qBAAqB;IACrB,OAAO,CAAC,MAAM,CAAY;gBAEd,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM;IAuB7C,YAAY,CAAC,EAAE,EAAE,EAAE;IAI1B;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI;IAY/C;;;OAGG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI;CAWlD"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Attributes, Metrics } from '@aztec/telemetry-client';
|
|
2
|
-
/**
|
|
3
|
-
* Instrumentation class for the TxPool.
|
|
4
|
-
*/
|
|
5
|
-
export class TxPoolInstrumentation {
|
|
6
|
-
constructor(telemetry, name) {
|
|
7
|
-
const meter = telemetry.getMeter(name);
|
|
8
|
-
this.txInMempool = meter.createUpDownCounter(Metrics.MEMPOOL_TX_COUNT, {
|
|
9
|
-
description: 'The current number of transactions in the mempool',
|
|
10
|
-
});
|
|
11
|
-
this.txSize = meter.createHistogram(Metrics.MEMPOOL_TX_SIZE, {
|
|
12
|
-
unit: 'By',
|
|
13
|
-
description: 'The size of transactions in the mempool',
|
|
14
|
-
advice: {
|
|
15
|
-
explicitBucketBoundaries: [
|
|
16
|
-
5000, // 5KB
|
|
17
|
-
10000,
|
|
18
|
-
20000,
|
|
19
|
-
50000,
|
|
20
|
-
75000,
|
|
21
|
-
100000, // 100KB
|
|
22
|
-
200000,
|
|
23
|
-
],
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
recordTxSize(tx) {
|
|
28
|
-
this.txSize.record(tx.getSize());
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Updates the metrics with the new transactions.
|
|
32
|
-
* @param txs - The transactions to record
|
|
33
|
-
*/
|
|
34
|
-
recordAddedTxs(status, count = 1) {
|
|
35
|
-
if (count < 0) {
|
|
36
|
-
throw new Error('Count must be positive');
|
|
37
|
-
}
|
|
38
|
-
if (count === 0) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
this.txInMempool.add(count, {
|
|
42
|
-
[Attributes.STATUS]: status,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Updates the metrics by removing transactions from the mempool.
|
|
47
|
-
* @param count - The number of transactions to remove from the mempool
|
|
48
|
-
*/
|
|
49
|
-
recordRemovedTxs(status, count = 1) {
|
|
50
|
-
if (count < 0) {
|
|
51
|
-
throw new Error('Count must be positive');
|
|
52
|
-
}
|
|
53
|
-
if (count === 0) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this.txInMempool.add(-1 * count, {
|
|
57
|
-
[Attributes.STATUS]: status,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4X3Bvb2wvaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQWtCLE9BQU8sRUFBNEMsTUFBTSx5QkFBeUIsQ0FBQztBQUl4SDs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFBWSxTQUEwQixFQUFFLElBQVk7UUFDbEQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDckUsV0FBVyxFQUFFLG1EQUFtRDtTQUNqRSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUMzRCxJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsTUFBTSxFQUFFO2dCQUNOLHdCQUF3QixFQUFFO29CQUN4QixJQUFLLEVBQUUsTUFBTTtvQkFDYixLQUFNO29CQUNOLEtBQU07b0JBQ04sS0FBTTtvQkFDTixLQUFNO29CQUNOLE1BQU8sRUFBRSxRQUFRO29CQUNqQixNQUFPO2lCQUNSO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWSxDQUFDLEVBQU07UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxNQUFjLEVBQUUsS0FBSyxHQUFHLENBQUM7UUFDN0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQzFCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxLQUFLLEdBQUcsQ0FBQztRQUMvQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUU7WUFDL0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../src/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,cAAe,YAAW,MAAM;IAcH,OAAO,CAAC,GAAG;IAbnD;;OAEG;IACH,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,UAAU,CAAc;IAEhC,OAAO,CAAC,OAAO,CAAwB;IAEvC;;;OAGG;gBACS,SAAS,EAAE,eAAe,EAAU,GAAG,yCAAqC;IAOjF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,MAAM,EAAE;IAI5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAWnE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvC;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;CAGlC"}
|