BCH一路走来坎坷不断。在BCH的发展的历程中,经常有攻击者想要对BCH发动攻击,想要将BCH置于死地。就连此次的网络升级都被有心人钻了空子。攻击者在BCH上发了一堆特殊交易,导致矿池挖新块时失败。不过,BCH拥有强大的10确认不回滚机制以及足够的算力保护,使得BCH在很快的时间内恢复正常,顺利完成升级,并没有对BCH网络造成大的影响。

  对于BCH来说,其实还有一种看似友好实则是攻击的行为——压力测试。

  提到压力测试,BCH社区中很多成员对此并不陌生。在去年的9月1日,BCH网络曾经进行过一次声势浩大的压力测试。在那次测试中,BCH在24小时内确认200万笔交易,最大区块达21.3MB。虽然最终结果是好的,展现了BCH超强的交易处理能力以及面对大量交易时的超低交易费用。不过,压力测试也并非是一种良药,反而会对BCH网络带来很多威胁。

  在去年,还曾有一个名为BitPico的臭名昭著的机构声称要对BCH发动攻击,选择的方式就是压力测试。虽然最终不了了之,但是这也说明压力测试是一种攻击方式。

  压力测试有哪些影响?

  01

  压力测试是一种DDOS攻击

  

  Bitcoin ABC的首席开发者Amaury Sechet在reddit上回复关于压力测试的帖子时曾提到:“在主网上运行时,压力测试被称为DDOS攻击”。他还进一步解释道:“当您在系统上生成活动只是为了增加工作负载时,这是一种DDoS攻击。如果系统在该工作负载下失败,则攻击成功。”。

  

  另外一个开发者也说道:“"压力测试" 是 DDoS 攻击。它降低了对开发者的信心,并展现出缺乏专业精神。让我们投资基础设施 & 在测试网上进行适当的测试。让我们向世界展示BCH不是一个业余项目, 而是一个严肃的软件开发工作”。

  所谓压力测试,即在网络上发送大量粉尘交易,这些交易没有实际上的作用,只是一种简单的测试而已。虽然我们所看到的每一笔交易都是正常的交易,包含正常的手续费,但是从本质上而言,它依旧属于一种DDOS攻击。

  何为DDOS攻击?DDOS攻击指的是分布式拒绝服务攻击,指以分散攻击源来黑进指定网站的黑客方式。DDOS的攻击方式有很多种,最基本的DOS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。DDOS攻击手段是在传统的DOS攻击基础之上产生的一类攻击方式,主要分为两种流量攻击和资源耗尽攻击。

  BCH社区想要进行的压力测试可能出发点是好的,是为了测试BCH网络的性能,从而帮助更好的升级和扩容,但是这些无意义的小额交易疯狂涌入BCH网络,一旦超过BCH网络的交易处理能力,对BCH造成的伤害却是和DDOS攻击是类似的。这些无意义的交易将会占用过多的服务资源,从而让合法的交易无法得到服务的响应。

  在去年的压力测试中,就出现了BCH交易确认延迟的问题。虽然BCH区块容量较大,造成拥堵的难度非常大,需要天量的交易量,但是当大量的粉尘交易涌入BCH网络中时,也会让交易时长增加一点点。这也对BCH网络上的正常交易造成了一定的影响。

  02

  压力测试影响BCH网络上应用程序的运行

  BCH是一个功能多样的加密货币,它不仅仅是一种可以用于交易的货币,还是一个可以构建去中心化应用程序的网络平台。矿工不是这个网络唯一的参与者。很多区块浏览器和钱包等都是运行的完整节点。

  目前BCH网络的区块上限暂时设定为32MB,面对压力测试中的巨量交易,即使矿工的硬件和网络可以轻松应对,但是其他基础设施和应用是否都可以持续处理32MB的大区块,暂时还是未知数。这对于BCH网络中的应用程序带来了一些不确定的风险。

  03

  压力测试增加了开发者的负担

  当压力测试进行时,如果压力测试的交易数量过多,超过目前区块所能容纳的交易数量,不仅会导致交易的费用随之上升,交易确认时间增加,影响正常的合法交易,还会增加BCH网络的运行负荷,增加区块索引所需的时间。这种情况下,就会消耗更多的资源,甚至一些需要索引区块的服务很有可能会停止工作。

  这将增加很多新服务开发人员的负担。将这些没有意义的垃圾交易发送到主网上并不会使代码变得更快或更有效,反而还会造成一些阻碍。

  04

  在主网上进行的压力测试是没有意义的

  如果说压力测试可以测试BCH面临大量交易时的表现情况,从而帮助BCH更好的升级。其实这完全可以在testnet(测试网)上进行。BCH测试网存在的意义就是为了测试。在主网上进行压力测试几乎没有提供有用的数据。在压力测试中所发生的事情就是网络可以处理一两个大区块或者一些中等大小的区块。而我们早就知道BCH网络可以做到这一点。

  关于这一点,Bitcoin ABC的首席开发者Amaury Sechet说道:“如果你不是在测试网上进行测试,那就不属于测试。Testnet在所有方面都类似于Mainnet。事实上,这是一种更好的测试方法,因为任何人都可以在任何时间运行疯狂的实验。如果你的东西能在testnet上运行,那就可以在mainnet上运行。当你在主网上进行压力测试时,这只是在为所有的合法交易制造麻烦。“

  对于开发者来说,不管是升级还是应用程序的开发,都可以在测试网上进行测试,记录数据从而进行改进和优化,这将有助于开发者更快更高效的编写代码。与此同时,也不会影响BCH主网的正常运行。

  05

  压力测试为BCH带来不好的舆论影响

  当BCH链上交易增加,大家更希望看到这些交易量的增加是真实的交易。不管是来自商家,还是来自应用程序,这些交易都是有效的交易,是BCH生态发展的证明。

  经常性的压力测试很容易给大家带来一种错觉:BCH网络上增加的交易量都是刷出来的。这将会打击BCH社区的积极性,也会让外界对BCH造成误解。

  如果真的想在主网上进行压力测试,不妨在BSV链上进行,毕竟这是BSV支持者一直在做的事情。BSV诞生以来,为了能够在主网上打出大区块,已经进行过3次努力。在第三次时,有BSV粉丝开发出了专门构建压力测试的工具,很多热情的BSV粉丝纷纷自掏腰包往链上发布大量交易。一个上百M的块里面包含了几十万笔交易。BSV之所以是压力测试的最佳链,不仅仅是社区支持,还因为只有矿工运行完整节点,BSV链上实际交易量少,一旦BSV链在压力测试中出现问题,还可以进行重组。这种方式不会对BSV链造成非常大的影响,还能满足用户的这一需求。

