git clone https://github.com/meshplus/goduck.git
cd goduck && make install
goduck init
二进制直接下载
下载地址链接如下:BitXHub二进制包下载,链接中已经包含了所需的二进制和依赖库。
本次下载选择的是v1.11.1
# 1. 将上一步下载的BitXHub二进制及对应插件拷贝到配置目录
mkdir bitxhub && cd bitxhub
cp ~/Downloads/bitxhub_darwin_x86_64_v1.11.1.tar.gz .
cp ~/Downloads/example_bitxhub_v1.11.1.tar.gz .
# 2. 解压二进制压缩包
tar -zxvf bitxhub_darwin_x86_64_v1.11.1.tar.gz
# 3. 解压配置文件压缩包(以raft共识为例)
mkdir raft-nodes
tar -zxvf example_bitxhub_v1.11.1.tar.gz -C raft-nodes/
# 4. 将bitxhub、共识插件二进制和依赖库文件分别拷贝到4个节点的配置目录(以node1为例)
cp bitxhub raft-nodes/node1/
cp libwasmer.dylib raft-nodes/node1/
# 注意⚠️:节点2、3、4也需要执行上面拷贝操作,对于Linux系统依赖库文件是libwasmer.so
# 以上操作均是示例,执行时二进制和配置文件压缩包的名称可能存在差异,需要根据实际情况进行调整
若启动成功,则显示如下:
Step1: 安装部署合约的工具fabric-cli
在Fabric上部署跨链合约工具一般是fabric-cli(可以参考官方项目的使用说明), 在Fabric上部署跨链合约的过程和部署其它合约没有区别,只是合约名称和代码文件需要替换,以下操作的命令可供参考,默认应用链是使用的fabric-sample项目的v1.4.3版本部署。
//解决国内无法使用go get / go install的问题
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
//安装部署合约的工具fabric-cli
go get github.com/securekey/fabric-examples/fabric-cli/cmd/fabric-cli
//或者
go install github.com/securekey/fabric-examples/fabric-cli/cmd/fabric-cli@latest
Step2: 获取需要部署的合约文件并解压
因为国内git clone速度慢或者容易失败,可以使用国内镜像,如下所示:
git clone https://github.com.cnpmjs.org/meshplus/pier-client-fabric.git && git checkout v1.11.1
或者:
git clone https://git.sdut.me/meshplus/pier-client-fabric.git && git checkout v1.11.1
Step3: 部署broker、transfer合约
#安装和示例化broker合约
fabric-cli chaincode install --gopath ./contracts --ccp broker --ccid broker --config "${CONFIG_YAML}" --orgid org2 --user Admin --cid mychannel
fabric-cli chaincode instantiate --ccp broker --ccid broker --config "${CONFIG_YAML}" --orgid org2 --user Admin --cid mychannel
#安装和示例化transfer合约
fabric-cli chaincode install --gopath ./contracts --ccp transfer --ccid transfer --config "${CONFIG_YAML}" --orgid org2 --user Admin --cid mychannel
fabric-cli chaincode instantiate --ccp transfer --ccid transfer --config "${CONFIG_YAML}" --orgid org2 --user Admin --cid mychannel
#业务合约需要broker管理合约审计后,才能进行跨链交易
fabric-cli chaincode invoke --cid mychannel --ccid=broker \
--args='{"Func":"audit", "Args":["mychannel", "transfer", "1"]}' \
--user Admin --orgid org2 --payload --config "${CONFIG_YAML}"
xcrun: error: invalid active developer path
(/Library/Developer/CommandLineTools), missing xcrun at:
/Library/Developer/CommandLineTools/usr/bin/xcrun
解决方案:在terminal中输入如下命令
xcode-select --install
service docker start
fatal: not a git repository (or any of the parent directories): .git
在命令行 输入
git init
然后回车就好了
截至目前(2021.10.28)为止,bitxhub只支持fabric1.4的跨链。
可查看bitxhub的GitHub中最近的commit来验证,如下图所示, bitxhub在2021.09.03的commit仍然仅针对fabric1.4
而bitxhub最后一次commit也是在2021.09.14,如下图所示:
所以在跨链网管部署这一步应该用fabric1.4
参考 GitHub - goproxy/goproxy.cn: The most trusted Go module proxy in China.
Goproxy.cn 完全实现了 GOPROXY 协议。并且它是一个由中国备受信赖的云服务提供商七牛云支持的非营利性项目。由于our country的网络监管系统,无法使用go get。 Goproxy.cn使在中国的 Gopher 们能更好地使用 Go 模块。事实上,由于 Goproxy.cn 已在全球范围内通过 CDN 加速,所以你可以在任何地方使用它。
//Go 1.13 及以上(推荐)
//打开你的终端并执行
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
//macOS 或 Linux
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
然后就可以使用go get / go install了。
解决方案:使用国内镜像,目前已知Github国内镜像网站有github.com.cnpmjs.org和git.sdut.me/
示例:
//clone 项目
git clone https://github.com/XiaoMing/samples-master
//使用镜像
git clone https://github.com.cnpmjs.org/XiaoMing/samples-master
//使用镜像
git clone https://git.sdut.me/XiaoMing/samples-master