成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

FISCOBCOS日志規(guī)范有哪些

FISCO BCOS日志規(guī)范有哪些,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

網(wǎng)站設(shè)計(jì)制作過(guò)程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了十多年的成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司。

FISCO BCOS日志規(guī)范

 

為了使日志輸出更加友好,F(xiàn)ISCO BCOS 2.0設(shè)計(jì)了通用的日志格式,并根據(jù)日志輸出信息的重要性對(duì)日志進(jìn)行了分級(jí)。

此外,為了清晰地區(qū)分各模塊日志,F(xiàn)ISCO BCOS 2.0為各模塊設(shè)計(jì)了日志關(guān)鍵字,并設(shè)計(jì)了各種宏來(lái)確保日志輸出格式一致、方便寫日志輸出代碼。

本節(jié)從日志格式、日志級(jí)別以及日志關(guān)鍵字三個(gè)方面介紹FISCO BCOS日志規(guī)范。

 

  通用日志格式

FISCO BCOS所有群組的日志均輸出到節(jié)點(diǎn)log目錄下的 log_%YYYY%mm%dd%HH.%MM 文件中,該日志文件每1個(gè)小時(shí)切分一次。為了區(qū)分各群組日志,使得日志輸出更加友好,F(xiàn)ISCO BCOS 2.0設(shè)計(jì)了通用日志格式。

通用日志格式如下:

log_level|time|[g:group_id][module_name]content
  • log_level : 日志級(jí)別,目前主要包括 trace , debug , info ,warning, error 和 fatal ,其中在發(fā)生極其嚴(yán)重錯(cuò)誤時(shí)會(huì)輸出fatal

  • time : 日志輸出時(shí)間,精確到納秒

     

  • group_id : 輸出日志記錄的群組ID

     

  • module_name :模塊關(guān)鍵字,例如同步模塊關(guān)鍵字為SYNC ,共識(shí)模塊關(guān)鍵字為CONSENSUS

     

  • content :日志記錄內(nèi)容

下面是群組3提交區(qū)塊時(shí)輸出的日志:

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

該日志級(jí)別是info,輸出時(shí)間是 2019-06-26 ,群組id是3,模塊是 CONSENSUS ,日志關(guān)鍵字是 PBFT 和 Report 。

  日志級(jí)別

日志分級(jí)對(duì)于及時(shí)定位問(wèn)題至關(guān)重要,F(xiàn)ISCO BCOS 2.0 對(duì)標(biāo)生產(chǎn)環(huán)境,將日志級(jí)別從低到高劃分為 trace、debug、info、 warning、error 和 fatal ,其中:

  • trace 和 debug 日志主要用于代碼調(diào)試

     

  • info 級(jí)別日志輸出了系統(tǒng)關(guān)鍵流程,主要用于生產(chǎn)環(huán)境定位問(wèn)題

     

  • warning 日志輸出了告警信息,當(dāng)告警日志記錄超過(guò)一定數(shù)目時(shí),運(yùn)維人員應(yīng)當(dāng)介入

     

  • error 日志輸出了核心錯(cuò)誤信息,系統(tǒng)出現(xiàn) error 日志時(shí),運(yùn)維人員應(yīng)當(dāng)介入

     

  • fatal 日志一般用于程序開發(fā)調(diào)試過(guò)程中,盡快定位bug,當(dāng)系統(tǒng)觸及不可能的邏輯時(shí),可以通過(guò)打印日志的形式終止程序,從而在開發(fā)階段暴露邏輯錯(cuò)誤

我們希望,在降低日志占用磁盤空間的同時(shí),能盡量暴露、定位系統(tǒng)問(wèn)題。為了達(dá)到這個(gè)目的,生產(chǎn)環(huán)境一般開啟info及其以上級(jí)別的日志,F(xiàn)ISCO BCOS建鏈工具生成的區(qū)塊鏈節(jié)點(diǎn)默認(rèn)日志級(jí)別是 info,會(huì)輸出 info、warning、error 以及fatal級(jí)別的日志。

