diff --git a/.changelog/unreleased/improvements/1278-opt_tx_index.md b/.changelog/unreleased/improvements/1278-opt_tx_index.md new file mode 100644 index 0000000000..efbb2905ab --- /dev/null +++ b/.changelog/unreleased/improvements/1278-opt_tx_index.md @@ -0,0 +1,2 @@ +- Disable Tendermint tx_index as default + ([#1278](https://github.com/anoma/namada/issues/1278)) \ No newline at end of file diff --git a/apps/src/bin/namada-node/cli.rs b/apps/src/bin/namada-node/cli.rs index 1c5520671d..240e81f90c 100644 --- a/apps/src/bin/namada-node/cli.rs +++ b/apps/src/bin/namada-node/cli.rs @@ -14,7 +14,8 @@ pub fn main() -> Result<()> { cmds::NamadaNode::Ledger(sub) => match sub { cmds::Ledger::Run(cmds::LedgerRun(args)) => { let wasm_dir = ctx.wasm_dir(); - sleep_until(args.0); + sleep_until(args.start_time); + ctx.config.ledger.tendermint.tx_index = args.tx_index; ledger::run(ctx.config.ledger, wasm_dir); } cmds::Ledger::RunUntil(cmds::LedgerRunUntil(args)) => { diff --git a/apps/src/lib/cli.rs b/apps/src/lib/cli.rs index cdff4bd8b3..b5dd83b4aa 100644 --- a/apps/src/lib/cli.rs +++ b/apps/src/lib/cli.rs @@ -780,7 +780,10 @@ pub mod cmds { .or(rollback) .or(run_until) // The `run` command is the default if no sub-command given - .or(Some(Self::Run(LedgerRun(args::LedgerRun(None))))) + .or(Some(Self::Run(LedgerRun(args::LedgerRun { + start_time: None, + tx_index: false, + })))) }) } @@ -1732,6 +1735,7 @@ pub mod args { const STORAGE_KEY: Arg = arg("storage-key"); const SUB_PREFIX: ArgOpt = arg_opt("sub-prefix"); const SUSPEND_ACTION: ArgFlag = flag("suspend"); + const TENDERMINT_TX_INDEX: ArgFlag = flag("tx-index"); const TIMEOUT_HEIGHT: ArgOpt = arg_opt("timeout-height"); const TIMEOUT_SEC_OFFSET: ArgOpt = arg_opt("timeout-sec-offset"); const TOKEN_OPT: ArgOpt = TOKEN.opt(); @@ -1802,12 +1806,19 @@ pub mod args { } #[derive(Clone, Debug)] - pub struct LedgerRun(pub Option); + pub struct LedgerRun { + pub start_time: Option, + pub tx_index: bool, + } impl Args for LedgerRun { fn parse(matches: &ArgMatches) -> Self { - let time = NAMADA_START_TIME.parse(matches); - Self(time) + let start_time = NAMADA_START_TIME.parse(matches); + let tx_index = TENDERMINT_TX_INDEX.parse(matches); + Self { + start_time, + tx_index, + } } fn def(app: App) -> App { @@ -1819,6 +1830,11 @@ pub mod args { equivalent:\n2023-01-20T12:12:12Z\n2023-01-20 \ 12:12:12Z\n2023- 01-20T12: 12:12Z", )) + .arg( + TENDERMINT_TX_INDEX + .def() + .about("Enable Tendermint tx indexing."), + ) } } diff --git a/apps/src/lib/config/mod.rs b/apps/src/lib/config/mod.rs index 8c1275718f..15ff0b395f 100644 --- a/apps/src/lib/config/mod.rs +++ b/apps/src/lib/config/mod.rs @@ -142,6 +142,8 @@ pub struct Tendermint { pub instrumentation_prometheus: bool, pub instrumentation_prometheus_listen_addr: SocketAddr, pub instrumentation_namespace: String, + /// Toggle to enable tx indexing + pub tx_index: bool, } impl Ledger { @@ -189,6 +191,7 @@ impl Ledger { 26661, ), instrumentation_namespace: "namadan_tm".to_string(), + tx_index: false, }, } } diff --git a/apps/src/lib/node/ledger/tendermint_node.rs b/apps/src/lib/node/ledger/tendermint_node.rs index 62eba26cba..63c9cd40c2 100644 --- a/apps/src/lib/node/ledger/tendermint_node.rs +++ b/apps/src/lib/node/ledger/tendermint_node.rs @@ -23,7 +23,7 @@ use crate::config; use crate::facade::tendermint::{block, Genesis}; use crate::facade::tendermint_config::net::Address as TendermintAddress; use crate::facade::tendermint_config::{ - Error as TendermintError, TendermintConfig, + Error as TendermintError, TendermintConfig, TxIndexConfig, TxIndexer, }; /// Env. var to output Tendermint log to stdout @@ -396,6 +396,15 @@ async fn update_tendermint_config( tendermint_config.consensus_timeout_commit; } + let indexer = if tendermint_config.tx_index { + TxIndexer::Kv + } else { + TxIndexer::Null + }; + #[cfg(feature = "abcipp")] + let indexer = [indexer]; + config.tx_index = TxIndexConfig { indexer }; + let mut file = OpenOptions::new() .write(true) .truncate(true) diff --git a/tests/src/e2e/ibc_tests.rs b/tests/src/e2e/ibc_tests.rs index 2fa2d4dafd..896a5fff9a 100644 --- a/tests/src/e2e/ibc_tests.rs +++ b/tests/src/e2e/ibc_tests.rs @@ -92,12 +92,22 @@ fn run_ledger_ibc() -> Result<()> { let (test_a, test_b) = setup::two_single_node_nets()?; // Run Chain A - let mut ledger_a = - run_as!(test_a, Who::Validator(0), Bin::Node, &["ledger"], Some(40))?; + let mut ledger_a = run_as!( + test_a, + Who::Validator(0), + Bin::Node, + &["ledger", "run", "--tx-index"], + Some(40) + )?; ledger_a.exp_string("Namada ledger node started")?; // Run Chain B - let mut ledger_b = - run_as!(test_b, Who::Validator(0), Bin::Node, &["ledger"], Some(40))?; + let mut ledger_b = run_as!( + test_b, + Who::Validator(0), + Bin::Node, + &["ledger", "run", "--tx-index"], + Some(40) + )?; ledger_b.exp_string("Namada ledger node started")?; ledger_a.exp_string("This node is a validator")?; ledger_b.exp_string("This node is a validator")?;