Ce référentiel contient un ensemble de dissecteurs de protocole réseau pour Ethereum que vous pouvez charger dans le très populaire Wireshark pour commencer à inspecter le trafic Ethereum.
Actuellement, nous prenons en charge le protocole de découverte basé sur UDP, mais la prise en charge du protocole RLPx Wire et du sous-protocole ETH est en cours.
Voici les fonctionnalités actuellement prises en charge par le dissecteur Ethereum Discovery (nous travaillons sur davantage) :
PING
, PONG
, FIND_NODE
et NODES
, divisant les messages en éléments, avec les types de données appropriés.PING
=> PONG
, ainsi que des interactions FIND_NODE
=> NODES
dans les arbres protocolaires.Protocole | Version | Statut | Remarques |
---|---|---|---|
découverte | v4 | ✅ | |
découverte | v5 | ? | La v5 est en cours de travail chez les clients. Reportez-vous aux problèmes et aux PR étiquetés discv5. |
fil | v1 | ? | branche wip : devp2p-wire |
Nous travaillons pour permettre la création du plugin séparément de Wireshark. En attendant, vous devrez cloner le dépôt Wireshark.
cmake
et ninja
. Sur macOS, vous pouvez exécuter brew install cmake ninja
si vous utilisez Homebrew. $ 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
, c'est-à-dire ln -s ${THIS_REPO} ${WIRESHARK_SRC}/plugins/epan/ethereum
.${WIRESHARK_SRC}/CMakeLists.txt
pour ajouter le répertoire plugins/epan/ethereum
sous la variable PLUGIN_SRC_DIRS
, c'est à dire : ...
set(PLUGIN_SRC_DIRS
plugins/epan/ethercat
plugins/epan/ethereum
plugins/epan/gryphon
...
wireshark-ninja
et exécutez à nouveau la version complète de Wireshark en répétant l'étape 3.wireshark-ninja/run
.Classés par ordre alphabétique des noms de famille.
Au sein de l’équipe Protocol Engineering Groups and Systems (PegaSys) de ConsenSys, nous nous spécialisons dans les aspects profonds et de bas niveau de la technologie Ethereum. Certains des défis que nous abordons sont : l'évolutivité, le secret, la modularité, la finalité, les autorisations, etc.
Pour effectuer notre travail, nous avons besoin d’outils permettant de radiographier différentes parties du système. L’une de ces parties est la couche réseau. Aucune autorité centrale n'existe dans la chaîne publique Ethereum, par conséquent toutes les communications sont peer-to-peer (P2P), ce qui donne naissance à des modèles de communication de type RPC et de type potins dont nous avons besoin d'une vision complète pendant le développement, la recherche et les tests.
devp2p est le nom du sous-système réseau d'Ethereum, ainsi que de sa collection de protocoles de base sur lesquels sont superposés des sous-protocoles tels que ETH, Whisper, Swarm, Light Ethereum, etc.
Wireshark est un outil populaire pour l'analyse des paquets réseau. Les utilisateurs peuvent lancer des vidages réseau et naviguer dans une multitude de données par paquets via sa puissante interface graphique. L'architecture de Wireshark est modulaire et s'articule autour du concept de dissecteurs : des composants capables de décoder un protocole concret, qui peuvent être utilisés à n'importe quelle couche du modèle OSI.
Malheureusement, aucun dissecteur Wireshark n'existe encore pour les protocoles Ethereum devp2p. Ce projet change cela.
La mission de PegaSys est de créer des solutions blockchain prêtes à être produites dans des environnements professionnels. Nous nous engageons en faveur de l'open source et créons un cadre d'innovation collaborative pour la communauté de la chaîne publique et les grandes entreprises.
Notre équipe est composée d'ingénieurs leaders dans les domaines du traitement du Big Data, de la cryptographie appliquée, de l'informatique open source, des services cloud et du développement de blockchain.
En savoir plus sur PegaSys.
Ce projet est sous licence GPLv2.