建议和反馈

请填写你的反馈内容

以太坊主网上测试工具推荐

2020-12-01 ·2018次阅读 ·读完需要7分钟

当我们与多个 DEFI 协议交互时,往往只能在主网上测试,我们应该怎么做呢?

现在是 2022 年。为应对 covid-19 经济衰退而采取的量化宽松政策已导致眼镜蛇效应.全世界已经陷入了更严重的衰退。传统金融已经一去不复返了,而以太坊则是新金融科技革命的唯一希望,即这场革命可以使世界摆脱这场经济噩梦。

而你是一个才华横溢且有抱负的开发人员,希望创建下一个革命性的金融应用程序,这将有助于拯救我们所有人并恢复和平。你知道你的应用程序需要与主网上已建立的协议进行交互,例如 Uniswap(交易所),Compound/Aave(借/贷),Nexus Mutual(保险)等。你想要快速构建它。

唯一的问题是,你不知道从哪里开始,并且你有很多问题:

  • 你如何编写合约?

  • 你如何测试合约?

  • 你如何与其他协议交互

  • 你如何调试交易?

好吧,幸运的是,亲爱的有抱负的开发人员,我花费了 8 个月的投入到这个领域,专门为你准备了这篇文章。

免责声明: 本文是对我“非常”个人的经验的总结。

智能合约框架

如果你的目标是快速交付高质量代码,则 Dapp.tools 是你应该选择的工具。如果你想进行更深入的探讨,我也写过单独文章,。

但是,如果你希望使用其他框架,则我建议按以下顺序选择:

在沙盒环境中进行测试

对我来说,我发现的最高效测试设置是使用 EVM 实现而不是实际的测试网运行代码。这样,我可以测试逻辑,而无需等待交易出块。仅此一项就极大地提高了我们的迭代速度。

如果你想进行确定性测试(不会在星期二通过,而星期五失败),我强烈建议你使用 dapp.tools.其背后使用 hevm,这是 Haskell 的 EVM 实现

使用 Haskell 编写的 EVM(而不是 Python 或 JS)可以立即提供更严格的保证。如果失败,则可能与你的代码有关,而不是与 EVM 的实现有关。

其他 EVM 实现包括:

协议交互

在真实的产品中进行测试 - Andre Cronje

忽略所有其他网络,例如 Rinkeby,Kovan 或 Goerli。你唯一需要关注的应该是主网,网络 ID 为 1。

如果你正在与多个协议(例如 OneInch,Curve,Uniswap,Aave,Compound 等)进行交互,则很有可能。并非所有协议都将部署到同一测试网中。但是有 100%的可能性将它们都部署在主网上。因此,你需要将主网用作测试网。

在流行的 EVM 实现中,例如 hevmbuidler-evm,和 ganache-cli,有一个选项可以从主网 fork . 可以检索主网状态(即 Uniswap 上的流动性),并在本地沙盒环境中针对该状态运行测试。

我在后台使用 ganache-cli 缓存数据,然后再将其发送到 hevm。这样可以大大减少测试时间,尤其是当测试需要与主网协议进行大量交互时

调试失败的交易

在沙箱中

如果你使用的是 dapp.toolsbuidler,或 brownie,那应该恭喜你,他们已经将日志记录和堆栈跟踪内置到了测试框架本身(dapp.tools 的 -v),调试合约应该快速简单。

Frs76Cj

hevm 堆栈跟踪

但是,如果你使用的是 ganache-cli 的框架。那就得放慢你脚步,去放置 revert 消息,以找出问题所在。

有一些人会说,ganache-cli 有一个 debugger。我很清楚并且已经使用过它,但是由于花费了很多时间和精力,最终还是回到了使用 revert 消息。

在主网上

哇,在主网上失败的交易,我该如何调试? Ethtx.info 和 bloxy.info 提供了有关指定交易哈希的详细堆栈跟踪(我怀疑它背后使用的是 openethereum 的[debug_tracetransaction](https://geth.ethereum.org/docs/rpc/ns-debug #debug_tracetransaction)。

dCd8qI7

ethtx.info 堆栈跟踪示例

有用的链接

结论

dapp.tools 很不错。


声明:作为区块链技术信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与链客社区官方立场无关。
评论(0)问答(0)
请先登录或注册

请先登陆或注册

相关推荐

“治理民主”波卡VS以太坊:EIP1559生死难料 以太坊民主危局

1739年,苏格兰哲学家休谟(David Hume)写道,公民政府的起源,是因为“人们无法从根本上救治自己或他人的灵魂之狭隘,(这种狭隘)导致人们舍远图近” 。 休谟相信,政府机构——比如政治代表和......
开发者小白 · 2021-03-01
140阅读 · 0赞赏 · 0问答

以太坊上最牛艺术品诞生之路

Hashmasks背后的故事:以太坊上最牛艺术品诞生之路2021 年 1 月 27 日,一个 ID 名称叫“Cryptopathic”的以太坊社区成员向他的朋友、加密行业知名大V“Crypto Cob......
Ronaldo · 2021-02-28
268阅读 · 0赞赏 · 0问答

有关数据可用性和擦除编码的说明

原文标题:A note on data availability and erasure coding原文链接:https://github.com/ethereum/research/wiki/A-......
区块技术花 · 2021-02-26
758阅读 · 0赞赏 · 0问答

公链的“分叉”之路

文章来源:https://new.qq.com/omn/20210224/20210224A05MCB00.html **撰文 | NESTFANS.知鱼** **出品 | NEST爱好者(nes......
樱花YING · 2021-02-25
874阅读 · 0赞赏 · 0问答

Vitalik:我为什么不担心EIP-1559中的松弛区块容量?

对 EIP-1559 的一种批评是:区块大小是可变的,在 [0,25M] 的范围内浮动而不再是固定的 12.5M gas limit,这使得客户端需要处理加倍的负载。这个论点进一步演绎为,如果我们认为......
云志 · 2021-02-25
972阅读 · 0赞赏 · 0问答

深入了解侧链

介绍众所周知Layer 2对于以太坊越来越重要。但是,“Layer 2”是不精确的标签。现在,当人们说“Layer 2”时,他们倾向于表示“不在以太坊Layer 1”。但是,事物与以太坊Layer 1......
黑白 · 2021-02-24
1086阅读 · 0赞赏 · 0问答

月月月

3406.0

LK币

3

粉丝

57

笔记

感谢"月月月"

这篇精彩的笔记,目前已经帮助

  • 0
  • 2
  • 0
  • 1
  • 8
喜欢0
链客社群 加入

微博进入

商务合作>

广告投放>

公司名称:北京链客行科技有限公司

联系方式:010-67707199

ICP备案号:京ICP备18032136号

Copyright:链客区块链技术问答社区 版权所有

感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!