@aztec/p2p 0.76.4 → 0.77.0-testnet-ignition.21
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/bootstrap/bootstrap.d.ts +2 -2
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/bootstrap/bootstrap.js +55 -41
- package/dest/client/factory.d.ts +8 -6
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +8 -10
- package/dest/client/index.js +0 -1
- package/dest/client/p2p_client.d.ts +7 -4
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +492 -514
- package/dest/config.d.ts +8 -10
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +54 -47
- package/dest/enr/generate-enr.d.ts +9 -0
- package/dest/enr/generate-enr.d.ts.map +1 -0
- package/dest/enr/generate-enr.js +30 -0
- package/dest/enr/index.d.ts +2 -0
- package/dest/enr/index.d.ts.map +1 -0
- package/dest/enr/index.js +1 -0
- package/dest/errors/reqresp.error.js +6 -10
- package/dest/index.js +0 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.js +6 -2
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +65 -33
- package/dest/mem_pools/attestation_pool/index.js +0 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +3 -3
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +23 -20
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +2 -2
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +22 -26
- package/dest/mem_pools/attestation_pool/mocks.d.ts +3 -2
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +12 -7
- package/dest/mem_pools/index.d.ts +2 -2
- package/dest/mem_pools/index.d.ts.map +1 -1
- package/dest/mem_pools/index.js +1 -2
- package/dest/mem_pools/instrumentation.d.ts +1 -1
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +35 -39
- package/dest/mem_pools/interface.d.ts +3 -3
- package/dest/mem_pools/interface.d.ts.map +1 -1
- package/dest/mem_pools/interface.js +3 -2
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +2 -2
- 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 +129 -136
- package/dest/mem_pools/tx_pool/index.js +0 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +2 -2
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +46 -44
- package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/priority.js +1 -3
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool.js +3 -2
- 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 +109 -39
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +2 -2
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +4 -4
- package/dest/msg_validators/attestation_validator/index.js +0 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +2 -2
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +3 -3
- package/dest/msg_validators/block_proposal_validator/index.js +0 -1
- package/dest/msg_validators/index.js +0 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +9 -11
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.js +18 -13
- package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/data_validator.js +102 -33
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.js +34 -20
- package/dest/msg_validators/tx_validator/index.js +0 -1
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.js +30 -27
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +2 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.js +17 -12
- package/dest/services/data_store.js +57 -57
- package/dest/services/discv5/discV5_service.d.ts +2 -0
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +64 -36
- package/dest/services/dummy_service.d.ts +4 -2
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +41 -59
- package/dest/services/encoding.d.ts +3 -3
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +10 -9
- package/dest/services/gossipsub/scoring.d.ts +7 -0
- package/dest/services/gossipsub/scoring.d.ts.map +1 -0
- package/dest/services/gossipsub/scoring.js +10 -0
- package/dest/services/index.js +0 -1
- package/dest/services/libp2p/libp2p_service.d.ts +10 -33
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +682 -673
- package/dest/services/peer-manager/metrics.js +14 -7
- package/dest/services/peer-manager/peer_manager.d.ts +24 -6
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +390 -340
- package/dest/services/peer-manager/peer_scoring.d.ts +3 -3
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +21 -19
- package/dest/services/reqresp/config.js +4 -5
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +2 -2
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +35 -28
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.js +67 -61
- package/dest/services/reqresp/index.js +1 -3
- package/dest/services/reqresp/interface.d.ts +2 -2
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +27 -31
- package/dest/services/reqresp/metrics.d.ts +1 -1
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/metrics.js +23 -10
- package/dest/services/reqresp/protocols/block.d.ts +2 -2
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.js +1 -2
- package/dest/services/reqresp/protocols/goodbye.d.ts +5 -5
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/goodbye.js +36 -41
- package/dest/services/reqresp/protocols/index.js +1 -3
- package/dest/services/reqresp/protocols/ping.js +1 -3
- package/dest/services/reqresp/protocols/status.js +1 -3
- package/dest/services/reqresp/protocols/tx.d.ts +3 -3
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/tx.js +6 -9
- package/dest/services/reqresp/rate-limiter/index.js +0 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +9 -9
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +53 -46
- package/dest/services/reqresp/rate-limiter/rate_limits.js +16 -17
- package/dest/services/reqresp/reqresp.d.ts +4 -4
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +467 -464
- package/dest/services/reqresp/status.js +16 -17
- package/dest/services/service.d.ts +3 -2
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/service.js +3 -4
- package/dest/test-helpers/generate-peer-id-private-keys.js +2 -4
- package/dest/test-helpers/get-ports.js +3 -3
- package/dest/test-helpers/index.js +0 -1
- package/dest/test-helpers/make-enrs.d.ts +1 -1
- package/dest/test-helpers/make-enrs.d.ts.map +1 -1
- package/dest/test-helpers/make-enrs.js +3 -6
- package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -6
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +10 -12
- package/dest/test-helpers/reqresp-nodes.d.ts +18 -7
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +64 -40
- package/dest/testbench/p2p_client_testbench_worker.js +61 -45
- package/dest/testbench/parse_log_file.d.ts +2 -0
- package/dest/testbench/parse_log_file.d.ts.map +1 -0
- package/dest/testbench/parse_log_file.js +131 -0
- package/dest/testbench/testbench.d.ts +2 -0
- package/dest/testbench/testbench.d.ts.map +1 -0
- package/dest/testbench/testbench.js +141 -0
- package/dest/{services/types.d.ts → types/index.d.ts} +1 -1
- package/dest/types/index.d.ts.map +1 -0
- package/dest/types/index.js +28 -0
- package/dest/util.d.ts +5 -5
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +23 -34
- package/dest/versioning.d.ts +3 -3
- package/dest/versioning.d.ts.map +1 -1
- package/dest/versioning.js +7 -12
- package/package.json +15 -13
- package/src/bootstrap/bootstrap.ts +30 -17
- package/src/client/factory.ts +9 -12
- package/src/client/p2p_client.ts +13 -24
- package/src/config.ts +14 -15
- package/src/enr/generate-enr.ts +39 -0
- package/src/enr/index.ts +1 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +1 -1
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +4 -3
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +3 -3
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +2 -2
- package/src/mem_pools/attestation_pool/mocks.ts +5 -5
- package/src/mem_pools/index.ts +2 -2
- package/src/mem_pools/instrumentation.ts +4 -3
- package/src/mem_pools/interface.ts +3 -3
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +4 -4
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +3 -3
- package/src/mem_pools/tx_pool/priority.ts +1 -1
- package/src/mem_pools/tx_pool/tx_pool.ts +1 -1
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +4 -3
- package/src/msg_validators/attestation_validator/attestation_validator.ts +2 -2
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +2 -2
- package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +1 -1
- package/src/msg_validators/tx_validator/block_header_validator.ts +2 -2
- package/src/msg_validators/tx_validator/data_validator.ts +57 -4
- package/src/msg_validators/tx_validator/double_spend_validator.ts +17 -12
- package/src/msg_validators/tx_validator/metadata_validator.ts +2 -2
- package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -6
- package/src/services/discv5/discV5_service.ts +33 -8
- package/src/services/dummy_service.ts +4 -2
- package/src/services/encoding.ts +3 -3
- package/src/services/gossipsub/scoring.ts +13 -0
- package/src/services/libp2p/libp2p_service.ts +124 -146
- package/src/services/peer-manager/peer_manager.ts +71 -13
- package/src/services/peer-manager/peer_scoring.ts +3 -3
- package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +2 -2
- package/src/services/reqresp/connection-sampler/connection_sampler.ts +9 -3
- package/src/services/reqresp/interface.ts +4 -3
- package/src/services/reqresp/metrics.ts +1 -1
- package/src/services/reqresp/protocols/block.ts +3 -3
- package/src/services/reqresp/protocols/goodbye.ts +7 -7
- package/src/services/reqresp/protocols/tx.ts +5 -5
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +22 -18
- package/src/services/reqresp/reqresp.ts +18 -11
- package/src/services/service.ts +3 -2
- package/src/test-helpers/make-enrs.ts +1 -1
- package/src/test-helpers/make-test-p2p-clients.ts +9 -7
- package/src/test-helpers/reqresp-nodes.ts +32 -18
- package/src/testbench/p2p_client_testbench_worker.ts +16 -9
- package/src/testbench/parse_log_file.ts +175 -0
- package/src/testbench/testbench.ts +157 -0
- package/src/util.ts +5 -5
- package/src/versioning.ts +7 -7
- package/dest/services/libp2p/libp2p_logger.d.ts +0 -7
- package/dest/services/libp2p/libp2p_logger.d.ts.map +0 -1
- package/dest/services/libp2p/libp2p_logger.js +0 -67
- package/dest/services/types.d.ts.map +0 -1
- package/dest/services/types.js +0 -35
- package/src/services/libp2p/libp2p_logger.ts +0 -78
- package/src/testbench/scripts/run_testbench.sh +0 -7
- /package/src/{services/types.ts → types/index.ts} +0 -0
|
@@ -1,88 +1,84 @@
|
|
|
1
|
-
import { Attributes, LmdbMetrics, Metrics
|
|
2
|
-
export var PoolName
|
|
3
|
-
(function (PoolName) {
|
|
1
|
+
import { Attributes, LmdbMetrics, Metrics } from '@aztec/telemetry-client';
|
|
2
|
+
export var PoolName = /*#__PURE__*/ function(PoolName) {
|
|
4
3
|
PoolName["TX_POOL"] = "TxPool";
|
|
5
4
|
PoolName["ATTESTATION_POOL"] = "AttestationPool";
|
|
6
|
-
|
|
5
|
+
return PoolName;
|
|
6
|
+
}({});
|
|
7
7
|
/**
|
|
8
8
|
* Get the metrics labels for a given pool name.
|
|
9
9
|
* They must all have different names, as if duplicates appear, it will brick
|
|
10
10
|
* the metrics instance
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
if (name === PoolName.TX_POOL) {
|
|
11
|
+
*/ function getMetricsLabels(name) {
|
|
12
|
+
if (name === "TxPool") {
|
|
14
13
|
return {
|
|
15
14
|
objectInMempool: Metrics.MEMPOOL_TX_COUNT,
|
|
16
|
-
objectSize: Metrics.MEMPOOL_TX_SIZE
|
|
15
|
+
objectSize: Metrics.MEMPOOL_TX_SIZE
|
|
17
16
|
};
|
|
18
|
-
}
|
|
19
|
-
else if (name === PoolName.ATTESTATION_POOL) {
|
|
17
|
+
} else if (name === "AttestationPool") {
|
|
20
18
|
return {
|
|
21
19
|
objectInMempool: Metrics.MEMPOOL_ATTESTATIONS_COUNT,
|
|
22
|
-
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE
|
|
20
|
+
objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE
|
|
23
21
|
};
|
|
24
22
|
}
|
|
25
23
|
throw new Error('Invalid pool type');
|
|
26
24
|
}
|
|
27
25
|
/**
|
|
28
26
|
* Instrumentation class for the Pools (TxPool, AttestationPool, etc).
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
*/ export class PoolInstrumentation {
|
|
28
|
+
/** The number of txs in the mempool */ objectsInMempool;
|
|
29
|
+
/** Tracks tx size */ objectSize;
|
|
30
|
+
dbMetrics;
|
|
31
|
+
defaultAttributes;
|
|
32
|
+
constructor(telemetry, name, dbStats){
|
|
32
33
|
const meter = telemetry.getMeter(name);
|
|
33
|
-
this.defaultAttributes = {
|
|
34
|
+
this.defaultAttributes = {
|
|
35
|
+
[Attributes.POOL_NAME]: name
|
|
36
|
+
};
|
|
34
37
|
const metricsLabels = getMetricsLabels(name);
|
|
35
38
|
this.objectsInMempool = meter.createUpDownCounter(metricsLabels.objectInMempool, {
|
|
36
|
-
description: 'The current number of transactions in the mempool'
|
|
39
|
+
description: 'The current number of transactions in the mempool'
|
|
37
40
|
});
|
|
38
41
|
this.objectSize = meter.createHistogram(metricsLabels.objectSize, {
|
|
39
42
|
unit: 'By',
|
|
40
|
-
description: 'The size of transactions in the mempool'
|
|
43
|
+
description: 'The size of transactions in the mempool'
|
|
41
44
|
});
|
|
42
45
|
this.dbMetrics = new LmdbMetrics(meter, {
|
|
43
|
-
[Attributes.DB_DATA_TYPE]: 'tx-pool'
|
|
46
|
+
[Attributes.DB_DATA_TYPE]: 'tx-pool'
|
|
44
47
|
}, dbStats);
|
|
45
48
|
}
|
|
46
49
|
recordSize(poolObject) {
|
|
47
50
|
this.objectSize.record(poolObject.getSize());
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
recordAddedObjects(count = 1, status) {
|
|
53
|
+
* Updates the metrics with the new objects.
|
|
54
|
+
* @param txs - The objects to record
|
|
55
|
+
*/ recordAddedObjects(count = 1, status) {
|
|
54
56
|
if (count < 0) {
|
|
55
57
|
throw new Error('Count must be positive');
|
|
56
58
|
}
|
|
57
59
|
if (count === 0) {
|
|
58
60
|
return;
|
|
59
61
|
}
|
|
60
|
-
const attributes = status
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
: this.defaultAttributes;
|
|
62
|
+
const attributes = status ? {
|
|
63
|
+
...this.defaultAttributes,
|
|
64
|
+
[Attributes.STATUS]: status
|
|
65
|
+
} : this.defaultAttributes;
|
|
66
66
|
this.objectsInMempool.add(count, attributes);
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
recordRemovedObjects(count = 1, status) {
|
|
69
|
+
* Updates the metrics by removing objects from the mempool.
|
|
70
|
+
* @param count - The number of objects to remove from the mempool
|
|
71
|
+
*/ recordRemovedObjects(count = 1, status) {
|
|
73
72
|
if (count < 0) {
|
|
74
73
|
throw new Error('Count must be positive');
|
|
75
74
|
}
|
|
76
75
|
if (count === 0) {
|
|
77
76
|
return;
|
|
78
77
|
}
|
|
79
|
-
const attributes = status
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
: this.defaultAttributes;
|
|
78
|
+
const attributes = status ? {
|
|
79
|
+
...this.defaultAttributes,
|
|
80
|
+
[Attributes.STATUS]: status
|
|
81
|
+
} : this.defaultAttributes;
|
|
85
82
|
this.objectsInMempool.add(-1 * count, attributes);
|
|
86
83
|
}
|
|
87
84
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lbV9wb29scy9pbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFVBQVUsRUFFVixXQUFXLEVBRVgsT0FBTyxHQUdSLE1BQU0seUJBQXlCLENBQUM7QUFFakMsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQiw4QkFBa0IsQ0FBQTtJQUNsQixnREFBb0MsQ0FBQTtBQUN0QyxDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFPRDs7OztHQUlHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFjO0lBQ3RDLElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixPQUFPO1lBQ0wsZUFBZSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDekMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1NBQ3BDLENBQUM7SUFDSixDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsT0FBTztZQUNMLGVBQWUsRUFBRSxPQUFPLENBQUMsMEJBQTBCO1lBQ25ELFVBQVUsRUFBRSxPQUFPLENBQUMseUJBQXlCO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBWSxTQUEwQixFQUFFLElBQWMsRUFBRSxPQUEyQjtRQUNqRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBRTFELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRTtZQUMvRSxXQUFXLEVBQUUsbURBQW1EO1NBQ2pFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFO1lBQ2hFLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLHlDQUF5QztTQUN2RCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksV0FBVyxDQUM5QixLQUFLLEVBQ0w7WUFDRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTO1NBQ3JDLEVBQ0QsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVSxDQUFDLFVBQXNCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLE1BQWU7UUFDbEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsTUFBTTtZQUN2QixDQUFDLENBQUM7Z0JBQ0UsR0FBRyxJQUFJLENBQUMsaUJBQWlCO2dCQUN6QixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNO2FBQzVCO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUUzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFlO1FBQ3BELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU07WUFDdkIsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtnQkFDekIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTTthQUM1QjtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { P2PClientType } from '@aztec/stdlib/p2p';
|
|
2
|
+
import type { AttestationPool } from './attestation_pool/attestation_pool.js';
|
|
3
|
+
import type { TxPool } from './tx_pool/tx_pool.js';
|
|
4
4
|
/**
|
|
5
5
|
* A interface the combines all mempools
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAC,IAAI,IAAI;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,IAAI,GAAG,eAAe,GAAG,SAAS,CAAC;CAC9E,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A interface the combines all mempools
|
|
3
|
+
*/ export { };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Tx, TxHash } from '@aztec/circuit-types';
|
|
2
1
|
import { type Logger } from '@aztec/foundation/log';
|
|
3
2
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
|
+
import { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
4
4
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
|
-
import {
|
|
5
|
+
import type { TxPool } from './tx_pool.js';
|
|
6
6
|
/**
|
|
7
7
|
* KV implementation of the Transaction Pool.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAG5F,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IA4B1C;;;;;;;OAOG;gBAED,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,GAAE,eAAsC,EACjD,eAAe,GAAE,MAAU,EAC3B,GAAG,SAA8B;IAgB5B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB/C,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKvC,gBAAgB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAK/C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAalF;;;;OAIG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAUjE;;;;OAIG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAUzE;;;;OAIG;IACU,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7C;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCnD;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IASvC;;;OAGG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKhD;;;;OAIG;YACW,UAAU;CAiCzB"}
|
|
@@ -1,71 +1,60 @@
|
|
|
1
|
-
var _AztecKVTxPool_store, _AztecKVTxPool_txs, _AztecKVTxPool_minedTxHashToBlock, _AztecKVTxPool_pendingTxPriorityToHash, _AztecKVTxPool_archive, _AztecKVTxPool_archivedTxs, _AztecKVTxPool_archivedTxIndices, _AztecKVTxPool_archivedTxLimit, _AztecKVTxPool_log, _AztecKVTxPool_metrics;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { Tx, TxHash } from '@aztec/circuit-types';
|
|
4
|
-
import { ClientIvcProof } from '@aztec/circuits.js';
|
|
5
1
|
import { toArray } from '@aztec/foundation/iterable';
|
|
6
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
4
|
+
import { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
7
5
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
8
6
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
9
7
|
import { getPendingTxPriority } from './priority.js';
|
|
10
8
|
/**
|
|
11
9
|
* KV implementation of the Transaction Pool.
|
|
12
|
-
*/
|
|
13
|
-
|
|
10
|
+
*/ export class AztecKVTxPool {
|
|
11
|
+
#store;
|
|
12
|
+
/** Our tx pool, stored as a Map, with K: tx hash and V: the transaction. */ #txs;
|
|
13
|
+
/** Index from tx hash to the block number in which they were mined, filtered by mined txs. */ #minedTxHashToBlock;
|
|
14
|
+
/** Index from tx priority (stored as hex) to its tx hash, filtered by pending txs. */ #pendingTxPriorityToHash;
|
|
15
|
+
/** KV store for archived txs. */ #archive;
|
|
16
|
+
/** Archived txs map for future lookup. */ #archivedTxs;
|
|
17
|
+
/** Indexes of the archived txs by insertion order. */ #archivedTxIndices;
|
|
18
|
+
/** Number of txs to archive. */ #archivedTxLimit;
|
|
19
|
+
#log;
|
|
20
|
+
#metrics;
|
|
14
21
|
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
/** Archived txs map for future lookup. */
|
|
33
|
-
_AztecKVTxPool_archivedTxs.set(this, void 0);
|
|
34
|
-
/** Indexes of the archived txs by insertion order. */
|
|
35
|
-
_AztecKVTxPool_archivedTxIndices.set(this, void 0);
|
|
36
|
-
/** Number of txs to archive. */
|
|
37
|
-
_AztecKVTxPool_archivedTxLimit.set(this, void 0);
|
|
38
|
-
_AztecKVTxPool_log.set(this, void 0);
|
|
39
|
-
_AztecKVTxPool_metrics.set(this, void 0);
|
|
40
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_txs, store.openMap('txs'), "f");
|
|
41
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_minedTxHashToBlock, store.openMap('txHashToBlockMined'), "f");
|
|
42
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_pendingTxPriorityToHash, store.openMultiMap('pendingTxFeeToHash'), "f");
|
|
43
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_archivedTxs, archive.openMap('archivedTxs'), "f");
|
|
44
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_archivedTxIndices, archive.openMap('archivedTxIndices'), "f");
|
|
45
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_archivedTxLimit, archivedTxLimit, "f");
|
|
46
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_store, store, "f");
|
|
47
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_archive, archive, "f");
|
|
48
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_log, log, "f");
|
|
49
|
-
__classPrivateFieldSet(this, _AztecKVTxPool_metrics, new PoolInstrumentation(telemetry, PoolName.TX_POOL, () => store.estimateSize()), "f");
|
|
22
|
+
* Class constructor for KV TxPool. Initiates our transaction pool as an AztecMap.
|
|
23
|
+
* @param store - A KV store for live txs in the pool.
|
|
24
|
+
* @param archive - A KV store for archived txs.
|
|
25
|
+
* @param telemetry - A telemetry client.
|
|
26
|
+
* @param archivedTxLimit - The number of txs to archive.
|
|
27
|
+
* @param log - A logger.
|
|
28
|
+
*/ constructor(store, archive, telemetry = getTelemetryClient(), archivedTxLimit = 0, log = createLogger('p2p:tx_pool')){
|
|
29
|
+
this.#txs = store.openMap('txs');
|
|
30
|
+
this.#minedTxHashToBlock = store.openMap('txHashToBlockMined');
|
|
31
|
+
this.#pendingTxPriorityToHash = store.openMultiMap('pendingTxFeeToHash');
|
|
32
|
+
this.#archivedTxs = archive.openMap('archivedTxs');
|
|
33
|
+
this.#archivedTxIndices = archive.openMap('archivedTxIndices');
|
|
34
|
+
this.#archivedTxLimit = archivedTxLimit;
|
|
35
|
+
this.#store = store;
|
|
36
|
+
this.#archive = archive;
|
|
37
|
+
this.#log = log;
|
|
38
|
+
this.#metrics = new PoolInstrumentation(telemetry, PoolName.TX_POOL, ()=>store.estimateSize());
|
|
50
39
|
}
|
|
51
40
|
markAsMined(txHashes, blockNumber) {
|
|
52
41
|
if (txHashes.length === 0) {
|
|
53
42
|
return Promise.resolve();
|
|
54
43
|
}
|
|
55
44
|
let deletedPending = 0;
|
|
56
|
-
return
|
|
57
|
-
for (const hash of txHashes)
|
|
45
|
+
return this.#store.transactionAsync(async ()=>{
|
|
46
|
+
for (const hash of txHashes){
|
|
58
47
|
const key = hash.toString();
|
|
59
|
-
await
|
|
48
|
+
await this.#minedTxHashToBlock.set(key, blockNumber);
|
|
60
49
|
const tx = await this.getTxByHash(hash);
|
|
61
50
|
if (tx) {
|
|
62
51
|
deletedPending++;
|
|
63
52
|
const fee = getPendingTxPriority(tx);
|
|
64
|
-
await
|
|
53
|
+
await this.#pendingTxPriorityToHash.deleteValue(fee, key);
|
|
65
54
|
}
|
|
66
55
|
}
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
this.#metrics.recordAddedObjects(txHashes.length, 'mined');
|
|
57
|
+
this.#metrics.recordRemovedObjects(deletedPending, 'pending');
|
|
69
58
|
});
|
|
70
59
|
}
|
|
71
60
|
markMinedAsPending(txHashes) {
|
|
@@ -73,48 +62,53 @@ export class AztecKVTxPool {
|
|
|
73
62
|
return Promise.resolve();
|
|
74
63
|
}
|
|
75
64
|
let markedAsPending = 0;
|
|
76
|
-
return
|
|
77
|
-
for (const hash of txHashes)
|
|
65
|
+
return this.#store.transactionAsync(async ()=>{
|
|
66
|
+
for (const hash of txHashes){
|
|
78
67
|
const key = hash.toString();
|
|
79
|
-
await
|
|
68
|
+
await this.#minedTxHashToBlock.delete(key);
|
|
80
69
|
const tx = await this.getTxByHash(hash);
|
|
81
70
|
if (tx) {
|
|
82
|
-
await
|
|
71
|
+
await this.#pendingTxPriorityToHash.set(getPendingTxPriority(tx), key);
|
|
83
72
|
markedAsPending++;
|
|
84
73
|
}
|
|
85
74
|
}
|
|
86
|
-
|
|
87
|
-
|
|
75
|
+
this.#metrics.recordAddedObjects(markedAsPending, 'pending');
|
|
76
|
+
this.#metrics.recordRemovedObjects(markedAsPending, 'mined');
|
|
88
77
|
});
|
|
89
78
|
}
|
|
90
79
|
async getPendingTxHashes() {
|
|
91
|
-
const vals = await toArray(
|
|
92
|
-
|
|
80
|
+
const vals = await toArray(this.#pendingTxPriorityToHash.valuesAsync({
|
|
81
|
+
reverse: true
|
|
82
|
+
}));
|
|
83
|
+
return vals.map((x)=>TxHash.fromString(x));
|
|
93
84
|
}
|
|
94
85
|
async getMinedTxHashes() {
|
|
95
|
-
const vals = await toArray(
|
|
96
|
-
return vals.map(([txHash, blockNumber])
|
|
86
|
+
const vals = await toArray(this.#minedTxHashToBlock.entriesAsync());
|
|
87
|
+
return vals.map(([txHash, blockNumber])=>[
|
|
88
|
+
TxHash.fromString(txHash),
|
|
89
|
+
blockNumber
|
|
90
|
+
]);
|
|
97
91
|
}
|
|
98
92
|
async getTxStatus(txHash) {
|
|
99
93
|
const key = txHash.toString();
|
|
100
|
-
const [isMined, isKnown] = await Promise.all([
|
|
94
|
+
const [isMined, isKnown] = await Promise.all([
|
|
95
|
+
this.#minedTxHashToBlock.hasAsync(key),
|
|
96
|
+
this.#txs.hasAsync(key)
|
|
97
|
+
]);
|
|
101
98
|
if (isMined) {
|
|
102
99
|
return 'mined';
|
|
103
|
-
}
|
|
104
|
-
else if (isKnown) {
|
|
100
|
+
} else if (isKnown) {
|
|
105
101
|
return 'pending';
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
102
|
+
} else {
|
|
108
103
|
return undefined;
|
|
109
104
|
}
|
|
110
105
|
}
|
|
111
106
|
/**
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const buffer = await __classPrivateFieldGet(this, _AztecKVTxPool_txs, "f").getAsync(txHash.toString());
|
|
107
|
+
* Checks if a transaction exists in the pool and returns it.
|
|
108
|
+
* @param txHash - The generated tx hash.
|
|
109
|
+
* @returns The transaction, if found, 'undefined' otherwise.
|
|
110
|
+
*/ async getTxByHash(txHash) {
|
|
111
|
+
const buffer = await this.#txs.getAsync(txHash.toString());
|
|
118
112
|
if (buffer) {
|
|
119
113
|
const tx = Tx.fromBuffer(buffer);
|
|
120
114
|
tx.setTxHash(txHash);
|
|
@@ -123,12 +117,11 @@ export class AztecKVTxPool {
|
|
|
123
117
|
return undefined;
|
|
124
118
|
}
|
|
125
119
|
/**
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const buffer = await __classPrivateFieldGet(this, _AztecKVTxPool_archivedTxs, "f").getAsync(txHash.toString());
|
|
120
|
+
* Checks if an archived tx exists and returns it.
|
|
121
|
+
* @param txHash - The tx hash.
|
|
122
|
+
* @returns The transaction metadata, if found, 'undefined' otherwise.
|
|
123
|
+
*/ async getArchivedTxByHash(txHash) {
|
|
124
|
+
const buffer = await this.#archivedTxs.getAsync(txHash.toString());
|
|
132
125
|
if (buffer) {
|
|
133
126
|
const tx = Tx.fromBuffer(buffer);
|
|
134
127
|
tx.setTxHash(txHash);
|
|
@@ -137,116 +130,116 @@ export class AztecKVTxPool {
|
|
|
137
130
|
return undefined;
|
|
138
131
|
}
|
|
139
132
|
/**
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
133
|
+
* Adds a list of transactions to the pool. Duplicates are ignored.
|
|
134
|
+
* @param txs - An array of txs to be added to the pool.
|
|
135
|
+
* @returns Empty promise.
|
|
136
|
+
*/ async addTxs(txs) {
|
|
137
|
+
const hashesAndStats = await Promise.all(txs.map(async (tx)=>({
|
|
138
|
+
txHash: await tx.getTxHash(),
|
|
139
|
+
txStats: await tx.getStats()
|
|
140
|
+
})));
|
|
141
|
+
await this.#store.transactionAsync(async ()=>{
|
|
147
142
|
let pendingCount = 0;
|
|
148
|
-
await Promise.all(txs.map(async (tx, i)
|
|
143
|
+
await Promise.all(txs.map(async (tx, i)=>{
|
|
149
144
|
const { txHash, txStats } = hashesAndStats[i];
|
|
150
|
-
|
|
145
|
+
this.#log.verbose(`Adding tx ${txHash.toString()} to pool`, {
|
|
151
146
|
eventName: 'tx-added-to-pool',
|
|
152
|
-
...txStats
|
|
147
|
+
...txStats
|
|
153
148
|
});
|
|
154
149
|
const key = txHash.toString();
|
|
155
|
-
await
|
|
156
|
-
if (!
|
|
150
|
+
await this.#txs.set(key, tx.toBuffer());
|
|
151
|
+
if (!await this.#minedTxHashToBlock.hasAsync(key)) {
|
|
157
152
|
pendingCount++;
|
|
158
153
|
// REFACTOR: Use an lmdb conditional write to avoid race conditions with this write tx
|
|
159
|
-
await
|
|
160
|
-
|
|
154
|
+
await this.#pendingTxPriorityToHash.set(getPendingTxPriority(tx), key);
|
|
155
|
+
this.#metrics.recordSize(tx);
|
|
161
156
|
}
|
|
162
157
|
}));
|
|
163
|
-
|
|
158
|
+
this.#metrics.recordAddedObjects(pendingCount, 'pending');
|
|
164
159
|
});
|
|
165
160
|
}
|
|
166
161
|
/**
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
deleteTxs(txHashes) {
|
|
162
|
+
* Deletes transactions from the pool. Tx hashes that are not present are ignored.
|
|
163
|
+
* @param txHashes - An array of tx hashes to be removed from the tx pool.
|
|
164
|
+
* @returns Empty promise.
|
|
165
|
+
*/ deleteTxs(txHashes) {
|
|
172
166
|
let pendingDeleted = 0;
|
|
173
167
|
let minedDeleted = 0;
|
|
174
168
|
const deletedTxs = [];
|
|
175
|
-
const poolDbTx =
|
|
176
|
-
for (const hash of txHashes)
|
|
169
|
+
const poolDbTx = this.#store.transactionAsync(async ()=>{
|
|
170
|
+
for (const hash of txHashes){
|
|
177
171
|
const key = hash.toString();
|
|
178
172
|
const tx = await this.getTxByHash(hash);
|
|
179
173
|
if (tx) {
|
|
180
174
|
const fee = getPendingTxPriority(tx);
|
|
181
|
-
await
|
|
182
|
-
const isMined = await
|
|
175
|
+
await this.#pendingTxPriorityToHash.deleteValue(fee, key);
|
|
176
|
+
const isMined = await this.#minedTxHashToBlock.hasAsync(key);
|
|
183
177
|
if (isMined) {
|
|
184
178
|
minedDeleted++;
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
179
|
+
} else {
|
|
187
180
|
pendingDeleted++;
|
|
188
181
|
}
|
|
189
|
-
if (
|
|
182
|
+
if (this.#archivedTxLimit) {
|
|
190
183
|
deletedTxs.push(tx);
|
|
191
184
|
}
|
|
192
|
-
await
|
|
193
|
-
await
|
|
185
|
+
await this.#txs.delete(key);
|
|
186
|
+
await this.#minedTxHashToBlock.delete(key);
|
|
194
187
|
}
|
|
195
188
|
}
|
|
196
|
-
|
|
197
|
-
|
|
189
|
+
this.#metrics.recordRemovedObjects(pendingDeleted, 'pending');
|
|
190
|
+
this.#metrics.recordRemovedObjects(minedDeleted, 'mined');
|
|
198
191
|
});
|
|
199
|
-
return
|
|
192
|
+
return this.#archivedTxLimit ? poolDbTx.then(()=>this.archiveTxs(deletedTxs)) : poolDbTx;
|
|
200
193
|
}
|
|
201
194
|
/**
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
return vals.map(([hash, buffer]) => {
|
|
195
|
+
* Gets all the transactions stored in the pool.
|
|
196
|
+
* @returns Array of tx objects in the order they were added to the pool.
|
|
197
|
+
*/ async getAllTxs() {
|
|
198
|
+
const vals = await toArray(this.#txs.entriesAsync());
|
|
199
|
+
return vals.map(([hash, buffer])=>{
|
|
208
200
|
const tx = Tx.fromBuffer(buffer);
|
|
209
201
|
tx.setTxHash(TxHash.fromString(hash));
|
|
210
202
|
return tx;
|
|
211
203
|
});
|
|
212
204
|
}
|
|
213
205
|
/**
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
return vals.map(x => TxHash.fromString(x));
|
|
206
|
+
* Gets the hashes of all transactions currently in the tx pool.
|
|
207
|
+
* @returns An array of transaction hashes found in the tx pool.
|
|
208
|
+
*/ async getAllTxHashes() {
|
|
209
|
+
const vals = await toArray(this.#txs.keysAsync());
|
|
210
|
+
return vals.map((x)=>TxHash.fromString(x));
|
|
220
211
|
}
|
|
221
212
|
/**
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
await __classPrivateFieldGet(this, _AztecKVTxPool_archive, "f").transactionAsync(async () => {
|
|
213
|
+
* Archives a list of txs for future reference. The number of archived txs is limited by the specified archivedTxLimit.
|
|
214
|
+
* @param txs - The list of transactions to archive.
|
|
215
|
+
* @returns Empty promise.
|
|
216
|
+
*/ async archiveTxs(txs) {
|
|
217
|
+
const txHashes = await Promise.all(txs.map((tx)=>tx.getTxHash()));
|
|
218
|
+
await this.#archive.transactionAsync(async ()=>{
|
|
229
219
|
// calcualte the head and tail indices of the archived txs by insertion order.
|
|
230
|
-
let headIdx = ((await
|
|
231
|
-
|
|
232
|
-
|
|
220
|
+
let headIdx = ((await this.#archivedTxIndices.entriesAsync({
|
|
221
|
+
limit: 1,
|
|
222
|
+
reverse: true
|
|
223
|
+
}).next()).value?.[0] ?? -1) + 1;
|
|
224
|
+
let tailIdx = (await this.#archivedTxIndices.entriesAsync({
|
|
225
|
+
limit: 1
|
|
226
|
+
}).next()).value?.[0] ?? 0;
|
|
227
|
+
for(let i = 0; i < txs.length; i++){
|
|
233
228
|
const tx = txs[i];
|
|
234
|
-
while
|
|
235
|
-
const txHash = await
|
|
229
|
+
while(headIdx - tailIdx >= this.#archivedTxLimit){
|
|
230
|
+
const txHash = await this.#archivedTxIndices.getAsync(tailIdx);
|
|
236
231
|
if (txHash) {
|
|
237
|
-
await
|
|
238
|
-
await
|
|
232
|
+
await this.#archivedTxs.delete(txHash);
|
|
233
|
+
await this.#archivedTxIndices.delete(tailIdx);
|
|
239
234
|
}
|
|
240
235
|
tailIdx++;
|
|
241
236
|
}
|
|
242
237
|
const archivedTx = new Tx(tx.data, ClientIvcProof.empty(), tx.contractClassLogs, tx.enqueuedPublicFunctionCalls, tx.publicTeardownFunctionCall);
|
|
243
238
|
const txHash = txHashes[i].toString();
|
|
244
|
-
await
|
|
245
|
-
await
|
|
239
|
+
await this.#archivedTxs.set(txHash, archivedTx.toBuffer());
|
|
240
|
+
await this.#archivedTxIndices.set(headIdx, txHash);
|
|
246
241
|
headIdx++;
|
|
247
242
|
}
|
|
248
243
|
});
|
|
249
244
|
}
|
|
250
245
|
}
|
|
251
|
-
_AztecKVTxPool_store = new WeakMap(), _AztecKVTxPool_txs = new WeakMap(), _AztecKVTxPool_minedTxHashToBlock = new WeakMap(), _AztecKVTxPool_pendingTxPriorityToHash = new WeakMap(), _AztecKVTxPool_archive = new WeakMap(), _AztecKVTxPool_archivedTxs = new WeakMap(), _AztecKVTxPool_archivedTxIndices = new WeakMap(), _AztecKVTxPool_archivedTxLimit = new WeakMap(), _AztecKVTxPool_log = new WeakMap(), _AztecKVTxPool_metrics = new WeakMap();
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9henRlY19rdl90eF9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBNEJ4Qjs7Ozs7OztPQU9HO0lBQ0gsWUFDRSxLQUF3QixFQUN4QixPQUEwQixFQUMxQixZQUE2QixrQkFBa0IsRUFBRSxFQUNqRCxrQkFBMEIsQ0FBQyxFQUMzQixHQUFHLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQztRQXhDbkMsdUNBQTBCO1FBRTFCLDRFQUE0RTtRQUM1RSxxQ0FBb0M7UUFFcEMsOEZBQThGO1FBQzlGLG9EQUFtRDtRQUVuRCxzRkFBc0Y7UUFDdEYseURBQTZEO1FBRTdELGlDQUFpQztRQUNqQyx5Q0FBNEI7UUFFNUIsMENBQTBDO1FBQzFDLDZDQUE0QztRQUU1QyxzREFBc0Q7UUFDdEQsbURBQWtEO1FBRWxELGdDQUFnQztRQUNoQyxpREFBeUI7UUFFekIscUNBQWE7UUFFYix5Q0FBa0M7UUFpQmhDLHVCQUFBLElBQUksc0JBQVEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENB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
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export * from './tx_pool.js';
|
|
2
2
|
export * from './memory_tx_pool.js';
|
|
3
3
|
export * from './aztec_kv_tx_pool.js';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Tx, TxHash } from '@aztec/
|
|
1
|
+
import { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
2
2
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
-
import {
|
|
3
|
+
import type { TxPool } from './tx_pool.js';
|
|
4
4
|
/**
|
|
5
5
|
* In-memory implementation of the Transaction Pool.
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/memory_tx_pool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,cAAe,YAAW,MAAM;IAcoB,OAAO,CAAC,GAAG;IAb1E;;OAEG;IACH,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,UAAU,CAAc;IAEhC,OAAO,CAAC,OAAO,CAA0B;IAEzC;;;OAGG;gBACS,SAAS,GAAE,eAAsC,EAAU,GAAG,yCAA8B;IAOjG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ7C,gBAAgB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAM/C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAW5E;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAKpD,mBAAmB,IAAI,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAIrD;;;;OAIG;IACU,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7C;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;OAGG;IACI,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAIjC;;;OAGG;IACI,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAG3C"}
|