参考攻略:
本文主要是解决部分指令的报错问题,尽量不包含原文内容。
本文环境:阿里云的centos7
创建新用户的文件信息
如果按照攻略,在创建完新用户后,对应的用户信息会存放在/workspace/dapp/miner/data/keystore
路径下,可以通过ls指令查看:
创建挖矿节点遇到的问题
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"/workspace/dapp/init.sh\": permission denied": unknown
这是由于我们创建文件时是使用root用户创建的,而docker启动时是以一般用户来执行该文件,会出现权限不足的报错。当然如果使用一般用户创建文件应该不会出现以上报错
提供一下两种办法来解决问题:
- 在执行docker指令前添加 sudo
- 使用
chmod 777 [文件名]
将对应文件的权限设置为所有用户都可以操作
配置“从矿工节点”问题
使用admin.nodeInfo.enode
可以查看当前节点对应的节点信息
这一段结果可以作为添加动态节点addPeer的参数,其中如果有[::],要改成对应的主机ip,如在本机就改成127.0.0.1。
但在本测试用例中,调用addPeer时并没有添加节点,可能是主机和从机都绑定了同一个端口,让系统以为是同一台设备(个人认为)
在truffle容器中指令和文件下载问题
作者提供的镜像,其内核是Alpine Linux,这一点可以使用cat /etc/issue
指令进行查验,通过搜索我们可以使用apk add [软件名]
下载对应软件
合约部署的问题
在使用truffle init或truffle unbox……会提示连接不到github,而在网上大多数攻略会告诉你需要在/etc/hosts中配置对应的端口号,实际上这样没有用。
分析完错误日志,发现truffle init和truffle unbox的实际功能是从github中下载可以供编译部署的box,那么我可以直接从github中将对应的box下载下来。
git clone https://github.com/truffle-box/webpack-box
cd webpack-box
使用以上命令可以下载到对应编译部署的box,然后我们进行对应的目录就可以开始我们合约的编译部署了。
- truffle.js文件的创建是在~/webpack-box中
- 合约文件存放路径是~/webpack-box/contracts中
- 部署脚本的存放路径是~/webpack-box/migrations中
以下编译后的文件目录
合约发布的问题
-
Error: authentication needed: password or unlock undefined
这是因为你要部署的账号处于锁定状态,需要回到对应的容器中把账号解锁
user1=eth.accounts[0] personal.unlockAccount(user1)
接下输入对应密码即可部署
-
Insufficient funds for gas * price + value
这个说明你要部署的以太坊账户中的gas不够,需要通过挖矿获得gas