Architecture Azure Blockchain WorkbenchAzure Blockchain Workbench architecture

Azure Blockchain Workbench Preview simplifie le développement d’applications blockchain en proposant une solution qui utilise plusieurs composants Azure.Azure Blockchain Workbench Preview simplifies blockchain application development by providing a solution using several Azure components. Blockchain Workbench peut être déployé à l’aide d’un modèle de solution dans la Place de marché Microsoft Azure.Blockchain Workbench can be deployed using a solution template in the Azure Marketplace. Ce modèle permet aux utilisateurs de choisir les modules et les composants à déployer, comme la pile blockchain, le type d’application cliente et la prise en charge de l’intégration IoT.The template allows you to pick modules and components to deploy including blockchain stack, type of client application, and support for IoT integration. Une fois déployé, Blockchain Workbench fournit un accès à une application web, une application iOS et une application Android.Once deployed, Blockchain Workbench provides access to a web app, iOS app, and Android app.

Architecture Blockchain Workbench

Identité et authentificationIdentity and authentication

À l’aide de Blockchain Workbench, un consortium peut fédérer des identités d’entreprise à l’aide d’Azure Active Directory (Azure AD).Using Blockchain Workbench, a consortium can federate their enterprise identities using Azure Active Directory (Azure AD). Workbench génère de nouveaux comptes d’utilisateur pour les identités on-chain avec avec les identités d’entreprise stockées dans Azure AD.Workbench generates new user accounts for on-chain identities with the enterprise identities stored in Azure AD. Le mappage d’identité facilite la connexion authentifiée aux applications et API clients et utilise les stratégies d’authentification des organisations.The identity mapping facilitates authenticated login to client APIs and applications and uses the authentication policies of organizations. Workbench fournit également la possibilité d’associer des identités d’entreprise à des rôles spécifiques au sein d’un contrat intelligent donné.Workbench also provides the ability to associate enterprise identities to specific roles within a given smart contract. En outre, Workbench fournit un mécanisme pour identifier les actions que ces rôles peuvent entreprendre et à quel moment.In addition, Workbench also provides a mechanism to identify the actions those roles can take and at what time.

Une fois Blockchain Workbench déployé, les utilisateurs interagissent avec Blockchain Workbench via les applications clientes, l’API cliente basée sur REST ou l’API de messagerie.After Blockchain Workbench is deployed, users interact with Blockchain Workbench either via the client applications, REST-based client API, or Messaging API. Dans tous les cas, les interactions doivent être authentifiées via Azure Active Directory (Azure AD) ou par le biais d’informations d’identification spécifiques à l’appareil.In all cases, interactions must be authenticated, either via Azure Active Directory (Azure AD) or device-specific credentials.

Les utilisateurs fédèrent leurs identités dans un consortium Azure AD en envoyant un e-mail d’invitation aux participants à leur adresse e-mail.Users federate their identities to a consortium Azure AD by sending an email invitation to participants at their email address. Lors de la connexion, ces utilisateurs sont authentifiés à l’aide du nom, du mot de passe et des stratégies.When logging in, these users are authenticated using the name, password, and policies. Par exemple, l’authentification à deux facteurs de leur organisation.For example, two-factor authentication of their organization.

Azure AD permet de gérer tous les utilisateurs qui ont accès à Blockchain Workbench.Azure AD is used to manage all users who have access to Blockchain Workbench. Chaque appareil se connectant à un contrat intelligent est également associé à Azure AD.Each device connecting to a smart contract is also associated with Azure AD.

Azure AD est aussi utilisé pour affecter des utilisateurs à un groupe d’administration spécial.Azure AD is also used to assign users to a special administrator group. Les utilisateurs associés au groupe d’administrateurs ont accès à des droits et des actions dans Blockchain Workbench, comme le déploiement de contrats et l’octroi d’autorisations à un utilisateur pour qu’il accède à un contrat.Users associated with the administrator group are granted access to rights and actions within Blockchain Workbench including deploying contracts and giving permissions to a user to access a contract. Les utilisateurs en dehors de ce groupe n’ont pas accès aux actions de l’administrateur.Users outside this group do not have access to administrator actions.

Applications clientesClient applications

