检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
发起由源端区块链到目标端区块链的跨链交易 URI POST /v1/cross/transaction/invoke 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 from_chaincode_id 是 String 源端链码名称 最小长度:1 最大长度:64 args 是 Array
跨链查询目标区块链的账本信息 URI POST /v1/cross/ledger/query 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 from_chaincode_id 是 String 源端链码名称 最小长度:1 最大长度:64 to_chain 是 String
account(second arg) and lock the local account * The example args[] is {"a","b","1","txid123"} * @Param args[0]: The name of the account on blockchain A
Detect the account lock's status * if account is not locked: * 1. put lock to the blockchain ledger with current account balance *
下载源码包 下载Fabric源码包作为三方库。可选择使用1.x或2.x风格开发跨链智能合约: 版本 链接 1.x https://github.com/hyperledger/fabric/tree/release-1.4 2.x https://github.com/hyper
开发环境准备 请根据自身业务选择Go(推荐)或其他语言的开发环境。 Go开发环境准备: 安装Go开发环境。安装包下载地址为:https://golang.org/dl/ 。(请选择1.9.2之后的版本) 各个系统对应的包名(以1.14版本为例) 操作系统 包名 Windows go1
type AccountLock struct { PreValue string CrossTXID string } 表1 跨链资产数据锁字段说明 字段 说明 PreValue 记录跨链交易开始前被锁定资产的数值,回滚时使用。 CrossTXID 记录跨链资产数据锁所属的交易ID,回滚时使用
跨链智能合约方法定义 下表为涉及跨链资产交换的跨链智能合约必须实现的方法,且必须保证方法名相同,否则可能出现跨链资产交换接口调用超时或调用失败的情况: 表1 方法说明 方法名 说明 preCommitSend 在跨链资产交换发起方所属区块链上执行的预提交操作 preCommitRecv 在跨链资
解锁跨链资产(unlockAccount) 在跨链资产交换即将完成时,需要解锁跨链资产交换中涉及的资产。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是commitSend、commitRecv、rollbackSend与rollbackRecv)中调用: /*
used by next cross-chain transaction * The example args[] is {"a","b","1","txid123"} * @Param args[0]: The name of the account on blockchain A
used by next cross-chain transaction * The example args[] is {"a","b","1","txid123"} * @Param args[0]: The name of the account on blockchain A
used by next cross-chain transaction * The example args[] is {"a","b","1","txid123"} * @Param args[0]: The name of the account on blockchain A
该资产,使得其可以继续处理下一笔跨链操作。 本例中,该方法将根据接收方所属区块链上args[1]对应数据锁中的PreValue进行资产回滚,并删除该数据锁,使接收方所属区块链上args[1]对应的资产回滚至跨链资产交换开始前的状态。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。
回滚跨链资产(rollback) 在跨链资产交换的过程中如遇到异常情况,需要读取跨链资产对应数据锁中的PreValue,并根据该值回滚跨链资产交换中涉及资产已发生的变化。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是rollbackSend与rollbackRecv)中调用: