区块链平台性能问题

该平台的性能瓶颈在哪里,如达到性能瓶颈,有何措施保证业务正常运行。

参与11

1同行回答

leizh1984leizh1984  系统架构师 , IBM
性能问题确实是企业区块链必须关注的内容,如果企业区块链应用像比特币一样需要1个小时确认交易,那一定是满足不了要求的。区块链的性能可以从区块链技术特点和架构特点两个层面来分析,下面以超级账本的架构为例子来说明:1. 技术特点:区块链应用的一个完整的调用周期大概是下面...显示全部

性能问题确实是企业区块链必须关注的内容,如果企业区块链应用像比特币一样需要1个小时确认交易,那一定是满足不了要求的。区块链的性能可以从区块链技术特点和架构特点两个层面来分析,下面以超级账本的架构为例子来说明:

1. 技术特点:区块链应用的一个完整的调用周期大概是下面几个步骤,可以参考下图: 客户端发起调用,CA发布交易证书(加解密),验证节点进行共识(共识算法),智能合约执行(gRPC调用),数据写入账本;在这个过程当中,可能影响性能的点分别是加解密,共识算法和智能合约的执行。

2017-02-10_111253.png

加解密:主要手段是靠哈希算法和椭圆加密算法(ECC);如果在Fabric里面打开安全开关,即对所有的交易数据都进行加密,这会直接降低50%的TPS;但安全问题又是区块链的核心,因此安全开关必须打开

共识算法:为了避免分叉,共识算法需要串行执行,这就直接影响了共识的效率,也就是说不论整机有多牛,在共识的时候只能使用一个CPU来执行,单CPU处理能力决定了共识算法的效率

智能合约执行:智能合约通过gRPC调用同docker容器进行交互执行,同时需要注意的是智能合约需要在每个验证节点分别执行,有几个节点需要执行几次,最后再由共识算法达成一致写入账本,节点数越多,效率越差,这是架构上有别于类似Hadoop分布式计算的地方

2. 架构特点:从系统架构的特点来说,区块链是去中心化p2p应用,在大规模网络中,传输效率一定会成为瓶颈;可以想象比特币目前接近100GB的数据量,每次同步都需要消耗大量的资源;另外一点就是上面谈智能合约时谈到的,智能合约的每次调用都需要执行多次,整个区块链网络的性能瓶颈会出现在性能最差的那个节点上。

在谈了可能影响区块链性能的因素之后,我们可以来分析下如何能提高区块链的效率,避免出现性能瓶颈,下面是一些建议:

1. 做好规划:区块链的架构特点决定了区块链的应用不能单纯依靠传统分布式应用提高性能的方法,即增加节点数来实现;互联网应用的一大特点就是把海量的任务分散给成千上万个节点来处理,最终再汇总;当性能不够的时候,可以通过增加节点数辆的办法来实现;而区块链应用在节点数增加之后性能是下降的,因此在一开始做好规划是很重要的;对验证节点这类核心节点,不仅要选用性能和稳定性都好的高端服务器,同时也要尽量保证网络当中的节点性能差距不要过大,不然性能差的节点会成为木桶原理中的短板,影响整个系统的性能;

2. 软硬结合:区块链平台技术是在不断的演化中,这中间必然会产生大量的优化,从安全性,健壮性和效率上,都会有提升;但和比特币类似,比特币挖矿是需要特殊的矿机的,因为PoW算法的特殊性,通用芯片的处理速度是远远赶不上专有的矿机芯片的;不论区块链平台的软件架构和算法有多好,更快的机器一定能更快的处理,这有点类似用600块的安卓机和在6000块的水果机抢微信红包,相信经历过的鞋童一定深有感触 :)

3. 平台调优:从区块链的技术特点出发,我们可以采用下面的方法来提高超级账本平台的运行效率;首先推荐使用pbft batch模式而不是Single模式,因为共识是串行执行,那么一次性处理多个请求显然要比每个请求都做一次共识要来的快,batch size目前建议是100;建议优化智能合约的运行环境,目前智能合约主要是在Go语言的运行环境执行,适当提高GOGC大小;如果小伙伴的CPU支持SIMD指令集的话,不妨尝试用SIMD指令集实现椭圆加密算法的部分实现,实测可以最高提升30倍的算法性能;另外如果安全开关打开的话,建议采用证书批量发放的模式设置Tcert Batch Size,提高CA节点的证书方法效率。在实际测试场景中,CA节点的压力是验证节点的2-3倍,建议CA节点多分配资源。

收起
IT分销/经销 · 2017-02-10
浏览2740
  • 关于区块链本身的性能问题,IBM专家解释得很仔细了。补充一下,在出现瓶颈时如何保证业务运行,提供一个思路:异步处理。在一个具体应用中,区块链只是其底层技术的一部分,在业务流程中梳理出关键业务路径,如果区块链所负责的不是那么关键的业务节点,可考虑异步处理。比如微信红包的“拆”和“入账”是可以进行服务降级进行异步处理的。
    2017-02-10

提问者

wangzhanmin
项目经理北京宇信科技集团股份有限公司

问题来自

相关问题

相关资料

问题状态

  • 发布时间:2017-02-08
  • 关注会员:3 人
  • 问题浏览:5294
  • 最近回答:2017-02-10
  • X社区推广