若需要調(diào)整日志級(jí)別,可以修改節(jié)點(diǎn)目錄下的 config.ini 的 log.level 配置,如,將日志級(jí)別調(diào)整為 ≥debug ,配置如下:

[log]level=debug

  模塊日志關(guān)鍵字

 

為了準(zhǔn)確區(qū)分多個(gè)模塊日志、方便定位bug和解析日志,F(xiàn)ISCO BCOS 2.0為每個(gè)模塊都定制了日志關(guān)鍵字,且設(shè)計(jì)了宏,方便開發(fā)者寫日志輸出代碼的同時(shí),保證日志輸出格式一致,提升代碼的可讀性。

主要的日志宏包括:

  • LOG_BADGE :輸出模塊信息,模塊信息外圍用中括號(hào) [] 括起來(lái),從而與其他日志輸出信息區(qū)分開

     

  • LOG_DESC : 輸出日志描述信息

     

  • LOG_KV :LOG_KV(_K, _V) 被定義為 "," << (_K) << "=" << (_V) ,主要用于輸出關(guān)鍵變量及其對(duì)應(yīng)的值

以 DEBUG 級(jí)別輸出區(qū)塊執(zhí)行信息的例子如下:

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());

各個(gè)模塊的日志關(guān)鍵字如下:

 

FISCO BCOS日志規(guī)范有哪些

常用日志

網(wǎng)絡(luò)模塊、共識(shí)模塊是決定區(qū)塊鏈系統(tǒng)能否正常運(yùn)行的重要模塊,本節(jié)主要介紹這兩個(gè)模塊的常用日志。通過(guò)這些日志,大家可以判斷區(qū)塊鏈系統(tǒng)是否正常工作。

  網(wǎng)絡(luò)模塊

 

查看網(wǎng)絡(luò)連接數(shù)目

可通過(guò)搜索關(guān)鍵字connected count 獲取指定節(jié)點(diǎn)的網(wǎng)絡(luò)連接情況,查看四節(jié)點(diǎn)區(qū)塊鏈系統(tǒng)中,某個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)連接情況,輸出日志如下:

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

其中 connected count 表示與當(dāng)前節(jié)點(diǎn)建立P2P網(wǎng)絡(luò)連接的節(jié)點(diǎn)數(shù)。

從上面日志可看出,該節(jié)點(diǎn)與三個(gè)其他節(jié)點(diǎn)建立了P2P網(wǎng)絡(luò)連接,符合預(yù)期。若節(jié)點(diǎn)連接不符合預(yù)期,則需要通過(guò)命令 netstat -anp| grep fisco-bcos 命令檢查節(jié)點(diǎn)連接情況,找出斷連節(jié)點(diǎn)。

證書驗(yàn)證失敗輸出日志

為了保障節(jié)點(diǎn)通信的機(jī)密性,F(xiàn)ISCOBCOS節(jié)點(diǎn)間通信采用了openssl握手協(xié)議,需要相互間進(jìn)行證書驗(yàn)證,在P2P 初始化過(guò)程中,若由于證書驗(yàn)證失敗導(dǎo)致節(jié)點(diǎn)間斷連,一般會(huì)輸出 Certverify failed 關(guān)鍵字的error日志:

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

節(jié)點(diǎn)輸出該錯(cuò)誤時(shí),一方面要確認(rèn)節(jié)點(diǎn)證書是否正確,另一方面需要確認(rèn)openssl版本是否升級(jí)到最新,ubuntu系統(tǒng)可使用 sudo apt install -y openssl 安裝最新的openssl;centos系統(tǒng)可使用 sudo yum -y install opensslopenssl-devel 升級(jí)到最新的openssl。

  共識(shí)模塊

 

查看Leader打包區(qū)塊

 

FISCO BCOS 2.0共識(shí)節(jié)點(diǎn)輪流擔(dān)任leader打包區(qū)塊,成功打包區(qū)塊時(shí)會(huì)輸出 +++ 日志,可通過(guò)搜索群組id(記為group_id )以及 +++ 日志判斷指定群組是否正常共識(shí),若沒有輸出 ++ 日志,說(shuō)明節(jié)點(diǎn)已處于異常狀態(tài),請(qǐng)優(yōu)先檢查網(wǎng)絡(luò)連接是否正常、節(jié)點(diǎn)證書是否有效。