Workbench fournit des applications clientes générées automatiquement pour le web et les appareils mobiles (iOS, Android), qui peuvent être utilisées pour valider, tester et consulter des applications blockchain.Workbench provides automatically generated client applications for web and mobile (iOS, Android), which can be used to validate, test, and view blockchain applications. L’interface de l’application est générée de façon dynamique en fonction des métadonnées du contrat intelligent et peut prendre en charge tous les cas d’usage.The application interface is dynamically generated based on smart contract metadata and can accommodate any use case. Les applications clientes proposent une interface frontale orientée utilisateur pour les applications blockchain complètes générées par Blockchain Workbench.The client applications deliver a user-facing front end to the complete blockchain applications generated by Blockchain Workbench. Les applications clientes authentifient les utilisateurs via Azure Active Directory (Azure AD) et présentent une expérience utilisateur adaptée au contexte métier du contrat intelligent.Client applications authenticate users via Azure Active Directory (Azure AD) and then present a user experience tailored to the business context of the smart contract. L’expérience utilisateur permet de créer des instances de contrat intelligent par des personnes autorisées, puis d’exécuter certains types de transactions à des endroits appropriés du processus métier que le contrat intelligent représente.The user experience enables the creation of new smart contract instances by authorized individuals and then presents the ability to execute certain types of transactions at appropriate points in the business process the smart contract represents.

Dans l’application web, les utilisateurs autorisés peuvent accéder à la console Administrateur.In the web application, authorized users can access the Administrator Console. La console est disponible pour les utilisateurs du groupe d’administration dans Azure AD et fournit l’accès aux fonctionnalités suivantes :The console is available to users in the Administrator group in Azure AD and provides access to the following functionality:

  • Déploiement de contrats intelligents fournis par Microsoft pour des scénarios courants.Deploy Microsoft provided smart contracts for popular scenarios. Par exemple, un scénario de transfert de ressources.For example, an asset transfer scenario.
  • Chargement et déploiement de leurs propres contrats intelligents.Upload and deploy their own smart contracts.
  • Attribution d’un accès utilisateur au contrat intelligent dans le contexte d’un rôle spécifique.Assign a user access to the smart contract in the context of a specific role.

Pour plus d'informations, consultez les exemples d'applications clientes Azure Blockchain Workbench sur GitHub.For more information, see the Azure Blockchain Workbench sample client applications on GitHub.

API de service de passerelleGateway service API

Blockchain Workbench inclut une API de service de passerelle basée sur REST.Blockchain Workbench includes a REST-based gateway service API. Lorsque vous écrivez dans un blockchain, l’API génère des messages et les transmet à un répartiteur d’événements.When writing to a blockchain, the API generates and delivers messages to an event broker. Lorsque l’API demande des données, les demandes sont envoyées à la base de données off-chain.When data is requested by the API, queries are sent to the off-chain database. La base de données contient un réplica des métadonnées et données on-chain qui fournit des informations relatives à la configuration et au contexte pour les contrats intelligents pris en charge.The database contains a replica of on-chain data and metadata that provides context and configuration information for supported smart contracts. Les demandes renvoient les données requises à partir du réplica off-chain dans un format spécifié par les métadonnées pour le contrat.Queries return the required data from the off-chain replica in a format informed by the metadata for the contract.

Les développeurs peuvent accéder à l’API de service de passerelle pour créer ou intégrer les solutions blockchain sans dépendre des applications clientes Blockchain Workbench.Developers can access the gateway service API to build or integrate blockchain solutions without relying on Blockchain Workbench client apps.

Notes

Pour activer l’accès authentifié à l’API, deux applications clientes sont inscrites dans Azure Active Directory.To enable authenticated access to the API, two client applications are registered in Azure Active Directory. Azure Active Directory requiert des inscriptions d’applications distinctes pour chaque type d’application (native et web).Azure Active Directory requires distinct application registrations each application type (native and web).

Répartiteur de messages pour les messages entrantsMessage broker for incoming messages

Les développeurs qui souhaitent envoyer des messages directement à Blockchain Workbench peuvent envoyer des messages directement à Service Bus.Developers who want to send messages directly to Blockchain Workbench can send messages directly to Service Bus. Par exemple, les API de messages peuvent être utilisées pour l’intégration entre les systèmes ou les appareils IoT.For example, messages API could be used for system-to-system integration or IoT devices.

Répartiteur de messages pour les consommateurs en avalMessage broker for downstream consumers

Pendant le cycle de vie de l’application, des événements se produisent.During the lifecycle of the application, events occur. Des événements peuvent être déclenchés par l’API de passerelle ou sur le registre.Events can be triggered by the Gateway API or on the ledger. Des notifications d’événements peuvent initier le code en aval, en fonction de l’événement.Event notifications can initiate downstream code based on the event.

