比特股搭建私鏈(多節(jié)點(diǎn))+錢(qián)包+網(wǎng)頁(yè)錢(qián)包+水龍頭

官方文檔基本說(shuō)明了如何安裝,但有些地方比較簡(jiǎn)潔,以下內(nèi)容經(jīng)過(guò)本人親自實(shí)驗(yàn),親測(cè)可行。配置環(huán)境:ubuntu16.04桌面版和server版,注意boost和openssl版本;18.04配置失敗,嘗試過(guò)降低boost版本和openssl版本,以及gcc/g++版本,均未成功。

注意事項(xiàng)

由于是多個(gè)節(jié)點(diǎn),首先得保證多臺(tái)機(jī)器互相能ping通,在后續(xù)的配置文件中多處為127.0.0.1,都設(shè)置為相應(yīng)的機(jī)器IP地址。仔細(xì)檢查各個(gè)端口,避免端口配置錯(cuò)誤,導(dǎo)致鏈接失敗。啟動(dòng)順序:先啟動(dòng)網(wǎng)絡(luò),再啟動(dòng)錢(qián)包,然后啟動(dòng)水龍頭,最后啟動(dòng)網(wǎng)頁(yè)錢(qián)包。

part1:編譯bitshares-core

ubuntu16.04按照官網(wǎng)流程即可

1.安裝依賴,ubuntu16.04的boost版本為1.58,不需要更新

sudo apt-get install libboost-all-dev

2.下載編譯

1.      git clone https://github.com/bitshares/bitshares-core.git
2.      cd bitshares-core
3.      git submodule update --init --recursive
4.      cmake -DBOOST_ROOT="$BOOST_ROOT" -DCMAKE_BUILD_TYPE=Release .
5.      make 

可能遇到的問(wèn)題:第4步失敗,查看錯(cuò)誤輸出,檢查依賴版本;第5步失敗,有教程使用make -j4,多線程編譯,可能報(bào)錯(cuò),申請(qǐng)不到足夠的內(nèi)存,解決方法,設(shè)置swap交換空間,可設(shè)大一下,有博客提夠了解決方案,可參考。編譯時(shí)間較長(zhǎng),干點(diǎn)其他事情,耐心等待。

編譯后生成的文件在programs下,為方便使用,可設(shè)置軟鏈接:

ln -s programs/witness_node/witness_node /usr/local/bin/witness_node
ln -s programs/cli_wallet/cli_wallet  /usr/local/bin/cli_wallet

之后節(jié)點(diǎn)私鏈搭建以及錢(qián)包的使用可參考比特股私有鏈環(huán)境搭建,2018.6月搭建,依然可行。PS:增加節(jié)點(diǎn)witness-id時(shí),猜測(cè)需要相應(yīng)的增加config.ini文件中的private-key和debug-private-key,這樣多個(gè)節(jié)點(diǎn)不報(bào)錯(cuò)。

part 2:多節(jié)點(diǎn)私鏈搭建

參考:搭建你自己的比特股測(cè)試網(wǎng)(上篇) - How to build your own bitshares testnet (part I)搭建你自己的比特股測(cè)試網(wǎng)(下篇) - How to build your own bitshares testnet (part II)

啟動(dòng)第二個(gè)、第三個(gè)節(jié)點(diǎn)參考下文的啟動(dòng)方式。
Bitshares 私鏈部署witness節(jié)點(diǎn)

在另一臺(tái)機(jī)器上編譯bitshares-core,然后將原來(lái)的genesis.json復(fù)制到本機(jī)對(duì)應(yīng)目錄下,執(zhí)行

witness_node -d data --seed-nodes [] --genesis-json genesis.json

會(huì)初始化目錄,然后ctrl-c,推出程序,編輯config.ini,修改配置:

p2p-endpoint = 0.0.0.0:8095
seed-nodes = [192.168.1.110:8095]
rpc-endpoint = 0.0.0.0:8090
enale-stale-production = true

seed-nodes填寫(xiě)之前啟動(dòng)的區(qū)塊鏈節(jié)點(diǎn)的IP和p2p-endpoint端口,再次啟動(dòng)witness程序

witness_node -d data

config.ini文件中需要修改的位置有:


×1

# Endpoint for P2P node to listen on  
# p2p-endpoint =   
p2p-endpoint = 0.0.0.0:8095  ##端口可以自定義

×2

# JSON array of P2P nodes to connect to on startup
# seed-nodes = 
seed-nodes = []     ######### seed-nodes設(shè)置為空,否則會(huì)使用默認(rèn)設(shè)置 ########

×3

