問題內(nèi)容
- 最近在搭建FISCO BCOS區(qū)塊鏈系統(tǒng),但是在一個(gè)舊的區(qū)塊鏈上新增一個(gè)區(qū)塊鏈節(jié)點(diǎn)時(shí)出現(xiàn)了一些問題
- 目前的區(qū)塊鏈擁有三個(gè)節(jié)點(diǎn),區(qū)塊鏈中已經(jīng)部署了一些合約,產(chǎn)生了一些交易,因此最新的塊高為21。現(xiàn)在我想要在這個(gè)區(qū)塊鏈系統(tǒng)中新增一個(gè)節(jié)點(diǎn),而且需要它同步之前產(chǎn)生的一些數(shù)據(jù)
- FISCO的文檔里寫了新增區(qū)塊鏈節(jié)點(diǎn)的方法,但是需要手動操作很多步驟,因此我在FISCO的github倉庫里找到了一個(gè)他們提供的腳本,這個(gè)腳本可以根據(jù)你的配置文件實(shí)現(xiàn)節(jié)點(diǎn)的一鍵擴(kuò)充。腳本地址為:https://github.com/FISCO-BCOS/fisco_bcos_docker_compose
- 但是使用上述腳本擴(kuò)充了節(jié)點(diǎn)以后,新增加的節(jié)點(diǎn)無法同步之前的數(shù)據(jù),往區(qū)塊鏈上新增交易時(shí),這個(gè)新增加的節(jié)點(diǎn)也不會參與共識,塊高一直為0
- 使用區(qū)塊鏈控制臺連接區(qū)塊鏈后,將這個(gè)新增加的節(jié)點(diǎn)通過addSealer方法加入?yún)^(qū)塊鏈的共識中,但是問題仍未解決
問題原因
- 查看新節(jié)點(diǎn)的log以后發(fā)現(xiàn),新增加的這個(gè)節(jié)點(diǎn)一直報(bào)創(chuàng)世區(qū)塊錯(cuò)誤,因此雖然使用控制臺強(qiáng)行將這個(gè)節(jié)點(diǎn)加入到共識里,但是由于創(chuàng)世區(qū)塊就和其他節(jié)點(diǎn)不同,因此這個(gè)新節(jié)點(diǎn)無法同步數(shù)據(jù),也無法接收新的交易產(chǎn)生共識
文章來源:http://www.zghlxwxcb.cn/news/detail-784088.html
- FISCO BCOS區(qū)塊鏈系統(tǒng)中的創(chuàng)世區(qū)塊的哈希存放于/node*/conf/group.*.genesis文件里,但是這個(gè)文件是腳本從原先存在的節(jié)點(diǎn)拷貝過來的,不應(yīng)該有錯(cuò)才對。
- 通過查看https://github.com/FISCO-BCOS/fisco_bcos_docker_compose里build.sh的腳本內(nèi)容,我發(fā)現(xiàn)腳本在擴(kuò)容區(qū)塊鏈節(jié)點(diǎn)時(shí),會修改原來的節(jié)點(diǎn)以及新產(chǎn)生的節(jié)點(diǎn)的/node*/conf/group.*.genesis文件,腳本的這個(gè)行為在區(qū)塊鏈從未使用時(shí)可以讓我們不用使用控制臺手動將新增加的節(jié)點(diǎn)加入共識列表,直接使用即可。但是在擴(kuò)容已經(jīng)產(chǎn)生過數(shù)據(jù)的區(qū)塊鏈時(shí),這個(gè)操作由于修改了/node*/conf/group.*.genesis文件,會導(dǎo)致創(chuàng)世區(qū)塊的哈希值也被同步地修改了,所以新增加的節(jié)點(diǎn)將無法正確同步原先區(qū)塊鏈中的數(shù)據(jù),也無法參與區(qū)塊鏈的共識
解決方法
- 當(dāng)區(qū)塊鏈從未使用時(shí),使用https://github.com/FISCO-BCOS/fisco_bcos_docker_compose腳本即可非常方便地實(shí)現(xiàn)區(qū)塊鏈節(jié)點(diǎn)的擴(kuò)容
- 但是當(dāng)區(qū)塊鏈已經(jīng)產(chǎn)生過數(shù)據(jù)時(shí),需要修改腳本里的代碼,把build.sh中與gen_groups函數(shù)的相關(guān)內(nèi)容全部刪除,同時(shí)需要使用FISCO的區(qū)塊鏈控制臺手動將新產(chǎn)生的這個(gè)節(jié)點(diǎn)使用addLeaser方法加入共識列表即可
文章來源地址http://www.zghlxwxcb.cn/news/detail-784088.html
到了這里,關(guān)于FISCO BCOS區(qū)塊鏈系統(tǒng)新增節(jié)點(diǎn)時(shí)無法同步數(shù)據(jù)的原因及解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!