欢迎来到穿越时间的开发者世界

Neo智能经济
企业专栏
热度: 6670
我们很高兴为全球开发者提供时间穿越调试器。这是区块链开发者第一次可以在源代码级别上,在时间上前进和后退,以了解、分析和修复复杂的bug。我们正在努力前进,不断提升成为对开发者最友好的区块链平台。

作者:NGD 西雅图负责人 John deVadoss

通过一种可以穿越时间的调试方法,区块链开发者可以通过“倒带”开发过程来发现  bug,而不用一再重复过程以求 bug 出现。

长征万里

区块链在永不停歇地前进,在这个不可阻挡的进程中,会不断产生新的交易,创建新的区块并添加到去中心化账本上。它建立了一套永久的、不可篡改的交易历史。

为去中心化账本提供动力的加密状态机,引发了一场史无前例的创新浪潮。但是,这也对常规软件开发的局限性提出了挑战,尤其是调试工具和技术的局限性。

链上的 bug 与调试

由于底层账本的不可篡改性,区块链上一旦出现 bug 将会引发一系列蝴蝶效应般的问题。因此,bug 的调试与修复至关重要。

作为深耕开发者平台多年的架构师,我们必须要面对并克服这一问题,才能不断向开发者输送最佳的开发工具,提供流畅的开发环境与体验。

对于链上的软件 bug,一般需要解决两个问题。一,找出 bug;二,了解状态机是如何进入这种情况的。

通常情况下,日志可以有效地为我们提供出现问题的一些特征,使我们能够从日志中找到异常和错误。但是,日志最多只能解决一半的问题。日志模拟了为开发人员留下“面包屑”的效果,然后乐观地认为这些“面包屑”可以为开发者指引在主网中执行代码的各种情况。

然后,开发者将根据问题的特征来对问题定位,然后在细微的代码内部循环中进行设置,包括设置断点,运行游标,进入和退出方法。这可能要花费数小时甚至数天的时间。但是,一旦在测试网或主网中出现一个新的复杂问题,我们就不得不从头开始。

更糟糕的是,通常存在一些隐蔽的 bug,它产生的可观察到的影响通常在时间和/或空间上与 bug 的位置分开。所以传统的调试方法最终会让开发者放弃,并以经典的回应而结束:“但是,它可以在我的机器上工作……”。

一种新方法 - 时间穿越调试

如果我们能够准确地、可重复地记录和重新检查事件,一步一步地检查链的状态是如何变化的,以及在链上执行某些操作的时间和原因,情况又会怎样呢?

时间穿越调试使开发者可以轻松地在代码执行过程中前进和后退,而不是尝试(通常不成功)重现错误,从而大大简化了调试过程。此外,通过时光倒流以及对上下文的深入了解,开发者可以根据需要多次“重播”场景,同时检查导致错误的每个步骤并找出最佳解决方案。

时间穿越调试通过允许开发者在区块链上记录正在运行的代码的执行情况,然后在不考虑过去或将来的情况下重新运行代码,从而加速了开发者的编写,编译,构建和调试的循环过程;它通过捕获跟踪文件中的代码执行来减少开销,从而有效地做到了这一点。

时间穿越调试的独特之处

历史上,遥测技术和日志被用来启用轻量级的、场景驱动的方法来检测代码的问题特征。然而,“未知-未知”场景是这种方法的致命弱点;在没有遥测技术的情况下,意外的代码路径会导致问题。

转储是另一种低技术的调试方法;不需要任何预先编码,连续转储或快照来创建简单的时间序列视图。

现场调试是一种只能前向调试的传统方法。它运用断点、观察点和其他常规调试器功能,来帮助开发者查找 bug。开发者运行代码直到遇到断点,并分析代码特定部分中出现的问题。在某些情况下现场调试效果不错,但是,开发者通常不知道代码的哪个部分导致了错误:这是代码在区块链上运行时的一个主要问题。

传统的调试器使开发者可以逐行地从代码中寻找错误。但是,如果碰到难以重现错误时,情况就会变得很棘手,因为开发者几乎没有关于导致错误的情况的信息。

前面提到的一些狡猾的 bug 使情况变得更加复杂,而且常常具有极大的危害。在这些 bug 中,可观察到的影响在时间和/或空间上与 bug 的位置分开了。一个典型的例子就是状态读取方法(可能没有错误)访问了由较早调用的一个或多个函数(存在 bug)导致的损坏状态。

针对这些类型的故障,时间穿越调试器应运而生。通过它,程序员可以向前或向后浏览程序的执行过程,然后回到感兴趣的位置,从而使他们能够从程序的两端找到根本原因,而不仅仅是一端。

时间穿越调试提供了一套功能强大的技术工具,可以有效地帮助开发者修复复杂的 bug。此外,在开发者无法弄清楚为什么会发生某个 bug 的情况下,他们可以与同事共享信息,该同事可以查看并检查他/她正在查看的内容,这将使得团队协作开发大大简化。

展望

欢迎来到时间穿越的开发者世界。我们的目标是提升开发者的体验。

我们很高兴为全球开发者提供时间穿越调试器。这是区块链开发者第一次可以在源代码级别上,在时间上前进和后退,以了解、分析和修复复杂的 bug。我们正在努力前进,不断提升成为对开发者最友好的区块链平台。

Neo 团队将继续执行我们的使命,把数百万开发者带入 Neo 和区块链的世界,并实现智能经济的愿景。 

💪

声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。 未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与火星财经官方立场无关。鉴于中国尚未出台数字资产相关政策及法规,请中国大陆用户谨慎进行数字货币投资。
语音技术由科大讯飞提供

评论0