在windows下成功運行g(shù)o語言編寫的區(qū)塊鏈pbft共識代碼:
先附上代碼鏈接:https://github.com/corgi-kx/blockchain_consensus_algorithm/tree/master/pbft
主要是想記錄一下運行代碼過程中遇到的問題,萬一以后用得到,還能抄一下作業(yè)
問題1:配置go語言環(huán)境變量
電腦上沒有g(shù)o語言環(huán)境,按下面步驟進行環(huán)境配置:
1、首先在go官網(wǎng)下載https://golang.org/dl/安裝包,根據(jù)自己電腦選擇,我是windows 64位,所以下載的 go1.18.4.windows-amd64.msi;
2、然后按照指引一步一步安裝即可,唯一需要注意的地方是在選擇安裝位置的時候,我選擇的默認位置,C:\Program Files\Go,這個位置要記好;
3、安裝結(jié)束,也就是一直正常進行到“Finish”,到這里安裝環(huán)節(jié)就結(jié)束了;
4、開始環(huán)境配置,建議大家在網(wǎng)上搜一下,環(huán)境配置的帖子很多,我選擇的是配置過程是此電腦--屬性--高級--環(huán)境變量--用戶變量--新建--變量名:GOPATH 變量值:步驟3中的路徑--進入用戶變量的path中--新建C:\Program Files\Go\bin
,至此,完成環(huán)境配置;
5、進入cmd,輸入go,回車可以看到相應提示表示成功,也可以使用有g(shù)o version查看go版本。
問題2:按照代碼注釋運行代碼報錯
報錯提示:go: go.mod file not found in current directory or any parent directory; see 'go help modules'
查了一下,找到了解決辦法:
1、開啟go modules功能,命令行輸入
go env -w GO111MODULE=on
2、在該項目目錄下(我要運行pbft文件夾里的代碼,故而在pbft文件夾所在目錄下),運行下面命令
go mod init pbft //pbft代表文件夾名
然后,錯誤解決,繼續(xù)往下進行!
步驟3:這里往下已經(jīng)順利進行了,所以改為步驟3
1、按照github上代碼執(zhí)行順序,打開一個客戶端和4個節(jié)點,其中客戶端執(zhí)行pbft.exe client,節(jié)點分別執(zhí)行pbft.exe N0,pbft.exe N1,pbft.exe N2,pbft.exe N3,如下圖所示
2、接著,隨便輸入一段信息,查看節(jié)點同步情況,從下圖可以看到,信息同步成功,
3、關(guān)閉一個節(jié)點(代表作惡、故障節(jié)點),再次輸入信息,看看是否還會接收到reply??梢钥吹剑蛻舳艘廊粫邮盏絩eply,因為根據(jù)公式 n >= 3f+1 ,就算宕機一個節(jié)點,系統(tǒng)依然能順利運行。
4、關(guān)閉兩個節(jié)點(代表作惡、故障節(jié)點),再次輸入信息,看看是否還會接收到reply。可以看到,關(guān)閉兩個節(jié)點后,故障節(jié)點已經(jīng)超出了pbft的允許數(shù)量,消息進行到Prepare階段由于接收不到滿足數(shù)量的信息,固系統(tǒng)不再進行commit確認,客戶端也接收不到reply。文章來源:http://www.zghlxwxcb.cn/news/detail-822272.html
可以大致看到pbft的運行情況,上面只是共識算法的學習中代碼的初步復現(xiàn),繼續(xù)加油。文章來源地址http://www.zghlxwxcb.cn/news/detail-822272.html
到了這里,關(guān)于【復現(xiàn)go語言編寫的區(qū)塊鏈PBFT共識算法中爬坑記錄】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!