FISCO BCOS 2.0发布:新增群组架构克服吞吐瓶颈
今日,FISCO BCOS开源社区正式对外发布FISCO BCOS的2.0版,该版本在可扩展性、性能、易用性、隐私隔离等方面均取得突破性进展,其新增的群组架构方案,可以让企业间像拉微信群一样快速组链,大大降低维护难度和管理成本。
据悉,FISCO BCOS是金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组,由腾讯、华为、微众银行、博彦科技、深证通、神州数码、四方精创、亦笔科技、越秀金科九家成员机构牵头,为金融行业定制、开源的区块链底层技术平台。1.0版本于2017年发布。
FISCO BCOS 2.0的新特性
FISCO BCOS 2.0新增了很多特性,统称为“一体两翼多引擎”,其能产生多大的燃动力助推联盟链应用落地,欢迎各位用实践来检验:
群组架构
FISCO BCOS 2.0新增了群组架构,用于克服系统吞吐能力的瓶颈。
有别于传统区块链平台整个网络维护一个账本,所有节点参与到这个账本的共识和存储的做法,群组架构允许网络中存在多个不同的账本,每个账本是一个独立的小组,节点可以选择加入某些小组,参与到该组账本的共识和存储。该架构的特点是:
- 各群组独立执行共识流程,由群组内参与者决定如何进行共识,一个群组内的共识不受其他群组影响,各群组拥有独立的账本,维护自己的交易事务和数据,使得各群组之间解除耦合独立运作,可以达成更好的隐私隔离;
- 机构的节点只需部署一次,通过群组设置即可参与到不同的多方协作业务中,或将一个业务按用户、时间等维度分到各群组,群组架构可快速地平行扩展,在扩大了业务规模同时,极大简化了运维复杂度,降低管理成本。
支持分布式存储
FISCO BCOS 2.0新增了对分布式数据存储的支持,节点可将数据存储在远端分布式系统中,克服了本地化数据存储的诸多限制。该方案有以下优点:
- 支持多种存储引擎,选用高可用的分布式存储系统,可以支持数据简便快速地扩容;
- 将计算和数据隔离,节点故障不会导致数据异常;
- 数据在远端存储,数据可以在更安全的隔离区存储,这在很多场景中非常有意义;
- 分布式存储不仅支持Key-Value形式,还支持SQL方式,使得业务开发更为简便;
- 世界状态的存储从原来的MPT存储结构转为分布式存储,避免了世界状态急剧膨胀导致性能下降的问题;
- 优化了数据存储的结构,更节约存储空间。
并行计算模型
过去将交易打包成一个区块,在一个区块中交易顺序串行执行的做法,在FISCO BCOS 2.0中,会通过一套并行交易处理模型实现自定义交易互斥变量。 区块执行过程中,系统将会根据交易互斥变量自动构建交易依赖关系图——DAG,基于DAG并行执行交易,最好情况下性能可提升数倍(取决于CPU核数)。
预编译合约
FISCO BCOS 2.0提供预编译合约框架,支持采用C++编写合约,其优势是合约调用响应更快,运行速度更高,消耗资源更少,更易于并行计算,极大提升整个系统的效率。FISCO BCOS内置了多个系统级的合约,提供准入控制、权限管理、系统配置、CRUD式的数据存取等功能,这些功能天然集成在底层平台里,无需手动部署。
FISCO BCOS提供标准化接口和示例,帮助用户进行二次开发,便于用户编写高性能的业务合约,并方便地部署到FISCO BCOS里运行。预编译合约框架兼容EVM引擎,形成了“双引擎”架构,熟悉EVM引擎的用户可以选择将Solidity合约和预编译合约结合,在满足业务逻辑的同时获得巨大的效率提升。
CRUD合约
FISCO BCOS 2.0新增符合CRUD接口的合约接口规范,简化了将主流的面向SQL设计的商业应用迁移到区块链上的成本。其好处显而易见:
- 与传统业务开发模式类似,降低了合约开发学习成本;
- 合约只需关心核心逻辑,存储与计算分离,方便合约升级;
- CRUD底层逻辑基于预编译合约实现,数据存储采用分布式存储,效率更高。
控制台
FISCO BCOS 2.0新增控制台,作为FISCO BCOS 2.0的交互式客户端工具。控制台安装简单便捷,简单配置后即可和链节点进行通信,拥有丰富的命令和良好的交互体验,用户可以通过控制台查询区块链状态、读取和修改配置、管理区块链节点、部署并调用合约。控制台给用户管理、开发、运维区块链带来了巨大的便利,降低了操作繁琐性和使用门槛。
虚拟机
FISCO BCOS 2.0引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩展不同虚拟机引擎。底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。
其他特性
除上述所列之外,FISCO BCOS 2.0持续在网络传输模型、计算存储流程等方面进行优化,对性能提升提供巨大帮助。在架构方面,从存储、网络、计算三个角度,围绕高可用性和高易用性进行持续升级,并基于模块化、分层、可插拔等设计原则,持续对核心模块进行重塑升级,保证系统健壮性。
FISCO BCOS的下一步
FISCO BCOS未来将持续优化系统架构,提升平台性能,增强用户体验:
- 架构方面,将会实现群组架构实现动态管理,实现跨群组通信协议,分离网络、存储、计算服务,实现微服务化的可扩展架构;
- 性能方面,将持续进行并行化、流水线化的升级处理,重点解决存储、签名验签等方面的瓶颈,引入硬件加速等方式进行提速;
- 用户体验方面,将实现简便的群组管理、数据管理、密钥管理等功能,提供平台化的区块链管理方案;
- 安全和隐私保护方面,将会提供增强型虚拟机、MPC套件等功能,以支持各种复杂的商业落地场景。
链接
代码github仓库:https://github.com/FISCO-BCOS/FISCO-BCOS
文档链接:https://fisco-bcos-documentation.readthedocs.io/zh_CN/release-2.0/
贡献方式:https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/docs/CONTRIBUTING_CN.m
FISCO BCOS 2.0发布:新增群组架构克服吞吐瓶颈相关推荐
- FISCO BCOS 2.0 发布:新增群组架构克服吞吐瓶颈
开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> 3月20日,FISCO BCOS开源社区正式对外发布FISCO BCOS的2.0版,该版本在可扩展性.性能.易用性 ...
- FISCO BCOS 2.0原理解析: 分布式存储架构设计
FISCO BCOS 2.0新增对分布式数据存储的支持,克服了本地化数据存储的诸多限制. 在FISCO BCOS 1.0中,节点采用MPT数据结构,通过LevelDB将数据存储于本地,这种模式受限于本 ...
- 开源进展 | WeBASE v3.0发布,支持适配FISCO BCOS v3.0稳定版
WeBASE(WeBank Blockchain Application Software Extension) 是在区块链应用和FISCO BCOS底层之间搭建的一套通用组件,围绕交易.合约.密钥管 ...
- 公告 | 联盟链FISCO BCOS v2.0.0-rc3 发布
FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造.开源工作组成员包括博彦科技.华为.深证通.神州数码.四方精创.腾讯.微众银行. ...
- 公告 | FISCO BCOS v3.0-rc4发布,新增Max版,可支撑海量交易上链
作为一个稳定.高效.安全的区块链底层平台,FISCO BCOS一方面致力于保障系统稳定性.兼容性.鲁棒性.易用性,另一方面专注于提升区块链底层平台的性能.可扩展性. 自FISCO BCOS v3.0开 ...
- 支撑区块链大规模商用,FISCO BCOS v3.0的那些“黑科技”
文章转载自CSDN公众号 在2021年度金链盟生态大会上,全新的FISCO BCOS v3.0正式发布.该版本从架构.算法以及安全可控和隐私计算协同等方向进行了全面升级,满足数字经济时代对区块链系统可 ...
- Meetup回顾 | FISCO BCOS v3.0 常见问题解答
近期,社区组织了专场线上Meetup,分享了v3.0在2022年的研发路线及开发部署方式.直播间讨论十分热烈,我们把一些开发者们比较关心的问题进行了梳理,整理成这一篇关于v3.0的常见问题和解答,供大 ...
- 萤石云好友分享的监控怎么看_助力开学季丨萤石云APP新增群组分享功能、扩容优惠套餐!...
开学季 萤石云新功能上线 又是一年忙碌充实的开学季,小小少年们又回到了学校,萤石幼儿园校长却多了份幸福的烦恼:宝爸宝妈们都想看自家孩子的上课录像,可每次只能跨过班主任直接向校长申请:小班的同学座位升到 ...
- NCC CAP 6.0 发布 —— 新增支持 OpenTelemetry
前言 今天,我们很高兴宣布 CAP 发布 6.0 版本正式版,在这个版本中,我们主要致力于对 OpenTelemetry 提供支持,以及更好的适配 .NET 6. 那么,接下来我们具体看一下吧. 总览 ...
最新文章
- CentOS源码安装GitLab汉化版第3版
- 这个 MySQL bug 让我大开眼界
- PHP怎么修改链接,phpcms导航链接怎么修改
- tab菜单的点击的动态效果和内容页面的关联显示jQuery
- webservice xml java_java访问WebService接口返回xml
- 常用计算机二级函数,计算机二级MS office常用函数
- linux make
- maven学习二(dependencies)
- 局域网桌面监控软件_如何促进局域网监控软件在企业中的普及
- MSP430学习笔记1——msp430概述
- InputBox函数用法小结
- Windows 10家庭版也能共享打印机(中)解除Guest账户网络登录限制,实现局域网共享
- 详解后端工程师必看学习路线图(含初、中、高阶)
- Mybatis-Plus如何使用
- vertica MySQL_Vertica数据库 安装 | 学步园
- 新年快乐——我的星星
- 大数据Apache Druid(四):使用Imply进行Druid集群搭建
- 北风网课程开放下载第一季
- CSS3新特性——新增选择器,2D/3D转换,动画
- APP下载二维码微信扫一扫无法打开解决方案
热门文章
- Shell遍历hadoop目录的批量操作
- 我为什么重新开始学习数学?
- .net core发布 正在发现数据上下文_使用EF Core实现数据库读写分离
- hive相对于oracle的优点,【Hive】Hive面试题
- css 识别变量中的换行符_Python编程 第二章——变量和简单数据类型
- 怎么向easyui grid里面插入空数据_浅谈数据结算(三)
- c语言入口及出口参数说明,麻烦帮忙指出一下这个函数的入口参数和出口参数呀!...
- linux安装virtualbox命令,在Linux中从命令行查找Virtualbox Version的方法
- python输出日志文件_python将print输出的信息保留到日志文件中
- php global global,PHP中global全局变量的作用范围