Blockchain Workbench déploie automatiquement les deux types de consommateurs d’événements.Blockchain Workbench automatically deploys two types of event consumers. L’un est déclenché par des événements blockchain pour remplir le magasin SQL off-chain.One consumer is triggered by blockchain events to populate the off-chain SQL store. L’autre permet de capturer les métadonnées des événements générés par l’API associée au chargement et au stockage des documents.The other consumer is to capture metadata for events generated by the API related to the upload and storage of documents.

Consommateurs de messagesMessage consumers

Des consommateurs de messages prennent des messages de Service Bus.Message consumers take messages from Service Bus. Le modèle d’événement sous-jacent pour les consommateurs de messages autorise les extensions de systèmes et services supplémentaires.The underlying eventing model for message consumers allows for extensions of additional services and systems. Par exemple, vous pouvez ajouter un support pour remplir CosmosDB ou évaluer des messages à l’aide d’Azure Stream Analytics.For example, you could add support to populate CosmosDB or evaluate messages using Azure Streaming Analytics. Les sections suivantes décrivent les consommateurs de messages inclus dans Blockchain Workbench.The following sections describe the message consumers included in Blockchain Workbench.

Consommateur de registre distribuéDistributed ledger consumer

Les messages de la technologie de registre distribué (DLT, Distributed Ledger Technology) contiennent les métadonnées des transactions à écrire dans le blockchain.Distributed ledger technology (DLT) messages contain the metadata for transactions to be written to the blockchain. Le consommateur récupère les messages et envoie (push) les données à un générateur de transactions, à un signataire et à un routeur.The consumer retrieves the messages and pushes the data to a transaction builder, signer, and router.

Consommateur de bases de donnéesDatabase consumer

Le consommateur de base de données prend des messages de Service Bus et envoie (push) les données à une base de données jointe, comme une base de données dans Azure SQL Database.The database consumer takes messages from Service Bus and pushes the data to an attached database, such as a database in Azure SQL Database.

Consommateur de stockageStorage consumer

Le consommateur de stockage prend des messages de Service Bus et envoie (push) les données à un stockage joint.The storage consumer takes messages from Service Bus and pushes data to an attached storage. Par exemple, le stockage des documents hachés dans Stockage Azure.For example, storing hashed documents in Azure Storage.

Générateur de transactions et signataireTransaction builder and signer

Si un message sur le répartiteur de messages entrants doit être écrit dans le blockchain, il sera traité par le consommateur DLT.If a message on the inbound message broker needs to be written to the blockchain, it will be processed by the DLT consumer. Le consommateur DLT est un service qui récupère le message contenant les métadonnées d’une transaction à exécuter, puis envoie les informations au générateur de transactions et au signataire.The DLT consumer is a service, which retrieves the message containing metadata for a desired transaction to execute and then sends the information to the transaction builder and signer. Le générateur de transactions et le signataire assemblent une transaction de blockchain basée sur les données et la destination de blockchain souhaitée.The transaction builder and signer assembles a blockchain transaction based on the data and the desired blockchain destination. Une fois assemblée, la transaction est signée.Once assembled, the transaction is signed. Les clés privées sont stockées dans Azure Key Vault.Private keys are stored in Azure Key Vault.

Blockchain Workbench récupère la clé privée appropriée auprès de Key Vault et signe la transaction en dehors de Key Vault.Blockchain Workbench retrieves the appropriate private key from Key Vault and signs the transaction outside of Key Vault. Une fois signée, la transaction est envoyée aux routeurs et registres de transaction.Once signed, the transaction is sent to transaction routers and ledgers.

Routeurs et registres de transactionTransaction routers and ledgers

Des routeurs et registres de transaction prennent les transactions signées et les acheminent vers le blockchain approprié.Transaction routers and ledgers take signed transactions and route them to the appropriate blockchain. Actuellement, Blockchain Workbench prend en charge Ethereum comme blockchain cible.Currently, Blockchain Workbench supports Ethereum as its target blockchain.

Observateur DLTDLT watcher

Un observateur DLT surveille les événements se produisant sur les blockchains joints à Blockchain Workbench.A distributed ledger technology (DLT) watcher monitors events occurring on block chains attached to Blockchain Workbench. Les événements reflètent les informations relatives aux individus et aux systèmes.Events reflect information relevant to individuals and systems. Par exemple, la création d’instances de contrat, l’exécution de transactions, ainsi que les modifications d’état.For example, the creation of new contract instances, execution of transactions, and changes of state. Les événements sont capturés et envoyés au répartiteur de messages sortants pour qu’ils puissent être utilisés par les consommateurs en aval.The events are captured and sent to the outbound message broker, so they can be consumed by downstream consumers.

