1

当您使用 pip 或 pip3 安装 Hyperledger Indy 节点时,您会在运行各种节点脚本(例如 init_indy_keys 和 start_indy_node)时收到此错误。

你得到像这样的输出

回溯(最后一次调用):文件“/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

这会导致您运行的命令无法成功完成

4

1 回答 1

0

这是因为 node 的 python 库和 libindy-crypto 库之间的配置不一致。例如,在 pip3 安装后,您将拥有 indy-node 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

您可以在以下 URL 找到安装 Indy 节点的完整示例指南:http: //193.140.88.19/index.php/bag-hyperledger-indy-agina-katilim/

于 2019-06-28T12:10:44.380 回答