基于联盟链的多通道实现方法与流程

文档序号:19377984发布日期:2019-12-11 00:04阅读:2199来源:国知局
基于联盟链的多通道实现方法与流程

发明涉及区块链技术领域,尤其是基于联盟链的多通道实现方法。



背景技术:

在公有链中,所有的节点都属于同一个链,所有的节点都会同步相同的数据,随着数据量的增大,每个节点都会同步和存储一些不必要的数据,增加了每个节点的压力,同时网络中的节点都能读取到所有的数据,一些敏感数据可能分发给不应该访问这些数据的节点,这会带来安全隐患。

而且所有公链都有一个致命弱点,每一个节点都必须参与每一笔交易,并通过保存交易的副本来保护系统,这限制了区块链可以处理的交易数量,导致吞吐量低,随着区块链中交易量的增加,也增加了对节点存储、带宽和算力的需求。

公有链解决方式其实有很多如分片、链下计算、dag等,分片技术通过将区块链的所有内容分成不同的碎片,每个碎片都由网络中不同节点存储和处理,通过分布式存储和计算来降低每个节点的压力。或者以一种安全和可验证的方式链下计算,提升吞吐量,基于以太坊的truebit就是一个好的例子。基于dag的数据结构来维护系统还处于起步阶段,没有得到大规模的推广,在最终理论完善之前其应用场景应慎重选择。

hyperledgerfabric是区块链的基础核心平台,目标是成为面向企业的开发应用和解决方案的分布式账本平台,创新的引入权限管理支持,设计上支持可插拔、可扩展,是首个面向联盟链场景的开源项目,也是最早加入到hyperledger项目中的顶级项目,由ibm、dah等企业于2015年底提交到社区,它提出了联盟链的多通道技术,指的是部分网络成员之间拥有独立的通信渠道,在通道中发送的交易只有属于通道的成员才可见,因此通道可以看做网络中部分成员的私有通信子网。在联盟之下若干不同的组织建立了一个一个的通道,每个通道都有一个独立的账本,只有通道成员组织之间才能共享账本。在实际应用中,它通常承载着诸如资产和交易之类的敏感数据,因此安全和隐私保护是两个非常重要的问题。

但是现有的公有链虽然可以解决节点的可扩展性问题,但是隐私权受限,将关键业务数据上传到区块链后,黑客,竞争对手或其他未授权方就可以查看区块链上的信息,这对大部分公司都不愿意这样做的。对于关心隐私和个人权益的个人、组织和行业来说,隐私权是底线。许多区块链和加密货币的拥护者都有共同的期许,希望能够建立一个无需信任的、不受审查的系统,让每个人都可以参与记账。矛盾的是,我们使用的是一个公共的、易于追踪的分类帐。公链缺乏正式的合同验证,对智能合约的核查仍然是一个尚未解决的问题,首先,智能合约是不可变的,这意味着一旦他们被放到以太坊主网,就不能再进行更新和修复。此外,智能合约里面的内容都是公开的,任何人都可以查看,任何人也可以调用智能合约的公共算法,虽然这提供了公开性和透明度,但他也使智能合同成为黑客的目标,事实上,无论您采取了多少预防措施,都很难使智能合约完美无缺,无论如何,正式验证是减少错误和攻击的有力方法。它确保了比传统方法(如测试、同行评审等)更高的更高的安全性。目前迫切需要更好的解决方案。hyperlengerfabric是目前联盟链中的代表,采用读写集进行进行链上交易操作,虽然安全性很好,但是并发性很差,如果多次更新同一个区块只有一个成功,后续交易失败,只能重新提交交易等待执行,体验性差,只保证了一致性,但是不满足可用性,不符合实际的应用场景。hyperledgerfabric多通道技术缺乏全局序,所以导致其不能很好的支持经济模型、跨链调用等。



技术实现要素:

为了解决背景技术中描述的技术问题,本发明提供了一种基于联盟链的多通道实现方法,hyperlengerfabric在交易发生时需要通过背书节点模拟交易生成读写集,然后将结果返回给客户端,当需要跨链操作时,通过发送信息给背书节点,背书节点返回相应的结果集操作。针对多通道的联盟链,通过建立排序链记录所有区块的唯一hash值,相当于记录当前时刻每个区块的索引值,当通道中的链上有新的区块生成时,向排序链中增加区块信息,如果对于跨链操作不是特别频繁,可以每隔一段时间对区块进行批量操作记录,当进行跨链操作时,主链通过访问排序链,获取当前操作涉及的相关区块,然后通过区块信息去获取对应链上的区块内容。通过引入排序链可以确定不同通道的区块顺序,不需要与背书节点连接,当多个交易对同一个区块操作时,可以排队执行,不会导致其他交易失败。

本发明解决其技术问题所采用的技术方案是:

一种基于联盟链的多通道实现方法,该多通道实现方法的步骤为:

a)联盟链创建有代币的通道或无代币的通道;

b)在联盟链创建的有代币的通道或无代币的通道内发生交易;或在联盟链创建的有代币的通道或无代币的通道内关闭通道;或跨链交易。

具体地,步骤a)中,所述联盟链创建有代币的通道的具体步骤为:创建新通道时,通过数字证书进行权限控制,当身份验证通过时,开始创建通道,否则创建通道失败并退出,然后写入初始token值,以便后续进行账户交易,接着配置信息,并生成配置信息块写入系统通道链中,最后信息在新的通道中生成块信息并打包hash写入链中,通道创建成功。

