查看原文
其他

支撑区块链大规模商用,揭秘FISCO BCOS v3.0的那些“黑科技”

CSDN 2022-06-10

在2021年度金链盟生态大会上,全新的FISCO BCOS v3.0正式发布。该版本从架构、算法以及安全可控和隐私计算协同等方向进行了全面升级,满足数字经济时代对区块链系统可承载更大规模、更多场景、更广泛参与的产业应用需求。

此前,FISCO BCOS开源社区发布了FISCO BCOS v3.0 2022年技术发展路线,这也是继2021年12月v3.0正式发布后,首次揭示未来的技术发展计划。

那么,FISCO BCOS v3.0有哪些重要特性?如何突破区块链性能瓶颈,提升链上效率,满足数字经济时代的新需求?带着这些疑问,CSDN专访了微众银行区块链底层平台负责人、FISCO BCOS高级架构师李辉忠,以下为专访实录。

(微众银行区块链底层平台负责人、FISCO BCOS高级架构师李辉忠)

 

三个版本,满足多种业务需求

 

CSDN:“产业数字化”、“数据新基建”、“数据要素”等战略,都跟区块链有着非常紧密的关系。在你看来,区块链上升到国家战略技术后,整个产业应用发展有哪些显著变化?

李辉忠:区块链作为一门防篡改、多中心化、安全可控的技术,上升为国家战略技术后,迎来了快速发展阶段,更广泛地应用于产业数字化,助力实体经济发展。

技术层面,区块链与多种前沿技术和创新场景愈发紧密地融合,为数字经济时代提供数据的安全存储、可信传输、协同生产等一系列数字化基础设施。

应用层面,越来越多不同领域的业务(如政务、跨境数据验证、金融、公益、医疗、教育等),开始引入区块链技术来构建信任关系,以提升多方协作效率,降低协作成本。区块链与产业互联网、物联网、数字经济等领域的融合也已经成为一种趋势。

产业层面,国家和政府加大对区块链技术人才发展的投入,区块链尤其是联盟链相关的开源社区蓬勃发展。在各地政府的支持下,涌现了大量区块链相关的产业园区、实验室、孵化器……

CSDN:这些变化已经或者将会给区块链技术带来哪些新的挑战和要求?目前主流的区块链平台是否能够满足这些要求?

李辉忠:蓬勃发展的产业数字化进程对区块链提出新的需求:技术需要承载更大规模应用、更多业务场景和更广泛行业参与。这也意味着区块链底层需要更易治理、更安全、更灵活可扩展、更高效好用、更开放的技术体系。

此外,随着区块链和产业互联网、物联网、数字经济等更进一步的融合,对区块链底层平台的性能、存储容量、可监管性、可运维性等也提出了更高的要求,因此从网络、计算、存储等各个维度,提升区块链系统的横向可扩展性,使其可支撑海量服务场景成为亟待解决的问题。

基于上述考虑,FISCO BCOS从各个维度重新设计并开发了FISCO BCOS v3.0,旨在打破区块链底层平台的性能、存储瓶颈,构建一个可支撑海量服务的区块链系统。例如采用全新的微服务架构设计,实现模块化分层治理与平行扩展;创新性地提出了「确定性多合约并行算法DMC」(Deterministic Multi-Contract),实现流水线共识机制和混合调度,大幅提升系统整体的吞吐量,同时降低时延。

CSDN:本次升级推出了三个不同版本:Air版、Pro版和Max版,三个版本面向的群体是否有所不同?可以解决哪些场景下的哪些问题?

李辉忠:FISCO BCOS开源社区经过4年的发展,生态内的产业角色逐渐丰富,这几年我们也遇到几类典型用户:

1. 落地应用的机构用户,他们基于FISCO BCOS投产落地众多应用,而且应用的业务量越来越大;

2. 运营平台的机构用户,他们基于FISCO BCOS构建了BaaS平台对外提供服务;

