Cryptomonnaie

Construire une application d'assurance avec Hyperledger Composer et React.js Partie 1

Construire une application d'assurance avec Hyperledger Composer et React.js Partie 1


Hyperledger Compositeur

Hyperledger Composer est un outil de création de réseaux d’entreprise à chaîne de blocs sur Hyperledger Fabric. Cela résume beaucoup de complexités impliquées dans la construction du réseau de blockchain.

Pour installer Hyperledger Composer, suivez les instructions ci-dessous: https://hyperledger.github.io/composer/latest/installing/installing-prereqs

Vue d'ensemble

Le système est une application d’assurance qui utilise la blockchain pour effectuer une analyse de risque plus efficace et plus sécurisée. Ceci est réalisé lorsque les assurés transfèrent leurs données entre assureurs, ce qui signifie que les assurés apportent leurs données à l'assureur.

Il y a deux participants dans le système:

Les assurés du système souhaitent procéder comme suit:

  • Ajouter des actifs
  • Accepter / refuser les offres d'assurance
  • Faire des réclamations

Les assureurs veulent pouvoir effectuer les tâches suivantes:

  • Voir les actifs ouverts à l'assurance
  • Faire des offres d'assurance
  • Approuver / refuser les réclamations

Les titulaires de police sont des personnes à la recherche d'une assurance ou ayant déjà souscrit une assurance pour un actif tel qu'une maison ou une voiture.

Les assureurs sont les entreprises proposant cette assurance aux assurés. Contrairement à l’assurance traditionnelle où le preneur d’assurance recherche la compagnie d’assurance, le preneur d’assurance fait connaître ses besoins en matière d’assurance au réseau de chaînes de blocs et les compagnies d’assurance font des offres.

L’analyse des risques sera mise en œuvre sous forme de code de chaîne qui s’exécutera automatiquement lorsqu'un preneur d’assurance recherche une assurance. Toutes les données relatives aux sinistres et aux actifs passés appartiennent à l’assuré et sont transmises à l’assureur. Elles ne restent pas chez l’assureur. Ces données seront utilisées pour effectuer une évaluation simple du preneur d'assurance et des exigences de son actif afin de fournir un score d'analyse de risque que les assureurs peuvent utiliser pour informer leurs offres d'assurance.

Comme ce système contiendra des données sensibles que nous ne voulons pas que tout le monde voie, nous devrons mettre en place des autorisations contrôlant l'accès à ces données personnelles.

Vue d'ensemble du système de haut niveau

la mise en oeuvre

Si vous n’avez pas déjà installé Hyperledger Composer et ses exigences, veuillez suivre les instructions suivantes: https://hyperledger.github.io/composer/latest/installing/installing-prereqs

Vous pouvez trouver tout le code ici sur GitHub: https://github.com/jackjulianhickey/Hyperledger-Insurance-Tutorial

Commençons par créer un dossier dans lequel stocker notre application:

mkdir insurance-application && cd insurance-application

Maintenant, laissez créer un squelette pour notre réseau d'affaires en utilisant yeoman

yo hyperledger-composer: businessnetwork

Nom du réseau d'entreprise: tutoriel sur l'analyse de risque
Description: tutoriel d'analyse de risque
Nom de l'auteur: votre nom
Email de l'auteur: votre email
Licence: Apache-2.0
Espace de noms: org.acme.riskanalysis
Voulez-vous générer un réseau de modèles vide? Oui

cd analyse de risque tutoriel

L'exécution de la commande ls devrait révéler les dossiers et fichiers suivants:
- des modèles
- package.json
- permissions.acl
- LISEZMOI.md

Alors d'abord nous voulons définir les participants de notre réseau que nous connaissons sont les souscripteurs et les assureurs. Pour ce faire, nous ouvrons le fichier org.acme.riskanalysis.cto qui se trouve dans le dossier models.

