之前实现了在虚拟机内部,使用fabric-go-sdk实现创建通道,加入通道,安装链码,调用链码一系列操作,现在我们尝试在外部windows系统用goland在连接虚拟机fabric网络进行操作,这样对于我们开发来说更方便和直接。
首先开启虚拟机,如果之前已经有了构建的fabric网络,先关闭fabric网络和清理缓存:
docker-compose down && docker volume prune
此时,我们再开启fabric网络:
我们把项目拉出到我们的goland中:
这里注意,所有配置文件都需要改成在windows上的位置:
如图所示,对于的通道配置文件对于的是goland项目中的路径。
同时对于config.yaml文件里也需要改对应的配置文件目录,随意的就是goland下的目录,./代表当前目录下,因为看config.yaml和 fixtures是同级目录,所以直接./就行了
下面我们用自己编写的链码进行测试:
我们查看sdk源码,发现这边有初始化函数的操作,所以我们编写的链码里必须含有Init函数的!
这是链码里的初始化函数!
这里注意我们在连接linux的时候需要配置windows的hosts文件!
以管理员身份打开 Windows PowerShell
cd c:\\Windows\System32\drivers\etc
notepad .\hosts
根据实际fabric网络的情况(有哪些peer和orderer)输入
192.168.107.135 peer0.org1.example.com
192.168.107.135 peer1.org1.example.com
192.168.107.135 orderer.example.com
在虚拟机里输入 ifconfig可以找到ens33的ip地址就是linux虚拟机在windows的ip地址映射:
配置好后可以在windows cmd里进行ping测试:
如果可以ping通说明已经配置成功了!
我们在goland进行go run main函数!
直接在goland进行运行主函数,显示:
说明已经执行成功了!
我们再进入linux:
docker ps查看:
可以看到链码mycc已经安装成功了!安装在了org1组织的两个节点上了!