该存储库包含一组以太坊网络协议解析器,您可以将其加载到广泛流行的 Wireshark 中以开始检查以太坊流量。
目前我们支持基于 UDP 的发现协议,但对 RLPx Wire 协议和 ETH 子协议的支持正在开发中。
以下是以太坊发现解析器当前支持的功能(我们正在开发更多功能):
PING
、 PONG
、 FIND_NODE
和NODES
数据包,将消息分解为具有适当数据类型的元素。PING
=> PONG
帧的链接,以及协议树中FIND_NODE
=> NODES
交互。协议 | 版本 | 地位 | 笔记 |
---|---|---|---|
发现 | v4 | ✅ | |
发现 | v5 | ? | v5 正在客户端中进行中。请参阅标记为discv5 的问题和PR。 |
金属丝 | v1 | ? | wip 分支:devp2p-wire |
我们正在努力独立于 Wireshark 构建该插件。同时,您将需要克隆 Wireshark 存储库。
cmake
和ninja
。在 macOS 上,如果您使用 Homebrew,则可以运行brew install cmake ninja
。 $ cd ${WIRESHARK_SRC}
$ # check out the latest 2.6 tag (could be higher)
$ git checkout wireshark-2.6.2
$ mkdir ../wireshark-ninja
$ cd ../wireshark-ninja
$ cmake -G Ninja ../wireshark
$ ninja
${WIRESHARK_SRC}/plugins/epan/ethereum
下符号链接此存储库的根目录,即ln -s ${THIS_REPO} ${WIRESHARK_SRC}/plugins/epan/ethereum
。${WIRESHARK_SRC}/CMakeLists.txt
文件,在PLUGIN_SRC_DIRS
变量下添加plugins/epan/ethereum
目录,即: ...
set(PLUGIN_SRC_DIRS
plugins/epan/ethercat
plugins/epan/ethereum
plugins/epan/gryphon
...
wireshark-ninja
下的所有内容,然后重复步骤3再次运行完整的Wireshark构建。wireshark-ninja/run
目录中运行生成的Wireshark 可执行文件。按姓氏字母顺序排列。
在 ConsenSys 的协议工程组和系统团队 (PegaSys),我们专注于以太坊技术的低级、深层方面。我们解决的一些挑战是:可扩展性、保密性、模块化、最终性、许可等。
为了完成我们的工作,我们需要工具对系统的不同部分进行 X 射线检查。其中之一是网络层。公链以太坊不存在中央权威,因此所有通信都是点对点(P2P)的,这就产生了 RPC 式和类似八卦的通信模式,我们在开发、研究和测试过程中需要充分了解。
devp2p 是以太坊网络子系统的名称,以及其核心协议的集合,在这些协议之上分层有 ETH、Whisper、Swarm、Light Ethereum 等子协议。
Wireshark 是一种流行的网络数据包分析工具。用户可以通过其强大的 GUI 启动网络转储并浏览大量数据包数据。 Wireshark 的架构是模块化的,它围绕解析器的概念:能够解码具体协议的组件,可以在 OSI 模型的任何层使用。
不幸的是,目前还没有针对以太坊 devp2p 协议的 Wireshark 解析器。这个项目改变了这一点。
PegaSys 的使命是构建可在商业环境中进行生产的区块链解决方案。我们致力于开源,正在为公链社区和龙头企业打造协同创新的框架。
我们的团队由大数据处理、应用密码学、开源计算、云服务和区块链开发领域领先的工程师组成。
了解有关 PegaSys 的更多信息。
该项目已获得 GPLv2 许可。