检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
下载源码包 下载Fabric源码包作为三方库。可选择使用1.x或2.x风格开发跨链智能合约: 版本 链接 1.x https://github.com/hyperledger/fabric/tree/release-1.4 2.x https://github.com/hyper
if err != nil { return shim.Error(err.Error()) } return shim.Success(nil) } 父主题: 跨链智能合约方法示例
if err != nil { return shim.Error(err.Error()) } return shim.Success(nil) } 父主题: 跨链智能合约方法示例
if err != nil { return shim.Error(err.Error()) } return shim.Success(nil) } 父主题: 跨链智能合约方法示例
account is locked: * 1. is locked by the same txID, then return success * 2. is not locked by this txID,then not allowed to update account
if err != nil { return shim.Error(err.Error()) } return shim.Success(nil) } 父主题: 跨链智能合约方法示例
if err != nil { return shim.Error(err.Error()) } return shim.Success(nil) } 父主题: 跨链智能合约方法示例
if err != nil { return shim.Error(err.Error()) } return shim.Success(nil) } 父主题: 跨链智能合约方法示例
跨链链代码开发(Hyperledger Fabric) 开发前准备 开发跨链智能合约
开发前准备 链代码(Chaincode)又称智能合约,在Hyperledger Fabric中是用Go、Java或Node.js语言编写的程序,主要用于操作账本上的数据。链代码是运行在区块链上的、特定条件下自动执行的代码逻辑,是用户利用区块链实现业务逻辑的重要途径。基于区块链特点
Fabric类型的区块链。注册成功后,支持修改和删除已注册成功的区块链。 前提条件 已购买Hyperledger Fabric区块链服务,详细操作请参基于CCE集群。 安装并实例化跨链辅助合约和跨链业务合约。跨链辅助合约可在TCS控制台总览界面右侧下载,链代码名称为固定值tcshelper;跨链业
当前仅“华北-北京四”区域支持可信跨链服务。 购买区块链服务 您可通过华为云区块链服务Hyperledger Fabric增强版实例,具体请参考基于CCE集群部署。 注册区块链 将区块链注册到TCS中,具体请参考注册区块链。 购买跨链通道 TCS将为您提供端到端全流程可信的跨链数据互通体验,具体请参考购买跨链通道。
开发跨链智能合约 开发跨链智能合约前,需要先了解跨链操作的原理。在跨链资产交换场景中,在减少某个链上资产后,需要相应的在对应链上增加资产,这种转移使各条链的资产发生了变化。因此,跨链操作需要保证整个跨链交易结束后不同链之间的全局事务保持一致性,即同时记账,或同时不记账。 可信跨链
开发环境准备 请根据自身业务选择Go(推荐)或其他语言的开发环境。 Go开发环境准备: 安装Go开发环境。安装包下载地址为:https://golang.org/dl/ 。(请选择1.9.2之后的版本) 各个系统对应的包名(以1.14版本为例) 操作系统 包名 Windows go1
跨链资产数据锁定义 跨链资产交换基于分布式事务的两阶段提交实现,两阶段提交必须基于每个跨链资产单元携带的数据锁。跨链资产数据锁定义如下: type AccountLock struct { PreValue string CrossTXID string } 表1
跨链智能合约方法示例 介绍跨链智能合约方法示例。 交易发起方预提交(preCommitSend) 交易接收方预提交(preCommitRecv) 交易发起方提交(commitSend) 交易接收方提交(commitRecv) 交易发起方回滚(rollbackSend) 交易接收方回滚(rollbackRecv)
跨链智能合约方法定义 下表为涉及跨链资产交换的跨链智能合约必须实现的方法,且必须保证方法名相同,否则可能出现跨链资产交换接口调用超时或调用失败的情况: 表1 方法说明 方法名 说明 preCommitSend 在跨链资产交换发起方所属区块链上执行的预提交操作 preCommitRecv
回滚跨链资产(rollback) 在跨链资产交换的过程中如遇到异常情况,需要读取跨链资产对应数据锁中的PreValue,并根据该值回滚跨链资产交换中涉及资产已发生的变化。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是rollbackSend与rollbackRecv)中调用:
解锁跨链资产(unlockAccount) 在跨链资产交换即将完成时,需要解锁跨链资产交换中涉及的资产。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是commitSend、commitRecv、rollbackSend与rollbackRecv)中调用: /*
根据具体的错误信息进行排查,错误码信息参考如下表1和表2: 表1 发起交易接口 错误码 响应示例 可能原因 TCS.2000000 SUCCESS! 跨链交易成功。 TCS.4000001 illegal base64 data at input byte 4 请求不合法。 TCS