- Nicolas Michelin - Architecte Urbaniste - Avis: Propos Sur L'Architecture, La Ville, L'Environnement (F)Binding : Taschenbuch, Edition : 01, Label : PARIS-MUSEES ASSOCIATION, Publisher : PARIS-MUSEES ASSOCIATION, medium : Taschenbuch, numberOfPages : 100, publicationDate : 2006-09-20, authors : Nicolas Michelin, Catherine Pierre, ISBN : 29156392217,57 €
Aucun commentaire pour cette image
Très heureux de rencontrer la première communauté ethereum à Jacksonville, merci Mark pour ton invitation et pour ta traduction
Nous verrons les meilleures pratiques pour la construction d'une architecture pour un projet Ethereum.
J'ai personnellement réalisé ces bonnes routines dans deux projets: dether_io, kleros, que je vous invite bien sûr à voir. Cette architecture est principalement inspirée du projet 0x, c'est un projet que je vous conseille de regarder. il s'agit d'un échange décentralisé.
///////////// Anglais ///////////////
Nous parlerons des bonnes pratiques pour construire une architecture pour un projet Ethereum.
Ces méthodes sont actuellement utilisées par moi personnellement sur deux projets: dether_io, kleros, que je présenterai aujourd'hui.
Cette architecture est principalement inspirée du projet 0x, un échange décentralisé.
Quelles vues devrions-nous voir?
D'abord l'architecture globale puis nous décrirons le design de chaque brique:
Le contrat intelligent
API: n
Et l'interface
///////////// Anglais ///////////////
Que faut-il voir?
Tout d'abord, l'architecture globale, puis nous examinerons la conception détaillée de chaque couche (bundle):
Le contrat intelligent
Api
Et l'interface
Voici le schéma global composé de 3 briques: la couche smart contract, l'API et l'interface.
La seule chose importante est l'entrepôt de contrat intelligent. Même si le serveur est en panne au niveau de l'interface, vous pouvez toujours communiquer avec le contrat intelligent.
En fait, toute la logique de l'application est uniquement dans le contrat intelligent, toutes les autres briques sont facultatives. L'avantage d'une telle architecture est que les développeurs peuvent plus facilement créer leur propre API ou interface. L'avantage de la couche API simplifie la mise en œuvre de l'interface et vous permet de vous connecter facilement à un bot.
Enfin, l'interface est destinée aux utilisateurs finaux.
—–
En général, comme nous le voyons au niveau du langage, la pile principale est souvent solidity / js pour la première brique et ensuite c'est js complet.
Voyons la première brique, la brique de contrat intelligente.
///////////// Anglais ///////////////
Voici le modèle global composé de 3 couches: la couche smart contract, l'api et l'interface.
La chose la plus importante est l'entrepôt de contrat intelligent. Même si le serveur est en panne au niveau de l'interface, vous pourrez toujours communiquer avec le contrat intelligent.
En fait, toute la logique de l'application se trouve uniquement dans le contrat intelligent, toutes les autres couches sont facultatives. L'avantage d'une telle architecture est que les développeurs peuvent plus facilement créer leur propre API ou interface. La couche API facilite la mise en œuvre de l'interface et facilite également la connexion à un bot.
Enfin, l'interface est destinée aux utilisateurs finaux.
—–
Au niveau du langage, la pile principale est souvent solidity / js pour la première couche puis le script Java complet pour le reste.
Parlons de la première couche, le contrat intelligent.
Le «contrat intelligent» (souvent composé de plusieurs contrats intelligents) communique directement avec le protocole. Il peut contenir un ou plusieurs «contrats intelligents» et peut se connecter à d'autres contrats intelligents, aux librairies.
///////////// Anglais ///////////////
La couche de contrat intelligent (souvent composée de plusieurs contrats intelligents) communique directement avec le protocole. Il peut contenir un ou plusieurs contrats intelligents et peut se connecter à d'autres contrats intelligents, aux bibliothèques.
Bien sûr, vous devez faire attention à ce que toutes les dépendances tierces soient fiables ou votre contrat intelligent peut ne plus fonctionner. les contrats intelligents qui utilisaient cette bibliothèque.
///////////// Anglais ///////////////
Bien sûr, il est très important d'être prudent afin que toutes les dépendances de tiers soient fiables, sinon votre contrat intelligent risque de ne plus fonctionner.
C'est ce qui s'est produit le mois dernier avec la «bibliothèque de contrats intelligents» à plusieurs chiffres de Parity qui a été tuée, entraînant une perte de 300 millions de dollars de fonds des contrats intelligents en raison de la bibliothèque de Parity.
Pour revenir à la conception de la couche de contrat intelligent
Voici à quoi ressemble la conception de briques "smart contract", nous avons des interfaces, des classes abstraites, des normes (pour connecter des contrats tiers) et des bibliothèques.
La logique propre au projet kleros se retrouve dans le contrat intelligent "kleros", ce "contrat" est lié à 2 autres contrats "Pinakion" pour gérer les tokens et le contrat "RNG" pour avoir un nombre aléatoire. Bien sûr, d'autres contrats intelligents peuvent utiliser ces outils.
— Afin de rejoindre le "smart agreement" pour avoir un arbitrage décentralisé, vous devez suivre la norme "arbitrage" et "arbitrage" (https://github.com/ethereum/EIPs/issues/792) puis sur a un exemple de "contrat intelligent" externe tel que "freelance_contract" qui utilise cet arbitre décentralisé.
///////////// Anglais ///////////////
Voici à quoi ressemble la conception de la couche "contrat intelligent", nous avons des interfaces, des classes abstraites, des normes (pour la connexion des accords avec des tiers) et des bibliothèques.
La logique propre au projet kleros se retrouve dans le contrat intelligent "kleros", ce contrat est lié à 2 autres contrats "Pinakion" pour gérer les tokens et le contrat "RNG" pour avoir un nombre aléatoire. Bien sûr, d'autres contrats intelligents peuvent utiliser ces outils.
—
Pour adhérer à l '"accord intelligent" pour avoir un arbitrage décentralisé, vous devez suivre la norme "arbitre" et "arbitre" (https://github.com/ethereum/EIPs/issues/792) puis vous avez un exemple sur un "smart contract" externe, par exemple "freelance_contract", qui utilise cet arbitre décentralisé.
En ce qui concerne les outils, le langage le plus populaire pour écrire des "contrats intelligents" et actuellement Solidity (ressemble à un mix JS / C), mais il y a aussi une viper qui ressemble à python.
Nous utilisons souvent le cadre truffier pour simplifier l'installation de bibliothèques tierces, pour distribuer des contrats intelligents et faire des tests.
L'IDE Remix peut être pratique pour avoir rapidement un environnement pour lancer et tester un contrat intelligent.
///////////// Anglais ///////////////
En ce qui concerne les outils, le langage le plus populaire pour écrire des contrats intelligents et est actuellement la solidité (similaire à un mélange js / c), mais il existe également des vipers qui ressemblent au langage python.
Le cadre truffier est souvent utilisé pour simplifier l'installation de bibliothèques tierces, pour distribuer des contrats intelligents et pour effectuer des tests.
L'IDE Remix peut être pratique pour avoir rapidement un environnement pour démarrer un contrat intelligent et le tester.
Maintenant, voyez la partie API, elle est connectée à la couche de contrat intelligent que nous venons de voir et souvent à une ou plusieurs bases de données décentralisées.
L'API est pratique car elle simplifie la mise en œuvre du "smart contract" pour le front (interface). Il peut, par exemple, utilisé pour un bot ou pour des développeurs / entreprises qui veulent leur propre interface utilisateur personnalisée.
Souvent, l'API est connectée à un "stockage" décentralisé tel que ipfs (Inter-Planetary Naming System) ou swarm qui est un peu similaire mais sur Ethereum. Le stockage des données étant souvent très onéreux, nous utilisons ces bases de données décentralisées. Le workflow est souvent celui-ci, nous économisons le hachage pour le document "on-chain" et nous publions le document sur l'une de ces bases de données décentralisées.
///////////// Anglais ///////////////
Voyons maintenant la partie API, elle est connectée à la couche de contrat intelligent que nous venons de voir et souvent à une ou plusieurs bases de données décentralisées.
L'API est pratique car, si elle est effectuée correctement, elle simplifie la mise en œuvre du contrat intelligent pour l'interface (interface). Il peut, par exemple, utilisé pour un bot, ou pour des développeurs / entreprises qui veulent leur propre interface utilisateur.
Souvent, l'API est connectée à un "stockage" décentralisé tel que ipfs (Inter-Planetary Naming System) ou swarm qui est un peu similaire mais sur Ethereum. Le stockage des données étant souvent très coûteux dans la chaîne, ces bases de données décentralisées sont utilisées. Le flux de travail est souvent l'endroit où nous enregistrons le hachage pour le document «en chaîne» et nous publions le document sur l'une de ces bases de données décentralisées.
Au niveau, la bibliothèque essentielle est souvent la bibliothèque web3 pour se connecter au nœud.
L'API est souvent une bibliothèque js, il est pratique de la télécharger (fil ajouté à myLib). Nous utilisons le framework suede et chai pour les tests. Et nous utilisons souvent une blockchain locale pour démarrer les tests: testrpc.
///////////// Anglais ///////////////
Au niveau, la bibliothèque essentielle est souvent la bibliothèque web3 pour se connecter au nœud.
L'API est souvent une bibliothèque js, c'est pratique à télécharger (`yarn add to myLib`).
Nous utilisons des cadres pour le moka et le chai pour les tests.
Et une blockchain locale est souvent utilisée pour exécuter les tests: testrpc.
En matière de conception d'API, nous associons souvent un contrat intelligent à une classe js. Par exemple, si nous avons le contrat intelligent `Kleros.sol`, nous trouverons un dossier` contract_wrapper & # 39; contenant & # 39; kleros.js & # 39; avec les méthodes publiques de ce contrat.
///////////// Anglais ///////////////
En matière de conception d'API, nous associons souvent un contrat intelligent à une classe js.
Par exemple, si nous avons le contrat intelligent Kleros. sol` on trouve un dossier `contract_wrapper & # 39; contenant & # 39; kleros. js & # 39; avec les méthodes publiques de ce contrat.
Enfin, l'interface communique avec l'API, de préférence sans avoir à se soucier de la logique de la blockchain. Il appelle simplement une méthode commerciale simple js.
Un bon exemple est la documentation pour 0x https://0xproject.com/docs/0xjs#zeroEx vous instanciez la bibliothèque et lorsque vous avez appelé des méthodes pour interagir avec la blockchain, par exemple avec cette bibliothèque vous pouvez créer une commande pour un commerce voir https : //0xproject.com/docs/0xjs#fillOrKillOrderAsync.
///////////// Anglais ///////////////
Enfin, l'interface communique avec l'api, de préférence elle n'a pas à se soucier de la logique de la blockchain. Elle appelle simplement à partir d'une méthode commerciale simple.
Un bon exemple est la documentation pour 0x https://0xproject.com/docs/0xjs#zeroEx vous instanciez la bibliothèque et ensuite vous appelez des méthodes pour interagir avec la blockchain, par exemple avec cette bibliothèque vous pouvez créer une commande pour un commerce voir https : //0xproject.com/docs/0xjs#fillOrKillOrderAsync.
Après, l'interface est d'autant plus classique. C'est réaction / réduction pour la bibliothèque, plaisanterie pour les tests. On peut aussi en faire une application web progressive, c'est un mix entre une application web et une application mobile mobile.
Voici une démo d'une application d'interface dde 0x: https://0xproject.com/portal
///////////// Anglais ///////////////
Après l'interface, tout est le plus classique. C'est de la réaction / réduction pour la librairie, je teste.
On peut aussi en faire une application web progressive, c'est un mix entre une application web et une application mobile mobile.
Voici une démo d'une interface dapp dde 0x: https://0xproject.com/portal
Cette architecture provient de ces différents projets: – 0x est un échange décentralisé – melonport est un logiciel de gestion d'actifs blockchain – dether qui est localbitcoin sur ethereum (un outil de trading en face à face) – kleros est un arbitre décentralisé
Vous avez les liens pour découvrir ces différents projets.
///////////// Anglais ///////////////
Cette architecture est le résultat de ces différents projets:
0x est un échange décentralisé
Melonport est un logiciel blockchain pour la gestion d'actifs
Découvrez qui est le bitcoin local sur Ethereum (un outil de trading en face à face)
Kleros est un arbitre décentralisé
Vous avez les liens pour découvrir ces différents projets.
Articles relatifs:
- Climatiseur mobile : choix - guide - test - Colonne…
- Boite à clef : meilleur avis - comparatif - avis -…
- Moteur à chaleur pour piscine : conseil - meilleur…
- Pompe à chaleur piscine : meilleur avis - avis -…
- Pompe à chaleur piscine : avis - meilleur guide -…
- Moteur à chaleur pompe piscine : comparatif - avis -…