從零開始學(xué)習(xí) JD Chain(一)- 快速部署 JD Chain

此文章系列計(jì)劃記錄本人從零開始學(xué)習(xí)JD Chain的歷程,因?yàn)槭菑牧汩_始,理所當(dāng)然會(huì)有許多理解不夠深入的地方,還望各位同好及時(shí)指正錯(cuò)誤,共同成長(zhǎng)。不定期更新,但盡量堅(jiān)持下去,分享文章也是想立個(gè)Flag,讓大家監(jiān)督我的學(xué)習(xí)進(jìn)度。

JD Chain 是京東區(qū)塊鏈開發(fā)團(tuán)隊(duì)自主研發(fā)的,專門為企業(yè)應(yīng)用設(shè)計(jì)的區(qū)塊鏈框架系統(tǒng),適用多種通用業(yè)務(wù)場(chǎng)景。不同于超級(jí)賬本(Hyperledger Fabric)生態(tài)和企業(yè)級(jí)以太坊聯(lián)盟(Enterprise Ethereum Alliance,EEA),JD Chain 擁有完全的自主知識(shí)產(chǎn)權(quán)和充分開放的開源協(xié)議(Apache-2.0 License)。在我大中華和美麗國(guó)在各個(gè)維度頻頻摩擦,連Docker這種應(yīng)用廣泛的開源項(xiàng)目都不再能愉快使用的當(dāng)下,學(xué)習(xí)了解完全自主可控的開源項(xiàng)目,也算為加速內(nèi)循環(huán)做出微薄貢獻(xiàn)(此處應(yīng)該有掌聲^ ^)。

-------------這里是廢話的分割線-------------------

為了幫助開發(fā)者快速部署,JD Chain 項(xiàng)目在部署腳本中內(nèi)置了一個(gè)可視化管理工具,除了一些必要的配置修改外,大部分如快速實(shí)現(xiàn)JDChain的初始化和peer節(jié)點(diǎn)啟動(dòng)等區(qū)塊鏈部署工作只需要在前端頁(yè)面按照操作提示進(jìn)行簡(jiǎn)單的點(diǎn)點(diǎn)點(diǎn)即可,減少用戶的各種繁瑣操作,簡(jiǎn)直是我這種懶人的福音。

部署模型

JD Chain 官網(wǎng) 提供了面向中小型企業(yè)和大型企業(yè)的兩種不同部署模型。其中面向中小企業(yè)的最簡(jiǎn)部署模型為JD Chain可正常運(yùn)行的最低配置,在硬件條件滿足的情況下,可以支持億級(jí)交易,通常用于Demo實(shí)驗(yàn)或小型應(yīng)用,也正是下文采用的部署模型。最簡(jiǎn)部署模型需要部署一個(gè)客戶端節(jié)點(diǎn)、一個(gè)網(wǎng)關(guān)節(jié)點(diǎn)和多個(gè)共識(shí)節(jié)點(diǎn)(共識(shí)節(jié)點(diǎn)數(shù)量依賴于共識(shí)算法,本次部署部署了四個(gè)共識(shí)節(jié)點(diǎn))

image.png

操作步驟

image

安裝、修改配置

http://ledger.jd.com下載安裝包,其中jdchain-peer-1.2.1-xxx.zippeer節(jié)點(diǎn)壓縮包,jdchain-gateway-1.2.1-xxx.zip為網(wǎng)關(guān)壓縮包。

如果peer節(jié)點(diǎn)部署在不同的機(jī)器上,采用默認(rèn)端口安裝就可以;
如果peer節(jié)點(diǎn)部署在同一臺(tái)機(jī)器上,需要修改管理工具和peer節(jié)點(diǎn)的默認(rèn)端口,避免端口沖突導(dǎo)致服務(wù)無(wú)法啟動(dòng)。還需要做一些假設(shè):

  1. 管理工具的端口定義為:8000/8001/8002/8003
  2. peer節(jié)點(diǎn)的啟動(dòng)端口定義為:7080/7081/7082/7083
  3. JDChain項(xiàng)目的安裝路徑為:/export/jdchain

對(duì)節(jié)點(diǎn)配置進(jìn)行修改,具體修改如下(如果為不同機(jī)器部署,只需執(zhí)行如下步驟1和步驟2):

  1. 切換路徑 cd /export/jdchain
  2. 解壓Peer節(jié)點(diǎn)安裝包 unzip jdchain-peer-1.2.1.RELEASE.zip –d peerX
  3. 切換路徑 cd /export/jdchain/peerX/bin
  4. 修改管理工具manager端口(如下圖所示位置) vi manager-startup.sh
    image
  5. 修改peer啟動(dòng)端口和內(nèi)存大小vi peer-startup.sh。本機(jī)多peer部署建議把內(nèi)存配置改小一點(diǎn)避免內(nèi)存不夠用應(yīng)用程序無(wú)法啟動(dòng)或者被系統(tǒng)kill,下圖提示位置建議修改為:-Xmx512m -Xms512m
    image.png

啟動(dòng)管理工具

  1. 進(jìn)入可執(zhí)行腳本目錄 cd /export/jdchain/peerX/bin
  2. 執(zhí)行: sh manager-startup.sh
  3. 管理工具的后臺(tái)日志默認(rèn)存放在 jump.out 文件內(nèi)
  4. 管理工具會(huì)啟動(dòng)一個(gè)UI操作界面方便部署,界面默認(rèn)的訪問(wèn)端口為 8000。

創(chuàng)建公私鑰

登錄管理端UI界面,點(diǎn)擊左側(cè)菜單:公私鑰管理->生成公私鑰。在彈出的界面中填寫相關(guān)信息:

