首页 > 资讯 > 应用 > CITA:面向企业级应用高性能区块链内核
CITA区块链的故障诊断
2019-11-01 14:04:10作者:CITA来源:CITA
故障诊断
机器没有重启,为什么进程挂了?在不使用 Docker 镜像的情况而使用自编译环境,终端窗口一关,进程就挂了,加上 nohup 就没问题了。推荐使用 Docker 环境就不会出现这个问题。
性能测出来为什么很低?可能的原因 1. 机器配置。如 cpu,内存。 2. 可能是块或者账号的配额总的设置额度太低了。
如何处理压力测试时出现交易未上链的情况前面已经提到,交易未上链是因为交易的超时,确保交易不会出现”意外“上链的情况。CITA 的交易池在 Auth 模块,在 RPC 将交易转发给Auth,Auth 进行交易的签名等信息验证成功后,将交易放入交易池。默认情况下,交易池的最大交易容量是无穷大,所以对于一般的个人用户在进行压力测试时,交易发送过快,由于机器性能限制,交易可能处理不过来,可能会出现交易累积在交易池,导致交易超时。所以普通用户可以根据机器性能选择将 auth.toml 中的 tx_pool_limit 参数由 0(0 表示没有限制)改为一个合适的值。(对于单节点 4c8g 的节点,建议50000)。此时,如果发送交易超出交易池的容纳能力,RPC 会返回 BUSY,提示用户发送交易速度过快。
Tread main panicked at AMQP_URL must be set: Not Present, libcore/result.rs:945原因:由于 node/x 目录没有 rabbitmq 的配置文件,配置文件默认为隐藏文件 .env。
解决方案:在 node/x 节点目录生成配置文件 .env AMQP_URL=amqp://guest:guest@localhost/node/1DATA_PATH=./data
Tread main panicked at failed to open url amqp://guest@localhost/node/0: IoError[ConnectionRefused].原因:连接 rabbitmq 不成功。可能因为:1. rabbitmq 未成功启动:rabbitmq 端口被占用(冲突)、rabbitmq 服务本身异常等。2. rabbitmq 成功启动可能注册id不可用
解决方案:对于1,请先确认端口是否被占用,系统已启动 rabbitmq,然后在 docker 里再启动 rabbitmq 会导致 docker 里的启动失败。重启 rabbitmq 服务。对于2,删除无效 id:sudo rabbitmqctl list_vhosts
, 然后 sudo rabbitmqctl delete_vhost
有一个工厂合约,new 一个合约后合约地址返回,返回后立即调用合约里面方法会报这个错误 invoke: Can't find the specific contract (edited) - 合约地址返回后立马调用会出现问题, 过一会调用就不会出现问题。
虽然合约地址生成了,写入了区块,但是区块状态是 pending(处于共识中)。 sdk 都是默认请求 last 的区块。pending 和 last 相差一个区块。所以需要等一个块的时间。(这个问题 v0.20出现的,之前没有。因为0.20才加上的状态)。
访问报错用户在通过本地访问获取块高度,出现错误 failed:Connection time out,但是 ping 可以 ping 通。
可能是端口没开