Le projet se concentre sur le développement d'un système de localisation device-to-device (D2D) en utilisant la technologie blockchain. Le projet vise à améliorer la précision et la sécurité des localisations en 2D et 3D. L'objectif du projet est de challenger une architecture de localisation 2D proposée par des membres de l'équipe NPA (du LIP6). Nous allons mesurer l'efficacité via l'utilisation de plusieurs blockchains et nous allons évaluer ses faiblesses face aux différentes attaques.
Le fichier .env permet de stocker les clés privées et publiques ainsi que les adresses des smart contracts. Le fichier doit être placé dans le répertoire python/ du projet et avoir le format suivant :
PRIVATE_KEY="@private_key"
PUBLIC_KEY="@public_key"
SM_TDOA="@sm_TDoA"
SM_REG="@sm_Reg"
SM_LOCATION="@sm_Location"
SM_CHECKLOC="@sm_CheckLoc"- web3
- logging
- dotenv
- numpy
- sklearn (scikit-learn)
-
Modification de la localisation (optionnelle)
Avant de commencer le déploiement, assurez-vous de modifier la localisation dans Remix :- Allez dans Solidity Compiler > Advanced Configuration > Sélectionnez un pays pour la configuration du contrat.
-
Configurer Metamask
- Sélectionnez le réseau Sonic dans Metamask. Si ce réseau n'est pas encore configuré, vous devrez ajouter le réseau Sonic à votre Metamask en renseignant les informations nécessaires du réseau (URL RPC, Chain ID, etc.).
-
Connecter Metamask à Remix
- Connectez votre compte Metamask à l'IDE Remix Ethereum via l'option Deploy & Run Transactions dans Remix. Cela permettra d'utiliser votre compte Metamask pour déployer les contrats.
-
Activer l'auto-compilation dans Remix
- Dans l'onglet Solidity Compiler, n'oubliez pas de sélectionner l'option Auto-compile afin que les contrats se compilent automatiquement dès qu'une modification est effectuée.
-
Déployer le contrat
smReg- Déployez le contrat smReg en premier. Vous pouvez effectuer des transactions à l'avance pour préparer la suite du déploiement.
- Assurez-vous que les types des variables correspondent à ce qui est attendu dans les paramètres.
-
Déployer le contrat
smLocationetsmCheckLoc- Une fois le contrat smReg déployé, déployez les contrats smLocation et smCheckLoc en utilisant l'adresse du contrat smReg comme paramètre. Cela permet aux contrats smLocation et smCheckLoc de se référer au contrat smReg.
-
Déployer le contrat
smTDoA- Ensuite, déployez le contrat smTDoA en utilisant l'adresse du contrat smLocation comme paramètre.
-
Effectuer les transactions
- Assurez-vous que toutes les transactions sont correctement effectuées pour chaque contrat.
- Pour vérifier que le déploiement et les transactions se sont déroulés correctement, vous pouvez filtrer les événements de transactions à l’aide de l’événement
TDoAComputeddans Remix. Cela vous permettra de confirmer que les données ont été traitées comme prévu et que les contrats sont correctement interconnectés.