0

我正在尝试运行 Hyperledger Indy SDK 的 java 示例。我已经克隆了 indy-sdk 的 git 存储库,构建了 libindy.so 并使用了 Java Indy 库版本 1.15.0(也尝试了 1.14.2、1.16.0-rc-162,同样的问题)。我使用以下命令运行示例:

RUST_BACKTRACE=full LD_LIBRARY_PATH=/home/myself/projects/hyperledger/indy-sdk/libindy/target/debug:$LD_LIBRARY_PATH mvn exec:java -Dexec.mainClass=Main

libindy.so 确实在此目录中,请仔细检查。该命令的输出是:

[INFO] Scanning for projects...
[INFO] 
[INFO] ---------< org.hyperledger.indy-sdk-java:indy-sdk-java-sample >---------
[INFO] Building indy-sdk-java 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ indy-sdk-java-sample ---
Anoncreds sample -> started
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
thread '<unnamed>' panicked at 'attempted to leave type `linked_hash_map::Node<std::string::String, raw_statement::RawStatement>` uninitialized, which is invalid', /build/rust/src/rustc-1.48.0-src/library/core/src/mem/mod.rs:658:9
stack backtrace:
   0:     0x7f7672342ae0 - std::backtrace_rs::backtrace::libunwind::trace::h3244117ea50123fe
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/../../backtrace/src/backtrace/libunwind.rs:96
   1:     0x7f7672342ae0 - std::backtrace_rs::backtrace::trace_unsynchronized::h68c610493487144f
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/../../backtrace/src/backtrace/mod.rs:66
   2:     0x7f7672342ae0 - std::sys_common::backtrace::_print_fmt::h98a015f47bac7d62
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/sys_common/backtrace.rs:79
   3:     0x7f7672342ae0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc852ad3e88e43049
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/sys_common/backtrace.rs:58
   4:     0x7f7672362f9c - core::fmt::write::h5437b03347b2ec7a
                               at /build/rust/src/rustc-1.48.0-src/library/core/src/fmt/mod.rs:1080
   5:     0x7f767233f595 - std::io::Write::write_fmt::h1c132b3b8a60ce2f
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/io/mod.rs:1516
   6:     0x7f767234521d - std::sys_common::backtrace::_print::hdfae0c73b5d1550a
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/sys_common/backtrace.rs:61
   7:     0x7f767234521d - std::sys_common::backtrace::print::h846d8b35d353226f
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/sys_common/backtrace.rs:48
   8:     0x7f767234521d - std::panicking::default_hook::{{closure}}::h611a677a9567debb
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panicking.rs:208
   9:     0x7f7672344ec8 - std::panicking::default_hook::hfc5e7967f3ac8efb
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panicking.rs:227
  10:     0x7f7672345901 - std::panicking::rust_panic_with_hook::h86da1db1d0779194
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panicking.rs:577
  11:     0x7f76723454a9 - std::panicking::begin_panic_handler::{{closure}}::h8deb4831e8e5befc
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panicking.rs:484
  12:     0x7f7672342f4c - std::sys_common::backtrace::__rust_end_short_backtrace::h67eb25f573b71150
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/sys_common/backtrace.rs:153
  13:     0x7f7672345469 - rust_begin_unwind
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panicking.rs:483
  14:     0x7f7672361561 - core::panicking::panic_fmt::h8d2c19297fe96b44
                               at /build/rust/src/rustc-1.48.0-src/library/core/src/panicking.rs:85
  15:     0x7f76723614ad - core::panicking::panic::hfbe00deb325a44ca
                               at /build/rust/src/rustc-1.48.0-src/library/core/src/panicking.rs:50
  16:     0x7f7671d55350 - core::mem::uninitialized::h1bd522240c60cd13
                               at /build/rust/src/rustc-1.48.0-src/library/core/src/mem/mod.rs:658
  17:     0x7f7671d55350 - linked_hash_map::LinkedHashMap<K,V,S>::ensure_guard_node::h4c0b34e05774f35b
                               at /home/myself/.cargo/registry/src/github.com-1ecc6299db9ec823/linked-hash-map-0.5.2/src/lib.rs:174
  18:     0x7f7671d55547 - linked_hash_map::LinkedHashMap<K,V,S>::insert::h7774f9741f16975c
                               at /home/myself/.cargo/registry/src/github.com-1ecc6299db9ec823/linked-hash-map-0.5.2/src/lib.rs:304
  19:     0x7f7671d49965 - lru_cache::LruCache<K,V,S>::insert::h60af866ce983553b
                               at /home/myself/.cargo/registry/src/github.com-1ecc6299db9ec823/lru-cache-0.1.2/src/lib.rs:119
  20:     0x7f7671d4e773 - rusqlite::cache::StatementCache::cache_stmt::hcbb5a3a61740409a
                               at /home/myself/.cargo/registry/src/github.com-1ecc6299db9ec823/rusqlite-0.20.0/src/cache.rs:143
  21:     0x7f7671d4e1cd - <rusqlite::cache::CachedStatement as core::ops::drop::Drop>::drop::hf69850256b656b1f
                               at /home/myself/.cargo/registry/src/github.com-1ecc6299db9ec823/rusqlite-0.20.0/src/cache.rs:86
  22:     0x7f7671d586c6 - core::ptr::drop_in_place::h46858c238bbc4bd3
                               at /build/rust/src/rustc-1.48.0-src/library/core/src/ptr/mod.rs:175
  23:     0x7f7671c065da - <indy_wallet::storage::default::SQLiteStorage as indy_wallet::storage::WalletStorage>::add::h15006df33a9093ba
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/indy-wallet/src/storage/default/mod.rs:353
  24:     0x7f7671cc2007 - indy_wallet::wallet::Wallet::add::h0426f8b53c98a655
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/indy-wallet/src/wallet.rs:131
  25:     0x7f7671bf420a - indy_wallet::WalletService::add_record::h990311c0d3933e97
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/indy-wallet/src/lib.rs:269
  26:     0x7f7671a3d8d1 - indy_wallet::WalletService::add_indy_record::h0e1c4e30755b973f
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/indy-wallet/src/lib.rs:277
  27:     0x7f7671a3d500 - indy_wallet::WalletService::add_indy_object::hdf24bd15a5a3e4b7
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/indy-wallet/src/lib.rs:285
  28:     0x7f767122b351 - indy::commands::anoncreds::issuer::IssuerCommandExecutor::_complete_create_and_store_credential_definition::hb5d6293ed6c41deb
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/src/commands/anoncreds/issuer.rs:399
  29:     0x7f76713f06ff - indy::commands::anoncreds::issuer::IssuerCommandExecutor::_create_and_store_credential_definition_continue::{{closure}}::h9151a3598fef9be7
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/src/commands/anoncreds/issuer.rs:330
  30:     0x7f76716873e5 - core::result::Result<T,E>::and_then::h6454db52f0d20e4b
                               at /build/rust/src/rustc-1.48.0-src/library/core/src/result.rs:708
  31:     0x7f767122a330 - indy::commands::anoncreds::issuer::IssuerCommandExecutor::_create_and_store_credential_definition_continue::h92d0cbd5bf4c9ce4
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/src/commands/anoncreds/issuer.rs:328
  32:     0x7f7671226832 - indy::commands::anoncreds::issuer::IssuerCommandExecutor::execute::h088be074fb9cf554
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/src/commands/anoncreds/issuer.rs:186
  33:     0x7f76713c98c5 - indy::commands::anoncreds::AnoncredsCommandExecutor::execute::h0599d9c24bc3525a
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/src/commands/anoncreds/mod.rs:57
  34:     0x7f76713f2e01 - indy::commands::CommandExecutor::new::{{closure}}::h4b309de071e79d90
                               at /home/myself/projects/hyperledger/indy-sdk/libindy/src/commands/mod.rs:169
  35:     0x7f767171df73 - std::sys_common::backtrace::__rust_begin_short_backtrace::h6e63ad1e539f939e
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/sys_common/backtrace.rs:137
  36:     0x7f767156e224 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::ha0e3102d9932829c
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/thread/mod.rs:464
  37:     0x7f767131a1e4 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hf63bed0a0a0c2cd1
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panic.rs:308
  38:     0x7f7671b5f7cb - std::panicking::try::do_call::h6947a08c7a009edf
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panicking.rs:381
  39:     0x7f7671b60e3d - __rust_try
  40:     0x7f7671b5f71d - std::panicking::try::hc56a1e61b4e7f859
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panicking.rs:345
  41:     0x7f767131a3b4 - std::panic::catch_unwind::h0876f551d796c20f
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/panic.rs:382
  42:     0x7f767156e030 - std::thread::Builder::spawn_unchecked::{{closure}}::hfcfdb3946d61e7d5
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/thread/mod.rs:463
  43:     0x7f767137eb8f - core::ops::function::FnOnce::call_once{{vtable.shim}}::ha9bc6baef95c4f0c
                               at /build/rust/src/rustc-1.48.0-src/library/core/src/ops/function.rs:227
  44:     0x7f76723487ba - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h1b04928e805aae8c
                               at /build/rust/src/rustc-1.48.0-src/library/alloc/src/boxed.rs:1042
  45:     0x7f76723487ba - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::ha4d3b7633883df6b
                               at /build/rust/src/rustc-1.48.0-src/library/alloc/src/boxed.rs:1042
  46:     0x7f76723487ba - std::sys::unix::thread::Thread::new::thread_start::h5bc96af8ac1d2339
                               at /build/rust/src/rustc-1.48.0-src/library/std/src/sys/unix/thread.rs:87
  47:     0x7f7711b6c3e9 - start_thread
  48:     0x7f771187e293 - __GI___clone
  49:                0x0 - <unknown>

当我在一些 Java (Groovy) 代码中自己尝试时也会发生同样的情况:

    String stewardSeed = "000000000000000000000000Steward1"
    String did_json = "{\"seed\": \"" + stewardSeed + "\"}"
    CreateAndStoreMyDidResult stewardDid = createAndStoreMyDid(wallet, did_json).get()

抛出相同的恐慌错误消息。我在这里做错了什么?我可能忘记在 did_json 选项中设置的任何内容?我也尝试过提交并清空 did_json ("{}"),再次出现同样的错误。

非常感谢您的帮助!

4

1 回答 1

0

Indy SDK 中使用的底层代码在 rust lang 1.48.0+ 中已过时。将 rust lang 版本降级到 1.47.0 并从源代码构建 indy SDK 将解决参考中的问题。

于 2020-12-13T19:11:36.357 回答