参考资料
vntchain github文档 go-vnt github vnt智能合约的编译和部署工具bottle ERC721协议智能合约范例
在ubuntu18上编译bottle源码失败
原因是bottle不支持ubuntu18,根据文档,目前仅支持14.04及16.06。
使用docker镜像vntchain/bottle:0.6.0编译智能合约失败
报错:panic unsupport mutable。 原因未知,改为使用vntchain/bottle:0.6.1后,重新编译智能合约成功。
使用docker镜像vntchain/bottle:0.6.1执行init报错
报错:warning: directory is’t empty, can’t create dapp project 暂未解决,对build 操作没有影响。
使用docker镜像build时,报错:找不到contracts目录
原因是执行docker run命令的时候,没法让bottle在指定文件夹下运行,尝试在虚拟机中安装ubuntu16进行bottle bulid,但是还是失败了。于是不再尝试,而是直接用compile生成的abi文件部署智能合约。
go-vnt搭建测试链后,节点连接失败
我遇到的原因是没有对每一个节点都初始化: 由于文档中没有给出所有节点初始化的代码,因此我忘记了初始化所有节点。
rpc报错undefined
原因是没有打开gvnt的rpc。 在gvnt运行的命令后加上如下可选参数:
--rpc
--rpcaddr 127.0.0.1
--rpcport 8545
--rpcapi "db,core,net,vnt,personal"
加上这些参数后,gvnt会打开rpc端口,在node中能直接通过js api访问rpc
私链搭建完成后,没有生成区块
对于见证人,需要使用bp.start() 命令开始生成区块。
personal.unlockAccount(vnt.core.coinbase, "your password", 24*60*60*1000)
bp.start()
bp.stop()
要生成区块,至少需要三个结点同时开启bp.start() ,随后你可以通过vnt.core.blockNumber 查看当前最高区块数量。
vnt.core.blockNumber()
vnt.core.blockNumber()
Error: new BigNumber() not a base 16 number
原因:合约地址写错了
未完待续……
|