Académique Documents
Professionnel Documents
Culture Documents
Département : Informatique
- TAMINE Lilia
- BELFERROUM Lynda
Président MEKKAKIA MAAZA Zoulikha Prof USTO
2023/2024
REMERCIEMENTS
Nous tenons tout d’abord à remercier Dieu le tout puissant qui nous a donné la force
et la patience d’accomplir ce modeste travail.
Nous exprimons nos remerciments les plus dévoués, à Monsieur KIES Ali pour son
aide et ses conseils.
Nos remerciements également à tous ceux qui ont contribué de près ou de loin au bon
déroulement et à la réalisation de notre projet de fin d’études.
Enfin, nous ne pourrions terminer ces remerciements sans une pensée à l’ensemble de
nos enseignants et de l’administration du département d’informatique qui sont à
l’origine de notre savoir.
1
DÉDICACES
Merci.
”
- TAMINE Lilia
2
DÉDICACES
À ma chère mère
Aucune dédicace ne saurait exprimer mon respect, mon amour
éternel et ma considération pour les sacrifices que vous avez consenti
pour mon instruction et mon bien être. Je vous remercie pour tout le
soutien et l’amour que vous me portez depuis mon enfance et j’espère
que votre bénédiction m’accompagne toujours. Que ce modeste travail
soit l’exaucement de vos vœux tant formulés, le fruit de vos
innombrables sacrifices. Puisse Dieu, le Très Haut, vous accorder
santé, bonheur et longue vie.
À ma chère grand-mère
tu m’as soutenu et aidé et toujours avec moi dans mes moments
difficiles J’espère que Dieu te protégera pour moi.
Merci.
”
- BELFERROUM Lynda
3
RESUME
L’internet des objets est une technologie qui connaît une croissance indéniable. Elle
permet de connecter les différents objets entre eux et à internet. Cette technologie
touche différents domaines à savoir la santé, la domotique, l’industrie ou encore le
transport. Malgré tous les avantages que cette dernière présente reste vulnérable aux
attaques. C’est pour cette raison qu’il faut trouver un moyen de la sécuriser, d’où l’in-
troduction de la blockchain dans notre projet. En effet la blockchain est une base de
données distribuée qui assure l’anonymat et l’intégrité des données et des informations.
Le but de notre projet est de combiner ces deux technologies ensemble afin de profiter
des avantages de la blockchain pour l’IoT. Nous avons en premier lieu étudier l’IoT :sa
signification, ses caractéristiques, ses domaines d’utilisation. Dans ce même chapitre
nous avons défini les réseaux MANETs et les réseaux VANETs où nous nous sommes
concentrés sur ces deux technologies car nous avons essayé de combiner les VANETs
a la blockchain. En second lieu, nous nous sommes intéressés à la blockchain, à ses
domaines d’utilisation, ses caractéristiques et les services qu’elle offre à l’IoT. Ensuite,
nous avons définit la plateforme Hyperledger plus précisément Hyperledger Fabric qui
est une plateforme de blockchain dans laquelle nous avons la possibilité de lancer des
contrats intelligents. Nous avons expliqué en détails les étapes à suivre pour l’instal-
lation de ce framework, le déploiement et l’exécution de notre contrat intelligent qui
concerne les VANETs. Nous avons illustré les résultats obtenus pour chaque étape que
nous avons suivi pour la validation de notre Chaîne code.
4
ABSTRACT
5
ملخص
نموا ال يمكن إنكاره .فهي تتيح ربط األجهزة المختلفة ببعضها البعض انترنت األشياء هي تقنية تشهد ً
وباإلنترنت .هذه التكنولوجيا تمس مجاالت متنوعة مثل الصحة والمنزل الذكي والصناعة وحتى النقل.
على الرغم من جميع المزايا التي توفرها هذه التقنية ،فإنها ال تزال عرضة للهجمات .ولهذا السبب يجب
أن نجد وسيلة لتأمينها ،لذلك اضفنا تقنية blockchainفي مشروعنا blockchain .هي قاعدة بيانات
موزعة تضمن سرية البيانات والمعلومات وتكاملها .هدف مشروعنا هو دمج هاتين التقنيتين م ًعا لالستفادة
من مزايا blockchainفي انترنت األشياء .في البداية ،قمنا بدراسة انترنت األشياء :معناها وميزاتها
ومجاالت استخدامها .في نفس الفصل ،قمنا بتعريف شبكات األجهزة المتنقلة وشبكات السيارات المتصلة
حيث ركزنا على هاتين التقنيتين ألننا حاولنا دمج شبكات السيارات المتصلة مع تقنية .blockchainثم
اهتممنا بتقنية blockchainومجاالت استخدامها وميزاتها والخدمات التي تقدمها ألنترنت األشياء .ثم قمنا
بتعريف منصة Hyperledgerوتحديدًا Hyperledger Fabricالتي هي منصة blockchainقابلة
للبرمجة تتيح لنا إطالق العقود الذكية .شرحنا بالتفصيل الخطوات التي يجب اتباعها لتثبيت هذا اإلطار
وتنفيذ عقدنا الذكي الذي يتعلق بشبكات السيارات المتصلة .قدمنا نتائج كل خطوة قمنا باتباعها للتحقق من
صحة Chaîne codeالخاصة بنا.
الكلمات الرئيسية :انترنت االشياء ،شبكة السيارات المتصلة ،شبكة األجهزة المتنقلة،Ad-hoc ،
Hyperledger Fabric، Cross-Chain،Blockchain
6
TABLE DES MATIÈRES
1.10.2 Inconvénients : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6
1.12.2 Les modes de communication dans les réseaux VANETs : . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.15 Conclusion : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
chapitre 2 Blockchain
2.8 Consensus : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.9 Transactions : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.11 Hachage : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.11.1 Définition : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7
2.15 Blockchain et Internet des objets : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.17 Cross-blockchain : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.17.1 Protocoles de relais : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.17.2 Sidechain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.19 Conclusion : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
chapitre 3 Implémentation
3.2 Performances du PC : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3 Conception : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.1 Hyperledger : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6 Conclusion : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8
TABLE DES FIGURES
9
LISTE DES TABLEAUX
10
LISTE DES SIGLES ET ACRONYMES
AU Application Unit
CA Central Authority
IP Internet Protocol
M2M Machine-to-Machine
11
PoH Proof of History
RP Ripple Protocol
V2I Véhicule-to-Infrastructure
V2RSU Vehicules-to-Rsu
V2V Véhicule-to-Véhicule
12
INTRODUCTION GÉNÉRALE
Internet a vu le jour au début des années 90 grâce au Word Wide Web et elle ne cesse
de se développer depuis. Il y a eu des progrès successifs avec notamment l’apparition
des smart phones, des ordinateurs performants et plus encore.
Jusqu’à présent cette avancée a permis de connecter nos objets du quotidien grâce
a ce qu’on appelle l’internet des objets. Cette dernière est devenue de plus en plus
populaire dans de nombreux secteurs que ce soit celui de la santé, de l’industrie, la
domotique ou le transport.
On peut se demander ce que signifie l’internet des objets. Pour répondre à cette ques-
tion c’est tout simplement un cadre dans lequel tous les objets ont une représentation
et une présence dans l’Internet. Plus spécifiquement, l’IoT vise à offrir de nouvelles
applications et de nouveaux services qui relient les mondes physiques et virtuels.
Cette technologie facilite et améliore la qualité de vie des personnes en rendant les
environnements plus intelligents et plus adaptés. Dans cette étude, nous allons plus
nous intéresser aux réseaux véhiculaires. Ces derniers sont des réseaux du type ad-hoc
mobile (MANET) où les nœuds mobiles sont des véhicules circulant sur des routes ou
des rues. Les VANETs sont des réseaux de communication sans fil qui prennent en
charge des applications telles que la sécurité routière, la navigation et d’autres services
routiers.
L’IoT peut être considéré comme étant notre présent et notre futur. Cependant, même
si elle offre beaucoup d’avantages et de facilités, elle possède plusieurs points de vul-
nérabilité parmi elles le manque de sécurité. En outre elle reste aussi vulnérable aux
différentes attaques.
Pour pallier à ces problèmes nous suggérons d’appliquer une autre technologie à
l’IoT qui est la blockchain. En effet, la blockchain s’est faite connaître en 2008 grâce à
la crypto monnaie plus précisément grâce au bitcoin qui a révolutionné le monde.
Elle est considérée comme étant une base de données distribuée qui offre plus de sécu-
rité. L’intégration de la blockchain à l’IoT ouvre de nouvelles perspectives aux appareils
connectés en permettant une communication plus sécurisée avec plus de transparence,
de confiance et de décentralisation. Notre mémoire sera constitué de trois chapitres :
Dans le chapitre I, nous allons définir l’internet des objets, connaître ses domaines,
13
ses caractéristiques en nous concentrons sur les réseaux mobiles et véhiculaires.
Par la suite, dans le chapitre II, nous allons détailler la technologie blockchain. Nous
allons expliquer la blockchain, sa structure, ses avantages vis avis de l’IoT et la raison
pour laquelle nous l’avons choisie. Nous allons également introduire une autre techno-
logie blockchain qui permettra l’interopérabilité entre les blockchains.
Pour finir, dans le chapitre III, nous allons introduire un nouvel environnement de
blockchain qui est l’Hyperledger Fabric et faire une simulation en déployant un smart
contract de type VANETs.
Nous terminerons ce mémoire sur avec une conclusion générale en proposant des
perspectives futures à notre projet.
14
CHAPITRE 1
INTERNET OF THINGS (IOT)
15
CHAPITRE 1. INTERNET OF THINGS (IOT)
1.1 Introduction
IoT est une technologie qui a connu une évolution exponentielle et continue en se perfectionnant
de jour en jour. Cette dernière relie les objets du quotidien à Internet, permettant ainsi de recueillir
et d’échanger des données. Les objets connectés peuvent être des appareils électroménagers, des
véhicules, des réseaux mobiles, des outils de santé, des bâtiments et bien d’autres choses encore.
L’IoT permet aux entreprises et aux particuliers de collecter des données en temps réel. Comme
exemple de technologie que nous allons aborder dans ce chapitre, les réseaux mobiles qui sont des
réseaux ad-hoc dont les nœuds sont souvent caractérisés par une mobilité constante.
Par la suite nous allons traiter les réseaux véhiculaires qui constituent une nouvelle forme de MA-
NET. Nous allons définir ces technologies en nous intéressons à leurs caractéristiques et à leurs
avantages.
Il peut être considéré comme l’un des outils les plus puissants avec les différentes techniques de
communication, telles que RFID, Bluetooth, Wi-Fi, Zigbee..etc.
Un objet connecté est un objet électronique qui possède une adresse IP capable d’échanger, de
communiquer et de modifier d’innombrables données via Internet.[1]
En fait, un objet connecté a la capacité d’interagir et d’interconnecter avec son environnement
physique.
L’IoT regroupe plusieurs éléments qui sont les capteurs, actionneurs. . .etc. Cependant, il est né-
cessaire de spécifier plusieurs élements de l’objet qui sont sa nature, sa fonction, sa localisation
dans l’espace, son histoire a fin de créer un lien entre le physique et le virtuel.
16
CHAPITRE 1. INTERNET OF THINGS (IOT)
• Véhicules intelligents : C’est un domaine qui connaît une très grande évolution grâce aux
caméras de recules ou aux détecteurs d’obstacles. Certains constructeurs sont allés encore
en testant des véhicules sans conducteurs (véhicules autonomes) ce qui pourrait diminuer les
accidents de la circulation.[4]
• Santé : Dans le domaine de la santé, l’IoT contribue à faire circuler les données et rapports
médicaux entre les professionnels de la santé et les patients grâce aux réseaux personnels.
Les capteurs médicaux surveilleront les constantes biologiques telles que la température cor-
porelle, la tension artérielle et l’activité respiratoire. Tout cela contribuera à faciliter la
surveillance des patients et en améliorant leur prise en charge médicale.[5]
• Sécurité et surveillance : Nous pouvons aussi faire intervenir l’IoT dans le domaine de
la sécurité des entreprises, des usines, des centres commerciaux, des parkings et autres lieux
publics. Le suivi et le contrôle en temps réel de ces espaces sera nettement amélioré.[3]
17
CHAPITRE 1. INTERNET OF THINGS (IOT)
• Inter connectivité : En ce qui concerne l’IoT, tout peut être relié à l’infrastructure mon-
diale d’informations et de communications.
• Services liés aux objets : L’IoT est capable de fournir des services liés aux objets comme
la protection de la vie privée et la cohérence sémantique entre les objets physiques et les
objets virtuels qui leur sont associées.
• Hétérogénéité : Les dispositifs dans l’IoT sont hétérogènes comme basé sur différentes
plateformes matérielles et des réseaux. Ils peuvent interagir avec d’autres appareils ou pla-
teformes de service à travers différents réseaux.
• Échelle énorme : Le nombre d’appareils qui doivent être gérés et qui communiquent entre
eux sera au moins d’un ordre de grandeur plus grand que les appareils connectés à l’Internet
actuel. La gestion des données générées et leur interprétation à des fins d’application seront
encore plus importantes.
18
CHAPITRE 1. INTERNET OF THINGS (IOT)
• Sécurité : Alors que nous profitons de l’IoT, nous ne devons pas oublier la sécurité. En tant
que créateurs et destinataires de l’IoT, nous devons concevoir pour la sécurité.
• Capteur : Les capteurs sont des dispositifs permettant de transformer une grandeur phy-
sique observée (température, luminosité, mouvement... etc) en une grandeur numérique uti-
lisable par des logiciels. Il existe une très grande variété de capteurs de tous types, les objets
connectés ont souvent la fonction de captation de ces grandeurs physiques sur leurs lieux
d’utilisation.
• Réseaux de capteurs : les capteurs sont équipés de dispositifs sans fil pour l’émission
et la réception de données. Cela ne suffit cependant pas à rendre un ensemble de capteurs
accessibles ou du moins de manière interopérable, transparente et simplifiée.
Pour cela, les capteurs doivent être positionnés de façon judicieuse pour pouvoir former un
réseau de capteurs performants. Ces éléments sont de très petits appareils, dotés de grandes
capacités de transmission sans fil.
• Énergie : La plus importante contrainte à laquelle sont soumis les réseaux de capteurs est
l’énergie. L’autonomie temporelle des nœuds s’évalue en termes d’années.
• Actionneurs : Les actionneurs sont des dispositifs qui transforment une donnée numérique
en phénomène physique pour créer une action, ils sont en quelque sorte l’inverse du capteur.
• Connectivité : La connectivité de l’objet est assurée par une petite antenne Radio Fré-
quence qui va permettre la communication de l’objet vers un ou plusieurs autres objets.
19
CHAPITRE 1. INTERNET OF THINGS (IOT)
Parmi ces architectures deux d’entre elles sont illustrées en figures (1.3), (1.4) et (1.5).[8]
- Couche de perception.
- Couche réseau.
- Couche application.
20
CHAPITRE 1. INTERNET OF THINGS (IOT)
- couche perception.
- couche transport.
- couche traitement.
- couche application.
- couche affaires.
* La couche application : elle est chargée de fournir des services spécifiques de l’application
à l’utilisateur. Elle définit diverses applications dans les quelles l’Internet des objets peut être
déployé, par exemple, les maisons intelligentes, les villes intelligentes et la santé intelligente.
* La couche réseau : cette couche est responsable de la connexion à d’autres objets intelli-
gents, périphériques réseaux et serveurs. Elle est également utilisée pour la transmission et
le traitement des données provenant des capteurs.
* La couche perception : c’est la couche physique. Elle possède des capteurs pour détecter
et recueillir des informations sur l’environnement. Elle détecte certains paramètres physiques
ou identifie d’autres objets intelligents dans l’environnement.
D’un autre côté dans l’architecture à cinq couches, la perception et l’application ont le même
rôle que dans l’architecture à trois couches sauf que, ce qui change dans l’architecture à cinq
couche est :[8]
21
CHAPITRE 1. INTERNET OF THINGS (IOT)
* La couche métier : gère l’ensemble du système IoT, y compris les applications, les modèles
commerciaux et de profits, et la confidentialité des utilisateurs.
• RFID : Ce concept regroupe toutes les technologies qui fonctionnent avec les ondes radio
afin de reconnaître automatiquement des objets ou des personnes.
Ces caractéristiques sont : stockage et récupération à distance d’informations.
22
CHAPITRE 1. INTERNET OF THINGS (IOT)
Dans le contrôle d’accès, deux types d’entités sont importantes. Ces deux dernières sont les dé-
tenteurs de données (ceux qui utilisent l’IoT) et les collecteurs de données (qui sont les objets qui
récoltent et envoient les données).
Il existe plusieurs méthodes pour assurer le contrôle d’accès, par exemple la solution RBAC. Cette
méthode utilise trois éléments pour prendre la décision sur le contrôle d’accès. Ces éléments sont :
l’utilisateur, le rôle et les permissions.
ABAC est une autre méthode de contrôle d’accès qui n’exige pas forcément une mise à jour des
politiques existantes pour autoriser l’accès aux nouvelles ressources. La décision du choix de la
méthode est prise selon les différentes entités qui demandent l’accès à une ressource. Elles peuvent
appartenir à l’entité ou peuvent dépendre de l’environnement.[10]
Récemment, la blockchain s’est imposée comme un bon moyen pour assurer le contrôle d’accès
au système.
1.10.2 Inconvénients :
- Le coût de l’installation des dispositifs peut s’avérer être élevé.
- Le manque de sécurité. En effet l’IoT peut être une cible de certaines attaques.
- L’IoT souffre d’un manque de confidentialité car des fois les données collectées ou transmises
sont sensibles et ont besoin de confidentialité ce que l’IoT n’offre pas totalement.
23
CHAPITRE 1. INTERNET OF THINGS (IOT)
Les MANETs peuvent être utilisés comme infrastructures de communication alternatives dans des
situations où les infrastructures de communication Conventionnelles sont détruites à cause d’une
catastrophe naturelle, ou encore accusé des attaques ennemies.[11]
Le réseau mobile MANET peut être déployé sans la nécessité de recourir à d’autres éléments supplé-
mentaires tels que le coût et le temps. Dans ce réseau, chaque nœud mobile joue un rôle de routeur
parallèlement à son travail ordinaire. Une autre application des MANETs est bien les VANETs.[11]
- Bande passante limitée : parmi les caractéristiques des réseaux sans fil, nous avons l’utili-
sation d’un canal de communication partagé. Ce partage fait que la bande passante réservée
à un hôte reste modeste.
- Une topologie dynamique : les entités mobiles du réseau se déplacent d’une façon libre
et arbitraire, ce qui provoque le changement de topologie d’une manière rapide et aléatoire
à des instants imprévisibles. La figure(1.8) montre un exemple de changement de topologie.
Figure 1.7 – Les changements de topologie dans les réseaux mobiles Ad-hoc.
24
CHAPITRE 1. INTERNET OF THINGS (IOT)
- Contrainte d’énergie : les hôtes mobiles sont alimentés par des sources d’énergie auto-
nomes telles que les batteries ou d’autres sources consommables.
- L’absence d’infrastructure : En effet, dans les réseaux ad-hoc, les hôtes se chargent
d’établir et de maintenir la connectivité du réseau d’une manière continue. L’absence d’in-
frastructure et d’une administration centralisée le distingue des autres réseaux mobiles.
- Une sécurité physique limitée : les réseaux ad-hoc sont plus vulnérables par le problème
de sécurité que les autres réseaux filaires classiques.
- Une forte mobilité des nœuds : En effet, ce qui rend la topologie du réseau fortement dyna-
mique.
- La capacité d’énergie et stockage : Les éléments des réseaux VANETs disposent suffisamment
d’énergie pour alimenter les différents équipements électroniques, ce n’est pas le cas pour les
réseaux MANETs ou les réseaux de capteurs.
- Topologie dynamique.
En effet, un véhicule peut communiquer directement avec un autre véhicule s’ils se situent dans la
même zone radio, ou bien par le biais d’un protocole multi-sauts qui se charge de transmettre les
messages de bout en bout en utilisant les nœuds voisins qui les séparent comme des relais. Dans ce
mode, les supports de communication utilisés sont caractérisés par une petite latence et un grand
débit de transmission.[14]
25
CHAPITRE 1. INTERNET OF THINGS (IOT)
Les communications V2V sont très efficaces pour le transfert des informations concernant les ser-
vices liés à la sécurité routière, mais elles ne garantissent pas une connectivité permanente entre les
véhicules.[14]
Ce mode est inadéquat pour les applications liées à la sécurité routière car les réseaux à infra-
structure ne sont pas performants quant aux délais d’acheminement.[14]
• Noeud : Les nœuds sont les entités principales de ce type de réseau. Ce sont des véhicules
intelligents avec des technologies très avancées telles que le GPS, les caméras et autres équi-
pements. Dans la présente étude, les principaux appareils du nœud sont l’AU et l’OBU.
L’AU est un dispositif électronique installé dans les véhicules pour assurer les communica-
tions avec le CA, connecté à l’OBU afin d’exécuter des applications.
• l’OBU : C’est un dispositif installé dans les véhicules intelligents avec un ensemble de com-
posants logiciels pour calculer et afficher toutes les informations nécessaires de localisation,
partager et échanger des données.[15]
• RSU : ce sont des dispositifs installés au bord de la route jouant le rôle d’un point d’accès
afin d’assurer les communications avec l’infrastructure et échanger les informations relatives
à l’état du trafic routier avec les utilisateurs de la route.[15]
• CA : il représente l’autorité de confiance. Il joue le rôle d’un serveur qui assure la sécurité
en vérifiant l’identité des participants pour faire, il émet, gère et stocke certaines données tel
que les certificats numériques et les clés de communication.[15]
26
CHAPITRE 1. INTERNET OF THINGS (IOT)
• La communication Broadcast : C’est quand le paquet est envoyé à tous les nœuds du
réseau.
• WPAN : Il concerne les réseaux sans fils de faible portée de l’ordre de quelques dizaines de
mètres.
• WLAN : Les WLANs couvrent l’équivalent d’un réseau local d’entreprise. Sa portée est
d’environ une centaine de mètres.
• WWAN : Connu sous le nom de réseau cellulaire mobile. C’est un réseau sans fil le plus
courant puisque les différents téléphones mobiles sont connectés à un réseau étendu sans fil.
27
CHAPITRE 1. INTERNET OF THINGS (IOT)
1.15 Conclusion :
L’IoT est une nouvelle infrastructure qui va intégrer les objets connectés et faciliter nos travaux,
notre vie quotidienne et nous faire gagner du temps.
Nous avons étudié les réseaux MANETs en nous intéressons tout particulièrement aux réseaux
véhiculaires (VANETs). Nous avons étudié leurs modes de communications, leurs caractéristiques
ainsi que leur architecture.
Malgré tous les avantages de l’IoT, celle-ci a besoin dans le futur qu’elle soit mieux sécurisée
d’où l’introduction de la blockchain que nous allons voir dans le chapitre suivant.
28
CHAPITRE 2
BLOCKCHAIN
29
CHAPITRE 2. BLOCKCHAIN
2.1 Introduction
La blockchain a connu une forte croissance ces dernières années. Elle a été connue grâce à
certaines crypto monnaies telles que le bitcoin, le discoin ou même l’Ethereum. La technologie blo-
ckchain est tout simplement une base de données distribuée qui stocke les informations en toute
sécurité.
Cette technologie ne se limite pas qu’à la crypto monnaie car elle peut être intégrée dans l’in-
dustrie, dans le domaine de la santé ou même dans la finance.
La tendance actuelle est de l’utiliser dans le domaine de l’internet des objets. La motivation des
chercheurs en l’utilisation de la blockchain pour l’IoT réside dans le fait que les données sont sécu-
risées et immuables c’est à dire qu’une fois enregistré dans les blocs et ajouté dans la blockchain,
ces dernières ne seront ni modifiées ni supprimées. De plus, elle offre la transparence du point de
vue utilisateur.
Dans ce chapitre nous allons définir ce qu’est la blockchain, ses composantes, son architecture
et la raison de son utilisation dans le domaine de l’IoT.
La chaîne de blocs aussi connue sous le nom de « blockchain » est une technologie qui a vu le
jour en 2008 par Satoshi Nakamoto (Laurent Leloup, 2017), pseudonyme utilisé par la ou les per-
sonnes ayant créé cette technologie.[17]
La Blockchain fonctionne sur un réseau peer to peer. Elle peut être vue comme une base de données
distribuée qui renforce la sécurité des informations qu’elle contient. Elle permet de stocker ou de
transmettre des données de façon sécurisée mais surtout de les protéger contre la modification.[17]
Cette technologie qui servait initialement à l’émission du bitcoin a connu un développement impor-
tant ces dernières années avec la mise en place d’Ethereum.
La blockchain dans son modèle dit « public » qui signifie que tous les participants du réseau
blockchain peuvent accéder à l’ensemble des données et transactions enregistrées sur la chaîne de
blocs. Ou « décentralisé » qui se réfère à un modèle où le contrôle et la prise de décision ne sont
pas centralisés entre les mains d’une seule entité ou autorité. Ce type de blockchain est un registre
public continuellement alimenté par des transactions. Le système repose sur un réseau de serveurs
répliquant le dit registre et alimentant ce dernier de données nouvelles intégrées par transaction.[18]
La blockchain est vue comme étant une suite de blocs de données reliés par une chaîne chrono-
logique. Chaque bloque est haché pour pouvoir le sécuriser. Les données sur ce registre ne sont
pas purement informatives : elles peuvent servir à constater l’existence d’actifs numériques et à les
échanger.[18]
30
CHAPITRE 2. BLOCKCHAIN
La figure(2.1) est une représentation du réseau blockchain. En effet, si Alice et Bob deux nœuds
(participants) du réseau blockchain veulent faire une transaction. Ce qui se passera c’est que Alice
transfert les données, Bob va les recevoir sans passer par une autorité. Enfin tous les autres nœuds
du réseau blockchain enregistreront une copie de cette transaction dans le registre.
Les nœuds créateurs de blocs sont des nœuds appelés « mineurs ». N’importe quel nœud peut
devenir un mineur, il suffit juste de disposer du matériel et du logiciel adéquat. Lorsqu’un mineur
reçoit une nouvelle transaction non validée, il la place avec l’ensemble des transactions non confir-
mées.
Cet ensemble est propre à chaque mineur. Il peut changer d’un mineur à l’autre en fonction du
temps de propagation des transactions sur le réseau. C’est une sorte de liste d’attente pour les
transactions. Celles-ci quittent la liste une fois qu’elles intègrent le bloc.[20] Nous représentons les
étapes d’une transaction dans l’illustration(2.2).
31
CHAPITRE 2. BLOCKCHAIN
* Le hachage du bloc précédent : Dans la blockchain, les données de chaque bloc sont
hachées et intégrées dans le bloc suivant(c’est à dire que chaque bloc contient la valeur du
hachage du bloc "parents"), cette particularité va donc permettre de relier les blocs les uns
avec les autres en assurant l’intégrité et l’immuabilité.[21]
* L’horodatage : L’horodatage est un petit élément de données stockées dans chaque bloc
en tant que série unique. Il permet de déterminer le moment exact où le bloc a été extrait et
validé par le réseau blockchain. Il crée également un lien cryptographique entre l’empreinte
numérique d’une donnée et un bloc de la blockchain.[22]
* Le nonce : Il s’agit souvent d’un nombre aléatoire ou pseudo-aléatoire émis dans un proto-
cole d’authentification pour garantir que les anciennes communications ne peuvent pas être
réutilisées dans des attaques.[20]
Les racines de Merkle ne sont pas utilisées pour la vérification d’un individu de transac-
tions. Mais plutôt, ils sont utilisés dans la vérification d’un ensemble de transactions.
La modification des données de transaction dans un bloc, modifie le hachage de l’arbores-
cence de Merkle stockée dans l’entête du bloc.[23]
32
CHAPITRE 2. BLOCKCHAIN
Le bloc est ajouté à la copie locale de la blockchain et est stocké lorsque toutes les transactions
qui le constituent sont valides. Un consensus intervient pour contrôler quels nœuds du réseau blo-
ckchain peuvent participer et contribuer à la validation des transactions au réseau blockchain. Une
fois qu’un bloc est ajouté, il ne peut ni être modifié ni supprimé et cela grâce au hachage.[24]
La figure(2.4)représente les deux parties importantes du bloc. En effet, nous remarquons que
la blockchain contient un ensemble de blocs, chaque bloc possède deux parties une partie header
comme nous l’avons expliqué précédemment elle possède le nonce, le horodatage et l’arborescence
de merkle une autre partie transactions qui contient l’ensemble des transactions.
La figure(2.5) représente un exemple de structure de blockchain. Nous remarquons que ces deux
blocs sont des blocs du milieu de notre chaîne. Chaque bloc contient un hachage du bloc qui le
précède. Ce hachage est calculé à partir des données de la transaction du bloc précédent. Chaque
élément contient un ensemble de transactions comme représenté en figure(2.5) et chaque bloc est
horodaté pour connaître le moment où le bloc a été validé. Pour finir, le bloc contient un identifiant
unique.
33
CHAPITRE 2. BLOCKCHAIN
Ce type de chaîne de blocs est accessible pour tout le monde tout en gardant son anonymat.
Cela est possible grâce à son code open source.
Elle permet d’augmenter le nombre de participants à la blockchain. Cependant cette ouver-
ture laisse la possibilité à des opérations frauduleuses telles que le blanchiment d’argent ou
le financement occulte.
- Blockchain privée :
Les blockchains privées sont bien plus petites et leur accès est très contrôlé. Le code source
n’étant pas ouvert, l’information ne doit pas être publique. Dans ce type de Blockchain une
seule organisation ou toute organisation au sein du même groupe est autorisée à lire et à
soumettre des transactions.[26]
- Blockchain consortium :
Une blockchain de consortium est une blockchain dans laquelle les nœuds de plusieurs orga-
nisations gouvernent le réseau.
Ils collaborent pour partager et modifier les informations via ce type de blockchain afin de
maintenir le flux de travail, l’évolutivité et la responsabilité. Elle garde certaines caractéris-
tiques d’une blockchain privée et publique.[27]
34
CHAPITRE 2. BLOCKCHAIN
- La sécurité : il est quasi-impossible de supprimer toutes les copies des documents. Les
données sont dans différents serveurs ce qui renforce la sécurité.[29]
- Anonyme : Les utilisateurs ont le droit d’avoir des adresses qui n’ont aucune relation avec
leurs informations personnelles.[29]
35
CHAPITRE 2. BLOCKCHAIN
2.8 Consensus :
Les protocoles de consensus peuvent être considérés comme l’épine dorsale d’un réseau block-
chain. Ils renforcent la cohérence et l’intégrité et permettent de rendre les propriétés immuables
(infalsifiable). C’est à dire que ces propriétés ne seront ni modifiées ni supprimées.[30]
Lorsqu’il y a une nouvelle transaction, elle n’est pas directement ajoutée a la blockchain. Au
contraire, le processus de consensus garantit que ces nouvelles transactions sont stockées dans
un bloc pendant un certain temps et par la suite transférées dans la base de données blockchain.
Quand les informations sont enregistrées dans le registre elles ne peuvent plus être modifiées ou
supprimées.[21]
Un protocole de consensus à trois propriétés clés sur la base desquelles son applicabilité et son
efficacité peuvent être déterminées.[31]
- Sécurité : on peut dire que le protocole est sûr si tous les nœuds donnent tous les mêmes
sorties.
- Un protocole de consensus garantit la vivacité si tous les nœuds non défectueux participent
au consensus pour produire une valeur.
- Tolérance aux pannes : Un protocole de consensus fournit une tolérance aux pannes s’il peut
continuer de fonctionner même si un nœud du réseau tombe en panne.
Les protocoles peuvent être séparés en deux groupes largement définis : les protocoles basés sur la
preuve et les protocoles basés sur le vote.
Les protocoles basés sur la preuve comprennent : la preuve de travail (PoW), la preuve de tra-
vail différée (DPoW), la preuve d’importance (PoI), la preuve du temps écoulé (PoET), la preuve
de capacité (PoC), la preuve d’autorité (PoA) et la proof of Burn (PoBr).
D’un autre coté les protocoles basés sur le vote incluent : la preuve de participation (PoS), la
preuve de participation déléguée (DPoS), le protocole d’ondulation (RP), la tolérance aux pannes
byzantines pratiques (PBFT), la tolérance aux pannes byzantines déléguées (DBFT) et pour finir
la byzantine fédérée Accord (FBA).[30]
Le PoW est un consensus qui permet de garantir la cohérence et la sécurité des données.
Cela grâce au pouvoir de concurrence des mineurs. Il repose sur la puissance de calcul, ce-
pendant ceci peut être un inconvénient car il peut consommer beaucoup d’énergie. Ce type
de consensus est utilisé par le Bitcoin.
En effet les nœuds se font concurrence pour élaborer collectivement un SHA256 qui est
un problème mathématique dont la résolution est compliquée mais facilement vérifiable. Le
nœud le plus rapide pour résoudre ces problèmes obtiendra une récompense en bitcoins.[32]
36
CHAPITRE 2. BLOCKCHAIN
PoS est un protocole qui garde tous les avantages du PoW tout en surmontant certaines de
ses faiblesses.
PoS a été développé comme une solution alternative à la consommation d’énergie du PoW.
En effet, au lieu du calcul complexe et de la consommation de ressources énergétiques, des
dirigeants sont sélectionnés en fonction de leurs enjeux.
Ces enjeux sont le nombre de jetons numériques, par exemple, des pièces en crypto-monnaies,
qu’un nœud du réseau blockchain détient ou dépose. Au lieu de consommer beaucoup d’éner-
gie pour le processus de recherche comme dans le PoW, un leader sera sélectionné en fonction
de ses enjeux pour effectuer le processus d’ajout d’un nouveau bloc à la blockchain.[33]
Le DPoS est une variante du protocole de consensus Proof of Stake. Dans cet algorithme
ceux qui possèdent des jetons de la blockchain ont la possibilité de choisir des délégués pour
valider les blocs au nom du réseau blockchain.
Les délégués sont élus par ceux qui possèdent le plus de jetons lors d’un processus de vote.
Une fois élus, les délégués ont pour mission de créer des blocs et de valider les transactions.
DPoS ne nécessite pas de résolution de problèmes mathématiques complexes pour valider les
blocs comme dans le PoW, ce qui va faire économiser en énergie. Comme exemple d’utilisa-
tion de cet algorithme on peut citer le BitShares.[34]
Dans le consensus POA, les validateurs sont des entités préalablement autorisées et identi-
fiées. Cependant dans cet algorithme, les validateurs sont élus selon leur réputation et non
selon le nombre de jetons qu’ils possèdent (comme nous l’avons vu précédemment dans le
Pos).
Lorsque nous disons leur réputation c’est à dire que les validateurs POA sont généralement
des entités de confiance qui ont été sélectionnées par les nœuds du réseau blockchain pour
leur fiabilité et leur intégrité. Ils sont responsables de la validation des transactions et de la
création de nouveaux blocs.[35]
• Blockchain PBSCF-ITS :
- Le PBSCF-ITS qui permet le contrôle d’accès et la gestion des clés entre V2V, V2RSU et
une analyse de sécurité rigoureuse.
- Le PBSCF-ITS est plus performant que les systèmes existants en termes de sécurité avec
plus de fonctionnalités, de faibles coûts généraux de communication et de calcul.
37
CHAPITRE 2. BLOCKCHAIN
PBSCF-ITS est un cadre proposé pour l’utilisation de la technologie blockchain dans les
ITS qui a pour but d’améliorer la sécurité et l’efficacité.
PBSCF-ITS utilise une chaîne de blocs publique pour stocker et partager en toute sécu-
rité des données liées au transport. Dans ce domaine on peut citer l’exemple du flux de
trafic, les données de localisation et les informations sur les véhicules.
Dans l’ensemble, le PBSCF-ITS a le potentiel d’améliorer la sécurité, l’efficacité et la trans-
parence dans l’industrie du transport.[37]
2.9 Transactions :
La transaction se fait entre deux personnes du réseau blockchain. C’est tout simplement un
transfert (de données, des informations ou même de la crypto monnaie). Pour effectuer une tran-
saction, il est nécessaire d’effectuer une signature cryptographique pour garantir que la transaction
a été réalisée par telle ou telle personne. Cette dernière est enregistrée dans le bloc de la blockchain.
Les transactions dépendent de la nature de la chaîne de blocs. Comme exemple connu de tran-
saction, la crypto-monnaie bitcoin : une transaction est alors un transfert de monnaie virtuelle qui
concerne deux participants un émetteur et un récepteur.
Pour qu’une transaction soit validée, elle doit passer par l’opération de minage. Dès qu’elle est
validée elle sera ajoutée à la blockchain.
- Santé et soins : La blockchain peut être utilisée pour sécuriser et partager les dossiers mé-
dicaux électroniques, faciliter les échanges entre les professionnels de la santé et permettre
une recherche médicale plus sécurisée et collaborative.[39]
- Les véhicules : le fait d’introduire la blockchain dans l’iot des véhicules permet d’attribuer à
chaque véhicule une identité numérique décentralisée. Elle va améliorer la manière dont les
véhicules connectés communiquent avec d’autres appareils IoT. Le transfert et la communi-
cation seront bien mieux sécurisés.[40]
38
CHAPITRE 2. BLOCKCHAIN
Pour la sécurité, la blockchain peut également utiliser des objets intelligents. La figure(2.7) est
une représentation d’autres domaines de la blockchain.
2.11 Hachage :
2.11.1 Définition :
Le hachage est un processus qui consiste à prendre des données de taille variable et à les rendre
de taille fixe, appelée empreinte digitale.
Formellement une fonction de hachage H : {0, 1}∗ →{0, 1}n est une application qui transforme
une chaîne de taille quelconque en une chaîne de taille fixe n.[41]
Les fonctions de hachage sont des fonctions mathématiques. Il est impossible de reconstituer les
données d’origine à partir du hachage, ce qui garantit la sécurité des données.[25]
Il existe deux types d’algorithmes d’hachage connus sous le nom de hachage faible et de hachage fort.
Figure 2.8 – Exemple d’un résultat d’une fonction de hachage d’un texte.
39
CHAPITRE 2. BLOCKCHAIN
Nous allons commencer par expliquer le SHA-256. La version SHA-256 a certaines caractéristiques
telle qu’une taille de message de 264 bits maximum, d’une taille de bloc de 512 bits, d’un nombre
de mots de 32 bits et d’une taille condensée de 256 bits.[42]
Le SHA-512 est une fonction de hachage itérée qui complète et traite le message d’entrée à l’aide
de t blocs de message de 1024 bits.
La valeur de hachage de 512 bits est calculée à l’aide de la fonction de compression f :
h0 = IV
h(j +1) = f (hj , mj )
pour 0 <= j < t.
La sortie de hachage est la valeur de chaînage finale de 512 bits. 2 à la puissance 256 combi-
naisons possibles.[43]
Algorithmes Faibles :
Les algorithmes de hachage cryptographique MD5 et SHA-1 sont utilisés afin de garantir l’inté-
grité des données. Le hachage MD5 produit une valeur de hachage de 128 bits alors que le hachage
SHA-1 produit une valeur de 160 bits.
Des études récentes ont montré que les deux algorithmes MD5 et SHA-1 présentent des vulné-
rabilités et des collisions.
Une collision dans un algorithme de hachage est un scénario où deux entrées différentes produisent
la même sortie de hachage. Cela est préoccupant car les fonctions de hachage sont largement utili-
sées pour vérifier l’intégrité des données et garantir l’authenticité. Lorsqu’une collision est possible,
cela peut être exploité par des attaquants pour générer des données falsifiées ou compromettre la
sécurité des systèmes qui dépendent de l’intégrité des valeurs de hachage.
Pour préserver l’intégrité des données numériques, il est déconseillé d’utiliser les algorithmes de
hachage MD5 et SHA 1.[44]
40
CHAPITRE 2. BLOCKCHAIN
Un contrat intelligent est susceptible d’être une classe qui comprend des variables d’état, des fonc-
tions, des modificateurs de fonction, des événements et structures. Ce type de contrat est destiné à
exécuter et à contrôler les événements et les actions correspondant aux termes du dit contrat. De
plus, il peut même appeler d’autres contrats intelligents. Chaque contrat intelligent comprend des
états et des fonctions.[46]
41
CHAPITRE 2. BLOCKCHAIN
- L’immuabilité : on est sûr que les données qui figurent dans le bloc ne seront pas modifiées.[48]
- Les données sont de qualité : la blockchain assure l’intégrité des données. On peut donc
leur faire confiance puisqu’elles sont toutes hachées et horodatées.[48]
- Distribuées : cette spécificité permet de diminuer la perte des données dans le cas de
pannes.[48]
- Transparence et la traçabilité : toutes les informations sont ouvertes à tous les noeuds
du réseau blockchain.[49]
2.14.2 Inconvénients :
- Le temps nécessaire pour la prise en compte effective d’une transaction : En effet
les mineurs doivent valider le bloc puis recevoir la récompense du mining. Cette procédure
peut prendre énormément de temps.[48]
- L’anonymat : Le fait que les transactions se font de façon anonyme encourage le trafic et
le blanchiment d’argent.
- Augmentation du chômage : si par exemple tous les gens venaient à favoriser la crypto
monnaie cela pourrait conduire certains employés de banques au chômage.
Dans notre projet nous essayons d’introduire la technologie blockchain à l’iot pour essayer d’amé-
liorer cette dernière.
42
CHAPITRE 2. BLOCKCHAIN
Pour cela les experts ont pensé à combiner la blockchain à l’IoT pour lui offrir un service de
partage bien plus fiable et plus sécurisé.[50]
Les capacités décentralisées, autonomes et sans confiance de la blockchain en font un composant
idéal pour devenir un élément fondamental des solutions IoT. Il n’est pas surprenant que les tech-
nologies IoT d’entreprise soient rapidement devenues l’une des premières à adopter la technologie
blockchain.[51]
- Elle permet de connecter les objets comme les appareils du quotidien de façon transparente
et décentralisée.
- La blockchain peut traiter les échanges de messages entre les appareils d’un réseau IoT
en s’appuyant sur des contrats intelligents qui modéliseront ensuite l’accord entre les deux
parties.[51]
43
CHAPITRE 2. BLOCKCHAIN
2.17 Cross-blockchain :
La technologie cross-chain suscite un grand intérêt des chercheurs depuis l’émergence de la
blockchain. Le but de cette technologie est de permettre d’établir un pont entre des blockchains
homogènes et hétérogènes. La première technologie inter-chaînes à être réalisée est l’Interledger qui
est un protocole proposé par Ripple Labs.
Il existe différentes approches techniques pour mettre en œuvre la cross-chain, telles que les proto-
coles de relais,le hash lock , les sidechains (chaînes secondaires)et le schéma notarial.[52]
Nous allons étudier toutes ces approches pour mieux les comprendre :
2.17.2 Sidechain
La solution sidechain, sont des blockchains indépendantes qui fonctionnent en parallèle avec une
blockchain principale. Les sidechains permettent d’ajouter de nouvelles fonctionnalités, d’expéri-
menter de nouvelles technologies ou de résoudre des problèmes spécifiques sans altérer la blockchain
principale.
La sidechain est capable de soulager la pression sur la chaîne principale et peut stocker et trai-
ter seule une partie des transactions. Cependant, la technologie sidechain a augmenté la complexité
du système et introduit de nouveaux problèmes de sécurité, tels que le transfert frauduleux et la
centralisation minière.[52]
Le schéma notarié est une solution cross-chain qui est utilisée par le protocole Interledger. Cepen-
dant, il reste quand-même vulnérable à des attaques par des notaires malveillants. Il est également
incapable d’interagir avec les contrats intelligents à travers les chaînes. Certaines solutions inter-
chaînes tentent de recourir à des algorithmes de cryptographie tels que la multi-signature pour
résoudre le risque d’attaques.[52]
44
CHAPITRE 2. BLOCKCHAIN
Un hash time lock (HTLC) ou verrouillage temporel par hachage est un mécanisme utilisé dans les
protocoles de blockchain et de crypto-monnaie afin de faciliter des transactions sécurisées et sans
confiance entre les parties.
Le concept est de poser un délai ou une condition temporelle spécifique sur une transaction. Il
garantit que la transaction ne peut pas être exécutée tant qu’une période de temps prédéterminée
ne s’est pas écoulée.
Lors de la réalisation des transactions inter-chaînes, les deux parties de la transaction peuvent
verrouiller les actifs. Ils posent un délai ou une condition temporelle spécifique sur une transaction.
Ils définissent l’heure correspondante et les conditions de déverrouillage par communication sans
l’intervention d’un tiers pour réaliser l’échange atomique.[52]
En général, les solutions d’interopérabilité ont trois avantages qui se démarquent. Ces derniers
sont :[53]
- Le coût : le coût de transfert des actifs et des données est un facteur important qui motive
les utilisateurs à utiliser un protocole.
- L’universalité : certaines solutions déplacent l’ensemble des données d’une chaîne à une autre.
La cross-chain présente des avantages considérables, Cependant son adoption reste limitée en
raison de certains obstacles majeurs.
- Les systèmes de blockchain ont besoin d’une fiabilité absolue de l’information. Il est très
difficile de confirmer la légitimité et la validité des transactions dans une autre chaîne.
- Lors d’une transaction, il faut s’assurer que le montant total de jetons sur la chaîne d’origine
ne sera pas réduit ou augmenté en raison de la chaîne croisée.
45
CHAPITRE 2. BLOCKCHAIN
2.19 Conclusion :
Dans ce chapitre nous avons présenté le principe général de la blockchain, cette dernière a ré-
volutionné le monde des transactions que ce soit de la crypto monnaie, des informations ou des
données.
Nous avons constaté que cette technologie peut être introduite dans différents domaines, ces der-
niers sont : la santé, le transport ou l’industrie. La blockchain a su apporter plus de sécurité et
d’intégrité à l’IoT.
Cette technologie ne cesse de se développer puisque la cross chain a vu le jour, elle vise à ré-
soudre le problème d’interopérabilité et d’améliorer la blockchain.
Par la suite nous avons abordé de récentes technologies cross chain à savoir les chaînes de re-
lais, les sidechains, le schéma notarial ainsi que le verrouillage par hachage.
Dans le chapitre suivant nous allons étudier et utiliser une nouvelle plateforme nommée Hyper-
ledger Fabric pour déployer un smart contract de véhicules.
46
CHAPITRE 3
IMPLÉMENTATION
47
CHAPITRE 3. IMPLÉMENTATION
3.1 Introduction
Comme nous l’avons expliqué précédemment,la technologie blockchain a permis l’émergence de
nouvelles applications dans divers domaines.
Dans ce chapitre, nous allons nous consacré à l’étude de la gestion des véhicules en ayant recours à
la plateforme hyperledger Fabric qui offre la possibilité de déployer des smart contract.
Dans cette partie de notre mémoire, nous allons voir comment installer Hyperledger Fabric et
comment l’utiliser pour mettre en place une blockchain. Nous allons également proposer un smart
contrat pour la gestion des véhicules.
Le smart contract permettra de définir les règles d’accès à la blockchain ainsi que les autorisa-
tions pour la modification des données. Il va également offrir les mécanismes de vérification et de
validation des transactions.
3.2 Performances du PC :
Pour l’application de la blockchain à l’IoT, nous avons eu recours à une machine DELL Latitude
7480 avec les caractéristiques suivantes :
3.3 Conception :
3.3.1 Hyperledger :
Hyperledger est un projet open source et une base de code de niveau entreprise. Le but princi-
pal de ce projet est de faire progresser la blockchain. Il a été réalisé en tant que projet de LINUX
Fondation.
Il existe plusieurs projets hyperledger. On peut citer comme exemples :[54]
- Hyperledger Sawtooth.
- Hyperledger Indy.
- Hyperledger Burrow.
- Hyperledger Iroha.
- Hyperledger Fabric.
Avant cela, il est important de connaître l’outil hyperledger Fabric et spécifier ses besoins pour
qu’il soit fonctionnel.
48
CHAPITRE 3. IMPLÉMENTATION
Hyperledger Fabric est un projet Hyperledger de Linux lancé en 2015, il propose la mise en place
d’une blockchain privée.[55]
Hyperledger Fabric propose la notion de canal. Ce système de canaux permet l’isolation totale
des transactions. En effet, cela offre la possibilité de partager les hachages sur le registre comme
preuve de transactions, tout en gardant les données de la transaction privées.[55]
Hyperledger fabric est une implémentation d’une plateforme de registre distribuée pour l’exécu-
tion des contrats intelligents. Les smart contracts dans Hyperledger Fabric peuvent être écrits dans
des langages différents. Ils peuvent être écrit en go, java script ou autre.[54]
Javascript :
Javascript est un langage de programmation de haut niveau. Il est surtout utilisé pour les
applications WEB. Il travaille généralement avec le HTML et le CSS mais il peut aussi être utilisé
dans d’autres applications. C’est un langage facile à utiliser.
Dans notre cas, nous avons privilégié le javascript pour les raisons citées précédemment.
- Une machine virtuelle dont notre choix a été porté sur ubuntu 20.04
- Docker, que nous avons téléchargé du site
:https ://store.docker.com/editions/community/docker-ce-desktop-
- Node js que nous avons téléchargé du site :https ://nodejs.org/en/download/
- Git que nous avons téléchargé du site :https ://git-scm.com/download/win
49
CHAPITRE 3. IMPLÉMENTATION
Docker est un conteneur dans lequel on peut lancer des applications logiciels.[55]
. Node.js :
Node.js est une plateforme libre en JavaScript, orientée vers les applications réseau. Elle permet
l’exécution de JavaScript côté serveur. En outre, elle permet de créer des applications réseaux
évolutives grâce à son fonctionnement non bloquant.[55]
50
CHAPITRE 3. IMPLÉMENTATION
Le contrôle d’accès dans Hyperledger Fabric provient du niveau consortium qui crée les règles
et les politiques du contrôle d’accès.Il fera ensuite partie du bloc genesis. [56]
La figure(3.2) est une représentation du réseau Vanet connecté grâce a la blockchain. Tout d’abord,
nous remarquons qu’il existe différentes communications importantes : une communication v2v qui
s’effectue entre les véhicules. Une autre communication qui concerne les véhicules et les RSU. La
dernière communication concerne les RSU et le cloud serveur network où se trouve le réseau block-
chain.
Toutes ces communications seront sécurisées et cela grâce à la blockchain.
51
CHAPITRE 3. IMPLÉMENTATION
Commandes
1 Ouvrez powershell en mode administrateur.
2 Activez le sous-système Windows pour Linux :
dism.exe /online /enable-feature /featurename :Microsoft-Windows-Subsystem-Linux /all /norestart
3 Activer la fonctionnalité de machine virtuelle :
dism.exe /online /enable-feature /featurename :VirtualMachinePlatform /all /norestart
4 Définir WSL-2 comme version par défaut :
wsl –set-default-version 2
5 Installez l’application Ubuntu à partir du Windows Store :
Ouvrez le Microsoft Store et installez Ubuntu 20.04 LTS.
6 Installez windows terminal :
Avec ce dernier on peut accéder l’invité de commande Ubuntu.
7 Télécharger le package de mise à jour du noyau Linux :
Pour mettre à jour la configuration de téléchargement du package WSL :
https ://wslstorestorage.blob.core.windows.net/wslblob/wslu pdatex 64.msi
il faut être en mode administrateur.
8 Ouvrez le terminal Windows et ajoutez un nouvel onglet ubuntu.
Et ajoutez une nouvelle section de terminal.
9 Ouvrez installé, "Ubuntu 20.04 LTS" une fois, afin qu’il soit lié au terminal Windows.
10 Faire une mise à jour et installation des packages de base pour Ubuntu.
sudo apt update and sudo apt upgrade
11 Activer Docker pour Ubuntu :
Allez aux paramètres
- Ressources
- intégration WSL
- Activer Ubuntu-20.04
- Appuyez ensuite sur Appliquer et redémarrez
Après avoir activé cela, nous aurons docker dans la ligne de commande Ubuntu.
12 Exécutez la commande suivante pour vérifier si vous pouvez y accéder sur Ubuntu :
docker –version
docker-compose –version
13 Exécutez la commande suivante pour installer et mettre à jour les packages de base sur Ubuntu :
sudo apt update
sudo apt upgrade
14 Vérifiez si cURL existe déjà :
curl –v
15 Si CURL n’existe pas, installez-le via la commande suivante :
sudo apt-get install curl
16 Vérifiez si Go lang existe :
go version
17 Si Go ne s’installe pas, procédez comme suit :
Téléchargez le package Go lang pour Linux à partir :
sudo wget https ://golang.org/dl/go1.16.3.linux-amd64.tar.gz
52
CHAPITRE 3. IMPLÉMENTATION
18 La commande suivante extraira le fichier zip à l’emplacement téléchargé :tar xvf go1.16.3.linux-amd
64.tar.gz
19 Définissez GOPATH à l’aide de la commande suivante :
export GOPATH= :$HOME/go
export PATH =$PATH :$GOPATH/bin
20 Exécutez la commande suivante pour vérifier que Go lang est correctement installé :
go version
21 Exécutez la commande suivante si git est installé :
git -–version
22 Installez Hyperledger Fabric :
Note :La Hyperledger fabric version est 2.3.2
23 Créez un répertoire avec la commande suivante :
Créez un nouveau répertoire : mkdir -p $HOME/go/src/github.com/
Accédez à ce répertoire créé : cd $HOME/go/src/github.com/
24 Téléchargez la dernière version des échantillons de tissu et des images Docker.
Exécutez la commande suivante sous $HOME/go/src/github.com/ directory
curl -sSL https ://bit.ly/2ysbOFE | bash -s
25 navigate to fabric folder :
cd $wsl
cd go/src/github.com/fabric-samples
26 utilisez la commande : cd test-network.
Ensuite exécutez la commande suivante pour supprimer tout conteneur
ou artefact existant de l’exécution précédente.
./network.sh down
27 L’exécution suivante démarrera le réseau de test de fabric :
./network.sh up
28 Exécutez la commande suivante pour répertorier toutes les images Docker en cours d’exécution :
docker ps –a
53
CHAPITRE 3. IMPLÉMENTATION
- La commande npm init est utilisée pour initialiser un projet Node.js et générer un fichier
package.json qui décrit les dépendances du projet.
- La commande npm install fabric-shim permet d’importer une bibliothèque Node.js. Elle
fournit une interface entre le smart contract et offre des méthodes pour accéder à la base
de données de l’état.Elle permet également de gérer les transactions, de les valider et de
récupérer les informations sur l’utilisateur.
- Par la suite, nous avons créé un fichier qui englobe les points de sorties de notre smart
contrat. Nous avons nommé ce fichier indexx.js.
Puis nous avons créé un répertoire lib qui va contenir notre smart contrat de type VANET.
Ce dernier sera nommé véhicule.js
- Pour passer à la commande suivante, nous avons d’abord vérifier si nous possédons le fichier
docker.servie. Pour cela nous avons utilisé la commande.
En exécutant cette commande nous avons remarqué que le fichier n’existait pas. C’est pour
cette raison qu’il a été importé avec la commande
54
CHAPITRE 3. IMPLÉMENTATION
Cette commande permet juste d’importer le fichier. Nous devons donc l’ajouter dans le
répertoire test-network en exécutant la commande :
55
CHAPITRE 3. IMPLÉMENTATION
56
CHAPITRE 3. IMPLÉMENTATION
- Pour la suite, il est nécessaire de changer de répertoire pour pouvoir créer un package de la
chaincode. Le répertoire en question est :.
pfe@DESKTOP−HE7KF19: ~ / go / s r c / g i t h u b . com/ f a b r i c −s a m p l e s / a s s e t −t r a n s f e r −b a s i c /
c h a i n c o d e −j a v a s c r i p t $ npm i n s t a l l
On peut vérifier la version de notre peer grâce à la commande peer version comme montré
en figure(3.7).
Elle permet de créer notre package (pour notre cas, nous lui avons donné comme nom ba-
sic_1.0 pour pouvoir l’identifier par la ensuite)
57
CHAPITRE 3. IMPLÉMENTATION
- Maintenant que le package est bien créé, nous pouvons l’installer sur nos nœuds.
Il faut commencer par redéfinir les variables d’environnement et les certificat.Pour cela nous
avons introduit la commande :
Pour l’installation du package sur le premier noeud, nous avons appliquons la commande :
-
pfe@DESKTOP−HE7KF19: ~ / go / s r c / g i t h u b . com/ f a b r i c −s a m p l e s / t e s t −network$ p e e r
l i f e c y c l e c h a i n c o d e i n s t a l l b a s i c . t a r . gz
Comme résultat nous aurons l’apparition du code 200 en figure(3.8). Cela prouve que tout
s’est bien déroulé et que le package a été bien installé sur le nœud.
Le noeud numéro 2 nécessite les mêmes étapes que le noeud précédent pour l’installation du
package.
Ensuite nous avons redéfinit la variable de CC_PACKAGE_ID avec l’Id que nous avons
récupéré grâce à la commande précédente.
58
CHAPITRE 3. IMPLÉMENTATION
Il faut refaire les mêmes étapes pour l’organisation 1 avec les commandes suivantes :
59
CHAPITRE 3. IMPLÉMENTATION
3.6 Conclusion :
Dans ce chapitre nous avons commencé par définir l’outil hyperledger plus précisément Hyper-
ledger fabric qui est une plateforme qui permet de déployer des contrats intelligents. Ces contrats
peuvent être comme dans notre cas des contrats de gestions de véhicules. Cette plateforme per-
met de déployer des blockchains privées et d’améliorer la sécurité et l’intégrité. Par la suite, nous
avons expliqué toutes les étapes à suivre pour l’installation de l’outil et le déploiement du contrat
intelligent sur le réseau.
60
CONCLUSION GÉNÉRALE
L’internet des objets est une technologie du présent et du future. Cette tech-
nologie facilite énormément la vie des personnes. L’IoT devient plus performantes
en lui intégrant la blockchain qui lui apporte la transparence, la décentralisation et
la sécurité. Malgré ces défis, l’IoT et la blockchain continuent de susciter un inté-
rêt croissant dans de nombreux secteurs notamment dans l’industrie, le transport,
l’énergie, l’agriculture et la santé.
Dans ce mémoire nous avons abordé l’outil Hyperledger Fabric où nous avons détaillé
les étapes à suivre pour l’installation de cet outil.
Par la suite, nous avons intégré un smart contrat de véhicules en langage Java Script
dans l’environnement Hyperledger Fabric. Nous avons présenté de façon explicite
toutes les étapes de l’intégration du smart contract et de la validation de notre
chaincode.
Nous proposons pour les futures projets, d’essayer d’optimiser et d’améliorer les
protocoles de communications, d’introduire une cross-chain à Hyperledger Fabric en
essayant d’utiliser un pont entre eux pour les rendre compatible. En outre, nous
conseillerons aussi d’introduire d’autres smart contracts plus performants à Hyper-
ledger Fabric ou encore de déployer une blockchain ou une cross chain dans un autre
outil de la famille Hyperledger.
61
BIBLIOGRAPHIE
[1] Chayma BAHHAR, Chokri BACCOUCHE, Hedi SAKLI, "IoT et Intelligence Artificielle pour
lutter contre les incendies", Hal open science, 2022.
[2] Somia SAHRAOUI, "Mécanismes de sécurité pour l’intégration des RCSFs à l’IoT (Internet
of Things)", Thèse de Doctorat de l’Université de Batna 2, 2016.
[3] Badr Benmammar, "Optimisation des Perforamances de l’IoT : une approche basée sur la
radio intelligente", Article du livre La gestion et le contrôle intelligents des performances et
de la sécurité dans l’IoT, 2022.
[4] Rateb Jabbar, "Blockchain for the Internet of Vehicles : A Decentralized IoT Solution for
Vehicles Communication and Payment using Ethereum", Sensors, 2021.
[5] Darshan K.R, Anandakumar K.R, "A Comprehensive Review on Usage of Internet of Things
(IoT) in Healthcare System", IEEE, 2015.
[6] Keyur Patel, Sunil Patel, Érudit PG, Carlos Salazar, "Internet des objets-IOT : définition,
caractéristiques, architecture, technologies habilitantes, application et défis futurs", IJESC,
2016.
[7] Naceur BELHADJ et Abdelhak ABBAD, "La sécurité de l’Internet des Objets (IoT)", Mé-
moire de fin d’études l’université IBN-KHALDOUN DE TIARET, 2022.
[8] Pallavi Sethi, Smruti Sarangi, "Internet of Things : Architectures, Protocols, and Applica-
tions", Hindawi. Année 2017.
[9] BOUKHNAISSI Fatima Zohra et Ammaria, GHOMARI Ghizlane, "Conception d’un proto-
type IoT pour la régulation de la température d’un lieu", Mémoire de fin d’études l’université
de tlemcen, 2020.
[10] Ahmed Khalil, Nader Mbarek et Olivier Togni, "Adaptation du contrôle d’accès pour la
sécurité de l’IoT", ISTE Group, 2022.
[11] Sunil Pathak, Sonal Jaïn, "Un algorithme de clustering stable optimisé pour les réseaux
mobiles ad hoc", Springer, 2022.
[12] Ouiza DERRICHE, "Etude et simulation des attaques dans les réseaux ad-hoc", Mémoire de
fin d’études l’université Mouloud Mammeri De Tizi-Ouzou.
[13] Jyoti Grover, "Security of Vehicular Ad Hoc Networks using blockchain :A comprehensive
review", Elsevier, 2022.
[14] CHAIB Noureddine, "La sécurité des communications dans les réseaux VANET", Mémoire
de fin d’études l’université ELHADJ LAKHDER - BATNA.
[15] BOUKSANI WALID, "gestion de la protection de la vie privée dans les réseaux vehiculaires
(VANET)", Mémoire de fin d’études l’université du QUÉBEC, 2017.
[16] Céline BURGOD, "Contribution à la sécurisation du routage dans les réseaux ad hoc", Thèse
de Doctorat Limoges france.
62
BIBLIOGRAPHIE
[17] Thibault Langlois-Berthelot, Pauline ELIE, SEGHIER Neil, "Blockchain et Digital ID Wal-
let :vers une identité européenne décentralisée ?", Hal science, 2022.
[18] Patrick Barban, " La blockchain : un commun au service exclusif de l’appropriation ?", ope-
nedition : Cahiers de la recherche sur les droits fondamentaux, 2022.
[19] Sana Sabah Sabry, Nada Mahdi Kaittan, Israa Majeed Ali, "The road to the blockchain
technology : Concept and types", Periodicals of Engineering and Natural Sciences, 2019.
[20] Gautier Marin-Dagannaud, "Le fonctionnement de la blockchain", Annales des Mines - Réa-
lités industrielles, 2017.
[21] Michael Nofer, Peter Gomber, Oliver Hinz, Dirk Schiereck, "Blockchain", Springer, 2017.
[22] Alice Barbet-Massin, "Réflexions autour de la reconnaissance juridique de l’horodatage blo-
ckchain par le législateur italien", Hal science, 2019.
[23] Saurabh Dhumwad, Mandar Sukhadeve, Chetan Naik, Manjunath KN, Srikanth Prabhu, "A
Peer To Peer Money Transfer using SHA256 and Merkle Tree", IEEE, 2017.
[24] Ali Dorri, Marco Steger, Salil S. Kanhere, Raja Jurdak, "BlockChain : A Distributed Solution
to Automotive Security and Privacy", IEEE, 2017.
[25] M. Ronan LE GLEUT, "Comprendre les blockchains : fonctionnement et enjeux de ces nou-
velles technologies", Sénat, 2018.
[26] Mahendra Kumar Shrivas, "La blockchain perturbatrice : types, plates-formes et applica-
tions", 2019.
[27] Fatima Haider, "A Complete Guide to Consortium Blockchain And Its Features", Analytics
vidhya, 2023.
[28] Ariane Tichit, Corentin Elissée, Frédéric Hayek, Pascal Lafourcade, "La Blockchain, avenir
des monnaies locales ?", Hal science, 2022.
[29] Marion PIGNEL, "LA TECHNOLOGIE BLOCKCHAIN Une opportunité pour l’économie
sociale ?", pour la solidarité european think and do tank, 2019.
[30] Damilare Peter Oyinloye, Je Sen Teh, Norziana Jamil, Moatsum Alawida, "Blockchain
Consensus : An Overview of Alternative Protocols", Symmetry, 2021.
[31] Baliga, A, "Understanding Blockchain Consensus Models", Boca Raton, Floride, États-Unis :
CRC Press, 2017.
[32] Yang Zhen, Miao Yue, Chen Zhong-yu , Tang Chang-bing, Chen Xin, "Zero-determinant
Strategy for the Algorithm optimize of Blockchain PoW Consensus", IEEE, 2017.
[33] CONG T. NGUYEN, DINH THAI HOANG, DIEP N. NGUYEN, DUSIT NIYATO, HUYNH
TUONG NGUYEN, ERYK DUTKIEWICZ, "Proof-of-Stake Consensus Mechanisms for Fu-
ture Blockchain Networks : Fundamentals, Applications and Opportunities", IEEE, 2019.
[34] Fan Yang, Wei Zhou, Qingqing Wu, Rui Long, Neal N, Meiqi Zhou, "Delegated Proof of Stake
with Downgrade : A Secure and Efficient Blockchain Consensus Algorithm with Downgrade
Mechanism", IEEE, 2017.
[35] MANPREET KAUR, MOHAMMAD ZUBAIR KHAN, SHIKHA GUPTA, ABDULFATTAH
NOORWALI, CHINMAY CHAKRABORTY, SUBHENDU KUMAR PANI, "MBCP : Per-
formance Analysis of Large Scale Mainstream Blockchain Consensus Protocols", IEEE, 2021.
[36] Wazid, Mohammad, al. s.l, "Fortifying Smart Transportation Security Through Public Blo-
ckchain", IEEE, 2022.
[37] Liu.Y, Li.D et Li.Z, "PBSCF-ITS : A Public Blockchain Secure Communication Framework
for Intelligent Transportation Systems", IEEE, 2021.
[38] Wood, G. Ethereum :"A Secure DecentralizedGeneralized Transaction Ledger", Ethereum
project yellow paper.
[39] Xia, Q., et al, "MeDShare : Trust-less medical data sharing among cloud service providers
via blockchain", IEEE, 2017.
63
BIBLIOGRAPHIE
[40] Halima MHAMDI, Ahmed ZOUINKHI, Hédi SAKLI1, "La technologie blockchain en faveur
de véhicules connectés : état de l’art", Hal science, 2019.
[41] Stéphane Manuel, "Analyse et conception de fonctions de hachage cryptographiques", Thèse
de Doctorat école Polytechnique X PARIS.
[42] Meelu Padhi, Ravindra Chaudhari, "An Optimized Pipelined Architecture of SHA-256 Hash
Function", IEEE, 2017.
[43] Christoph Dobraunig, Maria Eichlseder, Florian Mendel, "Analyse de SHA-512/224 et SHA-
512/256", Springer, 2015.
[44] Véronica Schmitt, Jason Jordaan, "Établir la validité du hachage Md5 et Sha-1 dans la
pratique médico-légale numérique à la lumière de recherches récentes démontrant les faiblesses
cryptographiques de ces algorithmes", International Journal of Computer Applications, 2021.
[45] ABDULLAH AL MAMUN, SAMI AZAM, AND CLEMENTINE GRITTI, "Blockchain-Based
Electronic Health Records Management : A Comprehensive Review and Future Research
Direction", IEEE, 2022.
[46] Shafaq Naheed Khan, Faïza Loukil, Chirine Ghedira-Guégan, Elhadj Benkhelifa, Anoud Bani-
Hani, "Contrats intelligents Blockchain : applications, défis et tendances futures", Springer,
2021.
[47] ASM Touhidul Hasan, Shabnam Sabah, "Vers la convergence de l’IoT et de la blockchain
pour une transaction sécurisée de la chaîne d’approvisionnement", SYMMETRY, 2022.
[48] Mohamed Ahmed Mohamed, Chantal Taconet, Mohamed Ould Mohamed Lemine, "La tra-
çabilité dans les chaînes logistiques en utilisant l’IoT et la Blockchain", Hal science, 2019.
[49] Valery SIKORSKIY, "Financement du négoce des matières premières et fraudes documen-
taires : avantages et inconvénients des solutions blockchain", Thèse de doctorat Genève haute
école de géstion, 2021.
[50] Minhaj Ahmad Khan, Khaled Salah, "IoT security : Review, blockchain solutions, and open
challenges", Elsevier, 2018.
[51] Ahmed Banafa, "Convergence IoT et Blockchain : avantages et défis", IEEE, 2017.
[52] Yuhang Ding1, Yanran Zhang1, Bo Qin1, Qin Wang2ORCIDE, Zihan Yang et Wenchang
Shi, "Un schéma évolutif de contrôle d’accès et d’authentification d’identité inter-chaînes",
sensors, 2023.
[53] Daneshpajooh, M, "HotGate : Trustless Cross-chain Settlement Protocol", Mémoire Master
l’université de clombie, 2020.
[54] Christian Cachin, "Architecture of the Hyperledger Blockchain Fabric", IBM, 2016.
[55] Robin GUYOMAR, Maxence BOURGEAUX, Souhail KACIMI, "Programmation d’une Blo-
ckchain à l’aide de la plateforme Hyperledger", Travail personnel encadré de l’université le
havre normandie, 2021.
[56] Adnan Iftekhar, Xiaohui Cui, Qi Tao and Chengliang Zheng, "Hyperledger Fabric Access
Control System for Internet of Things Layer in Blockchain-Based Applications", Entropy,
2021.
[57] https ://youtu.be/jYY-rmOJYoo, consulté le 26 Avril 2023
https ://prasadpusalkar.blogspot.com/2023/04/InstallingHyperledgeron
Windows.html, consulté le 26 Avril 2023
[58] https ://www.une blockchain.fr/creer-un-smart-contract-sur-hyperledger-fabric/, consulté le
7 Mai 2023
https ://www.une-blockchain.fr/mettre-en-ligne-un-smart-contrat-sur-un-channel-
hyperledger-fabric/, consulté le 7 Mai 2023
64
Appendices
65
ANNEXE
’ use s t r i c t ’ ;
c o n s t V e h i c l e T r a c k i n g C o n t r a c t =r e q u i r e ( ’ . / l i b / v e h i c u l e . j s ’ ) ;
module . e x p o r t s . V e h i c l e T r a c k i n g C o n t r a c t=V e h i c l e T r a c k i n g C o n t r a c t ;
module . e x p o r t s . c o n t r a c t s s =[ V e h i c l e T r a c k i n g C o n t r a c t ] ;
2. Code véhicule.js
’ use s t r i c t ’ ;
c o n s t { C o n t r a c t } = r e q u i r e ( ’ f a b r i c −c o n t r a c t −a p i ’ ) ;
async i n i t L e d g e r ( ctx ) {
c o n s o l e . i n f o ( ’============= START : I n i t i a l i z e Ledger ===========’ ) ;
const v e h i c l e s = [
{
make : ’ T e s l a ’ ,
model : ’ Model S ’ ,
y e a r : ’ 2018 ’ ,
v i n : ’ 5YJSA1S25FF123456 ’ ,
owner : ’ John Doe ’
},
{
make : ’ Ford ’ ,
model : ’ Mustang ’ ,
y e a r : ’ 2020 ’ ,
v i n : ’ 1FA6P8CF9L5111111 ’ ,
owner : ’ Jane Smith ’
},
{
make : ’ Toyota ’ ,
model : ’ Camry ’ ,
y e a r : ’ 2021 ’ ,
v i n : ’ 4T1C11AK7MU555555 ’ ,
owner : ’ Bob Johnson ’
},
];
66
f o r ( l e t i = 0 ; i < v e h i c l e s . l e n g t h ; i ++) {
v e h i c l e s [ i ] . docType = ’ v e h i c l e ’ ;
a w a i t c t x . s t u b . p u t S t a t e ( v e h i c l e s [ i ] . vin , B u f f e r . from (JSON . s t r i n g i f y (
vehicles [ i ]) ) ) ;
c o n s o l e . i n f o ( ‘ Added v e h i c l e $ { v e h i c l e s [ i ] . v i n } t o t h e l e d g e r . ‘ ) ;
}
a s y n c q u e r y V e h i c l e ( ctx , v i n ) {
const vehicleAsBytes = await ctx . stub . g e t S t a t e ( vin ) ;
i f ( ! v e h i c l e A s B y t e s | | v e h i c l e A s B y t e s . l e n g t h === 0 ) {
throw new E r r o r ( ‘ V e h i c l e with VIN $ { v i n } d o e s not e x i s t . ‘ ) ;
}
console . log ( vehicleAsBytes . toString () ) ;
return vehicleAsBytes . toString () ;
}
67