bitxhub跨链实战
一、快速部署工具goduck
git clone https://github.com/meshplus/goduck.gitcd goduck && make installgoduck 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最后一次commit也是在2021.09.14,如下图所示:
所以在跨链网管部署这一步应该用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
bitxhub跨链实战相关推荐
- BitXHub 跨链插件(Fabric)源码解读
前言 趣链科技的BitXHub跨链平台是业界较为完善的跨链开源解决方案,主要通过中继链.网关和插件机制对跨链流程中的功能.安全性和灵活性等进行了优化.本文对BitXHub的meshplus/pier- ...
- 趣链 BitXHub跨链平台 (2)跨链网络拓扑
1. BitXHub 由三个角色组成:中继链.跨链网关.应用链 1.1 中继链(Relay-chain) 一种实现 IBTP 协议的开放许可链,确保跨链交易的事务一致性. 应用链管理 跨链交易的可信验 ...
- 趣链 BitXHub跨链平台 (3)跨链交易流程
1. 流程图 执行跨链调用之前需要执行一些准备工作,包括应用链注册,验证规则注册以及跨链双方的业务链上依据我们的跨链合约撰写规则设置好相应的跨链合约. 1.1 步骤 step1. SDK 调用 具体的 ...
- BitXHub跨链交易的流程
一.BitXHub的组成 趣链科技跨链技术平台 BitXHub 由三部分组成:中继链.跨链网关.应用链. 中继链(Relay-chain):承担跨链交易的验证 跨链网关(Pier):承担跨链交易的路由 ...
- 趣链 BitXHub跨链平台 (10)跨链自治
1. 模块框架 中继链上的治理服务涵盖了对跨链平台上各种行为的管控,包括中继链节点管理.应用链管理.验证规则管理.链上服务管理.统一身份管理.跨链权限管理.数据同步管理.治理业务管理.投票策略管理等 ...
- 趣链 BitXHub跨链平台 (9)跨链事务
1. 定义 中继链内置了事务管理合约,提供基于本地消息表的事务支持,实现了跨链事务的最终一致性. step1. 事务管理合约在处理跨链交易时,根据目的链数量的不同(一个或多个),采用不同的逻辑生成跨链 ...
- 趣链 BitXHub跨链平台 (8)交易验证
1. 验证跨链交易的存在性和有效性 1.1 存在性 真实链上产生的跨链交易 1.1.1 共识算法分类 • 类PBFT算法的最终确认性 • 类POW算法的概率确认性( 阈值确认机制) 1.1.2 SPV ...
- 趣链 BitXHub跨链平台 (6)IBC通信协议
1. 跨链传输协议 IBTP(InterBlockchain Transfer Protocol) 支持异构区块链之间的跨链交易路由和可信验证,基于 IBTP 协议跨链网关可将不同应用链抛出的事件数据 ...
- 趣链 BitXHub跨链平台 (7)应用链插件
1. 跨链网关插件机制 适配不同区块链,让应用链适配和跨链网关能够解耦,支持动态加载插件的方式完成应用链的接入 将应用链上进行操作的部分全部封装到应用链插件中 按照跨链网关和应用链交互的需求确定了一套 ...
最新文章
- HDU 1431 素数回文
- python实训收获_英泰移动通信:学习Python心得体会
- 将源码包打包成RPM包
- P1018 乘积最大
- linux下静默安装oracle10g,CentOS下远程静默安装Oracle10g笔记
- java枚举比较大小写_Spring 3.0 MVC绑定枚举区分大小写
- 女孩看男孩VS男孩看女孩
- Spring@Autowired注解
- python做词典_Python实现创建字典
- Linux源码Kconfig文件语法分析
- java异常处理和自定义异常利用try和catch让程序继续下去(回来自己再写个例子试运行下)...
- Java正则表达式入门概念与范例代码
- SharePoint 2010 中有个新的列表模板“导入电子表格”可以直接导入Excel数据并创建为列表 ....
- 叩丁狼开发工程师:SSR服务架构特点分析
- 尚硅谷Javaweb教程书城项目订单模块完整版
- unity当前项目里面AssetBundle和加载的方法总结
- 解剖NetGuard
- pip联网问题 SSLError(SSLError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748
- ibatis3 一个小bug
- Android 水波效果原理与实现