官方文檔基本說(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)錢包窥摄,然后啟動(dòng)水龍頭镶奉,最后啟動(dòng)網(wǎng)頁(yè)錢包。
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)私鏈搭建以及錢包的使用可參考比特股私有鏈環(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填寫之前啟動(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è)錢包误甚。
問(wèn)題2
錢包只有在導(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)限。