image

OK! 創(chuàng)建完畢!公鑰(以及公鑰衍生的地址)將作為區(qū)塊鏈上各個(gè)參與方節(jié)點(diǎn)或用戶的數(shù)字身份(類比于郵箱賬號(hào)),私鑰作為區(qū)塊鏈上各個(gè)參與方節(jié)點(diǎn)或用戶的數(shù)字身份的密碼(類比于郵箱密碼,需要妥善保管)

創(chuàng)建數(shù)據(jù)賬本

  1. 修改配置信息:點(diǎn)擊左側(cè)菜單:賬本->初始化賬本,選擇一臺(tái)機(jī)器作為協(xié)調(diào)方,其它的作為參與方。每個(gè)節(jié)點(diǎn)填寫內(nèi)容之后先不要點(diǎn)擊“保存配置信息”按鈕,都填寫完成之后統(tǒng)一,先保存協(xié)調(diào)方,其它依次快速保存。

注意事項(xiàng):

  • 參與方要使用協(xié)調(diào)方的邀請(qǐng)碼;
  • 共識(shí)協(xié)議:目前為:Bftsmart
  • 密碼算法:默認(rèn);
  • 參與方數(shù)量:包含協(xié)調(diào)方在內(nèi);
  • 共識(shí)節(jié)點(diǎn)信息:如果在同一臺(tái)機(jī)器,一定要保證共識(shí)端口不同(共識(shí)會(huì)占用多個(gè)連續(xù)端口,步長(zhǎng)建議設(shè)置為10,即:6300/6310/6320/6330);
  • 初始化共識(shí)地址:如果在同一臺(tái)機(jī)器,一定要保證共識(shí)端口不同(共識(shí)會(huì)占用多個(gè)連續(xù)端口,步長(zhǎng)建議設(shè)置為10,即:22000/22010/22020/22030);
  • peer節(jié)點(diǎn)公鑰:選擇上一步創(chuàng)建的公鑰;
  • 數(shù)據(jù)庫(kù)名稱:在同一個(gè)機(jī)器上的名稱不能重復(fù)。
  • 由于peer節(jié)點(diǎn)之間的通信設(shè)置了時(shí)延,一定要確保四個(gè)peer節(jié)點(diǎn)的配置都無(wú)誤的前提下,在盡可能短的時(shí)間內(nèi)同時(shí)點(diǎn)擊界面下方的“保存配置信息”按鈕。

協(xié)調(diào)方配置信息如下:


image

參與方配置信息如下:


image

四個(gè)參與方都點(diǎn)擊“保存配置信息”后,配置信息會(huì)在四個(gè)參與方之間共享。界面如下:
image
  1. 賬本初始化:點(diǎn)擊界面下方的“開始”按鈕,則啟動(dòng)四個(gè)參與方的初始化操作,初始化進(jìn)度會(huì)在下方展示。最終展示界面如下:
    image

注意:一定要確保所有的賬本初始化都完成之后,再進(jìn)行后續(xù)操作。初始化完成表示創(chuàng)世區(qū)塊已經(jīng)創(chuàng)建。否則在啟動(dòng)節(jié)點(diǎn)過(guò)程中會(huì)出現(xiàn)報(bào)錯(cuò)。

  1. 啟動(dòng)peer節(jié)點(diǎn):點(diǎn)擊菜單 賬本->查看賬本,剛生成的賬本會(huì)在內(nèi)容區(qū)展示。點(diǎn)擊其中的“啟動(dòng)節(jié)點(diǎn)”按鈕,即可啟動(dòng)peer節(jié)點(diǎn)(見下圖)。啟動(dòng)無(wú)誤后,進(jìn)度狀態(tài)會(huì)展示為:已啟動(dòng)->已加載。
    image

安裝、啟動(dòng)Gateway節(jié)點(diǎn)

  1. 確定路徑 cd /export/jdchain
  2. 解壓gateway節(jié)點(diǎn)安裝包unzip jdchain-gateway-1.2.1.RELEASE.zip –d gw
  3. 管理端查看公私鑰(即上文在管理端為每個(gè)節(jié)點(diǎn)創(chuàng)建的公私鑰)
  4. 查看加密后的口令 cd peer0cd config/keysmore *.pwd
  5. 修改端口 、添加公私鑰cd /export/jdchain/gw/configvi gateway.conf
  6. 腳本啟動(dòng)gateway: sh startup.sh
  7. 稍等片刻,如果沒(méi)有修改默認(rèn)端口配置,可通過(guò)http://localhost:18081頁(yè)面訪問(wèn)區(qū)塊鏈瀏覽器,界面如下:
    image
  8. 大功告成!

注意事項(xiàng):

  1. 公私鑰可以在管理工具的“公私鑰管理”中獲得,但私鑰的解密密碼(keys.default.privkey-password參數(shù)),需要通過(guò)登錄后臺(tái)才能查看,即上文中的第4步。
  2. 注意,公鑰以3sn開頭,私鑰以177開頭。
    image

劃重點(diǎn):以上基于JDChain1.2.1.RELEASE版本搭建,最新版本JDChain1.3.0.RELEASE版本已經(jīng)發(fā)布,建議基于最新版本部署,部署過(guò)程完全一致。

參考鏈接:
https://zhuanlan.zhihu.com/p/102270006

JD Chain GitHub項(xiàng)目鏈接:https://github.com/blockchain-jd-com/jdchain,歡迎各位跟我一樣先Star收藏關(guān)注起來(lái),共同學(xué)習(xí)共同成長(zhǎng)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容