溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行基于NEO的私鏈Private Blockchain或者聯(lián)盟鏈的搭建

發(fā)布時(shí)間:2021-12-10 18:47:04 來(lái)源:億速云 閱讀:156 作者:柒染 欄目:互聯(lián)網(wǎng)科技

本篇文章給大家分享的是有關(guān)如何進(jìn)行基于NEO的私鏈Private Blockchain或者聯(lián)盟鏈的搭建,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

1.準(zhǔn)備工作

1.NEO-GUI

2.NEO-CLI

3..NET Core Runtime (不能是2.x版本,官方建議是1.12,實(shí)際上我用1.14也是沒(méi)有問(wèn)題的)

4.四臺(tái)windows操作系統(tǒng)的虛擬機(jī)(本文是基于AWS的,理論上本地跑虛擬機(jī)也是沒(méi)問(wèn)題的)

2.部署NEO節(jié)點(diǎn)

先給出官方文檔的鏈接–NEO節(jié)點(diǎn)部署(官方文檔),可以對(duì)照這個(gè)文檔一起進(jìn)行。

1.先準(zhǔn)備好要充當(dāng)節(jié)點(diǎn)的虛擬機(jī)。這里以AWS為例,打開(kāi)AWS首頁(yè),注冊(cè)登錄,登錄成功后,選擇AWS管理控制臺(tái),然后再點(diǎn)擊左上角的服務(wù),選擇EC2

2.新頁(yè)面中點(diǎn)啟動(dòng)實(shí)例(PS:右上角有個(gè)節(jié)點(diǎn)選擇,可以自由切換,我選擇的是新加坡的),然后選擇 windows server 2016 Base >>> 選擇有符合條件的免費(fèi)套餐 , 后面的默認(rèn)配置就可以。關(guān)鍵是最后一步—核實(shí)實(shí)例啟動(dòng),這里選擇 創(chuàng)建一個(gè)新密鑰對(duì),并保存好。

3.創(chuàng)建成功后,回到控制臺(tái),稍等幾分鐘,等虛擬機(jī)準(zhǔn)備好,然后選擇剛剛創(chuàng)建的虛擬機(jī),點(diǎn)連接,會(huì)出現(xiàn)一個(gè)彈框,點(diǎn)擊下載選擇桌面文件,密碼那里按提示操作獲取密碼

4.打開(kāi)剛剛下載的遠(yuǎn)程桌面文件,按提示粘貼上一步獲取到的密碼,成功連接后,等系統(tǒng)初始化完成就可以操作了。初始化完成后先把虛擬機(jī)的IE安全設(shè)置關(guān)掉(不然無(wú)法下載文件,而且每打開(kāi)一個(gè)網(wǎng)頁(yè)都要警告一次,賊煩),點(diǎn)擊左下角的搜索按鈕,輸入server manager,然后在Local server面板找到IE Enhanced Security Configuration,點(diǎn)擊ON,然后在彈出的面板里選擇OFF,關(guān)閉掉IE安全設(shè)置

5.打開(kāi)NEO節(jié)點(diǎn)部署(官方文檔),下載NEO-GUI,NEO-CLI,.NET Core Runtime。這里說(shuō)一下,為什么要下載NEO-GUI?按照官方文檔的說(shuō)明,理論上我們只下載NEO-CLI就可以的了。但是官方文檔沒(méi)有指明NEO-CLI運(yùn)行需要的兩個(gè)庫(kù)文件具體在哪里可以下載。官方文檔這里的第一步的程序包應(yīng)該指的就是NEO-GUI,然后再NEO-GUI目錄下的x64(或者x86,根據(jù)你的操作系統(tǒng)來(lái)選擇)文件下可以找到這兩個(gè)庫(kù)文件。將這兩個(gè)文件復(fù)制到NEO-CLI文件目錄下。

6.安裝.NET Core Runtime ,安裝完成后,打開(kāi)命令行,我這里用的是PowerShell,用命令行切換到NEO-CLI目錄,輸入 dotnet neo-cli.dll ,不出意外的話,NEO節(jié)點(diǎn)就部署成功了,如圖所示。

3.搭建私鏈(或者聯(lián)盟鏈)

官方文檔在這—NEO私鏈搭建(官方文檔),可以對(duì)照著一起來(lái)做。