查看群組2的區(qū)塊打包情況,輸出日志如下:

$ 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...

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

  • blkNum : 打包區(qū)塊的高度

  • tx : 打包區(qū)塊中包含的交易數(shù)

  • nodeIdx : 當(dāng)前共識(shí)節(jié)點(diǎn)的索引

  • hash : 打包區(qū)塊的哈希

從上面日志可以看出,群組2的當(dāng)前l(fā)eader是索引為3( nodeIdx=3 )的節(jié)點(diǎn),正在打包區(qū)塊高度為1( blkNum=1 )的空區(qū)塊( tx=0 ,空區(qū)塊不落盤)。

查看區(qū)塊落盤情況

 

非空區(qū)塊共識(shí)落盤成功或區(qū)塊同步落盤成功,均會(huì)輸出關(guān)鍵字為 Report 的日志,可通過(guò) `tail -f log/* | grep"${group_id}.*Report" 查看區(qū)塊落盤情況。

查看群組1區(qū)塊落盤日志輸出如下:

$ 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

其中,各個(gè)字段含義如下:

  • num : 落盤區(qū)塊塊高

  • sealerIdx : 打包該區(qū)塊的共識(shí)節(jié)點(diǎn)索引

  • hash : 落盤區(qū)塊哈希

  • next : 下一個(gè)區(qū)塊塊高

  • tx : 落盤區(qū)塊中包含的交易數(shù)

  • nodeIdx : 當(dāng)前共識(shí)節(jié)點(diǎn)索引

從上面日志可看出,群組1高度為716( num=716 )的區(qū)塊落盤成功,出塊節(jié)點(diǎn)是索引為2( sealerIdx=2)的共識(shí)節(jié) 點(diǎn),區(qū)塊哈希前8位為 dfd75e06 ,包含8筆( tx=8 )交易。

共識(shí)異常

 

網(wǎng)絡(luò)抖動(dòng)、網(wǎng)絡(luò)斷連或配置出錯(cuò)(如同一個(gè)群組的創(chuàng)世塊文件不一致)均有可能導(dǎo)致節(jié)點(diǎn)共識(shí)異常,PBFT共識(shí)節(jié)點(diǎn)會(huì)輸出 ViewChangeWarning 日志,可使用 tail -f log/*|grep "g:group_id.*ViewChangeWarning" 查看組group_id 是否共識(shí)異常。

組1共識(shí)異常輸出日志如下:

$ 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...

各個(gè)字段的含義如下:

  • v: 當(dāng)前節(jié)點(diǎn)PBFT共識(shí)視圖

  • toV: 當(dāng)前節(jié)點(diǎn)試圖切換到的視圖

  • curNum: 節(jié)點(diǎn)最高塊高

  • hash: 節(jié)點(diǎn)最高塊哈希

  • nodeIdx: 當(dāng)前共識(shí)節(jié)點(diǎn)索引

  • myNode: 當(dāng)前節(jié)點(diǎn)Node ID

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

網(wǎng)站題目:FISCOBCOS日志規(guī)范有哪些
轉(zhuǎn)載來(lái)源:http://jinyejixie.com/article32/ppspsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司靜態(tài)網(wǎng)站、Google、全網(wǎng)營(yíng)銷推廣動(dòng)態(tài)網(wǎng)站、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
眉山市| 穆棱市| 广安市| 梨树县| 桂东县| 梁河县| 什邡市| 临安市| 苗栗市| 天柱县| 兴山县| 鸡泽县| 西林县| 林西县| 石阡县| 通道| 张家港市| 涞水县| 桐城市| 万宁市| 长武县| 邯郸市| 侯马市| 富锦市| 乌拉特中旗| 称多县| 吴堡县| 湘乡市| 崇阳县| 莲花县| 建阳市| 灵丘县| 台东县| 郧西县| 临沭县| 武邑县| 静宁县| 南宁市| 根河市| 仁化县| 稷山县|