Les titulaires de police veulent également pouvoir ajouter des actifs tels qu’une maison ou une voiture. définir un actif appelé PrivateAsset et également une énumération appelée AssetType. PrivateAsset dépend du titulaire de la police, qui créera le bien. Il n’existe que 3 types d’actifs pouvant être ajoutés au système, définis par l’énumération AssetType.

Nous ajouterons deux autres types d'actifs, l'un pour faire une offre d'assurance et l'autre pour faire une réclamation.

Ensuite, nous devons définir nos transactions pour le réseau.

C'est ce que votre fichier de modèle complet devrait ressembler à:

Ensuite nous devons mettre en œuvre nos transactions et cela se fera comme chaincode.

Tout d'abord, vous devez créer un nouveau répertoire appelé lib dans le répertoire de base de notre projet de composition Hyperledger où vous verrez les fichiers tels que package.json ou, si vous vous trouvez dans le répertoire de modèles de votre terminal, exécutez la commande suivante:

mkdir ../lib/ && cd ../lib/

Dans le répertoire lib, nous allons maintenant créer un nouveau fichier appelé logic.js qui sera notre fichier de chaincode.

Voyons implémenter CreateNewAsset premier. Vous remarquerez que nous utilisons des décorateurs pour fournir des métadonnées à nos fonctions.

Maintenant que cela est fait, testons-le pour voir s’il fonctionne.

Premièrement, nous devons démarrer Hyperledger Fabric. Recherchez également le répertoire que vous avez téléchargé et exécutez les scripts comme suit:

cd ~ / fabric-dev-servers
./startFabric.sh
./createPeerAdminCard.sh

Notez que vous devez uniquement exécuter ./createPeerAdminCard.sh si vous n’avez pas déjà exécuté Hyperledger Fabric ou si vous avez déjà exécuté ./teardownFabric.sh.

Si vous rencontrez des problèmes avec ces commandes, essayez d’exécuter en tant que la mauvaise version du noeud peut causer des problèmes qui ne ressort pas des messages d'erreur émis.

utilisation nvm 8

Revenons maintenant au répertoire des analyses de risques et nous commencerons par déployer la version 0.0.1 de notre réseau.

Exécuter cette commande va générer un réseau d'affaires fichier d'archive nommé risk-analysis-tutorial@0.0.1.bna

archive compositeur create -t ​​dir -n.

Ensuite, nous allons installer notre réseau d'entreprise Composer sur l'homologue Hyperledger Fabric que nous avons mis en place

Composer réseau installer --card PeerAdmin @ hlfv1 --archiveFile risk-analysis-tutorial@0.0.1.bna

Maintenant nous pouvons démarrer notre réseau d'affaires ce qui peut prendre quelques minutes

composer réseau start --networkName analyse du risque - tutoriel --networkVersion 0.0.1 --administrateur réseau - administrateur réseau - AdminEnrollSecret adminpw --card PeerAdmin @ hlfv1 - fichier networkadmin.card

Alors juste importer l'identité de l'administrateur réseau en tant que carte réseau d'entreprise utilisable

compositeur carte import --file networkadmin.card

Pour tester si tout cela a réussi juste cingler le réseau

réseau compositeur ping --card admin @ risk-analysis-tutorial

À vérifier la version actuelle de votre réseau déployé

réseau compositeur ping -c admin @ risk-analysis-tutorial | grep Business

Hyperledger Composer peut générer une API REST sur mesure basée sur un réseau d'entreprise. Pour notre réseau, nous voulons simplement que cela reste simple pour le moment. Il suffit donc d’exécuter la commande suivante pour: créer notre API REST

composer-reste-serveur -c administrateur @ analyse-risque-tutoriel -n jamais -u vrai -w vrai

Maintenant vous pouvez tester l'API REST en accédant à

http: // localhost: 3000 / explorer

Vous devriez être présenté avec l'écran suivant

Serveur REST Hyperledger Composer

