Difference between revisions of "VT2017 XXX"

From air
Jump to navigation Jump to search
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
=Titre=
=ActionHero.Js=
 
  +
Hyperledger un projet qui a pour but de promouvoir la technologie BlockChain inter-industrie hébergé par The Linux Foundation, à ce jour il regroupe 5 projet à ce jour (Burrow, Sawtooth, Fabric, Indy et Iroha). Actuellement le projet le plus avancé est Fabric.
* Sujet : ActionHero.js
 
* Auteur : [[User:Aymeric.Vial-Grelier|Aymeric VIAL-GRELIER]]
 
* Enseignants : Didier Donsez, Georges-Pierre Bonneau
 
* Date : 27/10/2017
 
   
 
=Abstract=
[[File:AH.png|300px]]
 
  +
Hyperledger is a group of projects, created by The Linux Foundation. Its aim it's to promote BlockChain technologies for inter-industry domain. At this time Hyperledger merge 5 projects. The most advance is Fabric.
   
  +
=Hyperledger=
=Résumé=
 
   
  +
==Hyperledger ?==
ActionHero.js est un framework pour générer des API en javascript, utilisant Node.Js. Il permet notamment l’accès grâce à plusieurs moyens tels que TCP/http ou encore des websockets. Le développement d’une API multiplateforme est alors simplifié.
 
   
  +
Hyperledger est un projet open source collaboratif, utilisant la technologie blockchain. Il y a une communautée de développeurs construisant des frameworks et des plateformes, à destination des projets qui qui veulent utiliser Hyperledger. Leur but est qu'il y ai un maximum de personnes qui l'utilise, afin que ça devienne la nouvelles norme dans le domaine inter-industriel.
   
* Mots-clés : Framework, Javascript, Node.js, évenements, performance, multi-plateforme
 
 
=Abstract=
 
A serverless architecture is an architecture where developers don't have to care about the infrastructure (machine or VM), it's managed by a 3rd party. One of the biggest benefits of this kind of architecture is the scalability. Developers can focus on code and can create functions which will be triggered by an event. ''Apache OpenWhisk is a serverless, open source cloud platform that allows you to execute code in response to events at any scale. OpenWhisk handles the infrastructure and servers so you can focus on building amazing things'' (website definition). OpenWhisk is able to execute Javascript and Swift code. IBM, with ''IBM Function'', provide an OpenWhisk service.
 
 
* Keywords : Framework, Javascript, Node.js, events, performance, cross-plateform
 
   
  +
==Principe des blockchain==
=Synthèse=
 
  +
Le principe de la blockchain est qu'il n'y pas d'autorité centrale, c'est à dire qu'il y a un gros livre (ledger) distribué à tous les utilisateurs. Ce livre est une chaîne de bloc (blockchain). Tous les blocs ont un timbre et un hash qui font référence au blocs précédent. Afin de garantir que les données en puisse pas être modifiées après validation. Une transaction est publié après qu'elle soit validée, lorsqu'elle est validée tous les ledger distribués sont mis à jour. Ce système permet d'être fiable, sécurisé et traçable.
   
  +
==Architecture==
ActionHero.Js est un framework pour générer des API accessibles par plusieurs moyens. Comme tout framework celui ci permet de générer facilement et rapidement des API écrites en javascript.
 
  +
C'est un système constitué de plusieurs noeuds. La blockchain exécute des programmes appelés chaincode (ledger, données d'état et exécute des transactions).
Les technologies utilisées sont multiples. La première est un serveur Node.js afin de rendre les apis fonctionnelles. La seconde est l’utilisation de redis utilisé comme broker (gestion d’actions différées) ainsi que comme base de donnée NoSQL).
 
  +
Il y a deux types de transactions, les transactions de déploiement et la transactions d'invocations. L'action de déployer va créée une nouvelle chaincode et prend un programme en paramètre. Tandis que l'action d'invocation va exécuter une fonction sur une chaincode donnée.
ActionHero utilise Node.js, la programmation est donc évementielle. Les actions sont traitées une par une et peuvent ensuite appeler des callbacks.
 
  +
Les nœuds sont les entités de communication de la blockchain, il y a plusieurs 3 types de noeuds. Les noeuds Client, Peer et Orderer.
[[File:AH2.png|300px]]
 
[[File:AH1.png|300px]]
 
ActionHero.js fourni 3 serveurs différents. Un serveur web répondant a des requêtes http, le second un système de websocket, et enfin le dernier une plateforme de socket TCP.
 
Nativement toutes les actions (fonctionnalités de l’api dans ActionHero.js) sont accessibles via tous les accès cités précédemment. C’est l’avantage particulier de ce framework quand on le compare à sa concurrence (Sails.js par exemple).
 
Toutes les actions sont définies dans un répertoire particulier défini par le framework, et toutes les actions peuvent être appelées par des URLS définies dans un fichier particulier. C’est également le cas pour TCP toute action est immédiatement accessible.
 
Côté performance, les performances sont semblables à toute architecture basée sur Node.JS, elles sont donc très bonnes.
 
   
  +
Le noeud client représente l'entité qui se connecte à un peer pour communiquer avec la blockchain. Ils créent et invoquent des transactions.
En conclusion ActionHero.js est un excellent framework dans le cas ou l’on souhaite programmer une API accessible via plusieurs protocoles. La documentation complète permet de comprendre rapidement comment évoluer dans le codage de la dite API.
 
   
  +
Le noeud peer reçoivent des mises à jour d'état sous forme de blocs. Il à une fonction particulière qui consiste à valider une transaction avant qu'elle ne soit validée.
=Webographie=
 
   
  +
Les noeuds orderer garantissent la livraison.
* https://www.actionherojs.com/
 
* https://stackshare.io/stackups/actionherojs-vs-expressjs-vs-hapi
 
* https://github.com/actionhero/actionhero
 
* https://www.upwork.com/hiring/development/15-node-js-frameworks-to-know/
 

Latest revision as of 14:47, 5 December 2017

Titre

Hyperledger un projet qui a pour but de promouvoir la technologie BlockChain inter-industrie hébergé par The Linux Foundation, à ce jour il regroupe 5 projet à ce jour (Burrow, Sawtooth, Fabric, Indy et Iroha). Actuellement le projet le plus avancé est Fabric.

Abstract

Hyperledger is a group of projects, created by The Linux Foundation. Its aim it's to promote BlockChain technologies for inter-industry domain. At this time Hyperledger merge 5 projects. The most advance is Fabric.

Hyperledger

Hyperledger ?

Hyperledger est un projet open source collaboratif, utilisant la technologie blockchain. Il y a une communautée de développeurs construisant des frameworks et des plateformes, à destination des projets qui qui veulent utiliser Hyperledger. Leur but est qu'il y ai un maximum de personnes qui l'utilise, afin que ça devienne la nouvelles norme dans le domaine inter-industriel.


Principe des blockchain

Le principe de la blockchain est qu'il n'y pas d'autorité centrale, c'est à dire qu'il y a un gros livre (ledger) distribué à tous les utilisateurs. Ce livre est une chaîne de bloc (blockchain). Tous les blocs ont un timbre et un hash qui font référence au blocs précédent. Afin de garantir que les données en puisse pas être modifiées après validation. Une transaction est publié après qu'elle soit validée, lorsqu'elle est validée tous les ledger distribués sont mis à jour. Ce système permet d'être fiable, sécurisé et traçable.

Architecture

C'est un système constitué de plusieurs noeuds. La blockchain exécute des programmes appelés chaincode (ledger, données d'état et exécute des transactions). Il y a deux types de transactions, les transactions de déploiement et la transactions d'invocations. L'action de déployer va créée une nouvelle chaincode et prend un programme en paramètre. Tandis que l'action d'invocation va exécuter une fonction sur une chaincode donnée. Les nœuds sont les entités de communication de la blockchain, il y a plusieurs 3 types de noeuds. Les noeuds Client, Peer et Orderer.

Le noeud client représente l'entité qui se connecte à un peer pour communiquer avec la blockchain. Ils créent et invoquent des transactions.

Le noeud peer reçoivent des mises à jour d'état sous forme de blocs. Il à une fonction particulière qui consiste à valider une transaction avant qu'elle ne soit validée.

Les noeuds orderer garantissent la livraison.