环境配置
在链码启动前首先要确定你在VM中的Fabric环境已经搭建完成,具体搭建细节请参考官方文档Fabric官方文档搭建细节。
明确环境搭建完成后,接下来就可以启动测试网络了。
首先,通过第一段的官方文档自带的启动脚本来测试网络是否搭建成功
./network.sh up
当出现三个done时就证明三个节点已经正式启动了。
创建通道
./network.sh createChannel
这个命令就会自动生成一个channel1的通道
./network.sh createChannel -c channel1
也可以自定义通道名称。在Fabric中允许创建多个不同名称的通道,更改通道名称即可
启动链码
接下来完成上面步骤就可以启动链码了
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
这个命令的具体细节在官方文档中就可以看到具体解释这边不再一一介绍。
BUG解决
写这篇文章的真正目的在于我进行到启动链码这一步时遇到了大量问题,在这里总结一下,希望可以帮助到大家。
首先,请记住,当你进行完任何文件配置或者其他修改时最好关闭一下节点网络,然后再启动一下。
./network.sh down
./network.sh up
这样的话,最新配置就会被更新到节点网络中。
go命令寻找不到
我首先遇到的问题就是go命令寻找不到,为此我多次安装go命令包,在这里时全局环境变量一定是修改过的,但是问题还是没有解决。
后来,经过多方寻找最后确定是因为sudo命令的配置文件的问题
配置 /etc/sudoers
文件中的 Defaults secure_path
这一项。将 $GOROOT/bin
目录加入进去。(请使用绝对目录,如:/usr/local/go/bin/)
使用gedit 命令进行修改,把目录地址添加上去,这时再执行链码启动命令就可以正常启动了。
附带
还有在过程中启动遇到一些其他问题,因为时间太长就忘了具体是什么,依稀记得有些文件夹的权限不够,使用 chmod 命令修改成最高权限也是可以解决一些问题。
还有的就是遇到上述go命令找不到的也要配置一下下面两个命令
go env -w GOPROXY=https://goproxy.cn,direct
GOPROXY
就是设置Golang
的全局代理。在下载依赖包的时候,一般是访问github
的仓库,国内的环境很容易被墙,所以最好设置一个速度快的代理。Go
在此版本中GOPROXY
的默认值为https://proxy.golang.org
,国内是无法访问的。
go env -w GO111MODULE=on
go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用。默认值为空,即go判断开不开启module的依据是看当前项目的根目录下有没有go.mod文件,我们可手动更改为 on.
以上就是我在启动链码过程中遇到的一些问题