Tendermint 编译运行的常见问题
Tendermint 启动时出现的问题
c-dummy 正常启动后,执行 tendermind node
,出现如下错误:
E[08-31|11:13:55.061] abci.socketClient failed to connect to tcp://127.0.0.1:46658. Retrying... module=abci-client connection=query
这是由于 c-dummy 默认绑定的地址端口与 Tendermint 配置文件中的地址端口不一致,三种解决方法:
1.修改 Tendermint 的配置文件中的端口地址
打开配置文件 ~/.tendermint/config.toml
vim ~/.tendermint/config.toml
将配置文件中 proxy_app
字段的值修改为 c-dummy 程序默认绑定的地址端口:127.0.0.0:46658:
proxy_app = "tcp://127.0.0.1:46658"
保存退出配置文件,重新启动Tendermint程序:
tendermint node
2.修改 c-dummy 程序中默认的绑定地址端口
首先查看 ~/.tendermint/config.toml
配置文件中 proxy_app
字段的值,假设值为:
proxy_app = "tcp://127.0.0.1:46677"
那么进入 c-abci/demo 目录中:
cd c-abci/demo
修改main.c文件中的一行代码,原代码为:
strcpy(port, "46658");
修改为:
strcpy(port, "46677");
保存退出,在demo目录下编译:
make
然后重新启动c-dummy和Tendermint程序即可
3.每次执行c-dummy程序时提供proxy_app字段中配置的IP地址端口参数
./c-dummy 127.0.0.1 46677
c-dummy启动时出现的问题
编译成功,但是启动c-dummy时报错:
error while loading shared libraries: libc-abci.so: cannot open shared object file: No such file or directory
这是由于动态连接库的配置文件中没有添加c-abci/lib的路径,将库的绝对路径添加到配置文件中:
sudo vim /etc/ld.so.conf.d/local.conf
输入用户密码,然后在此配置文件中添加两行数据,此文件如果不存在可以直接新建:
/home/lily/work/c-abci/lib
/home/lily/work/c-abci/type/protobuf-c
退出保存文件即可(注意,这里写的是我的绝对路径,每个人的绝对路径会不一致:/home/lily/work的部分不一样) 修改完配置文件之后,刷新动态库的配置:
sudo ldconfig
刷新完之后,重新启动c-dummy程序即可
编译时出现的问题
在make编译的时候报错:
/usr/bin/ld: cannot find -lc-abci
/usr/bin/ld: cannot find -lencoding
/usr/bin/ld: cannot find -lsocket
/usr/bin/ld: cannot find -ltypes
/usr/bin/ld: cannot find -ldlist
这个原因跟上面c-dummy启动产生的问题是一样的,所以解决方案也是一样,修改配置文件然后刷新:
sudo vim /etc/ld.so.conf.d/local.conf
输入用户密码,然后在此配置文件中添加两行数据:
/home/lily/work/c-abci/lib
/home/lily/work/c-abci/type/protobuf-c
退出保存文件即可(注意绝对路径)
修改完配置文件之后,刷新动态库的配置:
sudo ldconfig
刷新完成之后重新编译即可:在c-abci/目录下:
make
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论