Hello and thank you for this kind of project!
When I try to run it, I always hit the same problem while generating auxiliary information: assertion failed: i < n
Repro steps
Steps are a bit different from what you have in README, but it should be logically same. Using steps in README I wasn't able to replicate.
git clone https://github.com/m2ux/tss_demo.git
cd tss_demo
cargo build --release
then, in fast succession run:
cargo run --release bootstrap
cargo run --release committee --party-id 1
cargo run --release committee --party-id 2
cargo run --release committee --party-id 3
After waiting a bit of time, on committee 3, while "Generating auxiliary information for party 3" I do get:
thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/round-based-0.4.1/src/rounds_router/simple_store.rs:72:9:
assertion failed: i < n
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
And after running with RUST_BACKTRACE=full, this is stacktrace:
thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/round-based-0.4.1/src/rounds_router/simple_store.rs:72:9:
assertion failed: i < n
stack backtrace:
0: 0x5f39c9296aaa - std::backtrace_rs::backtrace::libunwind::trace::h88deb10bd0145eb8
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
1: 0x5f39c9296aaa - std::backtrace_rs::backtrace::trace_unsynchronized::he1036f5481c14dff
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x5f39c9296aaa - std::sys::backtrace::_print_fmt::hecc345b6e70c4b20
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:66:9
3: 0x5f39c9296aaa - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::he089f96442833f67
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:39:26
4: 0x5f39c92bc8b3 - core::fmt::rt::Argument::fmt::h1f77cded99c71a14
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/rt.rs:177:76
5: 0x5f39c92bc8b3 - core::fmt::write::h2f210ed4c94745cb
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/fmt/mod.rs:1440:21
6: 0x5f39c9293593 - std::io::Write::write_fmt::h7de08171ab770fb2
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/io/mod.rs:1887:15
7: 0x5f39c92968f2 - std::sys::backtrace::BacktraceLock::print::h810fbd31421329e6
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:42:9
8: 0x5f39c9297aa0 - std::panicking::default_hook::{{closure}}::hbaad47ed9dc6356d
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:295:22
9: 0x5f39c9297880 - std::panicking::default_hook::h24e207139139d40a
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:322:9
10: 0x5f39c9298202 - std::panicking::rust_panic_with_hook::ha9131beeb2ddc506
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:828:13
11: 0x5f39c9297f76 - std::panicking::begin_panic_handler::{{closure}}::h1bba0eaeb6da506f
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:694:13
12: 0x5f39c9296fa9 - std::sys::backtrace::__rust_end_short_backtrace::h1d1ca3eade483f4c
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/sys/backtrace.rs:168:18
13: 0x5f39c9297c3d - rust_begin_unwind
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:692:5
14: 0x5f39c82bc110 - core::panicking::panic_fmt::h896a0727a1a943f9
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:75:14
15: 0x5f39c82bc19c - core::panicking::panic::h06336e0c962d4a4a
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:145:5
16: 0x5f39c859c603 - round_based::rounds_router::simple_store::RoundInput<M>::new::h79ea1af40738c6d2
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/round-based-0.4.1/src/rounds_router/simple_store.rs:72:9
17: 0x5f39c859e0a5 - round_based::rounds_router::simple_store::RoundInput<M>::broadcast::heaffdb03e1bc9d08
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/round-based-0.4.1/src/rounds_router/simple_store.rs:90:9
18: 0x5f39c83f9ef8 - cggmp21::key_refresh::aux_only::run_aux_gen::{{closure}}::hb5c6588c586846c2
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cggmp21-0.6.0/src/key_refresh/aux_only.rs:183:35
19: 0x5f39c87bc8b6 - cggmp21::key_refresh::GenericKeyRefreshBuilder<cggmp21::key_refresh::AuxOnly,L,D>::start::{{closure}}::h7bef6aa59fbf39a4
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cggmp21-0.6.0/src/key_refresh.rs:242:10
20: 0x5f39c830603b - cggmp21_demo::committee::Protocol::generate_auxiliary_info::{{closure}}::h0ed6436f4bd0f7f0
at /home/user/testfolder/tss_demo/src/committee.rs:596:14
21: 0x5f39c83030cc - cggmp21_demo::committee::Protocol::run::{{closure}}::hee6fc31db07a312a
at /home/user/testfolder/tss_demo/src/committee.rs:415:22
22: 0x5f39c83098b6 - cggmp21_demo::committee::Protocol::start::{{closure}}::{{closure}}::hf005566b5a57b2a8
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/macros/select.rs:557:49
23: 0x5f39c835c19a - <core::future::poll_fn::PollFn<F> as core::future::future::Future>::poll::hfa9adf4d6203a470
at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/poll_fn.rs:151:9
24: 0x5f39c830087f - cggmp21_demo::committee::Protocol::start::{{closure}}::hc2ddb41ff4cf9256
at /home/user/testfolder/tss_demo/src/committee.rs:285:9
25: 0x5f39c850291d - cggmp21_demo::run_committee_mode::{{closure}}::h2d5c0bfa2fac3b77
at /home/user/testfolder/tss_demo/src/main.rs:219:32
26: 0x5f39c85042bd - cggmp21_demo::main::{{closure}}::h55ec4422e2be778a
at /home/user/testfolder/tss_demo/src/main.rs:148:63
27: 0x5f39c83e8b9b - <core::pin::Pin<P> as core::future::future::Future>::poll::hce68bf103d6fda23
at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9
28: 0x5f39c82cb99e - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::hf09c9a4abeef3200
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/park.rs:284:63
29: 0x5f39c82ca976 - tokio::runtime::coop::with_budget::hd4a61e09181cde39
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/coop.rs:107:5
30: 0x5f39c82ca976 - tokio::runtime::coop::budget::h8bb1b08dca80b88a
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/coop.rs:73:5
31: 0x5f39c82ca976 - tokio::runtime::park::CachedParkThread::block_on::h21fe76c93f545cf4
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/park.rs:284:31
32: 0x5f39c870e49f - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h1e35739afe6043fb
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/context/blocking.rs:66:9
33: 0x5f39c82d48f0 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::hbaaebc97e40fd2ca
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/scheduler/multi_thread/mod.rs:87:13
34: 0x5f39c82d3f23 - tokio::runtime::context::runtime::enter_runtime::hc40390f4429ac971
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/context/runtime.rs:65:16
35: 0x5f39c82d4771 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::h3fe6db5638d05d22
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/scheduler/multi_thread/mod.rs:86:9
36: 0x5f39c870e9d8 - tokio::runtime::runtime::Runtime::block_on_inner::h5359d9e1bf4dc49f
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/runtime.rs:370:45
37: 0x5f39c870ed13 - tokio::runtime::runtime::Runtime::block_on::h5d1093d6a2aeff6b
at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/runtime/runtime.rs:340:13
38: 0x5f39c862040e - cggmp21_demo::main::h9df6380ed2e7fa0c
at /home/user/testfolder/tss_demo/src/main.rs:143:5
39: 0x5f39c851351b - core::ops::function::FnOnce::call_once::h77aa22efaf193280
at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
40: 0x5f39c84eb23e - std::sys::backtrace::__rust_begin_short_backtrace::h24cab85060e1fd71
at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:152:18
41: 0x5f39c84edf31 - std::rt::lang_start::{{closure}}::h457da705efa25e8f
at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:195:18
42: 0x5f39c9289c67 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::ha29694188d478cce
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/ops/function.rs:284:13
43: 0x5f39c9289c67 - std::panicking::try::do_call::h146aeebcd3824393
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:584:40
44: 0x5f39c9289c67 - std::panicking::try::hf3596e381ccb2229
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:547:19
45: 0x5f39c9289c67 - std::panic::catch_unwind::h7b076e21cb40b9bf
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panic.rs:358:14
46: 0x5f39c9289c67 - std::rt::lang_start_internal::{{closure}}::h481008de4850e7c0
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/rt.rs:174:48
47: 0x5f39c9289c67 - std::panicking::try::do_call::h865e627c98d1c4cc
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:584:40
48: 0x5f39c9289c67 - std::panicking::try::hf53b8617a1069bb3
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:547:19
49: 0x5f39c9289c67 - std::panic::catch_unwind::h9d30caa3add162e9
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panic.rs:358:14
50: 0x5f39c9289c67 - std::rt::lang_start_internal::hbb268f70c879621d
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/rt.rs:174:20
51: 0x5f39c84edf0a - std::rt::lang_start::h508ec7171b34f258
at /home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:194:17
52: 0x5f39c86204de - main
53: 0x7937ccc29d90 - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
54: 0x7937ccc29e40 - __libc_start_main_impl
at ./csu/../csu/libc-start.c:392:3
55: 0x5f39c82bca75 - _start
56: 0x0 - <unknown>
Environment
Rust: cargo 1.85.0 (d73d2caf9 2024-12-31)
OS: Ubuntu 22.04.5 LTS
Platform: 6.6.87.2-microsoft-standard-WSL2
Hello and thank you for this kind of project!
When I try to run it, I always hit the same problem while generating auxiliary information:
assertion failed: i < nRepro steps
Steps are a bit different from what you have in README, but it should be logically same. Using steps in README I wasn't able to replicate.
git clone https://github.com/m2ux/tss_demo.gitcd tss_democargo build --releasethen, in fast succession run:
cargo run --release bootstrapcargo run --release committee --party-id 1cargo run --release committee --party-id 2cargo run --release committee --party-id 3After waiting a bit of time, on committee 3, while "Generating auxiliary information for party 3" I do get:
And after running with
RUST_BACKTRACE=full, this is stacktrace:Environment
Rust: cargo 1.85.0 (d73d2caf9 2024-12-31)
OS: Ubuntu 22.04.5 LTS
Platform: 6.6.87.2-microsoft-standard-WSL2