# Endpoint for websocket RPC to listen on
# rpc-endpoint = 
rpc-endpoint = 0.0.0.0:8090 ############# rpc的ip和端口 #########

×4

# File to read Genesis State from
# genesis-json = 
genesis-json = test-net.json ######### 配置文件 #########

×5

# Enable block production, even if the chain is stale.
#enable-stale-production = false
enable-stale-production = true ########## 設(shè)置改false為true ##############

×6增加了見(jiàn)證節(jié)點(diǎn)時(shí),witness-id需要修改為對(duì)應(yīng)的id和key

# ID of witness controlled by this node (e.g. "1.6.5", quotes are required, may specify multiple times)
# witness-id = 
witness-id = "1.6.1"  ########### 添加見(jiàn)證節(jié)點(diǎn)#########
# Tuple of [PublicKey, WIF private key] (may specify multiple times)
private-key =        ["BTS6WqFcNmb8DA8SG2HJDL23TzSKk67HrCf6qTeqXhbCcohi11epm","5JjzogP6V1TciYQHthBLPnmj5cyrYLfwfoDeY6rpG4mcNUd7hDq"]
# Tuple of [PublicKey, WIF private key] (may specify multiple times)
debug-private-key = ["BTS6WqFcNmb8DA8SG2HJDL23TzSKk67HrCf6qTeqXhbCcohi11epm","5JjzogP6V1TciYQHthBLPnmj5cyrYLfwfoDeY6rpG4mcNUd7hDq"]

part3:搭建比特股的水龍頭注冊(cè)服務(wù)

參考官方文檔,注意:

sudo rbenv install 2.2.3
sudo rbenv global 2.2.3
sudo gem install bundler

我在實(shí)驗(yàn)中加sudo會(huì)報(bào)錯(cuò),找不到sudo rbenv 命令,不加sudo最終也配置成功。rbenv的安裝可能會(huì)出問(wèn)題,參考rbenv.配置參考簡(jiǎn)書(shū):搭建比特股的水龍頭注冊(cè)服務(wù)steemit:搭建比特股的水龍頭注冊(cè)服務(wù) .rail命令可能會(huì)報(bào)錯(cuò),不要?dú)怵H,搜一搜解決方案。
水龍頭訪問(wèn)配置faucet.yml中的127.0.0.1都改為對(duì)應(yīng)的ip地址,這樣其他機(jī)器也能訪問(wèn)。
rake secret會(huì)生成一個(gè)密鑰,將這個(gè)密鑰copy到config/secrets.yml中進(jìn)行替換

遇到的問(wèn)題

問(wèn)題1

注冊(cè)時(shí),水龍頭后臺(tái)服務(wù)報(bào)異常Failed to create account: tes2 - Assert Exception: base58str.substr( 0, prefix_len ) == prefix。修改方法參見(jiàn)steemit:搭建比特股的水龍頭注冊(cè)服務(wù) ,作者測(cè)試了第二種方法,本人測(cè)試了第一種方法,可行,不需要重新編譯,比較方便,ChainConfig.js文件在bitshares-ui/node_modules/bitsharesjs-ws/cjs/src/下,修改所有“GPH”為“BTS”,重新啟動(dòng)網(wǎng)頁(yè)錢(qián)包。

問(wèn)題2

錢(qián)包只有在導(dǎo)入admin(nathan)帳號(hào)時(shí)才能create帳號(hào),其他終身會(huì)員的帳號(hào)無(wú)法創(chuàng)建帳號(hào),沒(méi)找到解決方法。猜測(cè)為權(quán)限控制,需要獲取某種權(quán)限。

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 安裝環(huán)境 ubuntu16.04 64位 一安裝依賴庫(kù)(mysql數(shù)據(jù)庫(kù) ) 注意,記得安裝sql時(shí)的root用戶...
    劍有偏鋒閱讀 3,996評(píng)論 10 7
  • javascripty已經(jīng)走上工程化的道路了,各種mvm,mvvm框架已經(jīng)讓人目不暇接了,這里就不討論js了。我來(lái)...
    鋒子鍋鍋閱讀 689評(píng)論 0 12
  • 我知道,有些人,就像是小刺猬,渾身是刺,傷害別人。 我知道,刺猬的內(nèi)心也是柔軟的啊。它也有愛(ài),它也會(huì)痛,希望能有一...
    杞人云空閱讀 480評(píng)論 3 4
  • 本周小結(jié) 三天假期過(guò)后,實(shí)驗(yàn)室工作和自己的技術(shù)和非技術(shù)學(xué)習(xí)都進(jìn)入了狀態(tài)了。周一:繼續(xù)騎行,14:20從乳山汽車站坐...
    im天行閱讀 263評(píng)論 0 0

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