SKALE网络最近几周有一个激励测试网在运行。5月20日,SKALE网络的核心开发商SKALE Labs与几个初始网络验证者共同启动了该测试网,其初始版本还将继续运行几周。

该测试网的一些初始目标是通过实际的SKALE网络验证者来(a)测试和验证验证者节点的设置,以及(b)确认验证者和委托者操作的正确性。在SKALE网络主网发布前,许多主要初始验证者还可以通过测试网来熟悉网络的独特功能。

值得注意的是,这项测试其实是对网络其他形式严格测试的补充。网络的所有版本都要在一个大型验证者池中进行集中QA测试。此外,SKALE网络的智能合约已经成功通过了两次安全审核 - 每一次都由独立资深审计公司完成。该测试网的目的是为了增加其它操作测试级别,并且在真实情况下运行验证者登入流程,以及让验证者熟悉网络内部工作原理。

测试阶段

测试包含几个阶段。其过程是通过一系列步骤将验证者编成一个组,然后让验证者以不同角色来测试多方交易。例如,一个验证者可以充当验证者,而另一个则扮演委托者,这样不仅可以测试验证者/委托者的操作,还可以从委托者的角度来审视操作流程。

该测试网初始版本具体阶段有:

  • 验证者节点设置
  • 委托操作
  • 奖励支出
  • SKALE链创建和节点轮换
  • 测试备份/恢复

应该注意的是,测试的前几个阶段标记为Hike(徒步)到Kilimanjaro(乞力马扎罗山)。也就是说初始设置和操作是为更复杂的测试步骤和阶段做准备的。后期阶段将采用更为复杂的操作,并会引入随机性和意外行为元素(利用混沌工程各个方面确保对网络承受湍流条件能力的信心)。

除了具体操作外,为了确定性能问题,隔离网络内任何导致停机的原因或发现任何代币支付异常,我们还详细分析了各个阶段的一些数据点。这些数据点包括以下测量值:

  • SKALE Manager接收数据的延迟直方图
  • SKALE Manager收到的停机时间直方图
  • 支付给验证者奖金的时间序列

测试参与者

二十个验证者参与了这个测试网版本,他们包括经验丰富的网络操作团队、加密矿工和ETH开发人员。

在设置阶段,我们很快就发现这组验证者都很专业。他们接触过许多领域,在复杂的基础设施设置、编排以及以太坊和EVM方面有着多年的经验。设置过程中收到的反馈帮助我们进一步完善了验证者登入过程,同时也帮助我们进一步加强了系统的安全性。

验证者的所有意见建议和体验上的变化都很快地被网络团队列为测试网研究项目加以考虑,以便能够尽可能地顺利完成节点端到端的设置。(SKALE网络的总体目标是成为一个完全去中心化网络,因此尽可能地将节点设置为总控钥匙是这一流程的关键步骤。)

虽然有些节点操作人员认为验证者需要通过运行设置障碍来获得参与资格,这几乎是一个通过惯例,但SKALE核心工程和解决方案工程团队的观点不一样,他们正在努力寻求一种简单的设置过程,所需时间不会超过2小时。(值得注意的是,对于大多数在设置阶段的验证者而言,这个门槛基本上是在改进之前就能达到的。)

SGX钱包和基于ABBA共识层的测试

节点设置步骤之后是验证者和节点注册。验证者都能够熟悉这些操作,因为几乎所有验证者都有其他方面的挖矿或验证操作经验。当然这确实需要一些时间,因为测试的内容涉及的是SKALE网络特有的领域。

其中一些领域涉及了SGX钱包和SKALE EVM中使用的基于ABBA的共识层。SGX钱包可帮助验证者和开发者保护敏感数据,减少其连续确认交易的次数,而且还可以作为SKALE加密操作的网关使用,例如,BLS签名和数字密钥生成。基于ABBA的共识层是一个安全但又不太准确的共识流程,它可以帮助提高交易吞吐量,缩短提交延迟时间。

Intel SGX

SKALE网络通过基于Intel SGX的芯片组来加强安全性,完善数据保护和加快数字密钥生成。Intel SGX(软件保护扩展指令)可以帮助开发人员将敏感信息划分成多个封闭区域,这些封闭区域是内存中具有更高安全保护功能的执行区域。使用基于Intel SGX的服务器的另一个优势是可以与在SKALE网络中占有重要地位的BLS(Boneh–Lynn– Shacham)加密技术一同使用。SKALE网络验证者常见问题解答包含更多关于Intel SGX、BLS签名以及其在SKALE网络中扮演角色的详细信息。

基于ABBA的共识

在SKALE网络共识模型中使用了异步二进制拜占庭共识(ABBA)协议的变体。ABBA协议的基本优点是子节点出错时不会影响到运行,其中每个潜在的和/或出错的子节点会被视为一个慢链路。基于ABBA的共识层取代了EVM(以太坊虚拟机)中的默认共识模型,该模型作为容器包含在每个节点中。EVM在管理和维护每个SKALE链的虚拟化子节点中完成实例化。(关于基于ABBA协议的详细信息,参阅这里。关于容器化和虚拟化的详细信息,请参阅容器化和去中心化基础设施的未来。)

