Основной канал для обсуждения вопросов, связанных с разработкой на Exonum. Github: https://github.com/exonum/ Документация: https://exonum.com/doc/ English-speaking channel: https://gitter.im/exonum/exonum Telegram https://t.me/ExonumRU
Выпустили Exonum Java 0.7.0 с поддержкой тесткита для интеграционного тестирования Java-сервисов и огромным ускорением обработки транзакций :tada:
Подробнее на странице выпуска: https://github.com/exonum/exonum-java-binding/releases/tag/ejb%2Fv0.7.0
configuration-service
из поставки Exonum, нужно отправить транзакцию с апдейтом конфига (в нем добавить информацию про ноду-аудитора). Но я это так и не проверил ещё.
Aug 07 12:14:17 Node blockchain_core[12990]: thread '<unnamed>' panicked at 'called Result::unwrap()
on an Err
value: Os { code: 107, kind: NotConnected, message: "Transport endpoint is not connected" }', src/libcore/result.rs:997:5
Aug 07 12:14:17 Node blockchain_core[12990]: note: Some details are omitted, run with RUST_BACKTRACE=full
for a verbose backtrace.
Aug 07 12:14:17 Node blockchain_core[12990]: stack backtrace:
Aug 07 12:14:17 Node blockchain_core[12990]: 0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
Aug 07 12:14:17 Node blockchain_core[12990]: 1: std::sys_common::backtrace::_print
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/sys_common/backtrace.rs:71
Aug 07 12:14:17 Node blockchain_core[12990]: 2: std::panicking::default_hook::{{closure}}
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/sys_common/backtrace.rs:59
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/panicking.rs:197
Aug 07 12:14:17 Node blockchain_core[12990]: 3: std::panicking::default_hook
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/panicking.rs:211
Aug 07 12:14:17 Node blockchain_core[12990]: 4: std::panicking::rust_panic_with_hook
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/panicking.rs:478
Aug 07 12:14:17 Node blockchain_core[12990]: 5: std::panicking::continue_panic_fmt
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/panicking.rs:381
Aug 07 12:14:17 Node blockchain_core[12990]: 6: rust_begin_unwind
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libstd/panicking.rs:308
Aug 07 12:14:17 Node blockchain_core[12990]: 7: core::panicking::panic_fmt
Aug 07 12:14:17 Node blockchain_core[12990]: at src/libcore/panicking.rs:85
Aug 07 12:14:17 Node blockchain_core[12990]: 8: core::result::unwrap_failed
Aug 07 12:14:17 Node blockchain_core[12990]: 9: exonum::events::network::NetworkHandler::build_handshake_initiator
Так же заметил сейчас, что валидаторы постоянно стали паниковать. Делают пару коммитов, падают по данной причине и перезагружаются и так по кругу.
В чем может быть проблема? Раньше такого не было
Добрый день, может ли блокчейн (апи и консенсус часть) использовать https?
На текущий момент нет. В планах имеется добавление протокола HTTPS.
Кто-нибудь сталкивался с подобным?
После того, как ноды упали, при попытке переподнять их возникает вот такая вот проблема:
[2019-09-09T11:17:03.408284881Z INFO exonum::node] Validator id = 'Some(ValidatorId(0))'
[2019-09-09T11:17:03.442365728Z INFO exonum::helpers::config] ConfigManager started
[2019-09-09T11:17:03.442459399Z INFO exonum::api::backends::actix] Starting public web api on 0.0.0.0:18002
[2019-09-09T11:17:03.442521456Z INFO actix_net::server::server] Starting 8 workers
[2019-09-09T11:17:03.443372265Z INFO actix_net::server::server] Starting server on 0.0.0.0:18002
[2019-09-09T11:17:03.443438153Z INFO exonum::api::backends::actix] Starting private web api on 0.0.0.0:19002
[2019-09-09T11:17:03.443479929Z INFO actix_net::server::server] Starting 8 workers
[2019-09-09T11:17:03.444183831Z INFO actix_net::server::server] Starting server on 0.0.0.0:19002
[2019-09-09T11:17:03.444346098Z INFO exonum::node] Start listening address=0.0.0.0:17002
[2019-09-09T11:17:03.444360506Z INFO exonum::node] Trying to connect with peer b374d5c1...
[2019-09-09T11:17:03.444380027Z INFO exonum::node] Trying to connect with peer c0f943b3...
[2019-09-09T11:17:03.444383827Z INFO exonum::node] Trying to connect with peer 75171b46...
[2019-09-09T11:17:03.444412061Z INFO exonum::node] Jump to round 8
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:347:21
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
.....
10: core::panicking::panic
at src/libcore/panicking.rs:49
11: exonum_merkledb::proof_map_index::ProofMapIndex<T,K,V>::get_root_node
12: <exonum_merkledb::proof_map_index::ProofMapIndex<T,K,V> as exonum_merkledb::hash::ObjectHash>::object_hash
13: exonum::blockchain::schema::Schema<T>::core_state_hash
14: exonum::blockchain::Blockchain::create_patch
15: exonum::node::consensus::<impl exonum::node::NodeHandler>::execute
16: exonum::node::consensus::<impl exonum::node::NodeHandler>::lock
17: exonum::node::consensus::<impl exonum::node::NodeHandler>::handle_majority_prevotes
18: exonum::node::consensus::<impl exonum::node::NodeHandler>::handle_consensus
19: exonum::node::basic::<impl exonum::node::NodeHandler>::handle_message
20: exonum::node::NodeHandler::initialize
21: exonum::node::Node::run_handler
22: exonum::node::Node::run
23: exonum::helpers::fabric::builder::NodeBuilder::run
24: node::main
Jump to round 8
— нужно подчистить прекоммит сообщения и незакрытые раунды консенсуса
[2019-09-09T13:05:43.651044414Z INFO exonum::node] Start listening address=0.0.0.0:6331
[2019-09-09T13:05:43.651068842Z INFO exonum::node] Trying to connect with peer 60d8aba6...
[2019-09-09T13:05:43.651116693Z INFO exonum::node] Jump to round 6
[2019-09-09T13:06:06.149348229Z WARN exonum::node::consensus] ROUND TIMEOUT height=1618, round=6
[2019-09-09T13:06:10.949306748Z WARN exonum::node::consensus] ROUND TIMEOUT height=1618, round=7
[2019-09-09T13:06:16.049354965Z WARN exonum::node::consensus] ROUND TIMEOUT height=1618, round=8
[2019-09-09T13:06:21.449359547Z WARN exonum::node::consensus] ROUND TIMEOUT height=1618, round=9
[2019-09-09T13:06:26.740166733Z INFO exonum::node::basic] Received Connect message from peer: In(V4(127.0.0.1:26509))
[2019-09-09T13:06:26.740194196Z INFO exonum::node::basic] Received Connect message from 127.0.0.1:6332. Need to connect: true
[2019-09-09T13:06:26.740263617Z INFO exonum::node::basic] Send Connect message to 127.0.0.1:6332
[2019-09-09T13:06:27.149395253Z WARN exonum::node::consensus] ROUND TIMEOUT height=1618, round=10
[2019-09-09T13:06:27.253701274Z INFO exonum::node::consensus] COMMIT ====== height=1619, proposer=1, round=1,
[2019-09-10T14:41:23.598719879Z INFO exonum::node::basic] Received Connect message from 0.0.0.0:17004. Need to connect: false
[2019-09-10T14:41:33.598873319Z INFO exonum::node::basic] Received Connect message from 0.0.0.0:17001. Need to connect: false
[2019-09-10T14:41:33.599055887Z INFO exonum::node::basic] Received Connect message from 0.0.0.0:17002. Need to connect: false
[2019-09-10T14:41:43.600487308Z INFO exonum::node::basic] Received Connect message from 0.0.0.0:17001. Need to connect: false
[2019-09-10T14:41:43.600675047Z INFO exonum::node::basic] Received Connect message from 0.0.0.0:17002. Need to connect: false
[2019-09-10T14:41:47.562212900Z WARN exonum::node::consensus] ROUND TIMEOUT height=11871804, round=40
[2019-09-10T14:41:53.601312843Z INFO exonum::node::basic] Received Connect message from 0.0.0.0:17004. Need to connect: false
[2019-09-10T14:41:53.601495522Z INFO exonum::node::basic] Received Connect message from 0.0.0.0:17002. Need to connect: false
[2019-09-10T14:42:02.562317217Z WARN exonum::node::consensus] ROUND TIMEOUT height=11871804, round=41
[2019-09-10T14:42:02.762414634Z INFO exonum::node::consensus] LEADER: pool = 0, cache = 0
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:347:21
stack backtrace:
0: 0x5604c625631b - backtrace::backtrace::libunwind::trace::hfe5db90796807973
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
1: 0x5604c625631b - backtrace::backtrace::trace_unsynchronized::h34b865a835594335
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
2: 0x5604c625631b - std::sys_common::backtrace::_print::h527254ae44989167
at src/libstd/sys_common/backtrace.rs:47
3: 0x5604c625631b - std::sys_common::backtrace::print::he85dd5ddddf46503
at src/libstd/sys_common/backtrace.rs:36
4: 0x5604c625631b - std::panicking::default_hook::{{closure}}::h847a2eb38b396f14
at src/libstd/panicking.rs:200
5: 0x5604c6255ff7 - std::panicking::default_hook::h2ca0f9a30a0e206b
at src/libstd/panicking.rs:214
6: 0x5604c6256b79 - std::panicking::rust_panic_with_hook::hffcefc09751839d1
at src/libstd/panicking.rs:481
7: 0x5604c6256612 - std::panicking::continue_panic_fmt::hc0f142c930c846fc
at src/libstd/panicking.rs:384
8: 0x5604c62564f6 - rust_begin_unwind
at src/libstd/panicking.rs:311
9: 0x5604c627798d - core::panicking::panic_fmt::h2daf88b2616ca2b2
at src/libcore/panicking.rs:85
10: 0x5604c62778cc - core::panicking::panic::h2d0bc53a963fb996
at src/libcore/panicking.rs:49
11: 0x5604c5b2b01a - exonum_merkledb::proof_map_index::ProofMapIndex<T,K,V>::get_root_node::ha2a1f60e285bfe04
12: 0x5604c5b29d25 - <exonum_merkledb::proof_map_index::ProofMapIndex<T,K,V> as exonum_merkledb::hash::ObjectHash>::object_hash::h5af234c972d8344d
13: 0x5604c5a30fef - exonum::blockchain::schema::Schema<T>::core_state_hash::h44801c972bf3e638
14: 0x5604c5b7f7d9 - exonum::blockchain::Blockchain::create_patch::h60023d4156a96062
15: 0x5604c5c015a0 - exonum::node::consensus::<impl exonum::node::NodeHandler>::execute::he00384f9a3e8c590
16: 0x5604c5bfc19d - exonum::node::consensus::<impl exonum::node::NodeHandler>::lock::h194ef9c313111d3e
17: 0x5604c5bfb7d4 - exonum::node::consensus::<impl exonum::node::NodeHandler>::handle_majority_prevotes::h6b590da2fd3fcf9c
18: 0x5604c5bf72d7 - exonum::node::consensus::<impl exonum::node::NodeHandler>::handle_consensus::hd5b8c83023b4c029
19: 0x5604c5bf39ef - exonum::node::basic::<impl exonum::node::NodeHandler>::handle_message::hf7e461ea01821507
20: 0x5604c5c03576 - exonum::node::events::<im
Привет, @Rouc4 ,
Да, это возможно, если добавить в список растовых сервисов, вкомпилированных в приложение exonum-java, необходимые растовые сервисы. Пока это не очень удобно с т.з. сопровождения, т.к. exonum-java пока является только приложением, т.е. его нельзя, как икзонум, подключить в качестве библиотеки и при создании узла зарегистрировать дополнительные растовые сервисы, а нужно патчить. Кроме того, в 0.12 регистрация новых сервисов в запущенной сети имеет некоторые ограничения: требуется остановка сети, и отсутствие конфигурационных параметров у нового сервиса (всё это будет исправлено с поддержкой динамических сервисов, над которой сейчас работаем).
Подробнее о том, как это сделать сейчас, не дожидаясь ДС (Exonum Java 0.8.0 based on Exonum 0.12.0):
prepare_service_factories
as of ejb/v0.8.0
). В exonum-java они конфигурируются, вы же можете регистрировать необходимые сервисы безусловно, что будет еще проще.Последнее: стоит учитывать при планировании, что нативный код exonum-java, связанный с инстанциированием системных сервисов, существенно изменится в ближайшие недели при реализации динамических сервисов.