具体地,步骤a)中,所述联盟链创建无代币的通道的具体步骤为:客户端开始创建新通道时,通过数字证书进行权限控制,当身份验证通过时,开始创建通道,否则创建通道失败并退出,然后写入通道的配置信息,并生成配置信息块写入系统通道链中,最后根据配置信息在新的通道中生成块信息并打包hash写入链中,通道创建成功。

具体地,步骤b)中,所述在联盟链创建的有代币的通道或无代币的通道内发生交易的具体步骤为:客户端发生交易时,通过数字证书进行权限控制,当身份验证通过时,开始发生交易,否则交易失败并退出,然后检测该交易是否带token信息,如果存在,系统将根据交易区块信息对账户token进行处理去,如果不存在,则不处理,接着根据order节点的排序结果打包生成区块信息,将区块信息广播给组织的其他节点并执行交易,最后把交易结果返回给客户端,交易完成。

具体地,步骤b)中,所述在联盟链创建的有代币的通道或无代币的通道内关闭通道的具体步骤为:当客户端需要关闭通道时,系统首先会通过数字证书对身份认证,如果认证成功,开始执行关闭通道行为,否则通道关闭失败并退出;如果该通道有token,最终将客户端的token值写入账户链中,并将结果返回给客户端;果没有涉及token,则直接关闭通道,停止交易。

具体地,步骤b)中,所述跨链交易的具体步骤为:当通道中有新的区块产生时,将区块的哈希值写入到全局排序链中。当某一时刻需要跨链操作时,直接访问全局排序链,获取这个时间节点的区块信息。

本发明的有益效果是:本发明提供了一种基于联盟链的多通道实现方法,hyperlengerfabric在交易发生时需要通过背书节点模拟交易生成读写集,然后将结果返回给客户端,当需要跨链操作时,通过发送信息给背书节点,背书节点返回相应的结果集操作。针对多通道的联盟链,通过建立排序链记录所有区块的唯一hash值,相当于记录当前时刻每个区块的索引值,当通道中的链上有新的区块生成时,向排序链中增加区块信息,如果对于跨链操作不是特别频繁,可以每隔一段时间对区块进行批量操作记录,当进行跨链操作时,主链通过访问排序链,获取当前操作涉及的相关区块,然后通过区块信息去获取对应链上的区块内容。通过引入排序链可以确定不同通道的区块顺序,不需要与背书节点连接,当多个交易对同一个区块操作时,可以排队执行,不会导致其他交易失败。

附图说明

下面结合附图和实施例对发明进一步说明。

图1是本发明的联盟链创建有代币的通道的流程图;

图2是本发明的联盟链创建无代币的通道的流程图;

图3是本发明的在联盟链创建的有代币的通道或无代币的通道内发生交易的流程图;

图4是本发明的在联盟链创建的有代币的通道或无代币的通道内关闭通道的流程图;

图5是本发明的跨链交易的流程图;

具体实施方式

现在结合附图对发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明发明的基本结构,因此其仅显示与发明有关的构成。

图1是本发明的联盟链创建有代币的通道的流程图,图2是本发明的联盟链创建无代币的通道的流程图,图3是本发明的在联盟链创建的有代币的通道或无代币的通道内发生交易的流程图,图4是本发明的在联盟链创建的有代币的通道或无代币的通道内关闭通道的流程图,图5是本发明的跨链交易的流程图。

联盟链的通道创建分为代币与非代币,当涉及到账户交易时,需要创建代币。

如附图1所示,联盟链创建有代币的通道时:

1)创建新通道时,通过数字证书进行权限控制,当身份验证通过时,开始创建通道,否则创建通道失败并退出。

2)写入初始token值,以便后续进行账户交易。

3)的配置信息,并生成配置信息快写入系统通道链中。

4)信息在新的通道中生成块信息并打包hash写入链中,通道创建成功。

如附图2所示,联盟链创建无代币的通道时:

1)客户端开始创建新通道时,通过数字证书进行权限控制,当身份验证通过时,开始创建通道,否则创建通道失败并退出。

2)写入通道的配置信息,并生成配置信息块写入系统通道链中。

3)根据配置信息在新的通道中生成块信息并打包hash写入链中,通道创建成功。

如附图3所示,在联盟链创建的有代币的通道或无代币的通道内发生交易:

1)客户端发生交易时,通过数字证书进行权限控制,当身份验证通过时,开始发生交易,否则交易失败并退出。

2)检测该交易是否带token信息,如果存在,系统将根据交易区块信息对账户token进行处理去,如果不存在,则不处理。

3)根据order节点的排序结果打包生成区块信息,将区块信息广播给组织的其他节点并执行交易。

4)最终把交易结果返回给客户端,交易完成。

如附图4所示,在联盟链创建的有代币的通道或无代币的通道内关闭通道:

1)当客户端需要关闭通道时,系统首先会通过数字证书对身份认证,如果认证成功,开始执行关闭通道行为,否则通道关闭失败并退出。

2)如果该通道有token,最终将客户端的token值写入账户链中,并将结果返回给客户端;果没有涉及token,则直接关闭通道,停止交易。

如附图5所示,跨链交易:

当通道中有新的区块产生时,将区块的哈希值写入到全局排序链中。当某一时刻需要跨链操作时,直接访问全局排序链,获取这个时间节点的区块信息,即使后续有区块增加,也不会影响当前时刻区块操作的一致性。

全局排序链:当通道中有新的区块产生时,顺序记录所有区块的hash值。

以上述依据发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1