有些验证者有使用SGX的经验,其他验证者则需要了解它的设置和可用性。我们在与与团队合作经验的基础上改进了一些功能(SGX钱包备份就是其中之一),并更加明确了本地SGX和网络SGX之间的区别(节点群集可以在原有的SGX服务器上运行,也可以使用联网的SGX服务器完成数字密钥生成和其他依赖于SGX的操作)。

在这个过程中,我们也收到了许多关于云提供商和硬件设置的反馈。有些验证者使用自己的专用SGX服务器,其他验证者则试用了各种云提供商产品,并且分析了设置和性能。有些云提供商产品很容易操作,而有些则需要通过其它方式来获得正确配置。总之,我们对验证者在保护节点和利用基于SGX的芯片组方面印象比较深刻。

验证者委托和奖金支付测试

还有一个重要的测试区域,它涉及到的是所有验证者和/或委托者的交易流。委托支持是SKALE网络中的一项关键因素。如果SKALE代币协议支持增强的委托操作,那么在这个区域中验证者通过重要测试就会变得非常重要。SGX钱包在完善SKALE网络交易方面发挥着特别重要的作用,因为验证者使用验证者钱包接收奖金和管理委托操作。奖金需要支付给验证者,反过来就会触发对(验证者充当)委托人的付款。奖金和费用的提取也是测试阶段的一部分。

操作总结

激励测试网任何初始阶段未遇到重大问题。其中的一个节点确实遇到了这种情况:它们从一个容器发出了太多的以太坊调用,导致该节点超出了每日交易限制。这个问题已查明并得到了解决。

还有一个问题与SKALE监控程序中的代码和SGX签名生成接口有关,其中某些条件影响了性能。我们的团队可以识别修复相关算法,所以能解决并杜绝性能问题。我们还修复了数字密钥生成和BLS公钥签名的一些其它加密问题,并已将所有更改结果添加到了SKALE主网中。

所有其它问题都集中在了文档、请求的功能和硬件配置上。有些验证者在某些设置问题上陷入了困境,因为指令不准确地假设了关于缺失信息某些主题方面的内容。其他验证者请求某些CLI命令使节点设置和操作显得更加完美。还有一些验证者则完成其云产品操作或裸机设置时发现了硬件配置方面的问题。几乎所有这些请求都已或将在短时间内得到解决(可能不在网络控制范围内的配置问题除外)。

下一步计划

这个版本的测试网还有几个测试阶段需要完成,也就是说将会创建SKALE链并随机分配子节点。子节点轮换将与区块分析和验证一同通过各交换点完成。另外还会引入意外条件,这样验证者就可以对节点恢复、共识中断和继续(交易吞吐量不下降)以及其它与SKALE链相关的操作进行测试。

节点出错时的节点更换操作也将进行测试。一个节点或子节点出错时,没有技术支持会说“来处理这个节点吧。”实际上每个节点都会在特定的时间点完成快速拍照。如果一个节点/子节点发生错误,那么新的子节点将会被替换到链中并完成快速拍照,这样新的子节点就会跟上链路(允许SKALE链完成自我修复)运行。这种自我修复能力已经在QA测试网上通过了大量测试,它是集成到SKALE网络主代码库中的最后一个组件。这个节点替换能力的测试会包含在测试网下一个阶段中。

结语

与测试网上的验证者一起操作的整体经验非常有用。验证者的知识水平是令人印象深刻的,他们帮助我们确定了许多改进节点设置和操作的方法,而且还提出了最有价值的问题,促进了我们团队的成长。

验证者还让我们认识到SKALE的体系结构与其他网络不同,特别是在容器化和虚拟化方面。这两种技术的灵活性和可扩展性也体现出了设置和操作的学习曲线。所有这些当然都是可行的,不过却有点偏离其目前的网络技术堆栈,所以需要花一点时间来完全适应网络基础设施的内部操作。

除此之外,我们认为在容器化和虚拟化下,其情况会变得好很多,考虑到其吞吐量、操作灵活性以及其它优势,我们的方法必定会受到更多关注。感谢所有验证者的支持,期待不久的未来能够与他们合作。

关于SKALE网络

SKALE网络是一种开源弹性区块链网络协议。我们的的愿景是让创建运行全状态智能合约的低成本、高性能侧链更简单快捷。我们旨在不牺牲安全性或去中心化的前提下,为开发者提供快速与功能的高效体验。

您可以通过Telegram(@SkaleOfficial)、Twitter(@SkaleNetwork)和Discord 关注SKALE网络(www.skale.chat),访问SKALE网站(www.skale.network)。请参阅SKALE Developer Portal上的开发人员文档(skale.network/docs),查看Github上的代码(github.com/skalenetwork)。