FISCO BCOS日志规范有哪些

发布时间:2021-08-03 11:02:39 作者:Leah
来源:亿速云 阅读:267

FISCO BCOS日志规范有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

FISCO BCOS日志规范

 

为了使日志输出更加友好,FISCO BCOS 2.0设计了通用的日志格式,并根据日志输出信息的重要性对日志进行了分级。

此外,为了清晰地区分各模块日志,FISCO BCOS 2.0为各模块设计了日志关键字,并设计了各种宏来确保日志输出格式一致、方便写日志输出代码。

本节从日志格式、日志级别以及日志关键字三个方面介绍FISCO BCOS日志规范。

 

  通用日志格式

FISCO BCOS所有群组的日志均输出到节点log目录下的 log_%YYYY%mm%dd%HH.%MM 文件中,该日志文件每1个小时切分一次。为了区分各群组日志,使得日志输出更加友好,FISCO BCOS 2.0设计了通用日志格式。

通用日志格式如下:

log_level|time|[g:group_id][module_name]content

下面是群组3提交区块时输出的日志:

info|2019-06-2616:37:08.253147|[g:3][CONSENSUS][PBFT]^^^^^^^^Report,num=0,sealerIdx=0,hash=a4e10062...,next=1,tx=0,nodeIdx=2

该日志级别是info,输出时间是 2019-06-26 ,群组id是3,模块是 CONSENSUS ,日志关键字是 PBFT 和 Report 。

  日志级别

日志分级对于及时定位问题至关重要,FISCO BCOS 2.0 对标生产环境,将日志级别从低到高划分为 trace、debug、info、 warning、error 和 fatal ,其中:

我们希望,在降低日志占用磁盘空间的同时,能尽量暴露、定位系统问题。为了达到这个目的,生产环境一般开启info及其以上级别的日志,FISCO BCOS建链工具生成的区块链节点默认日志级别是 info,会输出 info、warning、error 以及fatal级别的日志。

若需要调整日志级别,可以修改节点目录下的 config.ini 的 log.level 配置,如,将日志级别调整为 ≥debug ,配置如下:

[log]level=debug

  模块日志关键字

 

为了准确区分多个模块日志、方便定位bug和解析日志,FISCO BCOS 2.0为每个模块都定制了日志关键字,且设计了宏,方便开发者写日志输出代码的同时,保证日志输出格式一致,提升代码的可读性。

主要的日志宏包括:

以 DEBUG 级别输出区块执行信息的例子如下:

BLOCKVERIFIER_LOG(DEBUG)<< LOG_BADGE("executeBlock")                        << LOG_DESC("Init env takes")                                              << LOG_KV("time(ms)",utcTime() - startTime)                                               <<LOG_KV("txNum",block.transactions().size())                                               << LOG_KV("num",block.blockHeader().number());

各个模块的日志关键字如下:

 

FISCO BCOS日志规范有哪些

常用日志

网络模块、共识模块是决定区块链系统能否正常运行的重要模块,本节主要介绍这两个模块的常用日志。通过这些日志,大家可以判断区块链系统是否正常工作。

  网络模块

 

查看网络连接数目

可通过搜索关键字connected count 获取指定节点的网络连接情况,查看四节点区块链系统中,某个节点的网络连接情况,输出日志如下:

$ tail -f log/* |grep "connected count"info|2019-06-2618:00:01.343480|[P2P][Service] heartBeat,connected count=3

其中 connected count 表示与当前节点建立P2P网络连接的节点数。

从上面日志可看出,该节点与三个其他节点建立了P2P网络连接,符合预期。若节点连接不符合预期,则需要通过命令 netstat -anp| grep fisco-bcos 命令检查节点连接情况,找出断连节点。

证书验证失败输出日志

为了保障节点通信的机密性,FISCOBCOS节点间通信采用了openssl握手协议,需要相互间进行证书验证,在P2P 初始化过程中,若由于证书验证失败导致节点间断连,一般会输出 Certverify failed 关键字的error日志:

$ tail -f log/* |grep "Cert verify failed"error|2019-06-2621:01:01.343989|[NETWORK][Host] Cert verify failed, wrong version number

节点输出该错误时,一方面要确认节点证书是否正确,另一方面需要确认openssl版本是否升级到最新,ubuntu系统可使用 sudo apt install -y openssl 安装最新的openssl;centos系统可使用 sudo yum -y install opensslopenssl-devel 升级到最新的openssl。

  共识模块

 

查看Leader打包区块

 

FISCO BCOS 2.0共识节点轮流担任leader打包区块,成功打包区块时会输出 +++ 日志,可通过搜索群组id(记为group_id )以及 +++ 日志判断指定群组是否正常共识,若没有输出 ++ 日志,说明节点已处于异常状态,请优先检查网络连接是否正常、节点证书是否有效。

查看群组2的区块打包情况,输出日志如下:

$ tail -f log/*|grep "g:2.*++"info|2019-06-2618:00:02.551399|[g:2][CONSENSUS][SEALER]++++++++++++++++ Generating sealon,blkNum=1,tx=0,nodeIdx=3,hash=1f9c2b14...

日志中各字段的含义如下:

从上面日志可以看出,群组2的当前leader是索引为3( nodeIdx=3 )的节点,正在打包区块高度为1( blkNum=1 )的空区块( tx=0 ,空区块不落盘)。

查看区块落盘情况

 

非空区块共识落盘成功或区块同步落盘成功,均会输出关键字为 Report 的日志,可通过 `tail -f log/* | grep"${group_id}.*Report" 查看区块落盘情况。

查看群组1区块落盘日志输出如下:

$ tail -f log/* |grep "g:1.*Report"info|2019-06-2618:00:07.802027|[g:1][CONSENSUS][PBFT]^^^^^^^^Report,num=716,sealerIdx=2,hash=dfd75e06...,next=717,tx=8,nodeIdx=3

其中,各个字段含义如下:

从上面日志可看出,群组1高度为716( num=716 )的区块落盘成功,出块节点是索引为2( sealerIdx=2)的共识节 点,区块哈希前8位为 dfd75e06 ,包含8笔( tx=8 )交易。

共识异常

 

网络抖动、网络断连或配置出错(如同一个群组的创世块文件不一致)均有可能导致节点共识异常,PBFT共识节点会输出 ViewChangeWarning 日志,可使用 tail -f log/*|grep "g:group_id.*ViewChangeWarning" 查看组group_id 是否共识异常。

组1共识异常输出日志如下:

$ tail -f log/*|grep "g:1.*ViewChangeWarning"warning|2019-06-2618:00:06.154102|[g:1][CONSENSUS][PBFT]ViewChangeWarning: not caused by omitempty block ,v=5,toV=6,curNum=715,hash=ed6e856d...,nodeIdx=3,myNode=e39000ea...

各个字段的含义如下:

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

推荐阅读:
  1. Solidity的高级特性怎么使用
  2. 区块链如何解决家政诚信危机

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

fisco bcos

上一篇:微信跳一跳python自动代码解读的示例分析

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》