difftreelog
feat future pool increase option
in: master
9 files changed
.baedeker/forkless-data.jsonnetdiffbeforeafterboth--- a/.baedeker/forkless-data.jsonnet
+++ b/.baedeker/forkless-data.jsonnet
@@ -54,6 +54,9 @@
[name]: {
bin: $.bin,
wantedKeys: 'para',
+ extraArgs: [
+ '--increase-future-pool',
+ ],
},
for name in ['alice', 'bob']
},
.baedeker/node-only.jsonnetdiffbeforeafterboth--- a/.baedeker/node-only.jsonnet
+++ b/.baedeker/node-only.jsonnet
@@ -30,6 +30,9 @@
[name]: {
bin: $.bin,
wantedKeys: 'para',
+ extraArgs: [
+ '--increase-future-pool',
+ ],
},
for name in ['alice', 'bob']
},
.baedeker/xcm-opal-async-backing.jsonnetdiffbeforeafterboth1local2m = import 'baedeker-library/mixin/spec.libsonnet',3;45function(relay_spec)67local relay = {8 name: 'relay',9 bin: 'bin/polkadot',10 validatorIdAssignment: 'staking',11 spec: {Genesis:{12 chain: relay_spec,13 modify:: bdk.mixer([14 m.genericRelay($),15 {16 genesis+: {17 runtimeGenesis+: {18 runtime+: {19 configuration+: {20 config+: {21 async_backing_params+: {22 allowed_ancestry_len: 3,23 max_candidate_depth: 4,24 },25 scheduling_lookahead:5,26 max_validators_per_core:1,27 minimum_backing_votes:1,28 needed_approvals:1,29 on_demand_cores:5,30 },31 },32 },33 },34 },35 },36 ]),37 }},38 nodes: {39 [name]: {40 bin: $.bin,41 wantedKeys: 'relay',42 },43 for name in ['alice', 'bob', 'charlie', 'dave', 'eve']44 },45};4647local opal = {48 name: 'opal',49 bin: 'bin/unique',50 paraId: 1001,51 spec: {Genesis:{52 modify:: m.genericPara($),53 }},54 nodes: {55 [name]: {56 bin: $.bin,57 wantedKeys: 'para',58 },59 for name in ['alice', 'bob', 'charlie', 'dave', 'eve']60 },61};6263relay + {64 parachains: {65 [para.name]: para,66 for para in [opal]67 },68}1local2m = import 'baedeker-library/mixin/spec.libsonnet',3;45function(relay_spec)67local relay = {8 name: 'relay',9 bin: 'bin/polkadot',10 validatorIdAssignment: 'staking',11 spec: {Genesis:{12 chain: relay_spec,13 modify:: bdk.mixer([14 m.genericRelay($),15 {16 genesis+: {17 runtimeGenesis+: {18 runtime+: {19 configuration+: {20 config+: {21 async_backing_params+: {22 allowed_ancestry_len: 3,23 max_candidate_depth: 4,24 },25 scheduling_lookahead:5,26 max_validators_per_core:1,27 minimum_backing_votes:1,28 needed_approvals:1,29 on_demand_cores:5,30 },31 },32 },33 },34 },35 },36 ]),37 }},38 nodes: {39 [name]: {40 bin: $.bin,41 wantedKeys: 'relay',42 },43 for name in ['alice', 'bob', 'charlie', 'dave', 'eve']44 },45};4647local opal = {48 name: 'opal',49 bin: 'bin/unique',50 paraId: 1001,51 spec: {Genesis:{52 modify:: m.genericPara($),53 }},54 nodes: {55 [name]: {56 bin: $.bin,57 wantedKeys: 'para',58 extraArgs: [59 '--increase-future-pool',60 ],61 },62 for name in ['alice', 'bob', 'charlie', 'dave', 'eve']63 },64};6566relay + {67 parachains: {68 [para.name]: para,69 for para in [opal]70 },71}.baedeker/xcm-opal.jsonnetdiffbeforeafterboth--- a/.baedeker/xcm-opal.jsonnet
+++ b/.baedeker/xcm-opal.jsonnet
@@ -35,6 +35,9 @@
[name]: {
bin: $.bin,
wantedKeys: 'para',
+ extraArgs: [
+ '--increase-future-pool',
+ ],
},
for name in ['alice', 'bob']
},
.baedeker/xcm-quartz.jsonnetdiffbeforeafterboth--- a/.baedeker/xcm-quartz.jsonnet
+++ b/.baedeker/xcm-quartz.jsonnet
@@ -40,6 +40,9 @@
[name]: {
bin: $.bin,
wantedKeys: 'para',
+ extraArgs: [
+ '--increase-future-pool',
+ ],
},
for name in ['alice', 'bob']
},
.baedeker/xcm-unique.jsonnetdiffbeforeafterboth--- a/.baedeker/xcm-unique.jsonnet
+++ b/.baedeker/xcm-unique.jsonnet
@@ -41,6 +41,9 @@
[name]: {
bin: $.bin,
wantedKeys: 'para',
+ extraArgs: [
+ '--increase-future-pool',
+ ],
},
for name in ['alice', 'bob']
},
.github/workflows/node-only-update.ymldiffbeforeafterboth--- a/.github/workflows/node-only-update.yml
+++ b/.github/workflows/node-only-update.yml
@@ -161,7 +161,8 @@
inputs: |
.baedeker/node-only.jsonnet
snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}})
- ephemeral:snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}})
+ # extra_node_mixin due to mainnet unique node not supporting --increase-future-pool
+ ephemeral:snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}, extra_node_mixin={extraArgs: []})
- name: Run Parallel tests before Node Parachain upgrade
working-directory: ${{ matrix.mainnet_branch }}/tests
node/cli/src/cli.rsdiffbeforeafterboth--- a/node/cli/src/cli.rs
+++ b/node/cli/src/cli.rs
@@ -106,6 +106,15 @@
#[clap(long)]
pub no_hardware_benchmarks: bool,
+ /// Make future pool the same size as the ready pool.
+ ///
+ /// By default, future pool is factor 10 smaler than the ready pool, which causes transactions to be dropped as they
+ /// are retracted, without the ability to move them back to the ready pool after revalidation.
+ ///
+ /// This switch makes that transactions still can be dropped, but only when there is more transactions than the pool
+ /// size configured with `--pool-limit` (amount of txes), `--pool-kbytes` (size of all txes in kbytes).
+ pub increase_future_pool: bool,
+
/// Relaychain arguments
#[structopt(raw = true)]
pub relaychain_args: Vec<String>,
node/cli/src/command.rsdiffbeforeafterboth--- a/node/cli/src/command.rs
+++ b/node/cli/src/command.rs
@@ -458,7 +458,7 @@
let runner = cli.create_runner(&cli.run.normalize())?;
let collator_options = cli.run.collator_options();
- runner.run_node_until_exit(|config| async move {
+ runner.run_node_until_exit(|mut config| async move {
let hwbench = if !cli.no_hardware_benchmarks {
config.database.path().map(|database_path| {
let _ = std::fs::create_dir_all(database_path);
@@ -467,6 +467,10 @@
} else {
None
};
+
+ if cli.increase_future_pool {
+ config.transaction_pool.future = config.transaction_pool.ready.clone();
+ }
let extensions = chain_spec::Extensions::try_get(&*config.chain_spec);