1.文檔中有指出需要4臺(tái)虛擬機(jī),所以我們需要4臺(tái)虛擬機(jī),并且都是部署好NEO節(jié)點(diǎn)的??梢园凑丈弦徊浇坛?,將另外3臺(tái)配置好。這里的給虛擬機(jī)命名的時(shí)候最好自己弄個(gè)簡(jiǎn)單的標(biāo)識(shí)排序,不然后面操作起來(lái)可能會(huì)亂,比如我這里的4臺(tái)虛擬機(jī)分別命名是neo-window,neo-window1,neo-window2,neo-window3。當(dāng)然這些看個(gè)人習(xí)慣來(lái)。

NEO 私有鏈的部署至少需要 4 臺(tái)服務(wù)器才能取得共識(shí),每臺(tái)服務(wù)器對(duì)應(yīng)一個(gè)共識(shí)節(jié)點(diǎn),每臺(tái)服務(wù)器上有一個(gè) NEO 錢包文件

2.另外3臺(tái)部署成功后,打開(kāi)其中一臺(tái)虛擬機(jī),我這里打開(kāi)的是第一臺(tái)(neo-window),然后啟動(dòng)NEO-CLI,用 create wallet xxxx.db3 新建4個(gè)錢包,我這里分別創(chuàng)建的是wallet1.db3 ~ wallet4.db3。新建好后將四個(gè)pubkey保存到一個(gè)txt文件里,后面會(huì)用到。然后將其它3個(gè)錢包文件分別復(fù)制粘貼到相應(yīng)的虛擬機(jī)上。注意要放在跟neo-cli.dll同一個(gè)目錄下。

3.后臺(tái)打開(kāi)AWS控制臺(tái),將4臺(tái)虛擬機(jī)的IP地址記錄下來(lái)。這一步后面修改節(jié)點(diǎn)配置文件的時(shí)候會(huì)用到。如圖所示,要把IPv4 公有IP記錄下來(lái)。

4.如果你之前有啟動(dòng)過(guò)neo-cli.dll,那么要先刪除掉NEO-CLI目錄下的Chain目錄,不然做到最后面可能會(huì)出現(xiàn)有連接數(shù),但是區(qū)塊高度為0的狀況。同樣的,如果你因?yàn)楹闷嫘拇蜷_(kāi)過(guò)NEO-GUI,你也需要?jiǎng)h除相應(yīng)的Chain目錄。如果沒(méi)有,可以跳過(guò)刪除這一步。之后打開(kāi)NEO-CLI目錄,用txt方式打開(kāi)目錄下的 protocol.json 文件,這個(gè)是節(jié)點(diǎn)的配置文件。按照官方文檔的格式進(jìn)行修改

下面是我修改好的文件,修改好后,保存,并復(fù)制替換掉其它虛機(jī)上的客戶端的節(jié)點(diǎn)配置文件。

{
"ProtocolConfiguration":{
"Magic":66123456,
"AddressVersion":23,
"StandbyValidators":[
    "0264e5b51fa2af8392292fd13e0381d913288e0d197086d12aef195d6823a349fa",
    "034a879e08069f89cdbc34067ff0df614d36bef7a30b014509dfe3170c6a9d7974",
    "0332c8d77ca8e2a7847325af55457f2793d285e2a914e349bc329c94e301c01dd6",
    "020a02297371c867c845471dc0030277dc669c89ae80071424442787535295c7a4"
],
"SeedList":[
    "54.255.212.167:10333",
    "52.221.255.41:10333",
    "13.229.109.145:10333",
    "13.228.25.57:10333"
],
"SystemFee":{
    "EnrollmentTransaction":1000,
    "IssueTransaction":500,
    "PublishTransaction":500,
    "RegisterTransaction":10000
    }
}
}

5.修改虛擬機(jī)的防火墻入站規(guī)則,這里要注意的是不僅需要修改虛擬機(jī)的入站規(guī)則,而且要去AWS控制臺(tái)修改安全組里的入站規(guī)則,由于我4臺(tái)虛擬機(jī)用的都是同一個(gè)安全組,所以只要修改一個(gè)就行了。虛擬機(jī)里windows操作系統(tǒng)的入站規(guī)則我就不具體寫了,在控制面板里操作,這個(gè)比較簡(jiǎn)單。其實(shí),如果想簡(jiǎn)單粗暴點(diǎn),直接關(guān)掉windows的防火墻應(yīng)該就可以了。。

6.在四臺(tái)虛擬機(jī)上分別用neo-cli打開(kāi)相對(duì)應(yīng)的錢包,這里以第一臺(tái)虛擬機(jī)為例。運(yùn)行 dotnet neo-cil.dll 命令,如果你想檢查當(dāng)前的區(qū)塊狀態(tài),可以使用show state,初始狀態(tài)應(yīng)該是高度為0,節(jié)點(diǎn)為0。然后打開(kāi)本機(jī)對(duì)應(yīng)的錢包文件,這臺(tái)虛擬機(jī)對(duì)應(yīng)的wallet1.db3。

