bitxhub跨链实战

一、快速部署工具goduck

git clone https://github.com/meshplus/goduck.git

cd goduck && make install

goduck init

二、部署中继链

1. 安装包获取

二进制直接下载

下载地址链接如下:BitXHub二进制包下载,链接中已经包含了所需的二进制和依赖库。

本次下载选择的是v1.11.1

2. 快速启动BitXHub节点

# 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
# 以上操作均是示例,执行时二进制和配置文件压缩包的名称可能存在差异,需要根据实际情况进行调整

若启动成功,则显示如下:

 

三、跨链网关部署

1. 部署跨链合约

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}"

  2. 获取部署包和修改Pier配置

  3. 注册应用链信息

  4. 部署验证规则

  5. 启动跨链网关

​​​​


***问题解决

1. 在macOS的terminal中输入make install之后出现如下报错: 

xcrun: error: invalid active developer path 
(/Library/Developer/CommandLineTools), missing xcrun at: 
/Library/Developer/CommandLineTools/usr/bin/xcrun

解决方案:在terminal中输入如下命令

xcode-select --install

2. 启动docker

service docker start

3. git checkout v1.x.x时报错

fatal: not a git repository (or any of the parent directories): .git

在命令行 输入

 git init  

然后回车就好了

4. fabric 2.0 跨链网关部署不成功

截至目前(2021.10.28)为止,bitxhub只支持fabric1.4的跨链。

可查看bitxhub的GitHub中最近的commit来验证,如下图所示, bitxhub在2021.09.03的commit仍然仅针对fabric1.4 

bitxhub跨链实战_第1张图片

而bitxhub最后一次commit也是在2021.09.14,如下图所示:

bitxhub跨链实战_第2张图片

所以在跨链网管部署这一步应该用fabric1.4

5. 无法使用go get / go install

参考 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了。 

6. 国内git clone速度慢的问题

解决方案:使用国内镜像,目前已知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

你可能感兴趣的:(github,git,fabric,区块链)