@aztec-labs/p2p 6.0.0-rc.1 → 6.0.0-rc.2
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 +4 -2
- package/dest/client/factory.d.ts +3 -3
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +6 -6
- package/dest/client/interface.d.ts +1 -1
- package/dest/client/p2p_client.d.ts +1 -1
- package/dest/client/p2p_client.js +1 -1
- package/dest/config.d.ts +11 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +16 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +15 -3
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.js +15 -0
- 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 +21 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +6 -2
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +9 -0
- package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +10 -8
- package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +22 -11
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +6 -2
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +2 -1
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +11 -5
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +111 -44
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +3 -24
- package/dest/msg_validators/epoch_cache_lookup.d.ts +18 -0
- package/dest/msg_validators/epoch_cache_lookup.d.ts.map +1 -0
- package/dest/msg_validators/epoch_cache_lookup.js +29 -0
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +1 -1
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/proposal_validator.js +80 -82
- 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 +4 -3
- package/dest/msg_validators/tx_validator/factory.d.ts +40 -11
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +36 -5
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +18 -10
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.js +37 -27
- package/dest/services/discv5/discV5_service.d.ts +2 -2
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +3 -1
- package/dest/services/libp2p/libp2p_service.d.ts +18 -9
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +127 -29
- 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 +14 -0
- package/dest/services/tx_provider.d.ts +1 -1
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +3 -0
- package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +3 -1
- package/dest/test-helpers/mock-pubsub.js +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +3 -1
- package/dest/test-helpers/testbench-utils.d.ts +4 -2
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
- package/dest/test-helpers/testbench-utils.js +6 -0
- package/dest/testbench/p2p_client_testbench_worker.js +6 -2
- package/package.json +14 -14
- package/src/bootstrap/bootstrap.ts +3 -2
- package/src/client/factory.ts +7 -7
- package/src/client/interface.ts +1 -1
- package/src/client/p2p_client.ts +1 -1
- package/src/config.ts +11 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +25 -0
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +31 -0
- package/src/mem_pools/tx_pool_v2/README.md +1 -1
- package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +13 -1
- package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +17 -9
- package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +6 -1
- package/src/mem_pools/tx_pool_v2/interfaces.ts +10 -4
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +95 -40
- package/src/msg_validators/attestation_validator/attestation_validator.ts +3 -23
- package/src/msg_validators/epoch_cache_lookup.ts +33 -0
- package/src/msg_validators/proposal_validator/README.md +3 -3
- package/src/msg_validators/proposal_validator/proposal_validator.ts +78 -77
- package/src/msg_validators/tx_validator/README.md +12 -8
- package/src/msg_validators/tx_validator/data_validator.ts +4 -3
- package/src/msg_validators/tx_validator/factory.ts +60 -14
- package/src/msg_validators/tx_validator/gas_validator.ts +46 -34
- package/src/services/discv5/discV5_service.ts +2 -1
- package/src/services/libp2p/libp2p_service.ts +138 -34
- package/src/services/peer-manager/peer_manager.ts +14 -0
- package/src/services/tx_provider.ts +3 -0
- package/src/test-helpers/make-test-p2p-clients.ts +5 -1
- package/src/test-helpers/mock-pubsub.ts +3 -3
- package/src/test-helpers/reqresp-nodes.ts +5 -1
- package/src/test-helpers/testbench-utils.ts +13 -1
- package/src/testbench/p2p_client_testbench_worker.ts +10 -2
|
@@ -177,6 +177,9 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
177
177
|
...missingTxHashes
|
|
178
178
|
].map(TxHash.fromString)));
|
|
179
179
|
if (moreTxsFromPool.length > 0) {
|
|
180
|
+
for (const tx of moreTxsFromPool){
|
|
181
|
+
missingTxHashes.delete(tx.getTxHash().toString());
|
|
182
|
+
}
|
|
180
183
|
this.instrumentation.incTxsFromMempool(moreTxsFromPool.length);
|
|
181
184
|
this.log.debug(`Retrieved ${moreTxsFromPool.length} txs from pool retry for block proposal (${missingTxHashes.size} pending)`, {
|
|
182
185
|
...blockInfo,
|
|
@@ -60,4 +60,4 @@ export declare function makeTestP2PClients(numberOfPeers: number, testConfig: Ma
|
|
|
60
60
|
enr: string;
|
|
61
61
|
}[]>;
|
|
62
62
|
export declare function startTestP2PClients(clients: P2PClient[]): Promise<void>;
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFLdkUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUluRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJdEUsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQWtDLE1BQU0sa0JBQWtCLENBQUM7QUFHN0YsTUFBTSxXQUFXLHdCQUF3QjtJQUN2QyxtQkFBbUIsRUFBRSxlQUFlLENBQUM7SUFDckMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUNyQixjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztJQUN2QyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUM3QixhQUFhLEVBQUUsU0FBUyxDQUFDO0lBQ3pCLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixvQkFBb0IsQ0FBQyxFQUFFLG9CQUFvQixDQUFDO0NBQzdDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQix5QkFBeUIsQ0FDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixJQUFJLEVBQUUsTUFBTSxFQUNaLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFDZixPQUFPLEVBQUUsd0JBQXdCLHNCQU1sQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsRUFDRSxrQkFBeUIsRUFDekIsYUFBYSxFQUNiLGtCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLE1BQXdDLEVBQ3pDLEVBQUUsd0JBQXdCLHNCQWdENUI7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBdUMzRztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3Qjs7Ozs7S0FnQ25HO0FBRUQsd0JBQXNCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBRzdEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAInF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,kBAAkB,CAAC;AAG7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,wBAAwB,sBAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,EACE,kBAAyB,EACzB,aAAa,EACb,kBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAwC,EACzC,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAInF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,kBAAkB,CAAC;AAG7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,wBAAwB,sBAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,EACE,kBAAyB,EACzB,aAAa,EACb,kBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAwC,EACzC,EAAE,wBAAwB,sBAgD5B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAuC3G;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAgCnG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAG7D"}
|
|
@@ -50,7 +50,9 @@ import { AlwaysFalseCircuitVerifier, AlwaysTrueCircuitVerifier } from './reqresp
|
|
|
50
50
|
const proofVerifier = alwaysTrueVerifier ? new AlwaysTrueCircuitVerifier() : new AlwaysFalseCircuitVerifier();
|
|
51
51
|
const kvStore = await openTmpStore('test');
|
|
52
52
|
const client = await createP2PClient(config, l2BlockSource, proofVerifier, mockWorldState, mockEpochCache, {
|
|
53
|
-
|
|
53
|
+
getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
54
|
+
getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
55
|
+
getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
|
|
54
56
|
}, 'test-p2p-client', undefined, undefined, {
|
|
55
57
|
txPool: mockTxPool,
|
|
56
58
|
attestationPool: mockAttestationPool,
|
|
@@ -15,7 +15,7 @@ import { GossipSubEvent } from '../types/index.js';
|
|
|
15
15
|
const peerManager = new DummyPeerManager(peerId, network);
|
|
16
16
|
const reqresp = new MockReqResp(peerId, network);
|
|
17
17
|
const peerDiscoveryService = new DummyPeerDiscoveryService();
|
|
18
|
-
const service = new LibP2PService(config, libp2p, peerDiscoveryService, reqresp, peerManager, deps.mempools, deps.l2BlockSource, deps.epochCache, deps.proofVerifier, deps.worldStateSynchronizer, deps.
|
|
18
|
+
const service = new LibP2PService(config, libp2p, peerDiscoveryService, reqresp, peerManager, deps.mempools, deps.l2BlockSource, deps.epochCache, deps.proofVerifier, deps.worldStateSynchronizer, deps.nextBlockMinFeesProvider, deps.telemetry, deps.logger);
|
|
19
19
|
return Promise.resolve(service);
|
|
20
20
|
};
|
|
21
21
|
}
|
|
@@ -65,4 +65,4 @@ export declare function createBootstrapNodeFromPrivateKey(privateKey: string, po
|
|
|
65
65
|
*/
|
|
66
66
|
export declare function getBootstrapNodeEnr(privateKey: string, port: number): Promise<SignableENR>;
|
|
67
67
|
export declare function createBootstrapNode(port: number, telemetry?: TelemetryClient, chainConfig?: ChainConfig): Promise<BootstrapNode>;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzFELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBTXhGLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQThDLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFdkUsT0FBTyxFQUVMLEtBQUssMEJBQTBCLEVBQy9CLEtB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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,yBAAyB,CAAC;AAK1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,8BAA8B,CAAC;AAMxF,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,EAAE,KAAK,cAAc,EAA8C,MAAM,cAAc,CAAC;AAC/F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAEvE,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EAClC,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,CAyCrB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,sBAAe,EAC5B,QAAQ,EAAE,aAAa,GAAG,kBAAkB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,eAAe,EAC1B,IAAI,GAAE,MAAU,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,GAAE,WAA8B,
|
|
1
|
+
{"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,9 @@ import { getVersions } from '../versioning.js';
|
|
|
113
113
|
p2pNode.services.pubsub.score.params.appSpecificWeight = APP_SPECIFIC_WEIGHT;
|
|
114
114
|
p2pNode.services.pubsub.score.params.appSpecificScore = (peerId)=>peerManager.shouldDisableP2PGossip(peerId) ? -Infinity : peerManager.getPeerScore(peerId);
|
|
115
115
|
return new LibP2PService(config, p2pNode, discoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, {
|
|
116
|
-
|
|
116
|
+
getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
117
|
+
getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
118
|
+
getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
|
|
117
119
|
}, telemetry);
|
|
118
120
|
}
|
|
119
121
|
// Mock sub protocol handlers
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EpochCacheInterface } from '@aztec-labs/epoch-cache';
|
|
2
|
-
import type { CheckpointProposalHash } from '@aztec-labs/foundation/branded-types';
|
|
2
|
+
import type { BlockProposalHash, CheckpointProposalHash } from '@aztec-labs/foundation/branded-types';
|
|
3
3
|
import { SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
4
4
|
import type { Logger } from '@aztec-labs/foundation/log';
|
|
5
5
|
import type { L2Block, L2BlockId } from '@aztec-labs/stdlib/block';
|
|
@@ -82,6 +82,8 @@ export declare class InMemoryAttestationPool {
|
|
|
82
82
|
getCheckpointAttestationsForSlotAndProposal(_slot: SlotNumber, _proposalPayloadHash: CheckpointProposalHash): Promise<CheckpointAttestation[]>;
|
|
83
83
|
tryAddCheckpointAttestation(_attestation: CheckpointAttestation): Promise<TryAddResult>;
|
|
84
84
|
hasBlockProposalsForSlot(_slot: SlotNumber): Promise<boolean>;
|
|
85
|
+
hasBlockProposal(_slot: SlotNumber, _indexWithinCheckpoint: number, _payloadHash: BlockProposalHash): Promise<boolean>;
|
|
86
|
+
hasCheckpointProposal(_slot: SlotNumber, _payloadHash: CheckpointProposalHash): Promise<boolean>;
|
|
85
87
|
isEmpty(): Promise<boolean>;
|
|
86
88
|
resetState(): void;
|
|
87
89
|
}
|
|
@@ -161,4 +163,4 @@ export declare function filterTxsByDistribution(allTxs: Tx[], peerIndex: number,
|
|
|
161
163
|
* Ensures we return before the outer timeout while maintaining a minimum.
|
|
162
164
|
*/
|
|
163
165
|
export declare function calculateInternalTimeout(timeoutMs: number): number;
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGJlbmNoLXV0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL3Rlc3RiZW5jaC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEcsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHdEU7Ozs7R0FJRztBQUNILHFCQUFhLGNBQWUsU0FBUSxZQUFhLFlBQVcsUUFBUTtJQUNsRSxPQUFPLENBQUMsU0FBUyxDQUF5QjtJQUMxQyxPQUFPLENBQUMsTUFBTSxDQUF1QjtJQUVyQyxTQUFTLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testbench-utils.d.ts","sourceRoot":"","sources":["../../src/test-helpers/testbench-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"testbench-utils.d.ts","sourceRoot":"","sources":["../../src/test-helpers/testbench-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -241,6 +241,12 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
|
|
|
241
241
|
hasBlockProposalsForSlot(_slot) {
|
|
242
242
|
return Promise.resolve(false);
|
|
243
243
|
}
|
|
244
|
+
hasBlockProposal(_slot, _indexWithinCheckpoint, _payloadHash) {
|
|
245
|
+
return Promise.resolve(false);
|
|
246
|
+
}
|
|
247
|
+
hasCheckpointProposal(_slot, _payloadHash) {
|
|
248
|
+
return Promise.resolve(false);
|
|
249
|
+
}
|
|
244
250
|
isEmpty() {
|
|
245
251
|
return Promise.resolve(this.proposals.size === 0 && this.checkpoints.size === 0);
|
|
246
252
|
}
|
|
@@ -51,7 +51,9 @@ class TestLibP2PService extends LibP2PService {
|
|
|
51
51
|
gossipMessageCount = 0;
|
|
52
52
|
constructor(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:test:libp2p_service'), disableTxValidation = true){
|
|
53
53
|
super(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, {
|
|
54
|
-
|
|
54
|
+
getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
55
|
+
getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
56
|
+
getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
|
|
55
57
|
}, telemetry, logger);
|
|
56
58
|
this.disableTxValidation = disableTxValidation;
|
|
57
59
|
}
|
|
@@ -280,7 +282,9 @@ process.on('message', async (msg)=>{
|
|
|
280
282
|
logger: workerLogger
|
|
281
283
|
};
|
|
282
284
|
const client = await createP2PClient(config, l2BlockSource, proofVerifier, worldState, epochCache, {
|
|
283
|
-
|
|
285
|
+
getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
286
|
+
getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
|
|
287
|
+
getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
|
|
284
288
|
}, 'test-p2p-bench-worker', undefined, telemetry, deps, await l2BlockSource.getInitialHeader().hash());
|
|
285
289
|
const testService = new TestLibP2PService(config, client.p2pService.node, client.p2pService.peerDiscoveryService, client.p2pService.reqresp, client.p2pService.peerManager, client.p2pService.mempools, client.p2pService.archiver, epochCache, proofVerifier, worldState, telemetry, workerLogger, true);
|
|
286
290
|
client.p2pService = testService;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec-labs/p2p",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -67,18 +67,18 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec-labs/archiver": "6.0.0-rc.
|
|
71
|
-
"@aztec-labs/constants": "6.0.0-rc.
|
|
72
|
-
"@aztec-labs/epoch-cache": "6.0.0-rc.
|
|
73
|
-
"@aztec-labs/ethereum": "6.0.0-rc.
|
|
74
|
-
"@aztec-labs/foundation": "6.0.0-rc.
|
|
75
|
-
"@aztec-labs/kv-store": "6.0.0-rc.
|
|
76
|
-
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.
|
|
77
|
-
"@aztec-labs/protocol-contracts": "6.0.0-rc.
|
|
78
|
-
"@aztec-labs/simulator": "6.0.0-rc.
|
|
79
|
-
"@aztec-labs/standard-contracts": "6.0.0-rc.
|
|
80
|
-
"@aztec-labs/stdlib": "6.0.0-rc.
|
|
81
|
-
"@aztec-labs/telemetry-client": "6.0.0-rc.
|
|
70
|
+
"@aztec-labs/archiver": "6.0.0-rc.2",
|
|
71
|
+
"@aztec-labs/constants": "6.0.0-rc.2",
|
|
72
|
+
"@aztec-labs/epoch-cache": "6.0.0-rc.2",
|
|
73
|
+
"@aztec-labs/ethereum": "6.0.0-rc.2",
|
|
74
|
+
"@aztec-labs/foundation": "6.0.0-rc.2",
|
|
75
|
+
"@aztec-labs/kv-store": "6.0.0-rc.2",
|
|
76
|
+
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.2",
|
|
77
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.2",
|
|
78
|
+
"@aztec-labs/simulator": "6.0.0-rc.2",
|
|
79
|
+
"@aztec-labs/standard-contracts": "6.0.0-rc.2",
|
|
80
|
+
"@aztec-labs/stdlib": "6.0.0-rc.2",
|
|
81
|
+
"@aztec-labs/telemetry-client": "6.0.0-rc.2",
|
|
82
82
|
"@chainsafe/libp2p-gossipsub": "13.0.0",
|
|
83
83
|
"@chainsafe/libp2p-noise": "^15.0.0",
|
|
84
84
|
"@chainsafe/libp2p-yamux": "^6.0.2",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"tslib": "^2.4.0"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
|
-
"@aztec-labs/world-state": "6.0.0-rc.
|
|
107
|
+
"@aztec-labs/world-state": "6.0.0-rc.2",
|
|
108
108
|
"@jest/globals": "^30.0.0",
|
|
109
109
|
"@types/jest": "^30.0.0",
|
|
110
110
|
"@types/node": "^22.15.17",
|
|
@@ -7,7 +7,7 @@ import { type Multiaddr, multiaddr } from '@multiformats/multiaddr';
|
|
|
7
7
|
import { Discv5, type Discv5EventEmitter } from '@nethermindeth/discv5';
|
|
8
8
|
import { ENR, type SignableENR } from '@nethermindeth/enr';
|
|
9
9
|
|
|
10
|
-
import type
|
|
10
|
+
import { type BootnodeConfig, DISCV5_RATE_LIMITER_OPTS } from '../config.js';
|
|
11
11
|
import { createBootnodeENRandPeerId } from '../enr/generate-enr.js';
|
|
12
12
|
import { convertToMultiaddr, getPeerIdPrivateKey, getPublicIp } from '../util.js';
|
|
13
13
|
|
|
@@ -53,7 +53,7 @@ export class BootstrapNode implements P2PBootstrapApi {
|
|
|
53
53
|
config.p2pBroadcastPort = p2pPort;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const listenAddrUdp = multiaddr(convertToMultiaddr(listenAddress,
|
|
56
|
+
const listenAddrUdp = multiaddr(convertToMultiaddr(listenAddress, p2pPort, 'udp'));
|
|
57
57
|
|
|
58
58
|
const peerIdPrivateKey = await getPeerIdPrivateKey(config, this.store, this.logger);
|
|
59
59
|
|
|
@@ -77,6 +77,7 @@ export class BootstrapNode implements P2PBootstrapApi {
|
|
|
77
77
|
allowUnverifiedSessions: true,
|
|
78
78
|
},
|
|
79
79
|
metricsRegistry,
|
|
80
|
+
rateLimiterOpts: DISCV5_RATE_LIMITER_OPTS,
|
|
80
81
|
});
|
|
81
82
|
|
|
82
83
|
this.node.on('multiaddrUpdated', (addr: Multiaddr) => {
|
package/src/client/factory.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { AztecLMDBStoreV2, createStore } from '@aztec-labs/kv-store/lmdb-v2';
|
|
|
7
7
|
import type { BlockHash, L2BlockSource } from '@aztec-labs/stdlib/block';
|
|
8
8
|
import type { ChainConfig } from '@aztec-labs/stdlib/config';
|
|
9
9
|
import type { ContractDataSource } from '@aztec-labs/stdlib/contract';
|
|
10
|
-
import { type
|
|
10
|
+
import { type TxAdmissionMinFeesProvider, getNetworkTxGasLimits } from '@aztec-labs/stdlib/gas';
|
|
11
11
|
import type {
|
|
12
12
|
AztecNode,
|
|
13
13
|
ClientProtocolCircuitVerifier,
|
|
@@ -63,7 +63,7 @@ export async function createP2PClient(
|
|
|
63
63
|
proofVerifier: ClientProtocolCircuitVerifier,
|
|
64
64
|
worldStateSynchronizer: WorldStateSynchronizer,
|
|
65
65
|
epochCache: EpochCacheInterface,
|
|
66
|
-
|
|
66
|
+
nextBlockMinFeesProvider: TxAdmissionMinFeesProvider,
|
|
67
67
|
packageVersion: string,
|
|
68
68
|
dateProvider: DateProvider = new DateProvider(),
|
|
69
69
|
telemetry: TelemetryClient = getTelemetryClient(),
|
|
@@ -121,7 +121,7 @@ export async function createP2PClient(
|
|
|
121
121
|
const currentBlockNumber = await archiver.getBlockNumber();
|
|
122
122
|
const { ts: nextSlotTimestamp } = epochCache.getEpochAndSlotInNextL1Slot();
|
|
123
123
|
const l1Constants = await archiver.getL1Constants();
|
|
124
|
-
const gasFees = await
|
|
124
|
+
const gasFees = await nextBlockMinFeesProvider.getAdmissionMinFees();
|
|
125
125
|
const networkTxGasLimits = getNetworkTxGasLimits(config, l1Constants);
|
|
126
126
|
return createTxValidatorForTransactionsEnteringPendingTxPool(
|
|
127
127
|
worldStateSynchronizer,
|
|
@@ -134,7 +134,7 @@ export async function createP2PClient(
|
|
|
134
134
|
gasFees,
|
|
135
135
|
);
|
|
136
136
|
},
|
|
137
|
-
|
|
137
|
+
nextBlockMinFeesProvider,
|
|
138
138
|
},
|
|
139
139
|
telemetry,
|
|
140
140
|
{
|
|
@@ -162,7 +162,7 @@ export async function createP2PClient(
|
|
|
162
162
|
proofVerifier,
|
|
163
163
|
worldStateSynchronizer,
|
|
164
164
|
epochCache,
|
|
165
|
-
|
|
165
|
+
nextBlockMinFeesProvider,
|
|
166
166
|
store,
|
|
167
167
|
peerStore,
|
|
168
168
|
mempools,
|
|
@@ -247,7 +247,7 @@ async function createP2PService(
|
|
|
247
247
|
proofVerifier: ClientProtocolCircuitVerifier,
|
|
248
248
|
worldStateSynchronizer: WorldStateSynchronizer,
|
|
249
249
|
epochCache: EpochCacheInterface,
|
|
250
|
-
|
|
250
|
+
nextBlockMinFeesProvider: TxAdmissionMinFeesProvider,
|
|
251
251
|
store: AztecAsyncKVStore,
|
|
252
252
|
peerStore: AztecLMDBStoreV2,
|
|
253
253
|
mempools: MemPools,
|
|
@@ -276,7 +276,7 @@ async function createP2PService(
|
|
|
276
276
|
proofVerifier,
|
|
277
277
|
worldStateSynchronizer,
|
|
278
278
|
peerStore,
|
|
279
|
-
|
|
279
|
+
nextBlockMinFeesProvider,
|
|
280
280
|
telemetry,
|
|
281
281
|
logger: logger.createChild(`libp2p_service`),
|
|
282
282
|
txValidationCache,
|
package/src/client/interface.ts
CHANGED
|
@@ -124,7 +124,7 @@ export type P2P = P2PClient & {
|
|
|
124
124
|
sendTx(tx: Tx): Promise<void>;
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
|
-
* Handles failed transaction execution by removing txs from the pool.
|
|
127
|
+
* Handles failed transaction execution by removing txs from the pool. Txs already mined are left in place.
|
|
128
128
|
* @param txHashes - Hashes of the transactions that failed execution.
|
|
129
129
|
**/
|
|
130
130
|
handleFailedExecution(txHashes: TxHash[]): Promise<void>;
|
package/src/client/p2p_client.ts
CHANGED
|
@@ -576,7 +576,7 @@ export class P2PClient extends WithTracer implements P2P {
|
|
|
576
576
|
}
|
|
577
577
|
|
|
578
578
|
/**
|
|
579
|
-
* Handles failed transaction execution by removing txs from the pool.
|
|
579
|
+
* Handles failed transaction execution by removing txs from the pool. Txs already mined are left in place.
|
|
580
580
|
* @param txHashes - Hashes of the transactions that failed execution.
|
|
581
581
|
**/
|
|
582
582
|
public async handleFailedExecution(txHashes: TxHash[]): Promise<void> {
|
package/src/config.ts
CHANGED
|
@@ -281,6 +281,17 @@ export const DEFAULT_PUBLIC_IP_SERVICES: string[] = [
|
|
|
281
281
|
'https://icanhazip.com/',
|
|
282
282
|
];
|
|
283
283
|
|
|
284
|
+
// Bound pre-auth packet decode per source IP so one host cannot force unbounded decoding
|
|
285
|
+
// on the discovery path. Responses to our own queries are exempt via the expected-response
|
|
286
|
+
// bypass. Limits sit well above any honest unsolicited burst, since an over-limit source is
|
|
287
|
+
// banned for the process lifetime.
|
|
288
|
+
export const DISCV5_RATE_LIMITER_OPTS = {
|
|
289
|
+
// ~5 packets/sec steady per source IP, burst 300.
|
|
290
|
+
byIPQuota: { replenishAllEvery: 60_000, maxTokens: 300 },
|
|
291
|
+
// ~100 packets/sec steady aggregate, burst 6000; backstop against many-IP floods.
|
|
292
|
+
globalQuota: { replenishAllEvery: 60_000, maxTokens: 6_000 },
|
|
293
|
+
};
|
|
294
|
+
|
|
284
295
|
export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
|
|
285
296
|
validateMaxTxsPerBlock: {
|
|
286
297
|
env: 'VALIDATOR_MAX_TX_PER_BLOCK',
|
|
@@ -50,6 +50,8 @@ export type AttestationPoolApi = Pick<
|
|
|
50
50
|
| 'getCheckpointAttestationsForSlot'
|
|
51
51
|
| 'getCheckpointAttestationsForSlotAndProposal'
|
|
52
52
|
| 'hasBlockProposalsForSlot'
|
|
53
|
+
| 'hasBlockProposal'
|
|
54
|
+
| 'hasCheckpointProposal'
|
|
53
55
|
| 'isEmpty'
|
|
54
56
|
>;
|
|
55
57
|
|
|
@@ -214,6 +216,29 @@ export class AttestationPool {
|
|
|
214
216
|
return values.includes(value);
|
|
215
217
|
}
|
|
216
218
|
|
|
219
|
+
/**
|
|
220
|
+
* True if the exact signed payload hash for a block proposal at (slot, index) is already stored,
|
|
221
|
+
* i.e. this exact content was already accepted. A different payload hash at the same position
|
|
222
|
+
* returns false, so equivocation still reaches tryAddBlockProposal.
|
|
223
|
+
*/
|
|
224
|
+
public async hasBlockProposal(
|
|
225
|
+
slot: number,
|
|
226
|
+
indexWithinCheckpoint: number,
|
|
227
|
+
payloadHash: BlockProposalHash,
|
|
228
|
+
): Promise<boolean> {
|
|
229
|
+
const positionKey = this.getBlockPositionKey(slot, indexWithinCheckpoint);
|
|
230
|
+
return await this.multimapHasValue(this.blockProposalHashesPerSlotAndIndex, positionKey, payloadHash);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* True if the exact signed payload hash for a checkpoint proposal at `slot` is already stored. A
|
|
235
|
+
* different payload hash at the same slot returns false, so equivocation still reaches
|
|
236
|
+
* tryAddCheckpointProposal.
|
|
237
|
+
*/
|
|
238
|
+
public async hasCheckpointProposal(slot: number, payloadHash: CheckpointProposalHash): Promise<boolean> {
|
|
239
|
+
return await this.multimapHasValue(this.checkpointProposalHashesPerSlot, slot, payloadHash);
|
|
240
|
+
}
|
|
241
|
+
|
|
217
242
|
/**
|
|
218
243
|
* Attempts to add a block proposal to the pool.
|
|
219
244
|
*
|
|
@@ -286,6 +286,24 @@ export function describeAttestationPool(getAttestationPool: () => AttestationPoo
|
|
|
286
286
|
expect(retrievedProposal!.getSender()?.toString()).toBe(signers[0].address.toString());
|
|
287
287
|
});
|
|
288
288
|
|
|
289
|
+
it('hasBlockProposal is true only for the exact stored payload hash at a position', async () => {
|
|
290
|
+
const slotNumber = 420;
|
|
291
|
+
const proposal = await mockBlockProposalForPool(signers[0], slotNumber);
|
|
292
|
+
const other = await mockBlockProposalForPool(signers[1], slotNumber);
|
|
293
|
+
expect(proposal.getPayloadHash()).not.toEqual(other.getPayloadHash());
|
|
294
|
+
|
|
295
|
+
await ap.tryAddBlockProposal(proposal);
|
|
296
|
+
|
|
297
|
+
// Exact accepted content is recognized...
|
|
298
|
+
expect(
|
|
299
|
+
await ap.hasBlockProposal(proposal.slotNumber, proposal.indexWithinCheckpoint, proposal.getPayloadHash()),
|
|
300
|
+
).toBe(true);
|
|
301
|
+
// ...but a different payload hash at the same position is not, so equivocation still takes the full path.
|
|
302
|
+
expect(await ap.hasBlockProposal(other.slotNumber, other.indexWithinCheckpoint, other.getPayloadHash())).toBe(
|
|
303
|
+
false,
|
|
304
|
+
);
|
|
305
|
+
});
|
|
306
|
+
|
|
289
307
|
it('should retain an exact duplicate block proposal only once', async () => {
|
|
290
308
|
const slotNumber = 420;
|
|
291
309
|
const proposal = await mockBlockProposalForPool(signers[0], slotNumber);
|
|
@@ -412,6 +430,19 @@ export function describeAttestationPool(getAttestationPool: () => AttestationPoo
|
|
|
412
430
|
expect(retrievedProposal!.getSender()?.toString()).toBe(signers[0].address.toString());
|
|
413
431
|
});
|
|
414
432
|
|
|
433
|
+
it('hasCheckpointProposal is true only for the exact stored payload hash at a slot', async () => {
|
|
434
|
+
const slotNumber = 420;
|
|
435
|
+
const proposal = await mockCheckpointProposalForPool(signers[0], slotNumber);
|
|
436
|
+
const other = await mockCheckpointProposalForPool(signers[1], slotNumber);
|
|
437
|
+
expect(proposal.getPayloadHash()).not.toEqual(other.getPayloadHash());
|
|
438
|
+
|
|
439
|
+
await ap.tryAddCheckpointProposal(proposal);
|
|
440
|
+
|
|
441
|
+
expect(await ap.hasCheckpointProposal(proposal.slotNumber, proposal.getPayloadHash())).toBe(true);
|
|
442
|
+
// A different payload hash at the same slot is not stored, so equivocation still takes the full path.
|
|
443
|
+
expect(await ap.hasCheckpointProposal(other.slotNumber, other.getPayloadHash())).toBe(false);
|
|
444
|
+
});
|
|
445
|
+
|
|
415
446
|
it('should treat distinct payloads at the same slot as equivocations (count = 2)', async () => {
|
|
416
447
|
const slotNumber = 420;
|
|
417
448
|
// Two proposals at the same slot but with different headers (distinct payloads).
|
|
@@ -90,7 +90,7 @@ State is derived by TxPoolIndices:
|
|
|
90
90
|
|
|
91
91
|
## Soft Deletion
|
|
92
92
|
|
|
93
|
-
Deleted transactions are kept in the database for a grace period before being permanently removed. There are two soft-deletion mechanisms:
|
|
93
|
+
Deleted transactions are kept in the database for a grace period before being permanently removed. A soft-deleted tx that shows up in a block proposal or a mined block is resurrected from its retained data, with its metadata rebuilt as on hydration: `protectTxs` re-adds it as protected and `handleMinedBlock` re-adds it as mined. There are two soft-deletion mechanisms:
|
|
94
94
|
|
|
95
95
|
### Slot-Based Soft Deletion
|
|
96
96
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlockNumber } from '@aztec-labs/foundation/branded-types';
|
|
1
|
+
import type { BlockNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
2
2
|
import type { Logger } from '@aztec-labs/foundation/log';
|
|
3
3
|
import type { BlockHeader } from '@aztec-labs/stdlib/tx';
|
|
4
4
|
|
|
@@ -133,6 +133,18 @@ export class EvictionManager {
|
|
|
133
133
|
await this.runPostEventRules(context);
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
+
/**
|
|
137
|
+
* Runs post-event eviction when the pool is prepared for a new slot.
|
|
138
|
+
*/
|
|
139
|
+
async evictAfterSlotPrepared(slotNumber: SlotNumber): Promise<void> {
|
|
140
|
+
const context: EvictionContext = {
|
|
141
|
+
event: EvictionEvent.SLOT_PREPARED,
|
|
142
|
+
slotNumber,
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
await this.runPostEventRules(context);
|
|
146
|
+
}
|
|
147
|
+
|
|
136
148
|
/**
|
|
137
149
|
* Updates configuration for all rules.
|
|
138
150
|
*/
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
import { createLogger } from '@aztec-labs/foundation/log';
|
|
2
|
-
import type {
|
|
2
|
+
import type { NextBlockMinFeesProvider } from '@aztec-labs/stdlib/gas';
|
|
3
3
|
|
|
4
4
|
import type { EvictionContext, EvictionResult, EvictionRule, PoolOperations } from './interfaces.js';
|
|
5
5
|
import { EvictionEvent } from './interfaces.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Eviction rule that removes transactions whose maxFeesPerGas no longer meets
|
|
9
|
-
* the
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Eviction rule that removes transactions whose maxFeesPerGas no longer meets the fee the next block will
|
|
9
|
+
* charge. Only triggers on SLOT_PREPARED events: the next-block fee is stable within a slot, so sweeping once
|
|
10
|
+
* per slot preparation covers the same ground as rescanning after every mined block.
|
|
11
|
+
*
|
|
12
|
+
* Skips the sweep when that fee cannot be resolved, rather than evicting against a stand-in price that would
|
|
13
|
+
* drop transactions which are in fact payable.
|
|
12
14
|
*/
|
|
13
15
|
export class InsufficientFeePerGasEvictionRule implements EvictionRule {
|
|
14
16
|
public readonly name = 'InsufficientFeePerGas';
|
|
15
17
|
|
|
16
18
|
private log = createLogger('p2p:tx_pool_v2:insufficient_fee_per_gas_eviction_rule');
|
|
17
19
|
|
|
18
|
-
constructor(private
|
|
20
|
+
constructor(private nextBlockMinFeesProvider: NextBlockMinFeesProvider) {}
|
|
19
21
|
|
|
20
22
|
async evict(context: EvictionContext, pool: PoolOperations): Promise<EvictionResult> {
|
|
21
|
-
if (context.event !== EvictionEvent.
|
|
23
|
+
if (context.event !== EvictionEvent.SLOT_PREPARED) {
|
|
22
24
|
return {
|
|
23
25
|
reason: 'insufficient_fee_per_gas',
|
|
24
26
|
success: true,
|
|
@@ -27,7 +29,12 @@ export class InsufficientFeePerGasEvictionRule implements EvictionRule {
|
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
try {
|
|
30
|
-
const gasFees = await this.
|
|
32
|
+
const gasFees = await this.nextBlockMinFeesProvider.getNextBlockMinFees();
|
|
33
|
+
if (!gasFees) {
|
|
34
|
+
this.log.verbose(`Skipping the insufficient-fee sweep: cannot resolve the next block's min fee`);
|
|
35
|
+
return { reason: 'insufficient_fee_per_gas', success: true, txsEvicted: [] };
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
const txsToEvict: string[] = [];
|
|
32
39
|
const pendingTxs = pool.getPendingTxs();
|
|
33
40
|
|
|
@@ -43,8 +50,9 @@ export class InsufficientFeePerGasEvictionRule implements EvictionRule {
|
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
if (txsToEvict.length > 0) {
|
|
46
|
-
this.log.info(`Evicted ${txsToEvict.length} txs with insufficient fee per gas
|
|
53
|
+
this.log.info(`Evicted ${txsToEvict.length} txs with insufficient fee per gas preparing for a new slot`, {
|
|
47
54
|
txsToEvict,
|
|
55
|
+
slotNumber: context.slotNumber,
|
|
48
56
|
});
|
|
49
57
|
await pool.deleteTxs(txsToEvict, this.name);
|
|
50
58
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlockNumber } from '@aztec-labs/foundation/branded-types';
|
|
1
|
+
import type { BlockNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
2
2
|
import type { BlockHeader, TxHash } from '@aztec-labs/stdlib/tx';
|
|
3
3
|
|
|
4
4
|
import type { TxMetaData } from '../tx_metadata.js';
|
|
@@ -10,6 +10,7 @@ export const EvictionEvent = {
|
|
|
10
10
|
TXS_ADDED: 'txs_added',
|
|
11
11
|
BLOCK_MINED: 'block_mined',
|
|
12
12
|
CHAIN_PRUNED: 'chain_pruned',
|
|
13
|
+
SLOT_PREPARED: 'slot_prepared',
|
|
13
14
|
} as const;
|
|
14
15
|
|
|
15
16
|
export type EvictionEventType = (typeof EvictionEvent)[keyof typeof EvictionEvent];
|
|
@@ -32,6 +33,10 @@ export type EvictionContext =
|
|
|
32
33
|
block: BlockHeader;
|
|
33
34
|
newNullifiers: string[];
|
|
34
35
|
feePayers: string[];
|
|
36
|
+
}
|
|
37
|
+
| {
|
|
38
|
+
event: typeof EvictionEvent.SLOT_PREPARED;
|
|
39
|
+
slotNumber: SlotNumber;
|
|
35
40
|
};
|
|
36
41
|
|
|
37
42
|
/**
|