检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
跨链资产数据锁定义 跨链资产交换基于分布式事务的两阶段提交实现,两阶段提交必须基于每个跨链资产单元携带的数据锁。跨链资产数据锁定义如下: type AccountLock struct { PreValue string CrossTXID string } 表1
跨链智能合约方法定义 下表为涉及跨链资产交换的跨链智能合约必须实现的方法,且必须保证方法名相同,否则可能出现跨链资产交换接口调用超时或调用失败的情况: 表1 方法说明 方法名 说明 preCommitSend 在跨链资产交换发起方所属区块链上执行的预提交操作 preCommitRecv
准备两个区块链服务Cross-ChainA和Cross-ChainB,在区块链服务Cross-ChainA创建一个组织orgA,在区块链服务Cross-ChainB创建一个组织orgB,作为跨链的两个组织节点。 操作步骤 登录区块链服务管理控制台。 进入服务管理页面,单击Hyperledger
购买跨链通道 两条链上的交易通过一个通道作为媒介来达成交易,需要购买一条跨链通道来连接两个独立的区块链服务。 操作步骤 登录可信跨链服务管理控制台,进入“跨链通道”页面。 单击“购买跨链通道”,填写基本信息,请参考表1。 表1 购买跨链通道信息 参数 说明 计费模式 包年/包月 区域
解锁跨链资产(unlockAccount) 在跨链资产交换即将完成时,需要解锁跨链资产交换中涉及的资产。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是commitSend、commitRecv、rollbackSend与rollbackRecv)中调用: /*
登录可信跨链服务管理控制台,在“总览”页面的跨链链代码下载用于演示的业务链代码tcsexample.zip。 跨链资产数据锁定义 跨链智能合约方法定义 跨链智能合约方法示例 父主题: 跨链链代码开发(Hyperledger Fabric)
目标端查询函数,如:QueryBlock 最小长度:1 最大长度:64 args 是 Array of strings 查询账本所需要的参数列表。为数字字符串形式,如:[“1”]。 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 code String 成功响应码 data
修改跨链资产数值(putStateWithLock) 在跨链资产交换涉及的智能合约方法中,所有对跨链资产的修改都必须与资产上锁同时进行。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是preCommitSend与preCommitRecv)中调用: /* * putStateWithLock
可按小时、分钟维度查看最近交易笔数,默认展示最近7个点。 说明: 可在曲线图左上角选择时间粒度:小时、分钟。 选择小时:每隔1小时一个点。 选择分钟:每隔15分钟一个点。 交易统计 通过饼图统计展示最近2000笔交易中各组织交易数量。 当前展示:跨链读、跨链写、跨链查询账本三种组织。 说明:
简介 在使用可信跨链服务时,您需要开发自己的链代码和应用。本文档主要介绍跨链业务链代码的开发,专供具备Go/Java开发经验的开发人员使用。 当前仅“华北-北京四”区域支持可信跨链服务。 购买区块链服务 您可通过华为云区块链服务Hyperledger Fabric增强版实例,具体请参考基于CCE集群部署。
在跨链资产交换的过程中如遇到异常情况,需要读取跨链资产对应数据锁中的PreValue,并根据该值回滚跨链资产交换中涉及资产已发生的变化。可将上述逻辑封装至一个方法中,便于后续在其他智能合约方法(主要是rollbackSend与rollbackRecv)中调用: /* * rollback function
方式1:界面触发,方便用户简单测试。操作方法如下: 在“跨链通道”页面,单击对应通道的名称。 在新打开页面的“跨链通道测试”下,选择某一个接口,填写参数值,单击“执行调试”后即可查看交易结果。 当前仅提供了跨链交易和跨链查询两个接口。 交易过程会记录在TCS的可信中继链上,在“跨链浏览器”可以查看对应交易信息。
支持英文字符、数字及中划线,不能以中划线开头,长度为4-24个字符。 业务类型 互操作 选择区块链 从已经注册的区块链中任选两个作为跨链通道的参与方。 购买时长 支持自定义购买服务的使用时间,最短1个月。 您可根据需要选择勾选自动续费,按月购买的自动续费周期为1个月,按年购买的自动续费周期为1年。 单击“立即
参数名称 说明 链代码名称 跨链辅助合约,固定值tcshelper。 证书存放路径 固定值:/home/service/Certs 通道名称 选择一个通道。 组织&Peer节点(区块链类型为私有链) 选择通道中的任意1个节点组织下的所有peer节点。这里的组织和“Peer节点证书”的组织需要保持一致。
开发前准备 链代码(Chaincode)又称智能合约,在Hyperledger Fabric中是用Go、Java或Node.js语言编写的程序,主要用于操作账本上的数据。链代码是运行在区块链上的、特定条件下自动执行的代码逻辑,是用户利用区块链实现业务逻辑的重要途径。基于区块链特点
-ChainB为例,进行跨链交易演示。交易过程如图1所示,orgA和orgB分别是两个区块链上的组织,A1是orgA组织的一个账户,B1是orgB组织的一个账户,主要实现A1,B1互转账,互查询的操作。 当前仅“华北-北京四”区域支持可信跨链服务。 图1 交易图 父主题: 跨链场景演示-数据交互
单击“跨链通道测试”,调用“AAAA”的invoke方法,将参数“args”改为“A1,B1,50”(此处逗号为英文逗号,且A1,B1顺序不可更换),其它默认即可。发起一个由A1向B1转账50的交易,返回“success”说明交易成功。 参考2,查询B1的值为350,说明交易成功。 Cross-ChainB链作为交易发起方
背书策略 选择“下列任意组织背书” 背书组织列表 默认,此处是orgA 隐私保护配置 否 此处“A1”是Cross-ChainA链上组织orgA的一个账户,100为该账户的余额。 单击“实例化”,完成链代码在当前通道上的实例化,稍等2~3分钟后刷新界面,单击“实例化”列的“查看更多”,查看链代码实例化进度。
端完成。unlockAccount方法的实现请参考解锁跨链资产(unlockAccount)。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。 /* * commitSend is the third step of two-phase cross-chain
端完成。unlockAccount方法的实现请参考解锁跨链资产(unlockAccount)。 该方法为必选方法,需在智能合约中以相同命名定义该方法,否则将导致跨链资产交换失败。 /* * commitRecv is the forth step of two-phase cross-chain