Par exemple, le consommateur SQL surveille des événements, les utilise et remplit la base de données avec les valeurs incluses.For example, the SQL consumer monitors events, consumes them, and populates the database with the included values. La copie active la recréation d’un réplica des données on-chain dans un magasin off-chain.The copy enables recreation of a replica of on-chain data in an off-chain store.

Azure SQL DatabaseAzure SQL Database

La base de données jointe à Blockchain Workbench stocke les définitions de contrat, les métadonnées de configuration et un réplica compatible SQL des données stockées dans le blockchain.The database attached to Blockchain Workbench stores contract definitions, configuration metadata, and a SQL-accessible replica of data stored in the blockchain. Ces données peuvent facilement être interrogées, visualisées ou analysées en accédant directement à la base de données.This data can easily be queried, visualized, or analyzed by directly accessing the database. Les développeurs et les autres utilisateurs peuvent utiliser la base de données pour créer des rapports, effectuer des analyses ou d’autres intégrations orientées données.Developers and other users can use the database for reporting, analytics, or other data-centric integrations. Par exemple, les utilisateurs peuvent visualiser des données de transaction à l’aide de Power BI.For example, users can visualize transaction data using Power BI.

Ce stockage off-chain offre aux organisations professionnelles la possibilité d’interroger des données dans SQL plutôt que dans un registre blockchain.This off-chain storage provides the ability for enterprise organizations to query data in SQL rather than in a blockchain ledger. En outre, en effectuant une standardisation sur un schéma standard indépendant des piles de la technologie blockchain, le stockage off-chain permet de réutiliser les rapports et les autres artefacts entre les projets, scénarios et organisations.Also, by standardizing on a standard schema that's agnostic of blockchain technology stacks, the off-chain storage enables the reuse of reports and other artifacts across projects, scenarios, and organizations.

Stockage AzureAzure Storage

Stockage Azure est utilisé pour stocker les contrats, ainsi que les métadonnées associées.Azure Storage is used to store contracts and metadata associated with contracts.

Des bons de commandes et connaissements aux images utilisées dans les actualités et l’imagerie médicale, en passant par les vidéos de diverses origines, notamment des caméras mobiles des forces de l’ordre et des films, les documents occupent une place importante dans de nombreux scénarios orientés blockchain.From purchase orders and bills of lading, to images used in the news and medical imagery, to video originating from a continuum including police body cameras and major motion pictures, documents play a role in many blockchain-centric scenarios. Les documents ne sont pas appropriés pour être placés directement sur le blockchain.Documents are not appropriate to place directly on the blockchain.

Blockchain Workbench prend en charge la possibilité d’ajouter des documents ou d’autres contenus multimédias avec une logique métier blockchain.Blockchain Workbench supports the ability to add documents or other media content with blockchain business logic. Un code de hachage du contenu du document ou du contenu multimédia est stocké dans le blockchain, et le document ou le contenu multimédia réel est stocké dans Stockage Azure.A hash of the document or media content is stored in the blockchain and the actual document or media content is stored in Azure Storage. Les informations de transaction associées sont transmises au répartiteur de messages entrants, empaquetées, signées et acheminées vers le blockchain.The associated transaction information is delivered to the inbound message broker, packaged up, signed, and routed to the blockchain. Ce processus déclenche des événements, qui sont partagés via le répartiteur de messages sortants.This process triggers events, which are shared via the outbound message broker. La base de données SQL utilise ces informations et les envoie à la base de données pour les demander plus tard.The SQL DB consumes this information and sends it to the DB for later querying. Des systèmes en aval peuvent également utiliser ces événements pour agir comme il se doit.Downstream systems could also consume these events to act as appropriate.

SurveillanceMonitoring

Workbench propose un journal des applications utilisant Application Insights et Azure Monitor.Workbench provides application logging using Application Insights and Azure Monitor. Application Insights est utilisé pour stocker toutes les informations enregistrées à partir de Blockchain Workbench et inclut les erreurs, avertissements et opérations réussies.Application Insights is used to store all logged information from Blockchain Workbench and includes errors, warnings, and successful operations. Application Insights peut aider les développeurs à déboguer des problèmes avec Blockchain Workbench.Application Insights can be used by developers to debug issues with Blockchain Workbench.

Azure Monitor fournit des informations sur l’intégrité du réseau blockchain.Azure Monitor provides information on the health of the blockchain network.

Étapes suivantesNext steps