知世金融网专注于股票行情,期货开户,外汇储备等最新相关资讯信息提供投资者参考学习!

当前位置:网站首页 > 区块链 > 正文

在Fabric、 Quorum以及Corda之间实现跨链,超级账本的集成框架是这样的

原创
文章作者
知世-金融领域资深作者
知名金融领域作者,从事金融超过十余年,在行业内有一定影响力。
金融风险管理师认证证书 常识职业资格认证 特许金融分析师 国际金融理财师认证证书
发布时间:2020-02-16 20:07:05 发布来源:巴比特 文章点击:93

当前区块链平台的数量正在迅速增长,这对于行业而言无疑是一件好事,但区块链之间信息孤岛的问题,一直是个未解难题。 在公链领域,比特币和以太坊是最大的两个公链,因此很多...

目录

    本文标题在Fabric、 Quorum以及Corda之间实现跨链,超级账本的集成框架是这样的,作者:知世,本文有495个文字,大小约为3KB,预计阅读时间2分钟,请您欣赏。知世金融网众多优秀文章,如果想要浏览更多相关文章,请使用网站导航的搜索进行搜索。本站虽然不乏优秀之作,但仅作为投资者学习参考。

    当前区块链平台的数量正在迅速增长,这对于行业而言无疑是一件好事,但区块链之间信息孤岛的问题,一直是个未解难题。

    在公链领域,比特币和以太坊是最大的两个公链,因此很多跨链协议主要解决的就是这两大区块链之间的通信问题。

    而在联盟链领域,IBM的Fabric、摩根大通的Quorum以及R3的Corda是企业使用最多的区块链框架,那如何去实现这些联盟链之间的通信呢?

    在去年的时候,埃森哲(Accenture)宣布,他们开发并测试了两个解决方案,其旨在使两个或多个主要的联盟链生态系统能够实现集成。从那时起,Hyperledger(超级账本)联盟开发了一个新的解决方案,专门为没有中央连接者节点的许可区块链创建,而这个新的区块链集成框架,被称为Hyperledger Lab。

    而这个区块链集成框架的设计原则是这样的:

    1. 在不同联盟链账本之间实现直接传输;
    2. 可插拔模型和组件;
    3. 灵活的需求和数据协议;
    4. 利用预先存在的角色;

    这个区块链集成框架为每个可互操作的区块链(这里指联盟链)引入了一个“互操作性验证者”覆盖网络。

    互操作性验证者将通过验证本地节点的账本版本(步骤1到3)来共同处理来自本地节点的导出请求。每个请求都由验证者签名的(可配置的)最低quorum数应答(步骤4和5)。即使某些验证者关闭或不参与,网络也可以继续工作,前提是可以保证最低quorum数。任何安全的链外通信系统,都可以传递由分布式账本的传输验证者认证的消息(步骤6)。而来自外部分布式账本的证明,可以由接收者在本地或使用链上逻辑(通常是智能合约)根据该外部分布式账本的传输验证者的公钥进行验证(步骤7和8)。

    而下面这个教程,演示了如何在Fabric、Quorum以及Corda网络之间传输简单资产。

    一、部署先决条件

    Docker
    Docker-compose
    Node.js npm>=5.6,node >= 8.9
    Fabric1.4
    JDK 8

    注意:Fabric SDK有更严格的引擎要求(npm<6.0和node<9.0)
    脚本和以下命令只在Ubuntu 18.04上测试过

    一、安装程序

    由于该示例运行在Hyperledger Fabric和Quorum上,因此我们首先需要安装并运行这两种结构的本地网络。考虑到我们需要运行2个或更多的DLT网络,演示的首选设置是在Docker容器中,目前我们还没有支持手动安装。我们将部署2条对接的区块链(每条链4个节点加上联盟),我们建议在不同的机器上部署环境:例如,在一台机器上部署Fabric区块链和相关联盟,在另一台机器上部署Quorum区块链和相关联盟。

    导航到示例文件夹:cd examples/simple-asset-transfer 安装 npm 依赖项:npm i

    导航到示例Fabric API文件夹:cd example/simple-asset-transfer/fabric/api 安装 npm 依赖项:npm i

    导航到示例Quorum API文件夹:cd example/simple-asset-transfer/quorum/api 安装 npm 依赖项:npm i

    有关可用命令,请查看example package.json,它在简单资产转移(simple-asset-transfer)文件夹中:cat package.json。

    1、1 Fabric区块链

    要运行Fabric区块链,你可使用以下脚本:npm run fabric
    这将自动为Fabric节点拉取必要的镜像(image),并运行一个由同一通道( channel)内的2个组织划分的4个节点组成的环境,以及监听端口4000 的Fabric SDK。如果你已经有一个进程在监听端口4000,那么你可以在 Fabric api 配置文件Fabric/api/config.json中更改它。注意:一些bash脚本将直接引用在端口4000上运行的应用程序,如果你更改了Fabric SDK端口,完成后,你可能需要自己终止应用程序。

    Fabric 网络和SDK将在后台启动,你可以使用npm run fabric:log显示Fabric节点输出,并使用cat fabric/logs/start.log显示SDK输出。

    或者,你可以使用Fabric/artifacts中的配置来遵循Fabric文档,并部署来自``fabric/contracts`的合约。

    1、2 Fabric联盟

    要启用验证者的覆盖网络,我们需要在本地构建docker 镜像 :npm run fed:build
    然后,你就可以运行4个验证者的联盟:npm run fed:fabric 联盟验证者依赖于Fabric节点和连接器来执行区块链操作和验证,默认配置设置为在端口4000本地查找Fabric SDK的运行实例。如果要在不同端口或其他计算机上运行Fabric SDK,则相应地修改federations/docker-compose-Fabric.yml,为每个服务查找URL:“http://172.20.0.1:4000”,并修改字符串以指向正确的端点。

    联盟将在后台启动,你可以使用npm run fed:fabric:log显示Fabric联盟验证者输出。

    1、3 Quorum区块链

    要运行Quorum区块链,你可以使用以下脚本:npm run quorum
    这将使用Tessera和RAFT运行一个由7个节点组成的Quorum网络,Tessera可能需要几分钟才能完全启动,你必须等待它,然后才能启动以下命令。当Tessera准备好时,你可以列出你的docker容器docker ps,并等待它们全部变为“健康”(healthy)状态。

    然后,你就可以构建npm run quorum:api:build,然后运行自定义Quorum API npm run quorum:api ,Quorum API将默认使用端口5050、5051、5052和5053,你可以在Quorum api docker-compose文件quorum/api/docker-compose.yml 中更改它,为每个服务查找APP_PORT: 505。

    Quorum网络和SDK将在后台启动,你可以分别使用npm run quorum:log和npm run Quorum api:log来显示Quorum节点和Quorum API输出。

    1、4 Quorum联盟

    与Fabric联盟相同,为了启用验证者的覆盖网络,我们需在本地构建docker镜像:npm run fed:build。如果你计划在同一台计算机上部署两个联盟,则不必重新生成镜像。

    然后,你就可以运行4个验证者组成的联盟:npm run fed:quorum Quorum联盟验证者依赖于Fabric 节点和连接器执行区块链操作和验证,默认配置设置为在端口5050上本地查找Fabric SDK的运行实例。如果要在不同端口或其他计算机上运行Fabric SDK,则相应地修改federations/docker-compose-Fabric.yml,为每个服务查找URL:“http://172.20.0.1:5050”,并修改字符串以指向正确的端点。

    1、5 Corda区块链

    首先你需要建立和部署一个Corda网络,为此,你需要运行以下脚本:npm run corda:build
    加载必要的组件和组装Corda节点的过程,可能会消耗你几分钟的时间。在成功部署Corda节点和web服务器后,你就可以运行Corda网络了。

    要运行Corda区块链,你可以使用以下脚本:npm run Corda

    这将运行一个由5个节点和4个web服务器组成的Corda网络。部署过程大概需要几分钟的时间。

    1、6 Corda联盟

    如上所述,如果你已经建立了docker镜像,那么你就不需要重建它了。建立完后,运行下脚本:npm run fed:build
    然后,你就可以运行一个由4个验证者组成的联盟:npm run fed:corda Corda联盟验证者依赖于连接器来触发Corda流和验证。

    联盟将在后台启动,你可以使用npm run fed:corda:log来显示Corda联盟验证者输出。

    二、场景

    所有的场景都连接到了上面提到的三个区块链及其联盟。如果使用默认端口在本地运行所有内容,则可以前进并使用以下命令启动其中一个场景。否则,你将不得不修改位于场景(scenarios)文件夹/simple-asset-transfer(简单资产转让)文件夹中的配置文件,以匹配每个网络的正确url。

    场景1 : share-pub-key(共享公钥):npm run scenario:share

    从Corda、Quorum和Fabric区块链获取所有验证者的公钥,并在参与区块链之间共享它们。

    步骤1为每个活跃的Corda验证者调用askForPubKey,并收集它们;
    步骤2为每个活跃的Quorum验证者调用askForPubKey,并收集它们;
    步骤3为每个活跃的Fabric验证者调用askForPubKey,并收集它们;
    调用addForeignValidator,将Corda + Quorum的公钥存储到Fabric智能合约当中;
    调用addForeignValidator,将Corda + Fabric的公钥存储到Quorum智能合约当中;
    调用addForeignValidator,将Fabric + Quorum的公钥存储到Corda账本当中;

    注:如果已经存储了公钥,则最后的步骤将失败,多次启动脚本将自动导致此问题。

    场景2: fabric到quorum:npm run scenario:FtQ
    场景3 :quorum到fabric:npm run scenario:QtF
    场景4: corda到quorum:npm run scenario:CtQ
    场景5: corda到fabric:npm run scenario:CtF
    场景6: fabric到corda:npm run scenario:FtC
    场景7: quorum到corda:npm run scenario:QtC

    而上面的应用场景,就需要以下这些步骤:

    步骤1调用createAsset在“导出链”上生成具有伪随机ID的标准资产;
    步骤2调用 lockAsset以注销指定“导出链”上目标公钥(可选)的资产;
    步骤2.5(可选)调用getAsset以验证“导出链”上的资产状态;
    步骤3 为资产的报废调用askForSignature并收集验证者的签名(应该有4个);
    步骤4 调用verifySignature检查“导入链”上生成的证明;
    步骤5调用copyAsset在“导入链”上创建导出资产的副本;

    三、测试

    测试有两个版本:本地单元测试和测试调用正在运行的区块链环境。要运行本地单元测试,可以在simple-asset-transfer(简单资产转让)文件夹中使用npm run test。要运行扩展测试,则可以使用npm run test:bc。注意:与场景类似,test:bc同时连接到Fabric和Quorum区块链。如果使用默认端口在本地运行所有内容,则可以继续,否则,你将不得不修改位于tests(测试)文件夹中的配置文件,以匹配每个网络的正确url。

    四、未来的工作

    集成Hyperledger Indy以管理不同区块链的互操作性验证者身份;
    实现更复杂的互操作性用例(例如,原子互换或资产同步);
    测试可扩展性和性能;
    集成更多联盟链平台(例如Hyperledger Sawtooth、Digital Asset等);
    在覆盖网络内实现保密通信,验证者网络应与本地账本的保密设置相匹配;
    用BLS签名方案替换当前签名方案,以优化证明大小(Hyperledger Ursa在这方面是领先者);

    相关资料:

    1、https://www.hyperledger.org/blog/2019/11/20/accenture-open-sources-blockchain-integration-framework-as-a-hyperledger-lab
    2、https://github.com/hyperledger-labs/blockchain-integration-framework/blob/master/docs/tutorials/simple-asset-transfer.md
    3、https://github.com/hyperledger-labs/blockchain-integration-framework

    本文相关推荐: 分布式账本

    以上便是知世金融网给大家分享的关于在Fabric、 Quorum以及Corda之间实现跨链,超级账本的集成框架是这样的/qkl/28417.html的相关信息了,希望能帮助到大家,更多金融相关信息,敬请关注知世金融网!

    网站内容均来自互联网,如侵害您的利益联系客服进行删除!

    关键词:账本
    (0)
    (0)

    上一篇:Substrate 区块链框架简介

    下一篇:ABT 钱包 2.0 版发布:全方位升级去中心化数字生活体验

    本文标题:在Fabric、 Quorum以及Corda之间实现跨链,超级账本的集成框架是这样的

    本文地址:/index.php?s=article&c=search&keyword=%E8%B4%A6%E6%9C%AC

    金融知名领域

    南方财富网 | 金融界 | 金融界 |

    更多推荐

    • 茅台吃饱,经销商哭倒
      茅台吃饱,经销商哭倒
    • 汇金的五次增持从短期看具有一定的“稳定器“作用,但从市场表现看效果逐次递减
      汇金的五次增持从短期看具有一定的“稳定器“作用,但从市场表现看效果逐次递减
    • 158亿元!比亚迪收购!
      158亿元!比亚迪收购!
    • 9月价格回落近五成 “冷静期”酒店业备战“十一”市场
      9月价格回落近五成 “冷静期”酒店业备战“十一”市场
    • 2023哈马博览会哈尔滨银行展区精彩纷呈
      2023哈马博览会哈尔滨银行展区精彩纷呈
    • 大额解禁撂倒股价 医疗影像龙头跌出千亿俱乐部 葛兰二季度大幅减仓
      大额解禁撂倒股价 医疗影像龙头跌出千亿俱乐部 葛兰二季度大幅减仓
    • A股,又上了热搜!数字要素概念走高多股涨停,锂电池板块走低恩捷股份大举跌停
      A股,又上了热搜!数字要素概念走高多股涨停,锂电池板块走低恩捷股份大举跌停
    • 最新!巨头出手,加仓宁王51%
      最新!巨头出手,加仓宁王51%
    • 600亿巨头暴雷
      600亿巨头暴雷
    • 一天32家!科创板回购潮涌来
      一天32家!科创板回购潮涌来
    • 提振信心实招来了!30余家上市公司密集出手 最高要买10亿
      提振信心实招来了!30余家上市公司密集出手 最高要买10亿
    • 高盛再发50年后预测:2075年印度股市全球市值占比将升4倍 中国升3成
      高盛再发50年后预测:2075年印度股市全球市值占比将升4倍 中国升3成

    新闻资讯栏目

    站长QQ: 2397470084