Nous devons le faire créer des assurés d’abord si nous voulons tester notre fonction CreateNewAsset, sélectionnez donc Détenteur de police, puis sélectionnez publier et entrez ce qui suit, puis cliquez sur l’essayer.

{
"$ class": "org.acme.riskanalysis.Policyholder",
"id": "joe",
"nom": "Joe",
"balance": "50000",
"noClaimsYears": "2"
}
réseau compositeur ping -c admin @ risk-analysis-tutorial | grep Business

À présent créer un autre preneur d'assurance, de la même manière, en utilisant les informations suivantes

{
"$ class": "org.acme.riskanalysis.Policyholder",
"id": "mary",
"nom": "Marie",
"balance": "50000",
"noClaimsYears": "5"
}

La réponse aux deux aurait dû être 200 sinon vérifiez ce message d'erreur et examinez votre code pour rechercher les erreurs potentielles.

Maintenant nous sommes prêts à tester la fonction CreateNewAsset. Pour cela, allez dans CreateNewAsset> Post. Créons une voiture pour Joe d’une valeur de 2000 et recherchant une assurance de 12 mois.

{
"$ class": "org.acme.riskanalysis.CreateNewAsset",
"policyholder": "ressource: org.acme.riskanalysis.Policyholder # joe",
"assetType": "CAR",
"valeur": 2000,
"durationInMonths": 12
}

Le code de réponse doit être 200 si tout fonctionne correctement. Si ce n'est pas le cas, vérifiez que tout fonctionne correctement et notez qu'il est sensible à la casse.

Maintenant, si vous allez dans PrivateAssets> Get, puis cliquez sur Essayez, vous devriez voir l'actif que nous venons de créer.

Maintenant, laisse juste arrêter le serveur REST en cliquant sur ctrl-c dans votre terminal et nous finirons d'écrire le reste de nos transactions.

le logique pour la transaction RiskAnalysis se contente de vérifier le type d’actif et le nombre d’années pendant lesquelles le preneur d’assurance n’a aucune réclamation et la valeur de l’actif.

À tester ceci allez dans votre fichier package.json et changer le numéro de version de 0.0.1 à 0.0.2, puis créez un nouveau fichier archive de réseau d'entreprise

archive composer créer --sourceType dir --sourceName. -a risk-analysis-tutorial@0.0.2.bna

installer le nouveau fichier

Composer réseau installer --card PeerAdmin @ hlfv1 --archiveFile risk-analysis-tutorial@0.0.2.bna

mettre à niveau le réseau

Composer mise à niveau réseau -c PeerAdmin @ hlfv1 -n tutoriel d'analyse de risque -V 0.0.2

Vérifiez que le réseau a été mis à niveau vers la version: 0.0.2

réseau compositeur ping -c admin @ risk-analysis-tutorial | grep Business

ensuite lancez votre serveur Composer REST encore

composer-reste-serveur -c administrateur @ analyse-risque-tutoriel -n jamais -u vrai -w vrai

Tous vos assurés et actifs que vous avez créés précédemment seront toujours là, donc inutile de les configurer à nouveau. Voyons l’identité de la voiture que nous avons ajoutée précédemment à Joe. ensuite aller à RiskAnalysis> Post et entrez dans ce qui suit remplacer ASSETID par votre identifiant d'actif.

{
"$ class": "org.acme.riskanalysis.RiskAnalysis",
"privateAsset": "ressource: org.acme.riskanalysis.PrivateAsset # ASSETID"
}

Retournez maintenant à PrivateAsset> Get et vous devriez voir que le score de l'analyse de risque est passé de 0 à 3.

Ensuite, passons implémenter MakeInsuranceOffer

Maintenant, laissez ajouter la possibilité de AcceptInsuranceOffer

Voyons implémenter CreateClaim

Remarquez comment cette fonction utilise une requête. Cette requête n'a pas encore été définie et cherche simplement à trouver l'offre d'assurance pour cet actif.

