[大年初一造轮子] 为了搞懂以太坊,我用 JS 手搓了一个 64 位 EVM (附 Web 调试器)

2 月 17 日
 freekindom

大家新年好。

大年初一,走了一天亲戚,客套话说尽了。晚上躲清静,把最近写的这个“玩具”整理了一下,发出来给大家解解闷。

这是一个 64 位 的以太坊虚拟机 (EVM) 实现。

这个轮子有什么不同?

  1. 64 位架构:不同于标准的 256 位 EVM ,我把它改造成了 64 位。这样更轻量,也更贴近 CPU 的原生逻辑,跑在 JS 引擎里也更顺滑。
  2. 可视化堆栈:这是我觉得最好玩的部分。写了一个简单的 Web 界面,可以直观地看到 Stack、Memory 和 PC 指针。
  3. 图灵完备:目前实现了基础运算、位操作、逻辑控制和跳转。虽然还在 v0.1 阶段,但已经可以跑通循环算法了。

截图

碎碎念

目前项目还在早期 (v0.1),功能还很简陋。 发出来是想找找同好。如果你对虚拟机原理、解释器构造感兴趣,或者也是正在 Gap 的程序员,欢迎来 Star 或 提 Issue 聊两句。

接下来的计划是攻克 CALL 和 DELEGATECALL,希望能坚持下去。

Repo 地址: https://github.com/picasso250/js-evm

1871 次点击
所在节点    分享创造
1 条回复
lxmfly123
2 月 17 日
一眼 AI

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1193112

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX