From 05833de1ee7d57b077960406491654c6c1d78179 Mon Sep 17 00:00:00 2001 From: bengtlofgren Date: Thu, 25 May 2023 18:21:32 +0200 Subject: [PATCH 1/2] feat: switch tendermint references to cometbft --- .../unreleased/miscellaneous/1476-cometbft.md | 2 + .github/workflows/build-and-test-bridge.yml | 6 -- apps/src/bin/namada-node/cli.rs | 4 +- apps/src/lib/client/tx.rs | 4 +- apps/src/lib/client/utils.rs | 69 ++++++++----------- apps/src/lib/config/mod.rs | 22 +++--- apps/src/lib/node/ledger/mod.rs | 57 ++++++++------- apps/src/lib/node/ledger/shell/mod.rs | 7 +- apps/src/lib/node/ledger/tendermint_node.rs | 32 ++++----- tests/src/e2e/helpers.rs | 2 +- tests/src/e2e/ledger_tests.rs | 20 ++---- tests/src/e2e/setup.rs | 12 ++-- wasm/checksums.json | 37 +++++----- 13 files changed, 124 insertions(+), 150 deletions(-) create mode 100644 .changelog/unreleased/miscellaneous/1476-cometbft.md diff --git a/.changelog/unreleased/miscellaneous/1476-cometbft.md b/.changelog/unreleased/miscellaneous/1476-cometbft.md new file mode 100644 index 0000000000..a1a23432ac --- /dev/null +++ b/.changelog/unreleased/miscellaneous/1476-cometbft.md @@ -0,0 +1,2 @@ +- Switch from unreleased Tendermint fork to an official CometBFT release + v0.37.1. ([\#1476](https://github.com/anoma/namada/pull/1476)) \ No newline at end of file diff --git a/.github/workflows/build-and-test-bridge.yml b/.github/workflows/build-and-test-bridge.yml index 1f8399a3d4..1cdba9e6a7 100644 --- a/.github/workflows/build-and-test-bridge.yml +++ b/.github/workflows/build-and-test-bridge.yml @@ -440,12 +440,6 @@ jobs: run: | wget -q -O- https://github.com/rui314/mold/releases/download/v${{ matrix.mold_version }}/mold-${{ matrix.mold_version }}-x86_64-linux.tar.gz | tar -xz mv mold-${{ matrix.mold_version }}-x86_64-linux/bin/mold /usr/local/bin - - name: Download masp parameters - run: | - mkdir /home/runner/work/masp - curl -o /home/runner/work/masp/masp-spend.params -sLO https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-spend.params?raw=true - curl -o /home/runner/work/masp/masp-output.params -sLO https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-output.params?raw=true - curl -o /home/runner/work/masp/masp-convert.params -sLO https://github.com/anoma/masp-mpc/releases/download/namada-trusted-setup/masp-convert.params?raw=true - name: Build run: make build env: diff --git a/apps/src/bin/namada-node/cli.rs b/apps/src/bin/namada-node/cli.rs index 240e81f90c..c3c6ad3bab 100644 --- a/apps/src/bin/namada-node/cli.rs +++ b/apps/src/bin/namada-node/cli.rs @@ -8,14 +8,14 @@ use namada_apps::node::ledger; pub fn main() -> Result<()> { let (cmd, mut ctx) = cli::namada_node_cli()?; if let Some(mode) = ctx.global_args.mode.clone() { - ctx.config.ledger.tendermint.tendermint_mode = mode; + ctx.config.ledger.cometbft.tendermint_mode = mode; } match cmd { cmds::NamadaNode::Ledger(sub) => match sub { cmds::Ledger::Run(cmds::LedgerRun(args)) => { let wasm_dir = ctx.wasm_dir(); sleep_until(args.start_time); - ctx.config.ledger.tendermint.tx_index = args.tx_index; + ctx.config.ledger.cometbft.tx_index = args.tx_index; ledger::run(ctx.config.ledger, wasm_dir); } cmds::Ledger::RunUntil(cmds::LedgerRunUntil(args)) => { diff --git a/apps/src/lib/client/tx.rs b/apps/src/lib/client/tx.rs index 6bbf8a0ffa..d212dfa8c2 100644 --- a/apps/src/lib/client/tx.rs +++ b/apps/src/lib/client/tx.rs @@ -292,13 +292,13 @@ pub async fn submit_init_validator< crate::wallet::save(&ctx.wallet) .unwrap_or_else(|err| eprintln!("{}", err)); - let tendermint_home = ctx.config.ledger.tendermint_dir(); + let tendermint_home = ctx.config.ledger.cometbft_dir(); tendermint_node::write_validator_key(&tendermint_home, &consensus_key); tendermint_node::write_validator_state(tendermint_home); // Write Namada config stuff or figure out how to do the above // tendermint_node things two epochs in the future!!! - ctx.config.ledger.tendermint.tendermint_mode = + ctx.config.ledger.cometbft.tendermint_mode = TendermintMode::Validator; ctx.config .write( diff --git a/apps/src/lib/client/utils.rs b/apps/src/lib/client/utils.rs index 328c2b1a70..127443f99e 100644 --- a/apps/src/lib/client/utils.rs +++ b/apps/src/lib/client/utils.rs @@ -290,7 +290,7 @@ pub async fn join_network( }) .clone(); - let tm_home_dir = chain_dir.join("tendermint"); + let tm_home_dir = chain_dir.join("cometbft"); // Write consensus key to tendermint home tendermint_node::write_validator_key( @@ -324,26 +324,21 @@ pub async fn join_network( tokio::task::spawn_blocking(move || { let mut config = Config::load(&base_dir, &chain_id, None); - config.ledger.tendermint.tendermint_mode = - TendermintMode::Validator; + config.ledger.cometbft.tendermint_mode = TendermintMode::Validator; // Validator node should turned off peer exchange reactor - config.ledger.tendermint.p2p_pex = false; + config.ledger.cometbft.p2p_pex = false; // Remove self from persistent peers - config - .ledger - .tendermint - .p2p_persistent_peers - .retain(|peer| { - if let TendermintAddress::Tcp { - peer_id: Some(peer_id), - .. - } = peer - { - node_id != *peer_id - } else { - true - } - }); + config.ledger.cometbft.p2p_persistent_peers.retain(|peer| { + if let TendermintAddress::Tcp { + peer_id: Some(peer_id), + .. + } = peer + { + node_id != *peer_id + } else { + true + } + }); config.write(&base_dir, &chain_id, true).unwrap(); }) .await @@ -456,7 +451,7 @@ pub fn init_network( let validator_dir = accounts_dir.join(name); let chain_dir = validator_dir.join(&accounts_temp_dir); - let tm_home_dir = chain_dir.join("tendermint"); + let tm_home_dir = chain_dir.join("cometbft"); // Find or generate tendermint node key let node_pk = try_parse_public_key( @@ -744,7 +739,7 @@ pub fn init_network( // directories. config.ledger.shell.base_dir = config::DEFAULT_BASE_DIR.into(); // Add a ledger P2P persistent peers - config.ledger.tendermint.p2p_persistent_peers = persistent_peers + config.ledger.cometbft.p2p_persistent_peers = persistent_peers .iter() .enumerate() .filter_map(|(index, peer)| @@ -755,37 +750,32 @@ pub fn init_network( None }) .collect(); - config.ledger.tendermint.consensus_timeout_commit = + config.ledger.cometbft.consensus_timeout_commit = consensus_timeout_commit; - config.ledger.tendermint.p2p_allow_duplicate_ip = - allow_duplicate_ip; - config.ledger.tendermint.p2p_addr_book_strict = !localhost; + config.ledger.cometbft.p2p_allow_duplicate_ip = allow_duplicate_ip; + config.ledger.cometbft.p2p_addr_book_strict = !localhost; // Clear the net address from the config and use it to set ports let net_address = validator_config.net_address.take().unwrap(); let first_port = SocketAddr::from_str(&net_address).unwrap().port(); if !localhost { config .ledger - .tendermint + .cometbft .p2p_address .set_ip(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0))); } - config.ledger.tendermint.p2p_address.set_port(first_port); + config.ledger.cometbft.p2p_address.set_port(first_port); if !localhost { config .ledger - .tendermint + .cometbft .rpc_address .set_ip(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0))); } - config - .ledger - .tendermint - .rpc_address - .set_port(first_port + 1); + config.ledger.cometbft.rpc_address.set_port(first_port + 1); config.ledger.shell.ledger_address.set_port(first_port + 2); // Validator node should turned off peer exchange reactor - config.ledger.tendermint.p2p_pex = false; + config.ledger.cometbft.p2p_pex = false; config.write(&validator_dir, &chain_id, true).unwrap(); }, @@ -793,19 +783,18 @@ pub fn init_network( // Update the ledger config persistent peers and save it let mut config = Config::load(&global_args.base_dir, &chain_id, None); - config.ledger.tendermint.p2p_persistent_peers = persistent_peers; - config.ledger.tendermint.consensus_timeout_commit = - consensus_timeout_commit; - config.ledger.tendermint.p2p_allow_duplicate_ip = allow_duplicate_ip; + config.ledger.cometbft.p2p_persistent_peers = persistent_peers; + config.ledger.cometbft.consensus_timeout_commit = consensus_timeout_commit; + config.ledger.cometbft.p2p_allow_duplicate_ip = allow_duplicate_ip; // Open P2P address if !localhost { config .ledger - .tendermint + .cometbft .p2p_address .set_ip(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0))); } - config.ledger.tendermint.p2p_addr_book_strict = !localhost; + config.ledger.cometbft.p2p_addr_book_strict = !localhost; config.ledger.genesis_time = genesis.genesis_time.into(); config .write(&global_args.base_dir, &chain_id, true) diff --git a/apps/src/lib/config/mod.rs b/apps/src/lib/config/mod.rs index d2ad05ae73..e0313115f8 100644 --- a/apps/src/lib/config/mod.rs +++ b/apps/src/lib/config/mod.rs @@ -30,8 +30,8 @@ pub const DEFAULT_WASM_DIR: &str = "wasm"; pub const DEFAULT_WASM_CHECKSUMS_FILE: &str = "checksums.json"; /// Chain-specific Namada configuration. Nested in chain dirs. pub const FILENAME: &str = "config.toml"; -/// Chain-specific Tendermint configuration. Nested in chain dirs. -pub const TENDERMINT_DIR: &str = "tendermint"; +/// Chain-specific CometBFT configuration. Nested in chain dirs. +pub const COMETBFT_DIR: &str = "cometbft"; /// Chain-specific Namada DB. Nested in chain dirs. pub const DB_DIR: &str = "db"; @@ -95,7 +95,7 @@ pub struct Ledger { pub genesis_time: Rfc3339String, pub chain_id: ChainId, pub shell: Shell, - pub tendermint: Tendermint, + pub cometbft: Tendermint, } #[derive(Clone, Debug, Serialize, Deserialize)] @@ -116,8 +116,8 @@ pub struct Shell { pub storage_read_past_height_limit: Option, /// Use the [`Ledger::db_dir()`] method to read the value. db_dir: PathBuf, - /// Use the [`Ledger::tendermint_dir()`] method to read the value. - tendermint_dir: PathBuf, + /// Use the [`Ledger::cometbft_dir()`] method to read the value. + cometbft_dir: PathBuf, /// An optional action to take when a given blockheight is reached. pub action_at_height: Option, } @@ -173,10 +173,10 @@ impl Ledger { // Default corresponds to 1 hour of past blocks at 1 block/sec storage_read_past_height_limit: Some(3600), db_dir: DB_DIR.into(), - tendermint_dir: TENDERMINT_DIR.into(), + cometbft_dir: COMETBFT_DIR.into(), action_at_height: None, }, - tendermint: Tendermint { + cometbft: Tendermint { rpc_address: SocketAddr::new( IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 26657, @@ -222,8 +222,8 @@ impl Ledger { } /// Get the directory path to Tendermint - pub fn tendermint_dir(&self) -> PathBuf { - self.shell.tendermint_dir(&self.chain_id) + pub fn cometbft_dir(&self) -> PathBuf { + self.shell.cometbft_dir(&self.chain_id) } } @@ -234,10 +234,10 @@ impl Shell { } /// Get the directory path to Tendermint - pub fn tendermint_dir(&self, chain_id: &ChainId) -> PathBuf { + pub fn cometbft_dir(&self, chain_id: &ChainId) -> PathBuf { self.base_dir .join(chain_id.as_str()) - .join(&self.tendermint_dir) + .join(&self.cometbft_dir) } } diff --git a/apps/src/lib/node/ledger/mod.rs b/apps/src/lib/node/ledger/mod.rs index 39a8460ac2..10beac63ce 100644 --- a/apps/src/lib/node/ledger/mod.rs +++ b/apps/src/lib/node/ledger/mod.rs @@ -408,7 +408,7 @@ fn start_abci_broadcaster_shell( task::JoinHandle<()>, thread::JoinHandle<()>, ) { - let rpc_address = config.tendermint.rpc_address.to_string(); + let rpc_address = config.cometbft.rpc_address.to_string(); let RunAuxSetup { vp_wasm_compilation_cache, tx_wasm_compilation_cache, @@ -421,37 +421,36 @@ fn start_abci_broadcaster_shell( tokio::sync::mpsc::unbounded_channel(); // Start broadcaster - let broadcaster = if matches!( - config.tendermint.tendermint_mode, - TendermintMode::Validator - ) { - let (bc_abort_send, bc_abort_recv) = - tokio::sync::oneshot::channel::<()>(); - - spawner - .spawn_abortable("Broadcaster", move |aborter| async move { - // Construct a service for broadcasting protocol txs from the - // ledger - let mut broadcaster = - Broadcaster::new(&rpc_address, broadcaster_receiver); - broadcaster.run(bc_abort_recv).await; - tracing::info!("Broadcaster is no longer running."); - - drop(aborter); - }) - .with_cleanup(async move { - let _ = bc_abort_send.send(()); - }) - } else { - spawn_dummy_task(()) - }; + let broadcaster = + if matches!(config.cometbft.tendermint_mode, TendermintMode::Validator) + { + let (bc_abort_send, bc_abort_recv) = + tokio::sync::oneshot::channel::<()>(); + + spawner + .spawn_abortable("Broadcaster", move |aborter| async move { + // Construct a service for broadcasting protocol txs from + // the ledger + let mut broadcaster = + Broadcaster::new(&rpc_address, broadcaster_receiver); + broadcaster.run(bc_abort_recv).await; + tracing::info!("Broadcaster is no longer running."); + + drop(aborter); + }) + .with_cleanup(async move { + let _ = bc_abort_send.send(()); + }) + } else { + spawn_dummy_task(()) + }; // Setup DB cache, it must outlive the DB instance that's in the shell let db_cache = rocksdb::Cache::new_lru_cache(db_block_cache_size_bytes as usize); // Construct our ABCI application. - let tendermint_mode = config.tendermint.tendermint_mode.clone(); + let tendermint_mode = config.cometbft.tendermint_mode.clone(); let ledger_address = config.shell.ledger_address; #[cfg(not(feature = "dev"))] let genesis = genesis::genesis(&config.shell.base_dir, &config.chain_id); @@ -566,17 +565,17 @@ fn start_tendermint( spawner: &mut AbortableSpawner, config: &config::Ledger, ) -> task::JoinHandle> { - let tendermint_dir = config.tendermint_dir(); + let tendermint_dir = config.cometbft_dir(); let chain_id = config.chain_id.clone(); let ledger_address = config.shell.ledger_address.to_string(); - let tendermint_config = config.tendermint.clone(); + let tendermint_config = config.cometbft.clone(); let genesis_time = config .genesis_time .clone() .try_into() .expect("expected RFC3339 genesis_time"); - // Channel for signalling shut down to Tendermint process + // Channel for signalling shut down to cometbft process let (tm_abort_send, tm_abort_recv) = tokio::sync::oneshot::channel::>(); diff --git a/apps/src/lib/node/ledger/shell/mod.rs b/apps/src/lib/node/ledger/shell/mod.rs index 457d988e93..2f5d443e16 100644 --- a/apps/src/lib/node/ledger/shell/mod.rs +++ b/apps/src/lib/node/ledger/shell/mod.rs @@ -186,8 +186,7 @@ pub fn reset(config: config::Ledger) -> Result<()> { res => res.map_err(Error::RemoveDB)?, }; // reset Tendermint state - tendermint_node::reset(config.tendermint_dir()) - .map_err(Error::Tendermint)?; + tendermint_node::reset(config.cometbft_dir()).map_err(Error::Tendermint)?; Ok(()) } @@ -195,7 +194,7 @@ pub fn rollback(config: config::Ledger) -> Result<()> { // Rollback Tendermint state tracing::info!("Rollback Tendermint state"); let tendermint_block_height = - tendermint_node::rollback(config.tendermint_dir()) + tendermint_node::rollback(config.cometbft_dir()) .map_err(Error::Tendermint)?; // Rollback Namada state @@ -295,7 +294,7 @@ where let chain_id = config.chain_id; let db_path = config.shell.db_dir(&chain_id); let base_dir = config.shell.base_dir; - let mode = config.tendermint.tendermint_mode; + let mode = config.cometbft.tendermint_mode; let storage_read_past_height_limit = config.shell.storage_read_past_height_limit; if !Path::new(&base_dir).is_dir() { diff --git a/apps/src/lib/node/ledger/tendermint_node.rs b/apps/src/lib/node/ledger/tendermint_node.rs index a69021e83d..fb0fc2748c 100644 --- a/apps/src/lib/node/ledger/tendermint_node.rs +++ b/apps/src/lib/node/ledger/tendermint_node.rs @@ -27,25 +27,25 @@ use crate::facade::tendermint_config::{ }; /// Env. var to output Tendermint log to stdout -pub const ENV_VAR_TM_STDOUT: &str = "NAMADA_TM_STDOUT"; +pub const ENV_VAR_TM_STDOUT: &str = "NAMADA_CMT_STDOUT"; #[derive(Error, Debug)] pub enum Error { - #[error("Failed to initialize Tendermint: {0}")] + #[error("Failed to initialize CometBFT: {0}")] Init(std::io::Error), - #[error("Failed to load Tendermint config file: {0}")] + #[error("Failed to load CometBFT config file: {0}")] LoadConfig(TendermintError), - #[error("Failed to open Tendermint config for writing: {0}")] + #[error("Failed to open CometBFT config for writing: {0}")] OpenWriteConfig(std::io::Error), - #[error("Failed to serialize Tendermint config TOML to string: {0}")] + #[error("Failed to serialize CometBFT config TOML to string: {0}")] ConfigSerializeToml(toml::ser::Error), - #[error("Failed to write Tendermint config: {0}")] + #[error("Failed to write CometBFT config: {0}")] WriteConfig(std::io::Error), - #[error("Failed to start up Tendermint node: {0}")] + #[error("Failed to start up CometBFT node: {0}")] StartUp(std::io::Error), #[error("{0}")] Runtime(String), - #[error("Failed to rollback tendermint state: {0}")] + #[error("Failed to rollback CometBFT state: {0}")] RollBack(String), #[error("Failed to convert to String: {0:?}")] TendermintPath(std::ffi::OsString), @@ -53,17 +53,17 @@ pub enum Error { pub type Result = std::result::Result; -/// Check if the TENDERMINT env var has been set and use that as the -/// location of the tendermint binary. Otherwise, assume it is on path +/// Check if the COMET env var has been set and use that as the +/// location of the COMET binary. Otherwise, assume it is on path /// /// Returns an error if the env var is defined but not a valid Unicode. fn from_env_or_default() -> Result { - match std::env::var("TENDERMINT") { + match std::env::var("COMETBFT") { Ok(path) => { - tracing::info!("Using tendermint path from env variable: {}", path); + tracing::info!("Using CometBFT path from env variable: {}", path); Ok(path) } - Err(std::env::VarError::NotPresent) => Ok(String::from("tendermint")), + Err(std::env::VarError::NotPresent) => Ok(String::from("cometbft")), Err(std::env::VarError::NotUnicode(msg)) => { Err(Error::TendermintPath(msg)) } @@ -138,7 +138,7 @@ pub async fn run( .kill_on_drop(true) .spawn() .map_err(Error::StartUp)?; - tracing::info!("Tendermint node started"); + tracing::info!("CometBFT node started"); tokio::select! { status = tendermint_node.wait() => { @@ -486,8 +486,8 @@ async fn write_tm_genesis( ) }); let data = serde_json::to_vec_pretty(&genesis) - .expect("Couldn't encode the Tendermint genesis file"); + .expect("Couldn't encode the CometBFT genesis file"); file.write_all(&data[..]) .await - .expect("Couldn't write the Tendermint genesis file"); + .expect("Couldn't write the CometBFT genesis file"); } diff --git a/tests/src/e2e/helpers.rs b/tests/src/e2e/helpers.rs index 3eff517d1d..11bd2f62e8 100644 --- a/tests/src/e2e/helpers.rs +++ b/tests/src/e2e/helpers.rs @@ -99,7 +99,7 @@ pub fn get_actor_rpc(test: &Test, who: &Who) -> String { }; let config = Config::load(base_dir, &test.net.chain_id, Some(tendermint_mode)); - config.ledger.tendermint.rpc_address.to_string() + config.ledger.cometbft.rpc_address.to_string() } /// Get the public key of the validator diff --git a/tests/src/e2e/ledger_tests.rs b/tests/src/e2e/ledger_tests.rs index 5029bea080..bcfc145776 100644 --- a/tests/src/e2e/ledger_tests.rs +++ b/tests/src/e2e/ledger_tests.rs @@ -182,7 +182,7 @@ fn test_namada_shuts_down_if_tendermint_dies() -> Result<()> { // 2. Kill the tendermint node sleep(1); Command::new("pkill") - .args(["tendermint"]) + .args(["cometbft"]) .spawn() .expect("Test failed") .wait() @@ -3959,12 +3959,8 @@ fn test_genesis_validators() -> Result<()> { // `join-network` use the defaults let update_config = |ix: u8, mut config: Config| { let first_port = net_address_port_0 + 6 * (ix as u16 + 1); - config.ledger.tendermint.p2p_address.set_port(first_port); - config - .ledger - .tendermint - .rpc_address - .set_port(first_port + 1); + config.ledger.cometbft.p2p_address.set_port(first_port); + config.ledger.cometbft.rpc_address.set_port(first_port + 1); config.ledger.shell.ledger_address.set_port(first_port + 2); config }; @@ -4148,12 +4144,8 @@ fn double_signing_gets_slashed() -> Result<()> { let update_config = |ix: u8, mut config: Config| { let first_port = net_address_port_0 + 6 * (ix as u16 + 1); - config.ledger.tendermint.p2p_address.set_port(first_port); - config - .ledger - .tendermint - .rpc_address - .set_port(first_port + 1); + config.ledger.cometbft.p2p_address.set_port(first_port); + config.ledger.cometbft.rpc_address.set_port(first_port + 1); config.ledger.shell.ledger_address.set_port(first_port + 2); config }; @@ -4175,7 +4167,7 @@ fn double_signing_gets_slashed() -> Result<()> { let node_sk = key::common::SecretKey::Ed25519(node_sk); let tm_home_dir = validator_0_base_dir_copy .join(test.net.chain_id.as_str()) - .join("tendermint"); + .join("cometbft"); let _node_pk = client::utils::write_tendermint_node_key(&tm_home_dir, node_sk); diff --git a/tests/src/e2e/setup.rs b/tests/src/e2e/setup.rs index c6a8eb8959..317a41b402 100644 --- a/tests/src/e2e/setup.rs +++ b/tests/src/e2e/setup.rs @@ -427,16 +427,16 @@ impl Test { pub fn working_dir() -> PathBuf { let working_dir = fs::canonicalize("..").unwrap(); - // Check that tendermint is either on $PATH or `TENDERMINT` env var is set - if std::env::var("TENDERMINT").is_err() { + // Check that cometbft is either on $PATH or `COMETBFT` env var is set + if std::env::var("COMETBFT").is_err() { Command::new("which") - .arg("tendermint") + .arg("cometbft") .assert() .try_success() .expect( - "The env variable TENDERMINT must be set and point to a local \ - build of the tendermint abci++ branch, or the tendermint \ - binary must be on PATH", + "The env variable COMETBFT must be set and point to a local \ + build of the cometbft abci++ branch, or the cometbft binary \ + must be on PATH", ); } working_dir diff --git a/wasm/checksums.json b/wasm/checksums.json index 4c277ea699..544d711eb0 100644 --- a/wasm/checksums.json +++ b/wasm/checksums.json @@ -1,21 +1,20 @@ { - "tx_bond.wasm": "tx_bond.5edc70343a861ad0c364a31b5a496fa4512d7ad4a3bf70fb19e8ad1fdd752c2e.wasm", - "tx_change_validator_commission.wasm": "tx_change_validator_commission.cdac7616f73bcdb994cea7d3cb439b21895495aa4f680fc405f28ba6c6715e77.wasm", - "tx_ibc.wasm": "tx_ibc.bd3750ef3c6d60e170ed21da08d240630614947af9d3db27f8bcebce283e3f83.wasm", - "tx_init_account.wasm": "tx_init_account.5c718152efc0ea1f47ed9ff059d760b9574c509848aa6f7be491b183ddde1021.wasm", - "tx_init_proposal.wasm": "tx_init_proposal.8d00a82a694748bdba75da76b7c3bed8d18885be9e235e7d45579ad66e27300f.wasm", - "tx_init_validator.wasm": "tx_init_validator.bd9f044807b4f70d54c1259e9db6c51cd6f9c8c5db7ab3a8516555d1fa1dd328.wasm", - "tx_reveal_pk.wasm": "tx_reveal_pk.37aaa9063e03f5eff3a6cd74e625b2fb54027418ecec143de05217a16ec29049.wasm", - "tx_transfer.wasm": "tx_transfer.bcca7fead00b79477fa94bef362f05e945bb325780463bed88b5468ee3e91b63.wasm", - "tx_unbond.wasm": "tx_unbond.e43b2ed891cd2733855d78d55f0ae34b66208c36114c7b0239093cd338712c4b.wasm", - "tx_unjail_validator.wasm": "tx_unjail_validator.9100bf186b4cafe98cc9d2dfa3775a6e698395023a42cab63b153a3ecc51d89d.wasm", - "tx_update_vp.wasm": "tx_update_vp.0c2af0693061733c0bdbdec19952d92eb805d55505de7ffdef62fdf1d6e60011.wasm", - "tx_vote_proposal.wasm": "tx_vote_proposal.beb1c659c66cf02869c2269ee0f09f229372b1b9f56cbc858437401929f1fcb5.wasm", - "tx_withdraw.wasm": "tx_withdraw.8be0862edd903662a12b4d2f76e8568bfba24541352f905c565dcad16f7c19d5.wasm", - "vp_implicit.wasm": "vp_implicit.edc3c4165e6202b8b90f19abe23f3cf5205d90c5772eed47702b895f9bddcc72.wasm", - "vp_masp.wasm": "vp_masp.08352c4c1b5dfa641d40e6de48486c335516841e44733c459cdcca2874e616b7.wasm", - "vp_testnet_faucet.wasm": "vp_testnet_faucet.a02d139ee9ec06a3937ad02c54c60eb5bfe7ee856a3887603089a31aa849a87a.wasm", - "vp_token.wasm": "vp_token.fd63f1c85c28f531074a6a2dfa655fbb3a259f7398644f591858991dbee83a50.wasm", - "vp_user.wasm": "vp_user.6825e6936d14710d93002e27962935dfe60b010dce17bb7ca004c26670476b4a.wasm", - "vp_validator.wasm": "vp_validator.fcc27c29217b9d0ee64adb47bd0c0ec9355d854641eb680e7f24f7f94a63ae03.wasm" + "tx_bond.wasm": "tx_bond.1ac4fc75655415a08a628bc07133d0141ade4086253b4f96673e9eb7da45726a.wasm", + "tx_change_validator_commission.wasm": "tx_change_validator_commission.4dcd692eeb90658506d2eb284c7da90c08bb8d2a625f914573e99efebbfb94ed.wasm", + "tx_ibc.wasm": "tx_ibc.729f25abd2e77152eeec492c01a3d79db56c0ddb9ff235cb12590037387f4aa1.wasm", + "tx_init_account.wasm": "tx_init_account.53ef514d4f5eb4cb4a8a83894be08833777e4eb3aec7c7edbd147991b7d275f4.wasm", + "tx_init_proposal.wasm": "tx_init_proposal.008bd96153886cdeff1ad68fc0978d35ad7a4edc19becf71d8f8c3e5d1f4b1a5.wasm", + "tx_init_validator.wasm": "tx_init_validator.d87634e95f47c4ed43806a23f2cdcea5e3c8c964987ab4059013a531a3cf91ae.wasm", + "tx_reveal_pk.wasm": "tx_reveal_pk.0b1b66ec606b0ce85717e8a026872ef7f6edb936510d60abf0126d2936e34c5a.wasm", + "tx_transfer.wasm": "tx_transfer.57f62e5edc9ac962add374599cccf9de2d5b8341cfcbc6c11021f6947253da9a.wasm", + "tx_unbond.wasm": "tx_unbond.30f386ba0b79017c060e9e828f61b2f25590999c3e321ea33f06a7bcf2f0f63e.wasm", + "tx_update_vp.wasm": "tx_update_vp.24b8501c7df4ee482fbab8411a5e8666d36267302783998e6dd3ccc92a2eb802.wasm", + "tx_vote_proposal.wasm": "tx_vote_proposal.e38b9a1e138aba5482e4429522218172a1c5ef91279e7b2c213fe2749c9220e7.wasm", + "tx_withdraw.wasm": "tx_withdraw.2d54fbffe9ab316cf63122ffe2f6c9b6f43e2da0145a5ea75dd99d5e86018fb0.wasm", + "vp_implicit.wasm": "vp_implicit.2057db599475eb1dc96e5b40c9f39eec8748f92bfd45713e85abea9c5b9a3021.wasm", + "vp_masp.wasm": "vp_masp.3f1f0b555faaf9260b19b04e8277fc52889a6cb0f8bd225b08c4777dba23a65d.wasm", + "vp_testnet_faucet.wasm": "vp_testnet_faucet.05c6758273d11980f03bf58af4edeacb935a22c89aa915c9767825924b5bd00f.wasm", + "vp_token.wasm": "vp_token.61e54faa78931c6fd3cd4ef3d03495d735ed1052037f3cc395079d34db63de16.wasm", + "vp_user.wasm": "vp_user.f46b6efec59564fe82aa7e8fd1cfa503f4c86ae881b3704ee6080998fa0313dc.wasm", + "vp_validator.wasm": "vp_validator.78a51f16ad2ab2dcc10c77c66b31d3bd7f5e2c0d2181b1ef4bf52049f9469ab2.wasm" } \ No newline at end of file From 0e8db33740c5dfbf9f5b48169f3f1e8c42ac6969 Mon Sep 17 00:00:00 2001 From: Gianmarco Fraccaroli Date: Thu, 15 Jun 2023 13:54:34 +0200 Subject: [PATCH 2/2] ci: restore ci files --- .github/workflows/build-and-test.yml | 4 +++ .github/workflows/build-tendermint.yml | 37 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 .github/workflows/build-tendermint.yml diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index a853417750..2caca2b4cd 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -153,6 +153,7 @@ jobs: suffix: '' cache_key: namada cache_version: v2 + tendermint_artifact: tendermint-unreleased-v0.1.4-abciplus env: CARGO_INCREMENTAL: 0 @@ -378,12 +379,14 @@ jobs: index: 0 cache_key: namada cache_version: v2 + tendermint_artifact: tendermint-unreleased-v0.1.4-abciplus wait_for: namada-release (ubuntu-20.04, 1.7.0, ABCI Release build, namada-e2e-release, v2) - name: e2e suffix: '' index: 1 cache_key: namada cache_version: v2 + tendermint_artifact: tendermint-unreleased-v0.1.4-abciplus wait_for: namada-release (ubuntu-20.04, 1.7.0, ABCI Release build, namada-e2e-release, v2) env: @@ -512,6 +515,7 @@ jobs: shasum /home/runner/work/masp-params/*.params python3 .github/workflows/scripts/schedule-e2e.py env: + NAMADA_TENDERMINT_WEBSOCKET_TIMEOUT: 20 NAMADA_E2E_USE_PREBUILT_BINARIES: "true" NAMADA_E2E_KEEP_TEMP: "true" NAMADA_TM_STDOUT: "false" diff --git a/.github/workflows/build-tendermint.yml b/.github/workflows/build-tendermint.yml new file mode 100644 index 0000000000..d7977a4b3b --- /dev/null +++ b/.github/workflows/build-tendermint.yml @@ -0,0 +1,37 @@ +name: Build tendermint binaries + +on: + schedule: + - cron: "0 0 * * *" + workflow_dispatch: + +permissions: + id-token: write + contents: read + +env: + GIT_LFS_SKIP_SMUDGE: 1 + + +jobs: + tendermint: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-20.04] + make: + - name: tendermint-unreleased + repository: heliaxdev/tendermint + tendermint_version: v0.1.4-abciplus + + steps: + - name: Build ${{ matrix.make.name }} + run: | + git clone https://github.com/${{ matrix.make.repository }}.git && cd tendermint + git checkout ${{ matrix.make.tendermint_version }} && make build + - name: Upload ${{ matrix.make.name }} binary + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.make.name }}-${{ matrix.make.tendermint_version }} + path: tendermint/build/tendermint