3. 以个人开发者为代表的学习型用户。

这几类用户诉求存在比较大的差异:有大业务体量上链的机构需要区块链支撑海量计算和存储,可以承担较复杂系统的运维;BaaS平台的用户需要更好的区块链接入、隔离、计费机制等;而学习型用户则最需要简单易用、可快速上手的区块链工具。

对于不同用户的诉求,我们尝试在FISCO BCOS v3.0中提供灵活可扩展的开发框架,让不同用户根据不同场景和需求进行定制。所以我们打造了“轻便Air版”、“专业Pro版”和“大容量Max版”。

Air版采用all-in-one的封装模式,将所有模块编译成一个二进制(进程),一个进程即为一个区块链节点,包括网络、共识、接入等所有功能模块,采用本地RocksDB存储,适用于初学者入门、功能验证、POC产品等。

Pro版包括RPC、Gateway两个接入层的服务和多个区块链节点服务组成,存储采用本地RocksDB,所有区块链节点服务共用接入层服务,接入层的两个服务可平行扩展,适用于容量可控(T级以内)的生产环境,能够支持多群组扩展。

Max版本将执行、共识、存储、Gateway、RPC拆分为独立的微服务,每个微服务均可独立部署、扩容和容错,适用于海量交易上链的场景。

CSDN:我们知道这次v3.0的研发,不少社区伙伴都十分关注,甚至参与其中。从v1.0到v3.0,FISCO BCOS的生态发展呈现出了哪些不同的特点?

李辉忠:从FISCO BCOS v1.0到FISCO BCOS v3.0,不论从技术层面,还是开源社区运营层面,FISCO BCOS的生态都越来越成熟、越来越活跃。2015年,开发者想找一款金融级的区块链底层平台作为技术底座开发应用很难,FISCO BCOS v1.0在此场景下应运而生,但彼时区块链应用场景有限,区块链平台功能特性也不完备。

2019年,中央政治局第十八次集体学习时强调,把区块链作为核心技术自主创新的重要突破口,加快推动区块链技术和产业创新发展。越来越多的产业开始与区块链技术结合。FISCO BCOS v2.0数百个产业数字化应用实践,证明了开源区块链技术“能用”,且越来越“好用”。

而现在,相比于FISCO BCOS v1.0和FISCO BCOS v2.0,FISCO BCOS v3.0一方面注重区块链系统组件化,提升区块链底层平台本身的开发效率;另一方面更关注区块链系统的横向扩展性,构建一个可以支撑海量服务的区块链底层平台。

如今,FISCO BCOS开源生态圈已汇聚了超3000家机构与企业、70000名个人开发者,沉淀了200余个产业数字化标杆应用,对产业区块链的发展起到举足轻重的推动作用。

活跃的开源生态也为技术的演进带来更多可能,在v3.0研发过程中,开源社区自发构建了多个专项兴趣小组,涵盖了每个关键模块,社区开发者积极参与各研发环节的讨论。也正是有社区的参与与共建,v3.0才能更好地解决开发痛点、贴近产业需求。

 

打破大规模商用桎梏

 

CSDN:业内一直流传着一个说法,区块链技术目前还无法支持大规模商用,很大程度是受制于区块链性能。FISCO BCOS v3.0如何解决性能掣肘,应对海量数据上链的问题? 

李辉忠:为了提升系统性能,应对海量数据上链,在系统架构上,FISCO BCOS v3.0将区块链系统划分为网络、计算、存储、调度等微服务模块。每个微服务可独立部署、扩容和容错,应用可通过调整微服务物理资源来满足业务的网络和性能需求,实现了区块链系统的横向扩展。

