检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
配置权限 基于不同链上的不同合约,主要有三种权限:跨链读,跨链写,查询账本。不同类型的跨链交易需要不同的权限,例如:发起一次跨链交易需要“跨链写”权限,查询跨链交易结果需要“跨链读”权限,因此需要在进行跨链交易之前设置对应权限。 跨链读:访问链任意合约可以执行被访问链指定合约的读操作。
配置跨链通道 支持配置跨链通道的跨链读、跨链写、跨链查询账本等授权操作。新创建的跨链通道默认无任何权限,若跨链通道未授权,则无法进行跨链操作。 操作步骤 登录可信跨链服务管理控制台,进入“总览”页面。 在“总览”页面的配置跨链通道,单击“查看跨链通道”。 在“跨链通道”页面,单击跨链通道名称。
下载配置文件和证书 安装和实例化链代码完成后,下载配置文件和证书,用于在跨链服务中注册区块链。 操作步骤 在“服务管理”界面,在Cross-ChainA服务卡片中,单击“获取客户端配置”。 勾选“SDK文件”,配置参数请参考表1。 表1 配置参数 参数 说明 链代码名称 tcshelper,注:名字必须保持一致
跨链智能合约方法示例 介绍跨链智能合约方法示例。 交易发起方预提交(preCommitSend) 交易接收方预提交(preCommitRecv) 交易发起方提交(commitSend) 交易接收方提交(commitRecv) 交易发起方回滚(rollbackSend) 交易接收方回滚(rollbackRecv)
跨链智能合约方法定义 下表为涉及跨链资产交换的跨链智能合约必须实现的方法,且必须保证方法名相同,否则可能出现跨链资产交换接口调用超时或调用失败的情况: 表1 方法说明 方法名 说明 preCommitSend 在跨链资产交换发起方所属区块链上执行的预提交操作 preCommitRecv
交易发起方提交(commitSend) 该方法用于在跨链资产交换发起方所属区块链上执行提交操作,即解锁发起方所属区块链上对应资产,使得其可以继续处理下一笔跨链操作。 本例中,该方法将删除发起方所属区块链上args[0]对应的数据锁,代表该笔跨链资产交换操作在发起方已端到端完成。unlockAccount方法的实现请
修改跨链资产数值(putStateWithLock) 在跨链资产交换涉及的智能合约方法中,所有对跨链资产的修改都必须与资产上锁同时进行。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是preCommitSend与preCommitRecv)中调用: /* *
交易接收方提交(commitRecv) 该方法用于在跨链资产交换接收方所属区块链上执行提交操作,即解锁接收方所属区块链上对应资产,使得其可以继续处理下一笔跨链操作。 本例中,该方法将删除接收方所属区块链上args[0]对应的数据锁,代表该笔跨链资产交换操作在接收方已端到端完成。unlockAccount方法的实现请
解锁跨链资产(unlockAccount) 在跨链资产交换即将完成时,需要解锁跨链资产交换中涉及的资产。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是commitSend、commitRecv、rollbackSend与rollbackRecv)中调用: /* *
据锁中保存跨链资产交换发生前该账户的余额。putStateWithLock方法的实现请参考修改跨链资产数值(putStateWithLock)。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。 /* * preCommitSend is the
据锁中保存跨链资产交换发生前该账户的余额。putStateWithLock方法的实现请参考修改跨链资产数值(putStateWithLock)。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。 /* * preCommitRecv is the
在跨链资产交换的过程中如遇到异常情况,需要读取跨链资产对应数据锁中的PreValue,并根据该值回滚跨链资产交换中涉及资产已发生的变化。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是rollbackSend与rollbackRecv)中调用: /* * rollback function will
ue进行资产回滚,并删除该数据锁,使接收方所属区块链上args[1]对应的资产回滚至跨链资产交换开始前的状态。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。 /* * rollbackRecv is the rollback function
ue进行资产回滚,并删除该数据锁,使发起方所属区块链上args[0]对应的资产回滚至跨链资产交换开始前的状态。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。 /* * rollbackSend is the rollback function
开发环境准备 请根据自身业务选择Go(推荐)或其他语言的开发环境。 Go开发环境准备: 安装Go开发环境。安装包下载地址为:https://golang.org/dl/ 。(请选择1.9.2之后的版本) 各个系统对应的包名(以1.14版本为例) 操作系统 包名 Windows go1
在跨链权限配置下方,配置“AAAA”到“BBBB”的跨链读权限。 单击“跨链通道测试”,调用“AAAA”的query方法,将参数“args”改为B1,其它默认即可。查询B1的值,B1值为返回的“payload”字段,B1的初值为300。 触发跨链交易。 在跨链权限配置下方,配置“AAAA”到“BBBB”的跨链写权限。
Fabric 合约名称 tcsexample 配置文件 上传准备好的crosschainA.yaml(或:crosschainA.json),获取方法请参考下载配置文件和证书。 证书 上传准备好的certsA.zip,获取方法请参考下载配置文件和证书。 单击右下角“立即注册”,等待注
单击“下一步:配置资源”,进行资源配置,参数如表2所示。 表2 资源配置参数表 参数 说明 环境资源 选择“自定义环境” 集群 选择“创建新的CCE集群” 可用区 可用区1 云主机规格 4核/8GB 云主机个数 1 高可用 否 虚拟私有云 默认 所在子网 默认 云主机登录方式 请自行设置
组织列表,具体设置请参考表1。 表1 辅助链代码配置 参数 说明 实例化通道 默认,此处是channela 链代码版本 1.0 链代码参数 不填 背书策略 选择“下列任意组织背书” 背书组织列表 默认,此处是orgA 隐私保护配置 否 单击“实例化”,完成链代码在当前通道上的实例化。
通过控制台界面或者接入点(RESTful接口)触发跨链交易,交易信息会记录在跨链服务中。支持两种方式触发跨链交易: 方式1:界面触发,方便用户简单测试。操作方法如下: 在“跨链通道”页面,单击对应通道的名称。 在新打开页面的“跨链通道测试”下,选择某一个接口,填写参数值,单击“执行调试”后即可查看交易结果。