Неверная конфигурация Hyperledger Indy узел вызывает ошибку с сообщением «неопределенный символ: indy_crypto_init_logger» - PullRequest
1 голос
/ 28 июня 2019

Когда вы устанавливаете Indy Node Hyperledger с помощью pip или pip3, вы получаете эту ошибку при запуске различных сценариев узла, таких как init_indy_keys и start_indy_node.

Вы получаете выходные данные, как

Traceback (последний вызов был последним): Файл "/ usr / local / bin / start_indy_node", строка 19, в client_ip = sys.argv [4], client_port = int (sys.argv [5]))

File "/usr/local/lib/python3.6/dist-packages/indy_node/utils/node_runner.py", line 51, in run_node ha=node_ha, cliha=client_ha)

File "/usr/local/lib/python3.6/dist-packages/indy_node/server/node.py", line 101, in __init__    config=config)

File "/usr/local/lib/python3.6/dist-packages/plenum/server/node.py", line 216, in __init__    self.bls_bft = self._create_bls_bft()

File "/usr/local/lib/python3.6/dist-packages/plenum/server/node.py", line 1131, in _create_bls_bft    bls_bft = bls_factory.create_bls_bft()

File "/usr/local/lib/python3.6/dist-packages/crypto/bls/bls_factory.py", line 72, in create_bls_bft    bls_crypto_verifier = self._bls_factory_crypto.create_bls_crypto_verifier()

File "/usr/local/lib/python3.6/dist-packages/crypto/bls/bls_factory.py", line 36, in create_bls_crypto_verifier
return self._create_bls_crypto_verifier(group_params)

File "/usr/local/lib/python3.6/dist-packages/plenum/bls/bls_crypto_factory.py", line 24, in _create_bls_crypto_verifier
return BlsCryptoVerifierIndyCrypto(group_params)

File "/usr/local/lib/python3.6/dist-packages/crypto/bls/indy_crypto/bls_crypto_indy_crypto.py", line 67, in __init__
IndyCryptoBlsUtils.bls_from_str(params.g, Generator)  # type: Generator

File "/usr/local/lib/python3.6/dist-packages/crypto/bls/indy_crypto/bls_crypto_indy_crypto.py", line 42, in bls_from_str
return cls.from_bytes(bts)

File "/usr/local/lib/python3.6/dist-packages/indy_crypto/bls.py", line 34, in from_bytes
do_call(cls.from_bytes_handler, xbytes, len(xbytes), byref(c_instance))

File "/usr/local/lib/python3.6/dist-packages/indy_crypto/lib.py", line 12, in do_call    err = getattr(_cdll(), name)(*args)

File "/usr/local/lib/python3.6/dist-packages/indy_crypto/lib.py", line 22, in _cdll    _cdll.cdll = _load_cdll()

File "/usr/local/lib/python3.6/dist-packages/indy_crypto/lib.py", line 51, in _load_cdll    getattr(res, "indy_crypto_init_logger")()

File "/usr/lib/python3.6/ctypes/__init__.py", line 361, in __getattr__
func = self.__getitem__(name)

File "/usr/lib/python3.6/ctypes/__init__.py", line 366, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))

AttributeError: /usr/lib/libindy_crypto.so: undefined symbol: indy_crypto_init_logger

Это приводит к тому, что команды, которые вы запускаете, не завершаются успешно

1 Ответ

0 голосов
/ 28 июня 2019

Это происходит из-за несоответствия конфигурации между библиотеками Python узла и библиотекой libindy-crypto.Например, после установки pip3 у вас будет indy-узел 1.8.1.Тем не менее, ваша версия libindy-crypto может быть 1.9.0, а имя функции было изменено в 1.9.0 как indy_crypto_set_logger.

Когда вы выбираете использование установки pip, вы должны указать версию для библиотеки libindy-crypto, котораясовместим с остальной частью вашей установки.

Поэтому вместо выдачи

sudo apt-get install libindy-crypto выполните эту команду: sudo apt-get install libindy-crypto = 0.4.5

Полный образец руководства по установке Indy Node можно найти по этому адресу: http://193.140.88.19/index.php/bag-hyperledger-indy-agina-katilim/

...