在系统设计上,FISCO BCOS v3.0一方面设计并实现了两阶段并行拜占庭共识,将区块链共识算法划分成区块批量并行排序共识、区块执行结果流水线共识两个阶段(两个阶段可并行),提升了系统资源利用效率,实现了区块链系统的纵向可扩展性;另一方面提出确定性多合约并行方案(简称DMC),可自动将多个交易并行调度到不同执行器中,并保证并行交易执行结果的确定性,由于执行器可动态扩容,消除了机器资源对执行性能的限制,提升了区块链系统横向可扩展性。

此外,为了应对海量数据存储场景,FISCO BCOS v3.0引入专业分布式数据库(如TiKV)作为后端存储引擎,消除本地磁盘空间对区块链存储限制的同时,可实现海量的分布式数据管理。

CSDN:FISCO BCOS v3.0的总架构采用了5层设计,这一设计的思路和理念是怎样的?相比于之前或其他的区块链平台架构有哪些优势? 

李辉忠:FISCO BCOS v3.0遵循最大化系统横向可扩展性的原则,将区块链系统划分成了接入层、调度层、计算层、存储层和管理层,每层均是一个可独立部署、扩容和容错的微服务,实现了系统网络、存储、计算横向可扩展性的同时,提升了系统的健壮性、可运维性。

FISCO BCOS v3.0秉承组件化的设计思路,将区块链系统的各个模块、特性抽象为独立的组件。开发者基于这些组件可以按需快速开发及组装新的区块链底层系统,提升区块链底层平台的开发效率。

CSDN:请简单介绍下DMC工作原理,它是如何实现“拉链式”通行的机制的?

李辉忠:DMC(Deterministic Multi-Contract,确定性多合约并行方案)的核心思路是保证并行交易执行过程中的互斥资源确定性访问,其包括三个目标。

  • 易用:区块链底层自动启用并行,无需使用者关注并行逻辑、预先提供冲突字段;

  • 高效:区块内的交易不重复执行,没有预执行、预分析或重试的流程

  • 兼容:无论 EVM、WASM、Precompiled 或其它合约,使用任意的共识机制,都能使用此方案

DMC方案首先要求区块链的智能合约间没有共享数据,每个合约都有独立的存储空间,其它合约无法读取和写入。执行交易时,DMC会将区块内所有交易调用的不同智能合约代码块拆分为多个代码段,多个不同智能合约的代码块交错执行,拆分的边界是跨合约调用与互斥资源访问。

DMC能让调用不同合约的多个交易并行执行,由于智能合约间没有共享的数据,因此,不同合约间的并行执行总是可以保证最终结果的一致性。当任意智能合约发生跨合约调用,或是访问已经锁定的互斥资源时,DMC会暂停该交易的执行,并等待当前阶段中其它所有交易都执行完成,或是由于发起跨合约调用和访问已锁定的互斥资源而暂停,这个等待过程称为全局同步。

每次全局同步,DMC 会按照固定规则分配交易的跨合约调用和互斥资源访问,保证同一个合约和互斥资源不会被并行访问。最终在实现并行的同时,保证执行结果的一致性。

相较于其他并行执行机制,DMC实现了一种高效、自动的并行交易调度策略,最大化交易执行性能的同时,降低了并行合约的开发门槛。

CSDN:流水线共识和混合调度是如何实现的?与其他共识机制相比,这一共识的底层逻辑有何不同?又有哪些优点?

李辉忠:为了保证区块链系统的安全性和性能,当前联盟区块链系统一般采用拜占庭共识算法。

但由于链式区块链系统的每个区块头必须包含父区块的哈希和当前区块的执行结果,一方面导致了区块共识必须串行进行(即对第N个区块的共识必须在开始共识第N+1个区块之前完成)。 另一方面导致区块链共识与区块执行、提交紧密耦合(即整个区块共识流程中必须包含区块执行和区块提交的步骤)。同时,区块打包、广播共识消息包等低CPU占用的过程中,无法并行进行区块执行,严重降低了系统资源利用效率,降低了区块链系统性能。

