技术问题或决定进行自己的ICO时应考虑的问题

我们积极推动的对Polybius ICO的积极兴趣取得了巨大的成功-这次几乎是从字面上看。 在销售开始后的第一分钟内,就有14,000名来购买我们代币的人们的注意力震惊了,Polybius网站崩溃了。 那仅仅是开始。 如所承诺的,我们告诉5月31日发生了什么,我们可以做些更好的事情来避免发生什么。

图片

当然,在ICO刚开始时,我们已经准备好应对DDoS攻击和服务器上的高负载,但是,我们承认,我们只是低估了恶意黑客的能力和对该项目的兴趣程度以及紧急情况的可能性。

Polybius ICO的技术平台(投资者的办公室,所有基础设施)由Ambisafe提供。 从开发区块链产品开始,随着时间的流逝,该公司将其兴趣扩展到为公司提供进行ICO所需的一系列服务和工具。 选择经验丰富的承包商,我们完全依靠他们的知识和技能,而不是再次控制我们可以(也应该!)控制的那些事情。 那是我们的第一个错误。

铁太弱


如果您不希望网站在销售开始时崩溃,则良好的服务器性能至关重要。 承包商预测了ICO最初几个小时可能对服务器造成的负载,承包商向我们提供了有关其容量的要求,但即使如此,我们仍然建议这些指标可能不足,从而使性能提高了一倍。 为了在服务器之间分担负载,我们还在用户办公室和Polybius站点本身位于不同的位置,但是我们没有分离数据库和主机柜文件。 那是第二个错误。

每当有太多请求到达投资者办公室时,数据库就会遭受损失(反之亦然),并且服务器崩溃了,周期性地变得不可用。 当问题变得明显时,与原始特性相比,我们将服务器容量增加了近10倍。 但是,需要花费一些时间来重新配置机柜并将所有文件重新上传到新服务器。

Polybius ICO诞生之初的兴奋是如此强烈,以至于polybius.io网站上的倒数计数器达到零时,成群的用户争相购买代币,而我们的一些用户甚至设法做出了错误的开始。 真正用户的炒作并不是一个大问题。 问题是机器人越来越关注Polybius ICO-DDoS攻击开始了。 在大约6个小时内,ddosers向投资者的个人帐户发出了大约3000万个请求,这些请求被淹死了。 最初的几个小时难以抵御恶意流量,这使情况更加恶化-并非总是很清楚,这是一个真正的人坐在那里,按下“刷新”以希望看到自己的个人帐户,或者它是做同样事情的机器人。

由于一开始就有很多人想参加,所以他们通过DDoS不断地进入站点,并在站点变得更容易时继续购买令牌。 结果,该系统积累了大量未按时完成并滞留在其中的交易。 在这里,我们正在顺利地解决另一个问题,由于明显的原因,这使众筹参与者最为担忧。

网络拥塞


由于进行交易的系统庞大且包含多个模块,因此每个操作都必须经过一条清晰的路线。 由于在系统的某些位置发生了DDoS攻击,因此模块开始变慢,因此,在过滤掉恶意流量的同时,我们不得不手动清理滞留在系统中的事务。 但是即使在进行卡住的操作之后,由于以太坊网络发生阻塞,我们仍不能确保及时收到购买的代币。 这是一种紧急情况,引发了恐慌和一连串的评论,例如“ 我的钱被撤出,但代币不被收取。 现在已经是半小时/小时/ 5小时了。。。 “现在,代币早已被所有受影响的投资者获得,我们只需要为出现的情况再次道歉并解释造成这种情况的原因。

在Polybius ICO发行时,在以太坊网络区块链上举行了另一个大型ICO(BAT- BasicAttentionToken ),投资者之间的竞争导致网络拥塞。 为了了解我们对以太坊不太了解的读者,该网络的运作方式是向其发送交易,您需要支付佣金。 佣金越高,交易进入网络的速度就越快。 在第二次ICO的背景下,参与者开始建立巨大的佣金,以成本和确认时间比例最佳的Polybius交易不再得到确认,并在以太坊网络中排队,这次停留在我们系统和区块链

为了在以太坊中不执行单个交易而是执行一捆交易,就像我们这种情况一样,必须通过为每个交易分配一个(有条件的)序列号来使它们排队。 序列号必须以绝对增量进行-即,每个后续事务必须具有比前一个更大的数字。 这意味着在处理前九个交易之前,我们无法将交易号10发送到网络。 为了不给网络带来更大的负担,并且不增加卡住的交易数量,我们被迫增加所有新订单的佣金-在正常模式下和更可接受的时间范围内开始确认新交易。 最初的交易(我们谈论的是大量订单-超过一千个)必须“保持原样”,因此在第一批投资者获得代币之前已经过去了几天。

这是系统的异常行为,也是承包商必须首次解决的情况,因此很难判断是否选择了最佳策略,或者我们可以做更多。

我们学到了什么


最重要的(如果不是唯一的)理解是,当问题已经出现时,您所能做的就是尽快解决问题。 我们要做的第一件事是增加服务器的特性,采用更强大的硬件,将数据库分布到不同的服务器,设置防火墙,并过滤掉DDoS攻击。 所有这些过程大约花费了一天的时间。 在安排通过以太坊进行交易的过程上花费了额外的时间。

既然我们已经拥有ICO的经验,我们可以放心地说,在此问题上过分审慎是不可能的。 最好再保证安全,因此,如果您突然决定进行自己的ICO,请立即考虑以下事项:

  • 前几个小时的负载可能超出规模,甚至超出了最疯狂的期望;
  • 如果您的项目是众所周知的,则可以确保ddosers的注意,因此请注意防止可能的攻击;
  • 如果又有10个ICO与您同时进行,那么最好花点时间考虑事先选择哪种策略-是等待几天以使交易以一种或另一种方式进行,还是要投入额外的资源并通过网络强制执行订单;
  • 值得更多关注的是及时将发生的问题告知投资者-这无疑将有助于减少相同的技术支持请求数量,并释放其用于解决其他紧迫问题的资源。

而且,最重要的是,您将永远无法预见所有可能的问题,因此请做好应对任何意外的准备。 您可以花费大量时间来计算由于疏忽而犯下的错误,但是它们可以从错误中吸取教训,我们很高兴它们并未成为成功完成广告系列的严重障碍。

Source: https://habr.com/ru/post/zh-CN405485/


All Articles