Donc pour implémenter cette requête créer un nouveau fichier appelé queries.qry dans le répertoire tutoriel d'analyse des risques et ajouter les lignes suivantes au fichier.

Nous avons juste besoin d’une autre fonction et c’est la capacité de traiter une réclamation.

Maintenant, testons tout cela mais commençons par mettre à jour le fichier package.json vers la version 0.0.3. ensuite lancer le jeu de commandes suivant.

archive composer créer --sourceType dir --sourceName. -a risk-analysis-tutorial@0.0.3.bna
Composer réseau installer --card PeerAdmin @ hlfv1 --archiveFile risk-analysis-tutorial@0.0.3.bna
Composer mise à niveau réseau -c PeerAdmin @ hlfv1 -n tutoriel d'analyse de risque -V 0.0.3

Maintenant, passons à la serveur API REST composer encore

composer-reste-serveur -c administrateur @ analyse-risque-tutoriel -n jamais -u vrai -w vrai

Alors commençons par création d'une compagnie d'assurance

{
"$ class": "org.acme.riskanalysis.InsuranceCompany",
"id": "awesomeInsurance",
"name": "The Awesome Insurance Company",
"balance": "0.0",
"assurancesContracts": "0"
}

Maintenant vous pouvez faites votre première offre d'assurance. Assurez-vous de remplacer l'ID d'actif.

{
"$ class": "org.acme.riskanalysis.MakeInsuranceOffer",
"policyholder": "ressource: org.acme.riskanalysis.Policyholder # joe",
"insuranceCompany": "ressource: org.acme.riskanalysis.InsuranceCompany # awesomeInsurance",
"privateAsset": "ressource: org.acme.riskanalysis.PrivateAsset # joe549963",
"Coût mensuel": 100
}

Maintenant, allez à AssuranceOffre> GET et vous devriez voir votre offre d’assurance nouvellement créée avec le statut en attente. Notez l'ID pour l'étape suivante.

Maintenant, en utilisant l'identifiant de l'offre d'assurance, testons l'acceptation de cette offre d'assurance. Aller à AcceptInsuranceOffer> POST et utilisez ce qui suit en remplaçant l'ID de l'offre par le vôtre.

{
"$ class": "org.acme.riskanalysis.AcceptInsuranceOffer",
"offer": "ressource: org.acme.riskanalysis.InsuranceOffer # OFFERID"
}

Vous devriez maintenant remarquer si vous allez à AssuranceOffre> GET et cliquez sur Essayez! vous devriez remarquer que le statut de l'offre d'assurance est maintenant accepté si tout a fonctionné comme suit.

Maintenant que les biens de Joe sont assurés, faisons un test de sinistre. CreateClaim> POST et entrez ce qui suit en remplaçant l’ID de ressource privé par le vôtre.

{
"$ class": "org.acme.riskanalysis.CreateClaim",
"privateAsset": "ressource: org.acme.riskanalysis.PrivateAsset # PRIVATEASSETID",
"policyholder": "ressource: org.acme.riskanalysis.Policyholder # joe",
"description": "Fenêtre fissurée",
"claimValue": 800
}

Si tout a fonctionné, vous devriez maintenant pouvoir obtenir cette revendication.

Enfin, nous pouvons tester la capacité de traiter cette demande. Aller à ProcessClaim> POST et n'oubliez pas de changer l'ID de la revendication.

{
"$ class": "org.acme.riskanalysis.ProcessClaim",
"claim": "ressource: org.acme.riskanalysis.Claim # CLAIMID",
"statut": "approuvé"
}

Maintenant quand tu vas à Revendiquer> GET vous devriez voir votre demande approuvée de la même manière que ce qui suit.

Dans la prochaine partie, nous examinerons l’intégration de notre réseau Hyperledger Fabric à une application Web frontale React.js. Ceci arrivera bientôt le lundi 17 juin.

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close