官方文档基本说明了如何安装,但有些地方比较简洁,以下内容经过本人亲自实验,亲测可行。配置环境:ubuntu16.04桌面版和server版,注意boost和openssl版本;18.04配置失败,尝试过降低boost版本和openssl版本,以及gcc/g++版本,均未成功。
注意事项
由于是多个节点,首先得保证多台机器互相能ping通,在后续的配置文件中多处为127.0.0.1,都设置为相应的机器IP地址。仔细检查各个端口,避免端口配置错误,导致链接失败。启动顺序:先启动网络,再启动钱包,然后启动水龙头,最后启动网页钱包。
part1:编译bitshares-core
ubuntu16.04按照官网流程即可
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
可能遇到的问题:第4步失败,查看错误输出,检查依赖版本;第5步失败,有教程使用make -j4,多线程编译,可能报错,申请不到足够的内存,解决方法,设置swap交换空间,可设大一下,有博客提够了解决方案,可参考。编译时间较长,干点其他事情,耐心等待。
编译后生成的文件在programs下,为方便使用,可设置软链接:
ln -s programs/witness_node/witness_node /usr/local/bin/witness_node
ln -s programs/cli_wallet/cli_wallet /usr/local/bin/cli_wallet
之后节点私链搭建以及钱包的使用可参考比特股私有链环境搭建,2018.6月搭建,依然可行。PS:增加节点witness-id时,猜测需要相应的增加config.ini文件中的private-key和debug-private-key,这样多个节点不报错。
part 2:多节点私链搭建
参考:搭建你自己的比特股测试网(上篇) - How to build your own bitshares testnet (part I)和搭建你自己的比特股测试网(下篇) - How to build your own bitshares testnet (part II)
启动第二个、第三个节点参考下文的启动方式。
Bitshares 私链部署witness节点
在另一台机器上编译bitshares-core,然后将原来的genesis.json复制到本机对应目录下,执行
witness_node -d data --seed-nodes [] --genesis-json genesis.json
会初始化目录,然后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填写之前启动的区块链节点的IP和p2p-endpoint端口,再次启动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设置为空,否则会使用默认设置 ########
×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 ########## 设置改false为true ##############
×6增加了见证节点时,witness-id需要修改为对应的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" ########### 添加见证节点#########
# 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:搭建比特股的水龙头注册服务
参考官方文档,注意:
sudo rbenv install 2.2.3
sudo rbenv global 2.2.3
sudo gem install bundler
我在实验中加sudo会报错,找不到sudo rbenv 命令,不加sudo最终也配置成功。rbenv的安装可能会出问题,参考rbenv.配置参考简书:搭建比特股的水龙头注册服务和steemit:搭建比特股的水龙头注册服务 .rail命令可能会报错,不要气馁,搜一搜解决方案。
水龙头访问配置faucet.yml中的127.0.0.1都改为对应的ip地址,这样其他机器也能访问。
rake secret会生成一个密钥,将这个密钥copy到config/secrets.yml中进行替换
遇到的问题
问题1
注册时,水龙头后台服务报异常Failed to create account: tes2 - Assert Exception: base58str.substr( 0, prefix_len ) == prefix。修改方法参见steemit:搭建比特股的水龙头注册服务 ,作者测试了第二种方法,本人测试了第一种方法,可行,不需要重新编译,比较方便,ChainConfig.js文件在bitshares-ui/node_modules/bitsharesjs-ws/cjs/src/下,修改所有“GPH”为“BTS”,重新启动网页钱包。
问题2
钱包只有在导入admin(nathan)帐号时才能create帐号,其他终身会员的帐号无法创建帐号,没找到解决方法。猜测为权限控制,需要获取某种权限。
网友评论