8

如何实现数据跨链交互?

 2 years ago
source link: https://juejin.cn/post/7077374543790080013
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何实现数据跨链交互?

2022年03月21日 02:29 ·  阅读 12

本文分享自华为云社区《【云小课】应用平台第38课 如何实现数据跨链交互?》,作者: 应用万花筒。

云小课.jpg

可信跨链服务(Trusted Cross-Chain Service,简称TCS)是基于一系列制定的可信区块链标准跨链协议,保证跨链交易全栈可追溯、可扩展性及可靠性等,实现基于不同区块链内核所构建的同构及异构链之间的互联互通,打破区块链数据孤岛,助力不同企业联盟链可信互联,促进区块链产业生态可信融合。

接下来使用以下例子介绍如何实现两个区块链服务的跨链交易,打破数据孤岛,了解跨链服务全过程,帮助您快速上手可信跨链服务。

主要以两个HyperLedger Fabric增强版区块链Cross-ChainA和Cross-ChainB为例,进行跨链交易演示。交易过程如图1所示,orgA和orgB分别是两个区块链上的组织,A1是orgA组织的一个账户,B1是orgB组织的一个账户,主要实现A1,B1互转账,互查询的操作。

图1 交易图

image003.png

请参考准备工作完成以下操作。

  1. 订购区块链服务
  2. 链代码安装及实例化链代码
  3. 下载配置文件和证书

使用跨链服务

准备工作完成后,即可通过可信跨链服务(以下简称TCS服务)进行跨链交易演示。

一、注册区块链

将区块链服务注册到可信跨链服务上才可以进行跨链交易,接下来分别将区块链Cross-ChainA和区块链Cross-ChainB注册到TCS服务。

  1. 登录可信跨链服务管理控制台,进入“已注册区块链”页面。

  2. 单击“注册区块链”,填写区块链Cross-ChainA的注册信息,参考表1 注册Cross-ChainA信息。

    参数说明区块链名称设置为“AAAA”描述记录信息,可不填区块链类型Hyperledger Fabric合约名称tcsexample配置文件上传准备好的crosschainA.yaml(或:crosschainA.json),获取方法请参考下载配置文件和证书。证书上传准备好的certsA.zip,获取方法请参考下载配置文件和证书

  3. 单击右下角“立即注册”,等待注册完成即可在“已注册区块链”页面生成一条记录。

  4. 再次单击“注册区块链”,填写区块链Cross-ChainB的注册信息,参考表2 注册Cross-ChainB信息。

    参数说明区块链名称设置为“BBBB”描述记录信息,可不填区块链类型Hyperledger Fabric合约名称tcsexample配置文件上传准备好的crosschainB.yaml(或:crosschainB.json),获取方法请参考下载配置文件和证书。证书上传准备好的certsB.zip,获取方法请参考下载配置文件和证书

  5. 单击右下角“立即注册”,等待注册完成即可在“已注册区块链”页面生成一条记录。

二、购买跨链通道

两条链上的交易通过一个通道作为媒介来达成交易,需要购买一条跨链通道来连接两个独立的区块链服务。

  1. 登录可信跨链服务管理控制台,进入“跨链通道”页面。

  2. 单击“购买跨链通道”,填写基本信息,请参考表3 购买跨链通道信息。

    参数说明计费模式包年/包月区域使用默认区域。跨链通道名称设置为transfercross-demo业务类型互操作选择区块链选择注册区块链的两个节点“AAAA”和“BBBB”。购买时长默认

  3. 单击右下角“立即购买”跳转至付款页面,付款完成之后,等待4~5分钟时间创建跨链通道,在跨链通道界面可以看到transfercross-demo跨链通道信息,状态显示“正常”即为购买成功。

三、使用跨链交易

介绍区块链Cross-ChainA和区块链Cross-ChainB的交易过程。

(1)配置权限

基于不同链上的不同合约,主要有三种权限:跨链读,跨链写,查询账本。不同类型的跨链交易需要不同的权限,例如:发起一次跨链交易需要“跨链写”权限,查询跨链交易结果需要“跨链读”权限,因此需要在进行跨链交易之前设置对应权限。

  • 跨链读:访问链任意合约可以执行被访问链指定合约的读操作。
  • 跨链写:访问链任意合约可以执行被访问链指定合约的写操作。
  • 跨链查询账本:访问链可以查询被访问链账本中的区块、交易信息。
  1. 登录可信跨链服务管理控制台,进入“跨链通道”页面。

  2. 单击跨链通道transfercross-demo名称,进入详情页面。

  3. 在跨链权限配置下方,通过查看权限对应图标是否高亮判断是否有权限。若是灰色,代表没有权限。

image005.png

  1. 单击权限图标后,勾选查询账本、跨链读、跨链写的权限。

  2. 单击“确认”,权限图标显示高亮。

(2)交易演示

以区块链Cross-ChainA和Cross-ChainB的两个账号为例子进行相互转账的跨链交易演示。

Cross-ChainA链上的A1,初值为100,注册区块链名称为AAAA;Cross-ChainB链上的B1,初值为300,注册的区块链名称BBBB。

Cross-ChainA链作为交易发起方

  1. 单击跨链通道transfercross-demo名称,进入详情页面。

  2. 查询B1的值。

    1. 在跨链权限配置下方,配置“AAAA”到“BBBB”的跨链读权限。

    2. 单击“跨链通道测试”,调用“AAAA”的query方法,将参数“args”改为B1,其它默认即可。查询B1的值,B1值为返回的“payload”字段,B1的初值为300。

  1. 触发跨链交易。

    1. 在跨链权限配置下方,配置“AAAA”到“BBBB”的跨链写权限。

    2. 单击“跨链通道测试”,调用“AAAA”的invoke方法,将参数“args”改为“A1,B1,50”(此处逗号为英文逗号,且A1,B1顺序不可更换),其它默认即可。发起一个由A1向B1转账50的交易,返回“success”说明交易成功。

  1. 参考第2步,查询B1的值为350,说明交易成功。

Cross-ChainB链作为交易发起方

  1. 单击跨链通道transfercross-demo名称,进入详情页面。

  2. 查询A1的值。

    1. 在跨链权限配置下方,配置“BBBB”到“AAAA”的跨链读权限。

    2. 单击“跨链通道测试”,调用“BBBB”的query方法,将参数“args”改为A1,其它默认即可。查询A1的值,A1值为返回的“payload”字段,A1的初值为50。

image015.png

  1. 触发跨链交易。

    1. 在跨链权限配置下方,配置“BBBB”到“AAAA”的跨链写权限。

    2. 单击“跨链通道测试”,调用“BBBB”的invoke方法,将参数“args”改为“B1,A1,100”(此处逗号为英文逗号,且A1,B1顺序不可更换),其它默认即可。发起一个由B1向A1转账100的交易,返回“success”说明交易成功。

image017.png

  1. 参考第2步,查询A1的值为150,说明交易成功。

image019.png

说明:当前仅“华北-北京四”区域支持可信跨链服务。

点击关注,第一时间了解华为云新鲜技术~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK