Dieses Repo enthält eine Reihe von Netzwerkprotokoll-Dissektoren für Ethereum, die Sie in das weit verbreitete Wireshark laden können, um mit der Untersuchung des Ethereum-Verkehrs zu beginnen.
Derzeit unterstützen wir das UDP-basierte Discovery-Protokoll, aber die Unterstützung für das RLPx Wire-Protokoll und das ETH-Unterprotokoll ist in Arbeit.
Hier sind die Funktionen, die derzeit vom Ethereum Discovery-Dissektor unterstützt werden (wir arbeiten an weiteren):
PING
, PONG
, FIND_NODE
und NODES
Paketen, Aufteilung der Nachrichten in ihre Elemente mit den entsprechenden Datentypen.PING
=> PONG
-Frames sowie FIND_NODE
=> NODES
-Interaktionen in Protokollbäumen.Protokoll | Version | Status | Notizen |
---|---|---|---|
Entdeckung | v4 | ✅ | |
Entdeckung | v5 | ? | v5 ist bei Clients in Arbeit. Siehe Probleme und PRs mit der Bezeichnung „discv5“. |
Draht | v1 | ? | Wip-Zweig: devp2p-wire |
Wir arbeiten daran, die Erstellung des Plugins getrennt von Wireshark zu ermöglichen. In der Zwischenzeit müssen Sie das Wireshark-Repo klonen.
cmake
und ninja
verfügen. Unter macOS können Sie brew install cmake ninja
ausführen, wenn Sie Homebrew verwenden. $ 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
, also ln -s ${THIS_REPO} ${WIRESHARK_SRC}/plugins/epan/ethereum
.${WIRESHARK_SRC}/CMakeLists.txt
um das Verzeichnis plugins/epan/ethereum
unter der Variablen PLUGIN_SRC_DIRS
hinzuzufügen, d. h.: ...
set(PLUGIN_SRC_DIRS
plugins/epan/ethercat
plugins/epan/ethereum
plugins/epan/gryphon
...
wireshark-ninja
und führen Sie den vollständigen Wireshark-Build erneut aus, indem Sie Schritt 3 wiederholen.wireshark-ninja/run
auszuführen.Alphabetisch nach Nachnamen geordnet.
Im Protocol Engineering Groups and Systems-Team (PegaSys) bei ConsenSys sind wir auf die tiefgreifenden Aspekte der Ethereum-Technologie spezialisiert. Einige der Herausforderungen, denen wir uns stellen, sind: Skalierbarkeit, Geheimhaltung, Modularität, Endgültigkeit, Genehmigung usw.
Um unsere Arbeit auszuführen, benötigen wir Werkzeuge, um verschiedene Teile des Systems zu röntgen. Einer dieser Teile ist die Netzwerkschicht. In der öffentlichen Ethereum-Kette gibt es keine zentrale Autorität, daher erfolgt die gesamte Kommunikation Peer-to-Peer (P2P), was sowohl zu RPC-ähnlichen als auch zu klatschähnlichen Kommunikationsmustern führt, die wir während der Entwicklung, Forschung und Prüfung vollständig kennen müssen.
devp2p ist der Name des Netzwerk-Subsystems von Ethereum, zusammen mit seiner Sammlung von Kernprotokollen, auf denen Unterprotokolle wie ETH, Whisper, Swarm, Light Ethereum usw. geschichtet sind.
Wireshark ist ein beliebtes Tool zur Netzwerkpaketanalyse. Über die leistungsstarke GUI können Benutzer Netzwerk-Dumps initiieren und durch eine Fülle von Paketdaten navigieren. Die Architektur von Wireshark ist modular und basiert auf dem Konzept von Dissektoren : Komponenten, die ein konkretes Protokoll dekodieren können, das auf jeder Ebene des OSI-Modells verwendet werden kann.
Leider gibt es noch keine Wireshark-Dissektoren für Ethereum devp2p-Protokolle. Dieses Projekt ändert das.
Die Mission von PegaSys besteht darin, Blockchain-Lösungen zu entwickeln, die für die Produktion in Geschäftsumgebungen geeignet sind. Wir engagieren uns für Open Source und schaffen einen Rahmen für kollaborative Innovationen für die Public-Chain-Community und führende Unternehmen.
Unser Team besteht aus Ingenieuren, die in den Bereichen Big-Data-Verarbeitung, angewandte Kryptographie, Open-Source-Computing, Cloud-Dienste und Blockchain-Entwicklung führend sind.
Erfahren Sie mehr über PegaSys.
Dieses Projekt ist unter GPLv2 lizenziert.