快速搭建私有单节点 Bitshares Testnet(二)

前言

《快速搭建私有单节点 Bitshares Testnet(一)》 中,讲解了如何搭建一个私有测试网络,这一篇将会讲解如何部署 Web 界面用于注册新用户,以及向新用户转账测试币。

部署

拉取代码

git clone https://github.com/ety001/bitshares-testnet-for-dapp-developers.git

编译镜像

cd bitshares-testnet-for-dapp-developers
docker build -t btfdd:latest .

你也可以直接使用我编译好的镜像,docker pull ety001/btfdd:latest

运行

docker run -itd \
  --restart always \
  --name btfdd \
  -p 3000:3000 \
  -e PRIV_KEY=5Jxxxxxx \
  -e API_URL=ws://192.168.0.10/ws \
  -e CHAIN_ID=2d20869f3d925cdeb57da14dec65bbc18261f38db0ac2197327fc3414585b0c5
  -e CORE_ASSET=TEST
  btfdd:latest

环境变量说明

  • PRIV_KEY 是你用来作为水龙头的账号的 active 私钥
  • API_URL 是你私有测试网络的地址。这里需要注意下地址是否可访问。
  • CHAIN_ID 是你私有测试网络的 CHAIN_ID
  • CORE_ASSET 是你私有网络的测试币名

访问

如果一切正常,这个时候浏览器访问 http://localhost:3000 即可看到工具页面了。

目前工具只提供创建账号和转账的功能。

公共服务

目前我也搭建了公共服务免费供大家使用,地址: https://testnet.61bts.com

疑问

如果有问题可以给我发邮件 work#akawa.ink 或者提交 issue

原文地址: https://akawa.ink/2020/01/04/bitshares-testnet-2.html

2赞

大佬你这个好简洁, docker 命令 前提是什么(云主机ubuntu16.04的话,前提安装是什么?)。 补充: 网上找了教程装了docker pull 了 ,报 ¥%¥#%@# connect:permission denied

另外你这个是本地的,外网连接 能连到嘛??? 任意BTS山寨改版都能用嘛?(改动不多的币种)

你需要先安装docker,https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-repository。安装完docker后,如果你是非root用户,需要先把当前用户名加入 docker 用户组,否则没有执行docker命令的权限。

只要你开放端口给公网,那么所有人都可以用。

如果你想给其他链用,应该需要设置下chain id和core asset两个参数就行,我没有试过,你可以自己尝试下。

谢谢大佬 我上面可能命令少了 那个 . (点)。所以不行。 另外, 初步试了, 改了chain id 与CORE 界面是 TEST 注册也注册不了。显示已被注册。 可能链与核心固化了。 等待他人的实验。

你可以看看log日志有什么报错。

docker logs -f --tail 100 btfdd

这条命令可以显示名字为 btfdd 容器日志的最后100行。如果你的容器名设置的不是 btfdd,就换成你自己设置的名字即可。

btfdd@0.1.0 serve /app

node ./bin/www

connected to: LiuyeTest network GET / 304 12.734 ms - - GET /css/chunk-vendors.112aaf3d.css 200 5.758 ms - 216558 GET /js/chunk-vendors.6cfa06b4.js 304 5.419 ms - - GET /js/app.1c2fab2a.js 200 7.278 ms - 13001 GET /css/app.a0b347c4.css 200 7.062 ms - 108 GET /api/v1/global_config 200 3.788 ms - 133 GET /fonts/MaterialIcons-Regular.0509ab09.woff2 304 0.367 ms - - err: TypeError: Cannot read property ‘get’ of null at Promise.all.then (/app/server/libs/ChainApi.js:95:37) POST /api/v1/create_user 200 374.411 ms - 54 err: TypeError: Cannot read property ‘get’ of null at Promise.all.then (/app/server/libs/ChainApi.js:95:37) POST /api/v1/create_user 200 199.996 ms - 54 GET / 200 1.646 ms - 1171 GET /css/app.a0b347c4.css 200 1.538 ms - 108 GET /css/chunk-vendors.112aaf3d.css 200 0.939 ms - 216558 GET /js/app.1c2fab2a.js 200 1.827 ms - 13001 GET /js/chunk-vendors.6cfa06b4.js 200 1.845 ms - 888299 GET /api/v1/global_config 200 0.828 ms - 133 GET /fonts/MaterialIcons-Regular.0509ab09.woff2 200 0.615 ms - 60840 GET /favicon.ico 200 0.551 ms - 1150 err: TypeError: Cannot read property ‘get’ of null at Promise.all.then (/app/server/libs/ChainApi.js:95:37) POST /api/v1/create_user 200 107.531 ms - 54 err: TypeError: Cannot read property ‘get’ of null at Promise.all.then (/app/server/libs/ChainApi.js:95:37) POST /api/v1/create_user 200 163.628 ms - 54 err: TypeError: Cannot read property ‘get’ of null at Promise.all.then (/app/server/libs/ChainApi.js:95:37) POST /api/v1/create_user 200 97.105 ms - 54

btfdd@0.1.0 serve /app node ./bin/www

问题应该出在这里了,https://github.com/ety001/bitshares-testnet-for-dapp-developers/blob/master/server/routes/api.js#L31,我把水龙头的用户名给写死了。。。

目前看来只能在你 docker build 之前,先手动改一下这里的用户名,为你私链上用于水龙头的账号名后,再执行 docker build 那条命令。

改了可以建立账户 但是不能转账 CORE 是BTS 是不是因为下面

transfer(fromAccount, toAccount, amount = ‘0’, memo = null, asset = ‘TEST’, feeAsset = ‘TEST’)

in chainapi.js TEST lock. so can’t transfer?(虚拟机没装中文,只能两边操作。 资产又是写死的?)

error : (报错如下)

TypeError: Cannot read property ‘get’ of null

at Promise.all.then (/app/server/libs/ChainApi.js:174:35)

POST /api/v1/bot_transfer 200 134.673 ms - 59

TypeError: Cannot read property ‘get’ of null

at Promise.all.then (/app/server/libs/ChainApi.js:174:35)

POST /api/v1/bot_transfer 200 1.362 ms - 59

TypeError: Cannot read property ‘get’ of null

at Promise.all.then (/app/server/libs/ChainApi.js:174:35)

POST /api/v1/bot_transfer 200 1.083 ms - 59

另外问下 nodejs 与npm 是国外的源嘛, 安装特慢, 第4步的 APKINDEX.tar.gz :BAD signature

恩,应该是默认值为 ‘TEST’ 的原因。

npm的源默认都是国外的,如果访问不畅,可以换成阿里云的。

APKINDEX.tar.gz :BAD signature 我怀疑可能也是网络问题。

这个有用啊,测起来方便多了