压力测试对于BCH真的有意义吗?相关推荐

  1. 双喜临门,压力测试、曼谷会议,BCH成绩斐然

    2018年9月1日,BCH如期迎来了压力测试,使得链上24小时处理超过210万笔交易,超过了Ripple和以太坊网络的24小时交易记录,占所有加密货币交易的64.7%,荣登榜首.同时,矿工也有史以来第 ...

  2. BCH压力测试取得圆满成功,最大区块达21.3MB

    比特币现金24小时压力测试已经在北京时间2018年9月2日20:00落下帷幕.在这24小时的压力测试中比特币现金网络经受住了重重考验,取得了圆满的成功.虽然这只是一次压力测试,但是很多数据已经足以说明 ...

  3. 别忘了,明天是BCH的压力测试日

    如果明天你看到比特币现金的交易量突增,看到矿池打包的区块大小超过平时而且都是大区块,请不要惊讶,也不要以为这是攻击,这只是BCH的压力测试而已.说了一两个月的压力测试终于要来了. BCH支持者们已经为 ...

  4. 比特币现金压力测试超越了24小时创造新纪录

    9月1日,比特币的支持者发起了一场由社区主导的压力测试,他们在一天内发送了数百万笔交易.事实上,协议的采访者在24小时内处理了220万个事务,全天处理了大量的数据块.但是压力测试的乐趣并没有结束,因为 ...

  5. 压力测试时软件崩溃怎么办,完善压力测试 避免系统崩溃恶果

    压力测试对系统的重要作用 我们对应用程序进行压力测试时经常会出现这种情况,就是测试到了最后却发现不明白测试结果有什么意义?实际上,当我们都不明白压力测试的意义时,我们就不能设计出各种极限测试用例. 压 ...

  6. BCH压力测试最终统计

    ​​从2018-09-01 12:00:00 UTC 到 2018-09-02 20:29:41 UTC. 区块高度为[#545964, #546104], 总计141个区块,根据BTC.com的区块 ...

  7. 压力测试后,BCH采用增加

    AD 压力测试后,BCH采用增加 2018-09-06 14:05 6084 近日,比特币现金的压力测试引起了很多人的关注.通过此次压力测试,让所有的人见证了比特币现金的出众交易处理能力.虽然压力测试 ...

  8. BCH压力测试悄然开始?有优势但也有不足!

    从7月31号开始,BCH的链上交易量开始猛增,交易量从31号的2万笔交易增加到8月1号的69万笔,不出意外的话,这应该是BCH社区的一次压力测试.但奇怪的,BCH的压力测试团队却否认了这次测试,所以不 ...

  9. “BCH压力测试日”准备工作开启,将允许任何人参与测试

    一个运营名为"BCH压力测试日"网站的团队计划让BCH网络在一天内一次性处理数百万笔最低费用交易.本周,Spendbch.io在开源项目Bitbox的帮助下,成功开发出一个工具,允 ...

最新文章

  1. 转:45 Useful JavaScript Tips, Tricks and Best Practices
  2. IJCAI 2018所有奖项出炉:AlphaGo获奖,中国人论文占46%,华人一作近2/3
  3. Excel多因素可重复方差分析
  4. selenium:反反爬拖动验证码
  5. 机器学习:SVM代码实现,朴素实现基础上的优化
  6. oracle服务器重启后监听启动
  7. 中国人工智能产业发展联盟成立 360任副理事长单位
  8. 来一个可能防止恶意采集和爬虫的SH
  9. java用map集合实现随机抽奖源码
  10. java println 数组_java 数组输出
  11. prompt set feedback set define的详解
  12. matlab向量相减代码,matlab转c++代码实现(主要包含C++ std::vector,std::pair学习,包含数组与常数相乘,数组相加减,将数组拉成一维向量等内容)...
  13. python复制文件夹不阻塞_Python线程,线程不阻塞
  14. 有哪些方法下载外文文献?
  15. 惯性导航解算程序C++实现
  16. 电信网关改造无线打印服务器,电信天翼网关路由改桥接流程
  17. java redis锁_Java中Redis锁的实现
  18. 腾讯视频下载的qlv格式转换为MP4格式
  19. jetson连接PCF8591读取模拟电压值
  20. Java版本和JDK版本

热门文章

  1. evnetlet hub
  2. Mac安装MySql 5.7.11
  3. [9-1]磁盘基本知识、分区基本概念
  4. 第十三周项目4-数组的排序:冒泡排序
  5. 算法导论 6.2-5
  6. DotNetNuke与MemberShip的结合(五年版)第三步修改HttpModule.DNNMembership
  7. 祝贺黑龙江馆正式入驻波特城暨龙商龙企龙品走向全球化启动仪式圆满成功
  8. 步步为营UML建模系列二、部署图(Deployment Diagram)
  9. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十七:TFT模块 - 显示
  10. 设计模式系列-建造者模式