为了解决当前区块链系统串行共识的性能问题,FISCO BCOS v3.0提出了一种两阶段并行拜占庭共识算法,该算法将区块链系统的共识划分成区块批量并行排序共识和区块执行结果流水线共识两个阶段,且两阶段可并行进行。区块批量并行排序共识和区块执行结果流水线共识均支持对多个区块进行并行共识,从而提升了区块链吞吐量。

CSDN:请介绍下后续v3.0还有哪些研发计划?

李辉忠:FISCO BCOS v3.0目前已发布三个rc版本,预计在发布四个rc版本后,将发布正式的LTS版本。

在每个版本中,我们都会有一些重点关注的新特性。比如已发布的rc2版本,升级了组件化仓库管理;rc3版本,将Solidity支持并行,可以自动进行合约解析、并行执行、并行跑、并行验证;即将发布的rc4版本,可以更好支持大规模上链;未来将发布正式的LTS版本,基本实现v3.0最初规划的所有功能特性。

今年下半年, FISCO BCOS v3.0将在云原生落地、跨群组(链)通信、隐私计算结合等领域进行更多探索,也会推进从技术实现到项目管理的全面国产化。比如更好地支持云原生落地;将陆羽跨链协议的相关能力集成到v3.0中,实现更便捷的跨链;隐私计算结合方面,计划将微众区块链的隐私计算能力赋予到v3.0底层里,让v3.0可以更好地支持跟隐私计算场景相关的应用落地。


全链路国产化支持保障数据安全可控

 

CSDN:2021年《个人信息保护法》施行,业内更关注隐私数据的安全,对于数据安全,v3.0有什么核心技术优势?这些优势是如何实现的呢?

李辉忠:区块链与隐私计算结合,可以使原始数据在无需出域与归集的情况下,实现多节点间的协同计算和数据隐私保护。同时能够解决大数据模式下存在的数据过度采集、数据隐私保护,以及数据存储单点泄漏等问题。

FISCO BCOS v3.0在计算层可以很方便地以链外预言机的形式引入隐私计算平台,进而与隐私计算相结合,通过区块链确保计算过程和数据可信,通过隐私计算实现数据可用不可见,从而实现更广泛的数据协同。

CSDN:v3.0提供了国密基础组件的封装接口,这一升级对开发者可以带来哪些影响? 

李辉忠:使用FISCO BCOS v3.0提供的国密基础组件,开发者可以快速使用国密算法、国密通信协议。

对于程序员来说一直有一个痛点,为了适配国密和国产化,需要在不同平台、不同操作系统、不同编程语言逐一适配开发,工作量巨大,而且每一次核心逻辑更改需要兼容更改各个平台、各个系统、各个语言,苦不堪言。

FISCO BCOS自研发之初,一直重视国密接入和国产化支持。为了更好地在多语言、多终端、全链路实现国密接入,FISCO BCOS v3.0构建了通用国密基础组件,将国密算法、国密通信协议、以及国产密码机接入协议封装成通用基础组件。在此基础上,FISCO BCOS v3.0将区块链相关的网络、群组、账本、事件等逻辑用C++语言实现成一个独立共享库,并封装提供C语言接口。

基于这套底层C接口,开发者可以快速对接开发不同语言、不同平台和系统的SDK,且这些多语言SDK无需关心底层逻辑,系统升级只需更新底层共享库,大大提升研发管理效率,保证了全平台的国产安全可控。

CSDN:今年来,国产技术逐渐崛起,而FISCO BCOS开源之初就布局国产化,从国密版到全链路国产化支持,这一步步的布局是出于何种考量?未来在国产化上有哪些计划?

李辉忠:FISCO BCOS作为安全可控的国产金融级区块链底层平台,一开始就秉持国产化理念,已从国密算法、操作系统、芯片架构到服务器平台实现完整的国产化支持。

未来会在更多维度进行国产化支持,如适配国产数据库、支持国产加密硬件、支持更多的国产芯片架构和操作系统平台等,此外,也会更加关注国密区块链的性能。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存