輸入命令 open wallet wallet1.db3 打開(kāi)錢包

然后輸入 start consensus 開(kāi)啟共識(shí)

其他虛擬機(jī)一樣操作,分別打開(kāi)對(duì)應(yīng)的錢包文件,然后輸入命令開(kāi)啟共識(shí)。不出意外的話就會(huì)出現(xiàn)如圖所示的界面。關(guān)掉其中一臺(tái)的話,其它三臺(tái)依然可以產(chǎn)生共識(shí)

7.利用NEO-GUI提取NEO和GAS。安裝好NEO-GUI后,將NEO-CLI目錄下的 protocol.json 文件覆蓋掉NEO-GUI目錄下的protocol.json,然后運(yùn)行neo-gui.exe。進(jìn)行多方簽名的設(shè)置。

但是有一個(gè)問(wèn)題,這里有點(diǎn)比較坑的地方,文檔里也沒(méi)有明說(shuō)。NEO-CLI和NEO-GUI是不能同時(shí)啟動(dòng)的,也就是說(shuō)用 dotnet neo-cli.dll 啟動(dòng)了neo-cli的時(shí)候,不能運(yùn)行neo-gui.exe,反之亦然。所以當(dāng)產(chǎn)生共識(shí)之后,我們需要關(guān)閉其中一個(gè)節(jié)點(diǎn)的NEO-CLI,然后在這個(gè)節(jié)點(diǎn)上的NEO-GUI客戶端進(jìn)行操作。依次打開(kāi)4個(gè)錢包,進(jìn)行多方簽名的設(shè)置和重建錢包索引的操作,這個(gè)操作是在同一臺(tái)虛擬機(jī)上完成的。這個(gè)一定要注意。

然后把 NEO 從合約地址轉(zhuǎn)到普通地址中,打開(kāi) 4 個(gè)錢包中的任意一個(gè),點(diǎn)擊 交易  >>>  轉(zhuǎn)賬 輸入標(biāo)準(zhǔn)地址和數(shù)額,將 1 億 NEO 轉(zhuǎn)到這個(gè)地址中。

然后系統(tǒng)會(huì)提示“交易構(gòu)造完成,但沒(méi)有足夠的簽名”,然后將代碼復(fù)制下來(lái),打開(kāi)第二個(gè)錢包,點(diǎn)擊交易簽名粘貼剛才復(fù)制的代碼,點(diǎn)擊簽名, 然后將代碼復(fù)制下來(lái),打開(kāi)第三個(gè)錢包,點(diǎn)擊交易簽名粘貼剛才復(fù)制的代碼,點(diǎn)擊簽名, 這時(shí)你會(huì)發(fā)現(xiàn)窗口中出現(xiàn)了一個(gè)廣播按鈕,代表交易已經(jīng)簽名完成(達(dá)到多方簽名合約要求的最少簽名數(shù)量)可以廣播,點(diǎn)擊廣播后轉(zhuǎn)賬交易開(kāi)始廣播,約 15 秒后轉(zhuǎn)賬成功。

上面的操作也是在同一個(gè)客戶端完成的。這里多說(shuō)一句,我第一次弄的時(shí)候沒(méi)有注意,我是在4個(gè)節(jié)點(diǎn)客戶端上分別操作的,也就是說(shuō)多方簽名的設(shè)置和重建錢包索引操作,我是在4臺(tái)虛擬機(jī)上分別完成的。這就造成了我沒(méi)有正在運(yùn)行的節(jié)點(diǎn)了(因?yàn)閚eo-cli和neo-gui不能同時(shí)運(yùn)行,而neo-gui沒(méi)有共識(shí)功能)。然后,到了提取NEO和GAS這一步時(shí),就造成了,我的交易簽名成功了,而且廣播了,但是并沒(méi)有轉(zhuǎn)帳成功。造成這樣的原因是因?yàn)槲译m然廣播了,但是此時(shí)沒(méi)有節(jié)點(diǎn)幫我把這個(gè)交易打包上去。所以,我的交易轉(zhuǎn)賬當(dāng)然不成功,在普通地址上也就沒(méi)看到那些相應(yīng)的NEO。這點(diǎn)是因?yàn)樽约簩?duì)區(qū)塊鏈的概念不夠深,我這里被困擾了很久。

以上就是如何進(jìn)行基于NEO的私鏈Private Blockchain或者聯(lián)盟鏈的搭建,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

neo
AI