Bereitstellen der Lösungsvorlage „Ethereum-Proof-of-Authority-Konsortium“ auf AzureDeploy Ethereum proof-of-authority consortium solution template on Azure

Sie können die Azure-Lösungsvorlage Ethereum-Proof-of-Authority-Konsortium verwenden, um das Bereitstellen, Konfigurieren und Steuern eines Multi-Member-Netzwerks für das Ethereum-Proof-of-Authority-Konsortium zu erleichtern, ohne dass ausführliche Azure- und Ethereum-Kenntnisse vorhanden sein müssen.You can use the Ethereum Proof-of-Authority Consortium preview Azure solution template to deploy, configure, and govern a multi-member consortium proof-of-authority Ethereum network with minimal Azure and Ethereum knowledge.

Die Lösungsvorlage kann von jedem Konsortiummitglied verwendet werden, um mithilfe Microsoft Azure-Dienste für Compute-, Netzwerk- und Speicherfunktionen einen Blockchainnetzwerkspeicherbedarf anzugeben.The solution template can be used by each consortium member to provision a blockchain network footprint using Microsoft Azure compute, networking, and storage services. Der Netzwerkfußabdruck jedes Konsortiummitglieds umfasst einige Validierungsknoten mit Lastenausgleich, über die eine Anwendung oder ein Benutzer interagieren kann, um Ethereum-Transaktionen zu übermitteln.Each consortium member's network footprint consists of a set of load-balanced validator nodes that an application or user can interact with to submit Ethereum transactions.

Wichtig

Azure Blockchain-Lösungsvorlagen befinden sich in der öffentlichen Vorschau.Azure Blockchain solution templates are in public preview. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.For more information, see Supplemental Terms of Use for Microsoft Azure Previews. Azure Blockchain-Lösungsvorlagen werden ohne Vereinbarung zum Servicelevel bereitgestellt.Azure Blockchain solution templates are provided without a service level agreement. Nutzen Sie die Frageseite von Microsoft Q&A (Fragen und Antworten) zur Unterstützung.Use the Microsoft Q&A question page for support. Die technische Unterstützung für Blockchain-Vorlagen ist auf Bereitstellungsprobleme beschränkt.Engineering support for blockchain templates is limited to deployment issues.

Auswählen einer Azure Blockchain-LösungChoose an Azure Blockchain solution

Bevor Sie sich für die Lösungsvorlage „Ethereum-Proof-of-Authority-Konsortium“ entscheiden, sollten Sie Ihr Szenario mit den gängigen Anwendungsfällen der verfügbaren Azure Blockchain-Optionen vergleichen.Before choosing to use the Ethereum proof-of-authority consortium solution template, compare your scenario with the common use cases of available Azure Blockchain options.

OptionOption DienstmodellService model Gängiger AnwendungsfallCommon use case
LösungsvorlagenSolution templates IaaSIaaS Lösungsvorlagen sind Azure Resource Manager-Vorlagen, die Sie verwenden können, um eine vollständig konfigurierte Blockchainnetzwerktopologie bereitzustellen.Solution templates are Azure Resource Manager templates you can use to provision a fully configured blockchain network topology. Die Vorlagen stellen Microsoft Azure-Dienste für Compute-, Netzwerk- und Speicherfunktionen für einen bestimmten Blockchainnetzwerktyp bereit und konfigurieren diese.The templates deploy and configure Microsoft Azure compute, networking, and storage services for a given blockchain network type. Lösungsvorlagen werden ohne Vereinbarung zum Servicelevel bereitgestellt.Solution templates are provided without a service level agreement. Nutzen Sie die Frageseite von Microsoft Q&A (Fragen und Antworten) zur Unterstützung.Use the Microsoft Q&A question page for support.
Azure Blockchain ServiceAzure Blockchain Service PaaSPaaS Mit der Vorschauversion von Azure Blockchain Service wird die Einrichtung, Verwaltung und Governance von Konsortiumblockchainnetzwerken vereinfacht.Azure Blockchain Service Preview simplifies the formation, management, and governance of consortium blockchain networks. Setzen Sie Azure Blockchain Service für Lösungen ein, bei denen PaaS, Konsortiumverwaltung oder Datenschutz für Vertrags- und Transaktionsaktivitäten erforderlich ist.Use Azure Blockchain Service for solutions requiring PaaS, consortium management, or contract and transaction privacy.
Azure Blockchain WorkbenchAzure Blockchain Workbench IaaS und PaaSIaaS and PaaS Azure Blockchain Workbench (Vorschauversion) ist eine Sammlung mit Azure-Diensten und -Funktionen zum Erstellen und Bereitstellen von Blockchain-Anwendungen, mit denen Geschäftsprozesse und Daten mit anderen Organisationen gemeinsam genutzt werden können.Azure Blockchain Workbench Preview is a collection of Azure services and capabilities designed to help you create and deploy blockchain applications to share business processes and data with other organizations. Verwenden Sie Azure Blockchain Workbench, um einen Prototyp für eine Blockchainlösung oder einen Proof of Concept für eine Blockchainanwendung zu erstellen.Use Azure Blockchain Workbench for prototyping a blockchain solution or a blockchain application proof of concept. Azure Blockchain Workbench wird ohne Vereinbarung zum Servicelevel bereitgestellt.Azure Blockchain Workbench is provided without a service level agreement. Nutzen Sie die Frageseite von Microsoft Q&A (Fragen und Antworten) zur Unterstützung.Use the Microsoft Q&A question page for support.

LösungsarchitekturSolution architecture

Mit der Ethereum-Lösungsvorlage können Sie Multi-Member-Netzwerke für Ethereum-Proof-of-Authority-Konsortien für eine oder mehrere Regionen bereitgestellt werden.Using the Ethereum solution template, you can deploy a single or multi-region based multi-member Ethereum proof-of-authority consortium network.

Bereitstellungsarchitektur

Jede Bereitstellung von Konsortiumsmitgliedern umfasst Folgendes:Each consortium member deployment includes:

  • Virtuelle Computer für die Ausführung der PoA-ValidierungssteuerelementeVirtual Machines for running the PoA validators
  • Azure Load Balancer für die Verteilung von RPC-, Peering- und Governance-DApp-AnforderungenAzure Load Balancer for distributing RPC, peering, and governance DApp requests
  • Azure Key Vault zum Schützen der ValidierungselementidentitätenAzure Key Vault for securing the validator identities
  • Azure Storage zum Hosten von persistenten Netzwerkinformationen und Koordinieren des LeasensAzure Storage for hosting persistent network information and coordinating leasing
  • Azure Monitor zum Aggregieren von Protokollen und LeistungsstatistikenAzure Monitor for aggregating logs and performance statistics
  • VNET-Gateway (optional) zum Zulassen von VPN-Verbindungen über private VNETsVNet Gateway (optional) for allowing VPN connections across private VNets

Standardmäßig sind die RPC- und Peeringendpunkte über die öffentliche IP-Adresse zugänglich, um eine vereinfachte Konnektivität über Abonnements und Clouds zu ermöglichen.By default, the RPC and peering endpoints are accessible over public IP to enable simplified connectivity across subscriptions and clouds. Für die Zugriffssteuerung auf Anwendungsebene können Sie Parity-Verträge zur Berechtigungsvergabe verwenden.For application level access-controls, you can use Parity's permissioning contracts. Es werden Netzwerke unterstützt, die hinter VPNs mit VNET-Gateways für abonnementübergreifende Konnektivität bereitgestellt werden.Networks deployed behind VPNs, which leverage VNet gateways for cross-subscription connectivity are supported. Da VPN- und VNET-Bereitstellungen komplexer sind sollten Sie beim Erstellen eines Prototyps für eine Lösung mit einem öffentlichen IP-Modell beginnen.Since VPN and VNet deployments are more complex, you may want to start with a public IP model when prototyping a solution.

Docker-Container sorgen für Zuverlässigkeit und Modularität.Docker containers are used for reliability and modularity. Azure Container Registry wird verwendet, um im Rahmen jeder Bereitstellung Images mit Versionsangabe zu hosten und bereitzustellen.Azure Container Registry is used to host and serve versioned images as part of each deployment. Die Containerimages bestehen aus:The container images consist of:

  • Orchestrator: generiert Identitäten und Governanceverträge,Orchestrator - Generates identities and governance contracts. speichert Identitäten in einem IdentitätsspeicherStores identities in an identity store.
  • Parity-Client: least Identitäten aus dem Identitätsspeicher,Parity client - Leases identity from the identity store. ermittelt Peers und stellt die Verbindung damit herDiscovers and connects to peers.
  • EthStats-Agent: erfasst lokale Protokolle und Statistiken per RPC und überträgt Informationen mithilfe von Push an Azure MonitorEthStats Agent - Collects local logs and stats via RPC and pushes information to Azure Monitor.
  • Governance-DApp: Webschnittstelle für die Interaktion mit GovernanceverträgenGovernance DApp - Web interface for interacting with Governance contracts.

ValidierungsknotenValidator nodes

Beim Proof-of-Authority-Protokoll übernehmen Validierungsknoten die Rolle der herkömmlichen Miningknoten.In the proof-of-authority protocol, validator nodes take the place of traditional miner nodes. Jedes Validierungssteuerelement verfügt über eine eindeutige Ethereum-Identität, die die Teilnahme am Blockerstellungsprozess ermöglicht.Each validator has a unique Ethereum identity allowing it to participate in the block creation process. Jedes Konsortiumsmitglied kann zwei oder mehr Validierungsknoten für fünf Regionen bereitstellen, um Georedundanz zu erzielen.Each consortium member can provision two or more validator nodes across five regions, for geo-redundancy. Validierungsknoten kommunizieren mit anderen Validierungsknoten, um sich über den Zustand des zugrunde liegenden Distributed Ledger abzustimmen.Validator nodes communicate with other validator nodes to come to consensus on the state of the underlying distributed ledger. Damit im Netzwerk eine faire Beteiligung sichergestellt wird, ist es allen Konsortiumsmitgliedern untersagt, mehr Validierungssteuerelemente als das erste Mitglied des Netzwerks zu verwenden.To ensure fair participation on the network, each consortium member is prohibited from using more validators than the first member on the network. Wenn das erste Mitglied beispielsweise drei Validierungssteuerelemente bereitstellt, kann jedes Mitglied nur drei Validierungssteuerelemente nutzen.For example, if the first member deploys three validators, each member can only have up to three validators.

IdentitätsspeicherIdentity store

Ein Identitätsspeicher wird im Abonnement jedes Mitglieds bereitgestellt, in dem die generierten Ethereum-Identitäten enthalten sind und geschützt werden.An identity store is deployed in each member's subscription that securely holds the generated Ethereum identities. Für jedes Validierungssteuerelement generiert der Orchestrierungscontainer einen privaten Ethereum-Schlüssel für und speichert ihn in Azure Key Vault.For each validator, the orchestration container generates an Ethereum private key and stores it in Azure Key Vault.

Bereitstellen des Ethereum-KonsortiumnetzwerksDeploy Ethereum consortium network

In dieser exemplarischen Vorgehensweise gehen wir davon aus, dass Sie ein Multi-Party-Netzwerk für das Ethereum-Konsortium erstellen.In this walk through, let's assume you are creating a multi-party Ethereum consortium network. Hier sehen Sie ein Beispiel für den Ablauf einer Multi-Party-Bereitstellung:The following flow is an example of a multi-party deployment:

  1. Drei Mitglieder generieren mit MetaMask jeweils ein Ethereum-Konto.Three members each generate an Ethereum account using MetaMask
  2. Mitglied A stellt einen Ethereum-PoA bereit und gibt seine öffentliche Ethereum-Adresse an.Member A deploys Ethereum PoA, providing their Ethereum public address
  3. Mitglied A stellt die Konsortiums-URL für Mitglied B und Mitglied C bereit.Member A provides the consortium URL to Member B and Member C
  4. Mitglied B und Mitglied C stellen Ethereum-PoA bereit und geben ihre öffentliche Ethereum-Adresse und die Konsortiums-URL von Mitglied A an.Member B and Member C deploy, Ethereum PoA, providing their Ethereum Public Address and Member A's consortium URL
  5. Mitglied A wählt per Abstimmung Mitglied B als Administrator aus.Member A votes in Member B as an admin
  6. Mitglied A und Mitglied B wählen beide Mitglied C als Administrator aus.Member A and Member B both vote Member C as an admin

In den nächsten Abschnitten wird veranschaulicht, wie Sie den Speicherbedarf des ersten Mitglieds im Netzwerk konfigurieren.The next sections show you how to configure the first member's footprint in the network.

Erstellen von RessourcenCreate resource

Klicken Sie im Azure-Portal in der linken oberen Ecke auf Ressource erstellen.In the Azure portal, select Create a resource in the upper left-hand corner.

Wählen Sie Blockchain > Ethereum Proof-of-Authority Consortium (Preview) (Blockchain > Ethereum-Proof-of-Authority-Konsortium (Vorschauversion)) aus.Select Blockchain > Ethereum Proof-of-Authority Consortium (preview).

GrundlagenBasics

Geben Sie unter Grundlagen Werte für die Standardparameter für jede Bereitstellung an.Under Basics, specify values for standard parameters for any deployment.

Grundlagen

ParameterParameter BESCHREIBUNGDescription BeispielwertExample value
Neues Netzwerk erstellen oder vorhandenem Netzwerk beitreten?Create a new network or join existing network Sie können ein neues Netzwerk erstellen oder einem bereits vorhandenen Konsortiumnetzwerk beitreten.You can create a new consortium network or join a pre-existing consortium network. Für den Beitritt zu einem vorhandenen Netzwerk sind zusätzliche Parameter erforderlich.Joining an existing network requires additional parameters. Neu erstellenCreate new
E-Mail-AdresseEmail Address Sie erhalten eine E-Mail-Benachrichtigung mit Informationen zu Ihrer Bereitstellung, wenn die Bereitstellung abgeschlossen ist.You receive an email notification when your deployment completes with information about your deployment. eine gültige E-Mail-AdresseA valid email address
VM-BenutzernameVM user name Benutzername des Administrators der einzelnen bereitgestellten virtuellen ComputerAdministrator username of each deployed VM die alphanumerischen Zeichen 1 bis 641-64 alphanumeric characters
AuthentifizierungsartAuthentication type Die Methode zur Authentifizierung des virtuellen Computers.The method to authenticate to the virtual machine. KennwortPassword
KennwortPassword Das Kennwort für das Administratorkonto jedes bereitgestellten, virtuellen Computers.The password for the administrator account for each of the virtual machines deployed. Alle VMs verfügen anfänglich über das gleiche Kennwort.All VMs initially have the same password. Sie können das Kennwort nach der Bereitstellung ändern.You can change the password after provisioning. 12 bis 72 Zeichen12-72 characters
SubscriptionSubscription Das Abonnement, für das das Konsortiumsnetzwerk bereitgestellt wird.The subscription to which to deploy the consortium network
RessourcengruppeResource Group Die Ressourcengruppe, für die das Konsortiumsnetzwerk bereitgestellt wird.The resource group to which to deploy the consortium network. myResourceGroupmyResourceGroup
StandortLocation Die Azure-Region für die Ressourcengruppe.The Azure region for resource group. USA, Westen 2West US 2

Klicken Sie auf OK.Select OK.

BereitstellungsregionenDeployment regions

Geben Sie unter Bereitstellungsregionen die Anzahl der Regionen und Standorte für die einzelnen Standorte an.Under Deployment regions, specify the number of regions and locations for each. Sie können in maximal fünf Regionen Bereitstellungen durchführen.You can deploy in maximum of five regions. Die erste Region sollte mit dem Ressourcengruppenstandort aus dem Abschnitt Grundlagen übereinstimmt.The first region should match the resource group location from Basics section. Für Entwicklungs- oder Testnetzwerke können Sie eine einzelne Region pro Mitglied verwenden.For development or test networks, you can use a single region per member. Für die Produktion sollten Sie mindestens zwei Regionen bereitstellen, um Hochverfügbarkeit sicherzustellen.For production, deploy across two or more regions for high-availability.

Bereitstellungsregionen

ParameterParameter BESCHREIBUNGDescription BeispielwertExample value
Anzahl der RegionenNumber of region(s) Die Anzahl der Regionen, in denen das Konsortiumsnetzwerk bereitgestellt wird.Number of regions to deploy the consortium network 22
Erste RegionFirst region Die erste Region, in der das Konsortiumsnetzwerk bereitgestellt wird.First region to deploy the consortium network USA, Westen 2West US 2
Zweite RegionSecond region Die zweite Region, in der das Konsortiumsnetzwerk bereitgestellt wird –Second region to deploy the consortium network. weitere Regionen werden angezeigt, wenn mindestens zwei Regionen vorhanden sind.Additional regions are visible when number of regions is two or greater. USA (Ost) 2East US 2

Klicken Sie auf OK.Select OK.

Netzwerkgröße und -leistungNetwork size and performance

Geben Sie unter Netzwerkgröße und -leistung Werte für die Größe des Konsortiumnetzwerks ein.Under Network size and performance, specify inputs for the size of the consortium network. Die Speichergröße des Validierungsknotens gibt die potenzielle Größe der Blockchain vor.The validator node storage size dictates the potential size of the blockchain. Die Größe kann nach der Bereitstellung geändert werden.The size can be changed after deployment.

Netzwerkgröße und -leistung

ParameterParameter BESCHREIBUNGDescription BeispielwertExample value
Anzahl von Validierungsknoten mit LastenausgleichNumber of load balanced validator nodes Anzahl von Validierungsknoten, die als Teil des Netzwerks bereitgestellt werdenThe number of validator nodes to provision as part of the network. 22
Speicherleistung von ValidierungsknotenValidator node storage performance Die Art des verwalteten Datenträgers für die einzelnen bereitgestellten Validierungsknoten –The type of managed disk for each of the deployed validator nodes. Informationen zu den Preisen finden Sie unter Verwaltete Datenträger – Preise.For details on pricing, see storage pricing SSD StandardStandard SSD
VM-Größe für ValidierungsknotenValidator node virtual machine size Die VM-Größe, die für Validierungsknoten verwendet wird.The virtual machine size used for validator nodes. Informationen zu den Preisen finden Sie unter Virtuelle Windows-Computer – Preise.For details on pricing, see virtual machine pricing Standard D2 v3Standard D2 v3

Virtuelle Computer und die Speicherebene haben Auswirkungen auf die Netzwerkleistung.Virtual machine and storage tier affect network performance. Mithilfe der folgenden Tabelle können Sie eine kosteneffiziente Option auswählen:Use the following table to help choose cost efficiency:

SKU des virtuellen ComputersVirtual Machine SKU SpeicherebeneStorage Tier PreisPrice ThroughputThroughput LatencyLatency
F1F1 SSD StandardStandard SSD niedriglow niedriglow highhigh
D2_v3D2_v3 SSD StandardStandard SSD mittelmedium mittelmedium mittelmedium
F16sF16s SSD PremiumPremium SSD highhigh highhigh niedriglow

Klicken Sie auf OK.Select OK.

Ethereum-EinstellungenEthereum settings

Geben Sie unter Ethereum-Einstellungen die für Ethereum gültigen Konfigurationseinstellungen an.Under Ethereum Settings, specify Ethereum-related configuration settings.

Ethereum-Einstellungen

ParameterParameter BESCHREIBUNGDescription BeispielwertExample value
ID des KonsortiumsmitgliedsConsortium Member ID Die ID, die jedem Mitglied des Konsortiumnetzwerks zugeordnet ist.The ID associated with each member participating in the consortium network. Sie wird verwendet, um IP-Adressräume zu konfigurieren und Kollisionen zu vermeiden.It's used to configure IP address spaces to avoid collision. Bei einem privaten Netzwerk sollte die Mitglieds-ID für verschiedene Organisationen in demselben Netzwerk eindeutig sein.For a private network, Member ID should be unique across different organizations in the same network. Eine eindeutige Mitglieds-ID ist erforderlich, auch dieselbe Organisation Bereitstellungen in mehreren Regionen vornimmt.A unique member ID is needed even when the same organization deploys to multiple regions. Notieren Sie sich den Wert dieses Parameters, da Sie ihn anderen teilnehmenden Mitgliedern mitteilen müssen, um Konflikte auszuschließen.Make note of the value of this parameter since you need to share it with other joining members to ensure there’s no collision. Der gültige Bereich liegt zwischen 0 und 255.The valid range is 0 through 255. 00
Netzwerk-IDNetwork ID Die Netzwerk-ID für das bereitgestellte Ethereum-Konsortiumsnetzwerk.The network ID for the consortium Ethereum network being deployed. Jedes Ethereum-Netzwerk verfügt über eine eigene Netzwerk-ID, wobei 1 die ID für das öffentliche Netzwerk ist.Each Ethereum network has its own Network ID, with 1 being the ID for the public network. Der gültige Bereich liegt zwischen 5 und 999.999.999.The valid range is 5 through 999,999,999 1010101010101010
Ethereum-AdministratoradresseAdmin Ethereum Address Die Adresse des Ethereum-Kontos, das für die Teilnahme am PoA-Governance-Prozess verwendet wird –The Ethereum account address used for participating in PoA governance. Sie können MetaMask verwenden, um eine Ethereum-Adresse zu generieren.You can use MetaMask to generate an Ethereum address.
Erweiterte OptionenAdvanced Options Erweiterte Optionen für Ethereum-EinstellungenAdvanced options for Ethereum settings AktivierenEnable
Deploy using Public IP (Mit öffentlicher IP-Adresse bereitstellen)Deploy using Public IP Wenn ein privates VNET ausgewählt ist, wird das Netzwerk hinter einer VNet Gateway-Instanz bereitgestellt, und der Peeringzugriff wird aufgehoben.If Private VNet is selected, the network is deployed behind a VNet Gateway and removes peering access. In einem privaten VNET müssen alle Mitglieder eine VNet Gateway-Instanz nutzen, damit die Verbindung kompatibel ist.For Private VNet, all members must use a VNet Gateway for the connection to be compatible. Öffentliche IP-AdressePublic IP
Block Gas Limit (gas-Limit für Blocks)Block Gas Limit Das anfängliche gas-Limit für Blocks im NetzwerkThe starting block gas limit of the network. 5000000050000000
Zeitraum für erneute Blockversiegelung (Sek.)Block Reseal Period (sec) Die Häufigkeit, mit der leere Blöcke erstellt werden, wenn im Netzwerk keine Transaktionen vorhanden sind.The frequency at which empty blocks will be created when there are no transactions on the network. Eine höhere Häufigkeit führt zu einer schnelleren Finalität, jedoch auch zu erhöhten Speicherkosten.A higher frequency will have faster finality but increased storage costs. 1515
Transaction Permission Contract (Vertrag zu Transaktionsberechtigungen)Transaction Permission Contract Bytecode für den Vertrag zur Berechtigungsvergabe für Transaktionen.Bytecode for the Transaction Permissioning contract. Beschränkt die Smart Contract-Bereitstellung und -Ausführung auf eine berechtigungsbasierte Liste mit Ethereum-Konten.Restricts smart contract deployment and execution to a permitted list of Ethereum accounts.

Klicken Sie auf OK.Select OK.

ÜberwachungMonitoring

Mithilfe der Überwachung können Sie eine Protokollressource für Ihr Netzwerk konfigurieren.Monitoring allows you to configure a log resource for your network. Der Überwachungs-Agent sammelt nützliche Metriken und Protokolle aus Ihrem Netzwerk und zeigt diese an. So lassen sich die Netzwerkintegrität oder Debugprobleme schnell überprüfen.The monitoring agent collects and surfaces useful metrics and logs from your network providing the ability to quickly check the network health or debug issues.

Azure Monitor

ParameterParameter BESCHREIBUNGDescription BeispielwertExample value
ÜberwachungMonitoring Option zum Aktivieren der ÜberwachungOption to enable monitoring AktivierenEnable
Connect to existing Azure Monitor logs (Mit vorhandenen Azure Monitor-Protokollen verbinden)Connect to existing Azure Monitor logs Option zum Erstellen einer neuen Azure Monitor-Protokollinstanz oder zum Beitritt zu einer vorhandenen InstanzOption to create a new Azure Monitor logs instance or join an existing instance Neu erstellenCreate new
StandortLocation Die Region, in der die neue Instanz bereitgestellt wirdThe region where the new instance is deployed East USEast US
Existing log analytics workspace ID (Connect to existing Azure Monitor logs = Join Existing) (Vorhandene Log Analytics-Arbeitsbereichs-ID (Mit vorhandener Azure Monitor-Protokollinstanz verbinden = Vorhandener beitreten))Existing log analytics workspace ID (Connect to existing Azure Monitor logs = Join Existing) Die Arbeitsbereichs-ID der vorhandenen Azure Monitor-ProtokollinstanzWorkspace ID of the existing Azure Monitor logs instance Nicht verfügbarNA
Existing log analytics primary key (Connect to existing Azure Monitor logs = Join Existing) (Vorhandener Log Analytics-Primärschlüssel (Mit vorhandener Azure Monitor-Protokollinstanz verbinden = Vorhandener beitreten))Existing log analytics primary key (Connect to existing Azure Monitor logs = Join Existing) Der Primärschlüssel, der zum Herstellen einer Verbindung mit der vorhandenen Azure Monitor-Protokollinstanz verwendet wird.The primary key used to connect to the existing Azure Monitor logs instance Nicht verfügbarNA

Klicken Sie auf OK.Select OK.

ZusammenfassungSummary

Klicken Sie sich durch die Zusammenfassung, um die Eingaben zu überprüfen und eine grundlegende Überprüfung vor der Bereitstellung durchzuführen.Click through the summary to review the inputs specified and run basic pre-deployment validation. Vor der Bereitstellung können Sie die Vorlage und die Parameter herunterladen.Before deploying, you can download the template and parameters.

Klicken Sie auf Erstellen, um die Bereitstellung durchzuführen.Select Create to deploy.

Wenn die Bereitstellung VNet Gateway-Instanzen umfasst, kann diese zwischen 45 und 50 Minuten dauern.If the deployment includes VNet Gateways, the deployment can take up 45 to 50 minutes.

Ausgabe der BereitstellungDeployment output

Nachdem die Bereitstellung abgeschlossen ist, können Sie über das Azure-Portal auf die erforderlichen Parameter zugreifen.Once the deployment has completed, you can access the necessary parameters using the Azure portal.

Bestätigungs-E-MailConfirmation email

Wenn Sie eine E-Mail-Adresse (Grundlagen) angeben, wird eine E-Mail gesendet, die die Bereitstellungsinformationen und Links zu dieser Dokumentation enthält.If you provide an email address (Basics Section), an email is sent that includes the deployment information and links to this documentation.

E-Mail zur Bereitstellung

PortalPortal

Nachdem die Bereitstellung erfolgreich abgeschlossen wurde und alle Ressourcen bereitgestellt wurden, können Sie sich die Ausgabeparameter in Ihrer Ressourcengruppe ansehen.Once the deployment has completed successfully and all resources have been provisioned, you can view the output parameters in your resource group.

  1. Navigieren Sie im Portal zu Ihrer Ressourcengruppe.Go to your resource group in the portal.

  2. Klicken Sie auf Übersicht > Bereitstellungen.Select Overview > Deployments.

    Übersicht über Ressourcengruppen

  3. Wählen Sie die Bereitstellung microsoft-azure-blockchain.azure-blockchain-ether-... aus.Select the microsoft-azure-blockchain.azure-blockchain-ether-... deployment.

  4. Klicken Sie auf den Abschnitt Ausgaben.Select the Outputs section.

    Bereitstellungsausgaben

Vergrößern des KonsortiumsGrowing the consortium

Um Ihr Konsortium zu erweitern, müssen Sie zuerst eine Verbindung mit dem physischen Netzwerk herstellen.To expand your consortium, you must first connect the physical network. Bei einer Bereitstellung hinter einem VPN helfen Ihnen die Informationen im Abschnitt Herstellen einer Verbindung mit VNet Gateway-Instanzen weiter, um die Netzwerkverbindung im Rahmen der Bereitstellung neuer Mitglieder zu konfigurieren.If deploying behind a VPN, see the section Connecting VNet Gateway configure the network connection as part of the new member deployment. Verwenden Sie nach Abschluss Ihrer Bereitstellung die Governance-DApp, um zum Netzwerkadministrator zu werden.Once your deployment completes, use the Governance DApp to become a network admin.

Bereitstellung eines neuen MitgliedsNew member deployment

Stellen Sie für das beitretende Mitglied die folgenden Informationen bereit.Share the following information with the joining member. Diese Informationen finden Sie in der E-Mail, die Sie nach der Bereitstellung erhalten, oder in der Ausgabe zur Bereitstellung im Portal.The information is found in your post-deployment email or in the portal deployment output.

  • URL der KonsortiumsdatenConsortium Data URL
  • Anzahl von bereitgestellten KnotenThe number of nodes you deployed
  • VNET-Gateway-Ressourcen-ID (bei Verwendung von VPN)VNet Gateway Resource ID (if using VPN)

Das bereitstellende Mitglied sollte die gleiche Lösungsvorlage für das Ethereum-Proof-of-Authority-Konsortium verwenden, wenn die Netzwerkverfügbarkeit nach folgender Anleitung bereitgestellt wird:The deploying member should use the same Ethereum Proof-of-Authority consortium solution template when deploying their network presence using the following guidance:

  • Wählen Sie Vorhandener beitreten.Select Join Existing
  • Wählen Sie die gleiche Anzahl von Validierungsknoten wie die anderen Mitglieder des Netzwerks aus, um eine faire Verteilung sicherzustellen.Choose the same number of validator nodes as the rest of the members on the network to ensure fair representation
  • Verwenden Sie dieselbe Ethereum-Administratoradresse.Use the same Admin Ethereum address
  • Nutzen Sie die auf der Registerkarte mit den Ethereum-Einstellungen angegebene URL der Konsortiumsdaten.Use the provided Consortium Data Url in the Ethereum Settings
  • Wählen Sie unter „Erweitert“ die Option Private VNet (Privates VNET) aus, wenn sich der restliche Teil des Netzwerks hinter einem VPN befindet.If the rest of the network is behind a VPN, select Private VNet under the advanced section

Herstellen einer Verbindung für VNET-GatewaysConnecting VNet gateways

Dieser Abschnitt ist nur erforderlich, wenn Sie die Bereitstellung mit einem privaten VNET durchgeführt haben.This section is only required if you deployed using a private VNet. Sie können diesen Abschnitt überspringen, wenn Sie öffentliche IP-Adressen verwenden.You can skip this section if you are using public IP addresses.

Bei einem privaten Netzwerk werden die unterschiedlichen Mitglieder über VNET-Gatewayverbindungen vernetzt.For a private network, the different members are connected via VNet gateway connections. Bevor ein Mitglied dem Netzwerk beitreten und Transaktionsdatenverkehr anzeigen lassen kann, muss ein vorhandenes Mitglied die Konfiguration auf seinem VPN-Gateway abschließen, um die Verbindung zu akzeptieren.Before a member can join the network and see transaction traffic, an existing member must do a final configuration on their VPN gateway to accept the connection. Die Ethereum-Knoten des beitretenden Mitglieds werden erst ausgeführt, wenn die Verbindung hergestellt wurde.The Ethereum nodes of the joining member won't run until a connection is established. Sie können die Wahrscheinlichkeit eines Single Point of Failure zu reduzieren, indem Sie redundante Netzwerkverbindungen im Konsortium erstellen.To reduce chances of a single point of failure, create redundant network connections in the consortium.

Nachdem das neue Mitglied bereitgestellt wurde, muss das vorhandene Mitglied die bidirektionale Verbindung herstellen, indem es eine VNET-Gatewayverbindung mit dem neuen Mitglied einrichtet.After the new member deploys, the existing member must complete the bi-directional connection by setting up a VNet gateway connection to the new member. Das vorhandene Mitglied benötigt Folgendes:The existing member needs:

  • die VNET-Gateway-ResourceID des Mitglieds, das die Verbindung herstelltThe VNet gateway ResourceID of the connecting member. (Ausgabe der Bereitstellung)See deployment output.
  • den Schlüssel für die gemeinsame VerbindungThe shared connection key.

Das vorhandene Mitglied muss das folgende PowerShell-Skript ausführen, um die Verbindung herzustellen.The existing member must run the following PowerShell script to complete the connection. Sie können Azure Cloud Shell verwenden. Die entsprechende Option befindet sich in der rechten oberen Navigationsleiste des Portals.You can use Azure Cloud Shell located in the top-right navigation bar in the portal.

Cloud Shell

$MyGatewayResourceId = "<EXISTING_MEMBER_RESOURCEID>"
$OtherGatewayResourceId = "<NEW_MEMBER_RESOURCEID]"
$ConnectionName = "Leader2Member"
$SharedKey = "<NEW_MEMBER_KEY>"

## $myGatewayResourceId tells me what subscription I am in, what ResourceGroup and the VNetGatewayName
$splitValue = $MyGatewayResourceId.Split('/')
$MySubscriptionid = $splitValue[2]
$MyResourceGroup = $splitValue[4]
$MyGatewayName = $splitValue[8]

## $otherGatewayResourceid tells me what the subscription and VNet GatewayName are
$OtherGatewayName = $OtherGatewayResourceId.Split('/')[8]
$Subscription=Select-AzSubscription -SubscriptionId $MySubscriptionid

## create a PSVirtualNetworkGateway instance for the gateway I want to connect to
$OtherGateway=New-Object Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
$OtherGateway.Name = $OtherGatewayName
$OtherGateway.Id = $OtherGatewayResourceId
$OtherGateway.GatewayType = "Vpn"
$OtherGateway.VpnType = "RouteBased"

## get a PSVirtualNetworkGateway instance for my gateway
$MyGateway = Get-AzVirtualNetworkGateway -Name $MyGatewayName -ResourceGroupName $MyResourceGroup

## create the connection
New-AzVirtualNetworkGatewayConnection -Name $ConnectionName -ResourceGroupName $MyResourceGroup -VirtualNetworkGateway1 $MyGateway -VirtualNetworkGateway2 $OtherGateway -Location $MyGateway.Location -ConnectionType Vnet2Vnet -SharedKey $SharedKey -EnableBgp $True

DienstüberwachungService monitoring

Sie können auf Ihr Azure Monitor-Portal zugreifen, indem Sie entweder dem Link in der E-Mail zur Bereitstellung folgen oder in der Ausgabe der Bereitstellung nach dem Parameter [OMS_PORTAL_URL] suchen.You can locate your Azure Monitor portal either by following the link in the deployment email or locating the parameter in the deployment output [OMS_PORTAL_URL].

Im Portal werden zunächst eine allgemeine Netzwerkstatistik und eine Knotenübersicht angezeigt.The portal will first display high-level network statistics and node overview.

Überwachungskategorien

In der Knotenübersicht wird die Infrastrukturstatistik pro Knoten angezeigt.Selecting Node Overview shows you per-node infrastructure statistics.

Knotenstatistik

In der Netzwerkstatistik wird die Ethereum-Netzwerkstatistik angezeigt.Selecting Network Stats shows you Ethereum network statistics.

Netzwerkstatistik

Kusto-BeispielabfragenSample Kusto queries

Sie können die Überwachungsprotokolle abfragen, um Fehler oder Warnungen für Setupschwellenwerte zu untersuchen.You can query the monitoring logs to investigate failures or setup threshold alerting. Die folgenden Abfragen sind Beispiele, die Sie in der Protokollsuche ausführen können:The following queries are examples you can run in the Log Search tool:

Listenblöcke, die von mehr als einer Validierungssteuerelement-Abfrage gemeldet wurden, können hilfreich sein, um Kettenverzweigungen zu suchen.List blocks that have been reported by more than one validator query can be useful to help find chain forks.

MinedBlock_CL
| summarize DistinctMiners = dcount(BlockMiner_s) by BlockNumber_d, BlockMiner_s
| where DistinctMiners > 1

Rufen Sie die durchschnittliche Peeranzahl für einen angegebenen Validierungsknoten ab (Mittelwert für Fünf-Minuten-Buckets).Get average peer count for a specified validator node averaged over 5-minute buckets.

let PeerCountRegex = @"Syncing with peers: (\d+) active, (\d+) confirmed, (\d+)";
ParityLog_CL
| where Computer == "vl-devn3lgdm-reg1000001"
| project RawData, TimeGenerated
| where RawData matches regex PeerCountRegex
| extend ActivePeers = extract(PeerCountRegex, 1, RawData, typeof(int))
| summarize avg(ActivePeers) by bin(TimeGenerated, 5m)

SSH-ZugriffSSH access

Aus Sicherheitsgründen wird der SSH-Portzugriff durch eine Netzwerksicherheitsgruppen-Regel standardmäßig verweigert.For security reasons, the SSH port access is denied by a network group security rule by default. Sie müssen die folgende Sicherheitsregel in Zulassen ändern, um auf die Instanzen des virtuellen Computers im PoA-Netzwerk zugreifen zu können.To access the virtual machine instances in the PoA network, you need to change the following security is rule to Allow.

  1. Wechseln Sie im Azure-Portal zum Abschnitt Übersicht der bereitgestellten Ressourcengruppe.Go to the Overview section of the deployed resource group in the Azure portal.

    SSH-Übersicht

  2. Wählen Sie die Netzwerksicherheitsgruppe für die Region der VM aus, auf die Sie zugreifen möchten.Select the Network Security Group for the region of the VM you are want to access.

    SSH-NSG

  3. Wählen Sie die Regel allow-ssh aus.Select the allow-ssh rule.

    ssh-allow

  4. Ändern Sie Aktion in Zulassen.Change Action to Allow

    SSH – Aktivieren von „Zulassen“

  5. Wählen Sie Speichern aus.Select Save. Es kann einige Minuten dauern, bis die Änderungen wirksam werden.Changes may take a few minutes to apply.

Für die Validierungsknoten können Sie eine Remoteverbindung mit virtuellen Computern herstellen. Dazu verwenden Sie SSH mit dem angegebenen Administratorbenutzernamen und Kennwort/SSH-Schlüssel.You can remotely connect to the virtual machines for the validator nodes via SSH with your provided admin username and password/SSH key. Der SSH-Befehl für den Zugriff auf den ersten Validierungsknoten wird in der Vorlage für Bereitstellungsausgaben aufgeführt.The SSH command to access the first validator node is listed in the template deployment output. Beispiel:For example:

ssh -p 4000 poaadmin\@leader4vb.eastus.cloudapp.azure.com.

Erhöhen Sie die Portnummer um 1, um zusätzliche Transaktionsknoten zu erhalten.To get to additional transaction nodes, increment the port number by one.

Wenn Sie die Bereitstellung in mehr als einer Region durchgeführt haben, sollten Sie den Befehl in den DNS-Namen oder die IP-Adresse des Lastenausgleichs dieser Region ändern.If you deployed to more than one region, change the command to the DNS name or IP address of the load balancer in that region. Sie können den DNS-Namen oder die IP-Adresse der anderen Regionen ermitteln, indem Sie auf die Ressource mit der Namenskonvention *****-lbpip-reg# zugreifen und die zugehörigen Eigenschaften für den DNS-Namen und die IP-Adresse anzeigen.To find the DNS name or IP address of the other regions, find the resource with the naming convention *****-lbpip-reg# and view its DNS name and IP address properties.

Azure Traffic Manager – LastenausgleichAzure Traffic Manager load balancing

Mit Azure Traffic Manager lassen sich durch die Weiterleitung des eingehenden Datenverkehrs über mehrere Bereitstellungen in unterschiedlichen Regionen Ausfallzeiten reduzieren und die Reaktionsfähigkeit des PoA-Netzwerks verbessern.Azure Traffic Manager can help reduce downtime and improve responsiveness of the PoA network by routing incoming traffic across multiple deployments in different regions. Durch integrierte Integritätsprüfungen und das automatische Neuberechnen von Routen wird die Hochverfügbarkeit für RPC-Endpunkte und die Governance-DApp sichergestellt.Built-in health checks and automatic rerouting help ensure high availability of the RPC endpoints and the Governance DApp. Dieses Feature ist nützlich, wenn Sie die Bereitstellung in mehreren Regionen durchgeführt haben und für die Produktion bereit sind.This feature is useful if you have deployed to multiple regions and are production ready.

Verwenden Sie Traffic Manager, um die Verfügbarkeit von PoA-Netzwerken mit automatischem Failover zu verbessern.Use Traffic Manager to improve PoA network availability with automatic failover. Sie können mit Traffic Manager auch die Reaktionsfähigkeit verbessern, indem Endbenutzer an den Azure-Standort mit der geringsten Netzwerklatenz geleitet werden.You can also use Traffic Manager to increase your networks responsiveness by routing end users to the Azure location with lowest network latency.

Wenn Sie sich dafür entscheiden, ein Traffic Manager-Profil zu erstellen, können Sie den DNS-Namen des Profils verwenden, um auf Ihr Netzwerk zuzugreifen.If you decide to create a Traffic Manager profile, you can use the DNS name of the profile to access your network. Nachdem dem Netzwerk weitere Konsortiumsmitglieder hinzugefügt wurden, kann Traffic Manager auch genutzt werden, um den Lastenausgleich für die bereitgestellten Validierungselemente zu laden.Once other consortium members have been added to the network, the Traffic Manager can also be used to load balance across their deployed validators.

Erstellen eines Traffic Manager-ProfilsCreating a Traffic Manager profile

  1. Klicken Sie im Azure-Portal in der linken oberen Ecke auf Ressource erstellen.In the Azure portal, select Create a resource in the upper left-hand corner.

  2. Suchen Sie nach Traffic Manager-Profil.Search for Traffic Manager profile.

    Suche nach Azure Traffic Manager

    Geben Sie dem Profil einen eindeutigen Namen, und wählen Sie die Ressourcengruppe aus, die für die PoA-Bereitstellung verwendet wurde.Give the profile a unique name and select the Resource Group that was used for the PoA deployment.

  3. Klicken Sie auf Erstellen, um die Bereitstellung durchzuführen.Select Create to deploy.

    Erstellen in Traffic Manager

  4. Wählen Sie nach der Bereitstellung die Instanz in der Ressourcengruppe aus.Once deployed, select the instance in the resource group. Der DNS-Name für den Zugriff auf Traffic Manager befindet sich auf der Registerkarte „Übersicht“.The DNS name to access the traffic manager can be found in the Overview tab.

    Ermitteln des DNS-Namens für Traffic Manager

  5. Klicken Sie auf die Registerkarte Endpunkte und dann auf Hinzufügen.Choose the Endpoints tab and select the Add button.

  6. Geben Sie dem Endpunkt einen eindeutigen Namen.Give the endpoint a unique name.

  7. Wählen Sie Öffentliche IP-Adresse als Zielressourcentyp aus.For Target resource type, choose Public IP address.

  8. Wählen Sie die öffentliche IP-Adresse für den Lastenausgleich der ersten Region aus.Choose the public IP address of the first region's load balancer.

    Routing für Traffic Manager

Wiederholen Sie dies für jede Region im bereitgestellten Netzwerk.Repeat for each region in the deployed network. Wenn sich die Endpunkte im Status Aktiviert befinden, werden dafür von Traffic Manager automatisch der Lastenausgleich und der Ausgleich nach Region für den DNS-Namen durchgeführt.Once the endpoints are in the enabled status, they are automatically load and region balanced at the DNS name of the traffic manager. Sie können diesen DNS-Namen jetzt anstelle des Parameters [CONSORTIUM_DATA_URL] in den anderen Schritten des Artikels verwenden.You can now use this DNS name in place of the [CONSORTIUM_DATA_URL] parameter in other steps of the article.

Daten-APIData API

Jedes Konsortiumsmitglied hostet die erforderlichen Informationen, über die andere Personen eine Verbindung mit dem Netzwerk herstellen können.Each consortium member hosts the necessary information for others to connect to the network. Die Verbindungsherstellung kann vereinfacht werden, indem jedes Mitglied auf dem API-Datenendpunkt Verbindungsinformationen hostet.To enable the ease of connectivity, each member hosts a set of connection information at the data API endpoint.

Das vorhandene Mitglied gibt den Parameter [CONSORTIUM_DATA_URL] vor der Bereitstellung des Mitglieds an.The existing member provides the [CONSORTIUM_DATA_URL] before the member's deployment. Bei der Bereitstellung ruft ein beitretendes Mitglied Informationen über die JSON-Schnittstelle am folgenden Endpunkt ab:Upon deployment, a joining member will retrieve information from the JSON interface at the following endpoint:

<CONSORTIUM_DATA_URL>/networkinfo

Die Antwort enthält Informationen, die für den Beitritt von Mitgliedern hilfreich sind (Genesis-Block, Vertrags-ABI für die Validierungssteuerelemente, Startknoten), sowie Informationen, die für das vorhandene Mitglied hilfreich sind (Adressen der Validierungssteuerelemente).The response contains information useful for joining members (Genesis block, Validator Set contract ABI, bootnodes) and information useful to the existing member (validator addresses). Sie können diese Standardisierung verwenden, um das Konsortium auf mehrere Cloudanbieter zu erweitern.You can use this standardization to extend the consortium across cloud providers. Diese API gibt eine Antwort im JSON-Format mit der folgenden Struktur zurück:This API returns a JSON formatted response with the following structure:

{
  "$id": "",
  "type": "object",
  "definitions": {},
  "$schema": "https://json-schema.org/draft-07/schema#",
  "properties": {
    "majorVersion": {
      "$id": "/properties/majorVersion",
      "type": "integer",
      "title": "This schema’s major version",
      "default": 0,
      "examples": [
        0
      ]
    },
    "minorVersion": {
      "$id": "/properties/minorVersion",
      "type": "integer",
      "title": "This schema’s minor version",
      "default": 0,
      "examples": [
        0
      ]
    },
    "bootnodes": {
      "$id": "/properties/bootnodes",
      "type": "array",
      "items": {
        "$id": "/properties/bootnodes/items",
        "type": "string",
        "title": "This member’s bootnodes",
        "default": "",
        "examples": [
          "enode://a348586f0fb0516c19de75bf54ca930a08f1594b7202020810b72c5f8d90635189d72d8b96f306f08761d576836a6bfce112cfb6ae6a3330588260f79a3d0ecb@10.1.17.5:30300",
          "enode://2d8474289af0bb38e3600a7a481734b2ab19d4eaf719f698fe885fb239f5d33faf217a860b170e2763b67c2f18d91c41272de37ac67386f80d1de57a3d58ddf2@10.1.17.4:30300"
        ]
      }
    },
    "valSetContract": {
      "$id": "/properties/valSetContract",
      "type": "string",
      "title": "The ValidatorSet Contract Source",
      "default": "",
      "examples": [
        "pragma solidity 0.4.21;\n\nimport \"./SafeMath.sol\";\nimport \"./Utils.sol\";\n\ncontract ValidatorSet …"
      ]
    },
    "adminContract": {
      "$id": "/properties/adminContract",
      "type": "string",
      "title": "The AdminSet Contract Source",
      "default": "",
      "examples": [
        "pragma solidity 0.4.21;\nimport \"./SafeMath.sol\";\nimport \"./SimpleValidatorSet.sol\";\nimport \"./Admin.sol\";\n\ncontract AdminValidatorSet is SimpleValidatorSet { …"
      ]
    },
    "adminContractABI": {
      "$id": "/properties/adminContractABI",
      "type": "string",
      "title": "The Admin Contract ABI",
      "default": "",
      "examples": [
        "[{\"constant\":false,\"inputs\":[{\"name\":\"proposedAdminAddress\",\"type\":\"address\"},…"
      ]
    },
    "paritySpec": {
      "$id": "/properties/paritySpec",
      "type": "string",
      "title": "The Parity client spec file",
      "default": "",
      "examples": [
        "\n{\n \"name\": \"PoA\",\n \"engine\": {\n \"authorityRound\": {\n \"params\": {\n \"stepDuration\": \"2\",\n \"validators\" : {\n \"safeContract\": \"0x0000000000000000000000000000000000000006\"\n },\n \"gasLimitBoundDivisor\": \"0x400\",\n \"maximumExtraDataSize\": \"0x2A\",\n \"minGasLimit\": \"0x2FAF080\",\n \"networkID\" : \"0x9a2112\"\n }\n }\n },\n \"params\": {\n \"gasLimitBoundDivisor\": \"0x400\",\n \"maximumExtraDataSize\": \"0x2A\",\n \"minGasLimit\": \"0x2FAF080\",\n \"networkID\" : \"0x9a2112\",\n \"wasmActivationTransition\": \"0x0\"\n },\n \"genesis\": {\n \"seal\": {\n \"authorityRound\": {\n \"step\": \"0x0\",\n \"signature\": \"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n }\n },\n \"difficulty\": \"0x20000\",\n \"gasLimit\": \"0x2FAF080\"\n },\n \"accounts\": {\n \"0x0000000000000000000000000000000000000001\": { \"balance\": \"1\", \"builtin\": { \"name\": \"ecrecover\", \"pricing\": { \"linear\": { \"base\": 3000, \"word\": 0 } } } },\n \"0x0000000000000000000000000000000000000002\": { \"balance\": \"1\", \"builtin\": { \"name\": \"sha256\", \"pricing\": { \"linear\": { \"base\": 60, \"word\": 12 } } } },\n \"0x0000000000000000000000000000000000000003\": { \"balance\": \"1\", \"builtin\": { \"name\": \"ripemd160\", \"pricing\": { \"linear\": { \"base\": 600, \"word\": 120 } } } },\n \"0x0000000000000000000000000000000000000004\": { \"balance\": \"1\", \"builtin\": { \"name\": \"identity\", \"pricing\": { \"linear\": { \"base\": 15, \"word\": 3 } } } },\n \"0x0000000000000000000000000000000000000006\": { \"balance\": \"0\", \"constructor\" : \"…\" }\n }\n}"
      ]
    },
    "errorMessage": {
      "$id": "/properties/errorMessage",
      "type": "string",
      "title": "Error message",
      "default": "",
      "examples": [
        ""
      ]
    },
    "addressList": {
      "$id": "/properties/addressList",
      "type": "object",
      "properties": {
        "addresses": {
          "$id": "/properties/addressList/properties/addresses",
          "type": "array",
          "items": {
            "$id": "/properties/addressList/properties/addresses/items",
            "type": "string",
            "title": "This member’s validator addresses",
            "default": "",
            "examples": [
              "0x00a3cff0dccc0ecb6ae0461045e0e467cff4805f",
              "0x009ce13a7b2532cbd89b2d28cecd75f7cc8c0727"
            ]
          }
        }
      }
    }
  }
}

Governance-DAppGovernance DApp

Das Herzstück von Proof-of-Authority ist die dezentralisierte Governance-Komponente.At the heart of proof-of-authority is decentralized governance. Da Proof-of-Authority auf einer berechtigungsbasierten Liste mit Netzwerkautoritäten basiert, um das Netzwerk frei von Fehlern zu halten, ist Folgendes wichtig: Es muss ein fairer Mechanismus vorhanden sein, der zum Vornehmen von Änderungen an dieser Berechtigungsliste verwendet werden kann.Since proof-of-authority relies upon a permitted list of network authorities to keep the network healthy, it's important to provide a fair mechanism to make modifications to this permission list. Jede Bereitstellung verfügt über eine Gruppe von Smart Contracts und ein Portal für On-Chain-Governance-Maßnahmen für diese berechtigungsbasierte Liste.Each deployment comes with a set of smart-contracts and portal for on-chain governance of this permitted list. Nachdem eine vorgeschlagene Änderung bei den Konsortiumsmitgliedern die Stimmenmehrheit erzielt hat, wird die Änderung durchgeführt.Once a proposed change reaches a majority vote by consortium members, the change is enacted. Durch die Abstimmung können neue Konsensteilnehmer hinzugefügt oder kompromittierte Teilnehmer transparent zu entfernen, um für ein vertrauenswürdiges Netzwerk zu sorgen.Voting allows new consensus participants to be added or compromised participants to be removed in a transparent way that encourages an honest network.

Die Governance-DApp umfasst vorab bereitgestellte Smart Contracts und eine Webanwendung, die zum Steuern der Autoritäten im Netzwerk verwendet werden.The governance DApp is a set of pre-deployed smart contracts and a web application that are used to govern the authorities on the network. Die Autoritäten sind in Administratoridentitäten und Validierungsknoten unterteilt.Authorities are broken up into admin identities and validator nodes. Administratoren können die Teilnahme am Konsens an einige Validierungsknoten delegieren.Admins have the power to delegate consensus participation to a set of validator nodes. Außerdem können Administratoren andere Administratoren für das Netzwerk auswählen oder abwählen.Admins also may vote other admins into or out of the network.

Governance-DApp

  • Dezentralisierte Governance: Änderungen der Netzwerkautoritäten werden von ausgewählten Administratoren per On-Chain-Abstimmung verwaltet.Decentralized Governance: Changes in network authorities are administered through on-chain voting by select administrators.
  • Delegation von Validierungssteuerelementen: Autoritäten können ihre Validierungsknoten verwalten, die für die einzelnen PoA-Bereitstellungen eingerichtet werden.Validator Delegation: Authorities can manage their validator nodes that are set up in each PoA deployment.
  • Überwachbarer Änderungsverlauf: Jede Änderung wird für die Blockchain aufgezeichnet, um für Transparenz und Überwachbarkeit zu sorgen.Auditable Change History: Each change is recorded on the blockchain providing transparency and auditability.

Erste Schritte mit GovernanceGetting started with governance

Wenn Sie verschiedene Transaktionen über die Governance-DApp durchführen möchten, müssen Sie ein Ethereum-Wallet nutzen.To perform any kind of transactions through the Governance DApp, you need to use an Ethereum wallet. Die Verwendung eines Wallets wie MetaMask im Browser stellt den einfachsten Ansatz dar. Da es sich hierbei jedoch um im Netzwerk bereitgestellte Smart Contracts handelt, müssen Sie Ihre Interaktionen mit dem Governancevertrag möglicherweise auch automatisieren.The most straightforward approach is to use an in-browser wallet such as MetaMask; however, because these smart contracts are deployed on the network you may also automate your interactions to the Governance contract.

Navigieren Sie nach der Installation von MetaMask zu der Governance-DApp im Browser.After installing MetaMask, navigate to the Governance DApp in the browser. Sie können die URL im Azure-Portal in der Bereitstellungsausgabe suchen.You can locate the URL through Azure portal in the deployment output. Wenn Sie kein Wallet im Browser installiert haben, können Sie keine Aktionen ausführen. Sie können jedoch weiterhin den Administratorstatus anzeigen.If you don't have an in-browser wallet installed you won't be able to perform any actions; however, you can view the administrator state.

Administrator werdenBecoming an admin

Wenn Sie das erste Mitglied sind, das im Netzwerk eine Bereitstellung durchgeführt hat, werden Sie automatisch zum Administrator, und Ihre Paritätsknoten werden als Validierungssteuerelemente aufgeführt.If you're the first member that deployed on the network, then you automatically become an admin and your parity nodes are listed as validators. Wenn Sie dem Netzwerk beitreten, müssen Sie von einer Mehrheit der vorhandenen Administratoren (mehr als 50 %) zum Administrator gewählt werden.If you're joining the network, you need to get voted in as an admin by a majority (greater than 50%) of the existing admin set. Wenn Sie sich dagegen entscheiden, Administrator zu werden, synchronisieren und überprüfen Ihre Knoten weiterhin die Blockchain. Sie sind jedoch nicht an der Blockerstellung beteiligt.If you choose not to become an admin, your nodes still sync and validate the blockchain; however, they don't participate in the block creation process. Klicken Sie zum Starten des Abstimmungsprozesses, um Administrator zu werden, auf Nominierung, und geben Sie Ihre Ethereum-Adresse und den Alias ein.To start the voting process to become an admin, select Nominate and enter your Ethereum address and alias.

Nominierung

KandidatenCandidates

Auf der Registerkarte Kandidaten werden Ihnen die aktuellen Bewerber für Administratoren angezeigt.Selecting the Candidates tab shows you the current set of candidate administrators. Sobald ein Kandidat eine Stimmenmehrheit durch die aktuellen Administratoren erreicht, wird er zum Administrator ernannt. Wenn Sie für einen Kandidaten abstimmen möchten, wählen Sie die Zeile aus, und klicken Sie auf Vote in (Abstimmen).Once a candidate reaches a majority vote by the current admins, the candidate gets promoted to an admin. To vote on a candidate, select the row and select Vote in. Wenn Sie Ihre Meinung zu einer abgegebenen Stimme ändern, können Sie den Kandidaten auswählen und auf Rescind vote (Abstimmung widerrufen) klicken.If you change your mind on a vote, select the candidate and select Rescind vote.

Kandidaten

AdministratorenAdmins

Auf der Registerkarte Administratoren wird die aktuelle Gruppe der Administratoren angezeigt, für die Sie über diese Registerkarte abstimmen können.The Admins tab shows the current set of admins and provides you the ability to vote against. Sobald ein Administrator die Unterstützung von mehr als 50 % verliert, wird er als Administrator aus dem Netzwerk entfernt.Once an admin loses more than 50% support, they are removed as an admin on the network. Alle Validierungsknoten dieses Administrators verlieren ihren Status und werden im Netzwerk zu Transaktionsknoten.Any validator nodes that the admin owns lose validator status and become transaction nodes on the network. Für das Entfernen eines Administrators gibt es verschiedene Gründe. Das Konsortium muss sich jedoch vorab auf eine Richtlinie einigen.An admin may be removed for any number of reasons; however, it's up to the consortium to agree on a policy in advance.

Administratoren

ValidierungssteuerelementeValidators

Durch die Auswahl der Registerkarte Validierungssteuerelemente werden die aktuell bereitgestellten Paritätsknoten dieser Instanz mit dem zugehörigen Status (Knotentyp) angezeigt.Selecting the Validators tab displays the current deployed parity nodes for the instance and their current status (Node type). Jedem Mitglied des Konsortiums in dieser Liste werden andere Validierungssteuerelemente angezeigt, da in dieser Ansicht die aktuell bereitgestellten Mitglieder des Konsortiums dargestellt werden.Each consortium member has a different set of validators in this list, since this view represents the current deployed consortium member. Handelt es sich um eine neu bereitgestellte Instanz, zu der Sie Ihre Validierungssteuerelemente noch nicht hinzugefügt haben, wird Ihnen die Option Add Validators (Validierungssteuerelemente hinzufügen) angezeigt.If the instance is newly deployed and you haven't added your validators, you get the option to Add Validators. Durch das Hinzufügen von Validierungssteuerelementen werden automatisch regional ausgewogene Paritätsknoten ausgewählt, die Ihren Validierungssteuerelementen zugewiesen werden.Adding validators automatically chooses a regionally balanced set of parity nodes and assigns them to your validator set. Wenn Sie mit Ihren bereitgestellten Knoten die zulässige Kapazität überschreiten, werden die verbleibenden Knoten zu Transaktionsknoten im Netzwerk.If you have deployed more nodes than the allowed capacity, the remaining nodes become transaction nodes on the network.

Die Adresse der einzelnen Validierungssteuerelemente wird automatisch über den Identitätsspeicher in Azure zugewiesen.The address of each validator is automatically assigned via the identity store in Azure. Wenn ein Knoten ausfällt, wird seine Identität aufgegeben, wodurch ein anderer Knoten in Ihrer Bereitstellung den Platz dieses Knotens übernehmen kann.If a node goes down, it relinquishes its identity, allowing another node in your deployment to take its place. Dadurch wird sichergestellt, dass Ihre Teilnahme am Konsens hochverfügbar ist.This process ensures that your consensus participation is highly available.

Validierungssteuerelemente

KonsortiumsnameConsortium name

Jeder Administrator kann den Namen des Konsortiums aktualisieren.Any admin may update the consortium name. Klicken Sie links oben auf das Zahnradsymbol, um den Konsortiumsnamen zu aktualisieren.Select the gear icon in the top left to update the consortium name.

KontomenüAccount menu

Rechts oben befinden sich Ihr Ethereum-Kontoalias und -Identicon.On the top-right, is your Ethereum account alias and identicon. Wenn Sie Administrator sind, können Sie Ihren Alias aktualisieren.If you're an admin, you have the ability to update your alias.

Konto

Ethereum-EntwicklungEthereum development

Es gibt einige Optionen für das Kompilieren, Bereitstellen und Testen von Smart Contracts, die Sie für die Ethereum-Entwicklung in Betracht ziehen können:To compile, deploy, and test smart contracts, here are a few options you can consider for Ethereum development:

  • Truffle Suite: eine clientbasierte Entwicklungsumgebung für EthereumTruffle Suite - Client-based Ethereum development environment
  • Ethereum Remix: eine browserbasierte lokale Entwicklungsumgebung für EthereumEthereum Remix - Browser-based and local Ethereum development environment

Kompilieren, Bereitstellen und Ausführen von Smart ContractsCompile, deploy, and execute smart contract

Im folgenden Beispiel erstellen Sie einen einfachen Smart Contract.In the following example, you create a simple smart contract. Sie verwenden Truffle zum Kompilieren und Bereitstellen des Smart Contract in Ihrem Blockchainnetzwerk.You use Truffle to compile and deploy the smart contract to your blockchain network. Nach der Bereitstellung rufen Sie eine Smart Contract-Funktion über eine Transaktion auf.Once deployed, you call a smart contract function via a transaction.

VoraussetzungenPrerequisites

  • Installieren Sie Python 2.7.15.Install Python 2.7.15. Python ist für Truffle und Web3 erforderlich.Python is needed for Truffle and Web3. Wählen Sie die entsprechende Installationsoption aus, um Python in Ihren Pfad einzubeziehen.Select the install option to include Python in your path.
  • Installieren Sie Truffle 5.0.5 über npm install -g truffle@v5.0.5.Install Truffle v5.0.5 npm install -g truffle@v5.0.5. Für Truffle ist die Installation mehrerer Tools erforderlich, dazu gehören Node.js und Git.Truffle requires several tools to be installed including Node.js, Git. Weitere Informationen finden Sie in der Dokumentation zu Truffle.For more information, see Truffle documentation.

Erstellen eines Truffle-ProjektsCreate Truffle project

Bevor Sie einen Smart Contract kompilieren und bereitstellen können, müssen Sie ein Truffle-Projekt erstellen.Before you can compile and deploy a smart contract, you need to create a Truffle project.

  1. Öffnen Sie eine Eingabeaufforderung oder Shell.Open a command prompt or shell.

  2. Erstellen Sie einen Ordner mit dem Namen HelloWorld.Create a folder named HelloWorld.

  3. Ändern Sie in das Verzeichnis in neuen Ordner HelloWorld.Change directory to the new HelloWorld folder.

  4. Initialisieren Sie mit dem Befehl truffle init ein neues Truffle-Projekt.Initialize a new Truffle project using the command truffle init.

    Neues Truffle-Projekt erstellen

Hinzufügen eines Smart ContractAdd a smart contract

Erstellen Sie Ihre Smart Contract im Unterverzeichnis contracts Ihres Truffle-Projekts.Create your smart contracts in the contracts subdirectory of your Truffle project.

  1. Erstellen Sie eine Datei namens postBox.sol im Unterverzeichnis contracts Ihres Truffle-Projekts.Create a file in the named postBox.sol in the contracts subdirectory of your Truffle project.

  2. Fügen Sie folgenden Solidity-Code zu postBox.sol hinzu.Add the following Solidity code to postBox.sol.

    pragma solidity ^0.5.0;
    
    contract postBox {
        string message;
        function postMsg(string memory text) public {
            message = text;
        }
        function getMsg() public view returns (string memory) {
            return message;
        }
    }
    

Bereitstellen eines Smart Contract mit TruffleDeploy smart contract using Truffle

Truffle-Projekte enthalten eine Konfigurationsdatei für die Verbindungsdetails von Blockchainnetzwerken.Truffle projects contain a configuration file for blockchain network connection details. Ändern Sie die Konfigurationsdatei, damit die Verbindungsinformationen für Ihr Netzwerk einbezogen werden.Modify the configuration file to include the connection information for your network.

Warnung

Senden Sie niemals Ihren privaten Ethereum-Schlüssel über das Netzwerk.Never send your Ethereum private key over the network. Stellen Sie sicher, dass jede Transaktion zuerst lokal signiert wird und die signierte Transaktion über das Netzwerk gesendet wird.Ensure that each transaction is signed locally first and the signed transaction is sent over the network.

  1. Sie benötigen den mnemonischen Satz für das Ethereum-Administratorkonto, das für die Bereitstellung Ihres Blockchainnetzwerks verwendet wurde.You need the mnemonic phrase for the Ethereum admin account used when deploying your blockchain network. Wenn Sie das Konto mit MetaMask erstellt haben, können Sie den mnemonischen Satz über MetaMask abrufen.If you used MetaMask to create the account, you can retrieve the mnemonic from MetaMask. Klicken Sie in der MetaMask-Erweiterung oben rechts auf das Symbol für das Administratorkonto, und wählen Sie Settings > Security & Privacy > Reveal Seed Words (Einstellungen > Sicherheit und Datenschutz > Seedwörter anzeigen) aus.Select the administrator account icon on the top right of the MetaMask extension and select Settings > Security & Privacy > Reveal Seed Words.

  2. Ersetzen Sie den Inhalt von truffle-config.js in Ihrem Truffle-Projekt durch Folgendes:Replace the contents of truffle-config.js in your Truffle project with the following content. Ersetzen Sie den Platzhalterendpunkt und den mnemonischen Wert.Replace the placeholder endpoint and mnemonic values.

    const HDWalletProvider = require("truffle-hdwallet-provider");
    const rpc_endpoint = "<Ethereum RPC endpoint>";
    const mnemonic = "Twelve words you can find in MetaMask > Security & Privacy > Reveal Seed Words";
    
    module.exports = {
      networks: {
        development: {
          host: "localhost",
          port: 8545,
          network_id: "*" // Match any network id
        },
        poa: {
          provider: new HDWalletProvider(mnemonic, rpc_endpoint),
          network_id: 10101010,
          gasPrice : 0
        }
      }
    };
    
  3. Da Sie truffle-hdwallet-provider verwenden, müssen Sie das Modul mit dem Befehl npm install truffle-hdwallet-provider --save in Ihrem Projekt installieren.Since we are using the Truffle HD Wallet provider, install the module in your project using the command npm install truffle-hdwallet-provider --save.

Für Truffle werden Migrationsskripts verwendet, um Smart Contract in einem Blockchainnetzwerk bereitzustellen.Truffle uses migration scripts to deploy smart contracts to a blockchain network. Sie benötigen ein Migrationsskript, um den neuen Smart Contract bereitzustellen.You need a migration script to deploy your new smart contract.

  1. Fügen Sie eine neue Migration hinzu, um den neuen Smart Contract bereitzustellen.Add a new migration to deploy the new contract. Erstellen Sie die Datei 2_deploy_contracts.js im Unterverzeichnis migrations des Truffle-Projekts.Create file 2_deploy_contracts.js in the migrations subdirectory of the Truffle project.

    var postBox = artifacts.require("postBox");
    
    module.exports = deployer => {
        deployer.deploy(postBox);
    };
    
  2. Führen Sie die Bereitstellung im PoA-Netzwerk mit dem Befehl „truffle migrate“ durch.Deploy to the PoA network using the Truffle migrate command. Führen Sie über die Eingabeaufforderung im Truffle-Projektverzeichnis Folgendes aus:At the command prompt in the Truffle project directory, run:

    truffle migrate --network poa
    

Aufrufen einer Smart-Contract-FunktionCall a smart contract function

Nachdem Ihr Smart Contract bereitgestellt wurde, können Sie eine Transaktion senden, um eine Funktion aufzurufen.Now that your smart contract is deployed, you can send a transaction to call a function.

  1. Erstellen Sie im Truffle-Projektverzeichnis eine neue Datei namens sendtransaction.js.In the Truffle project directory, create a new file named sendtransaction.js.

  2. Fügen Sie sendtransaction. js- den folgenden Inhalt hinzu.Add the following contents to sendtransaction.js.

    var postBox = artifacts.require("postBox");
    
    module.exports = function(done) {
      console.log("Getting the deployed version of the postBox smart contract")
      postBox.deployed().then(function(instance) {
        console.log("Calling postMsg function for contract ", instance.address);
        return instance.postMsg("Hello, blockchain!");
      }).then(function(result) {
        console.log("Transaction hash: ", result.tx);
        console.log("Request complete");
        done();
      }).catch(function(e) {
        console.log(e);
        done();
      });
    };
    
  3. Führen Sie das Skript mit dem Befehl „truffle exec“ aus.Execute the script using the Truffle execute command.

    truffle exec sendtransaction.js --network poa
    

    Skriptausführung für einen Funktionsaufruf über eine Transaktion

Unterstützung von WebAssembly (WASM)WebAssembly (WASM) support

Die WebAssembly-Unterstützung ist für neu bereitgestellte PoA-Netzwerke bereits für Sie aktiviert.WebAssembly support is already enabled for you on newly deployed PoA networks. Sie ermöglicht die Smart Contract-Entwicklung in jeder Sprache, mit der die Transpilierung für Web-Assembly (Rust, C, C++) möglich ist.It allows for smart-contract development in any language that transpiles to Web-Assembly (Rust, C, C++). Weitere Informationen finden Sie unter Parity-Übersicht für WebAssembly und Tutorial von Parity Technologies.For more information, see: Parity Overview of WebAssembly and Tutorial from Parity Tech

Häufig gestellte FragenFAQ

Mir sind im Netzwerk viele Transaktionen aufgefallen, die ich nicht gesendet habe.I notice there are many transactions on the network that I didn't send. Woher kommen diese Transaktionen?Where are these coming from?

Es ist unsicher, die persönliche API zu entsperren.It is insecure to unlock the personal API. Bots lauschen auf nicht gesperrte Ethereum-Konten und versuchen, das Guthaben abzuschöpfen.Bots listen for unlocked Ethereum accounts and attempt to drain the funds. Der Bot nimmt an, dass diese Konten echtes Ether-Guthaben enthalten, und versucht, als Erster an das Guthaben zu gelangen.The bot assumes these accounts contain real-ether and attempt to be the first to siphon the balance. Sie sollten die persönliche API im Netzwerk nicht aktivieren.Do not enable the personal API on the network. Signieren Sie die Transaktionen stattdessen entweder programmgesteuert oder manuell mithilfe eines Wallets wie MetaMask.Instead pre-sign the transactions either manually using a wallet like MetaMask or programmatically.

Wie stelle ich eine SSH-Verbindung mit einem virtuellen Computer her?How to SSH onto a VM?

Der SSH-Port wird aus Sicherheitsgründen nicht verfügbar gemacht.The SSH port is not exposed for security reasons. Befolgen Sie diese Anleitung zum Aktivieren des SSH-Ports.Follow this guide to enable the SSH port.

Wie richte ich ein Überwachungsmitglied oder einen Transaktionsknoten ein?How do I set up an audit member or transaction nodes?

Bei Transaktionsknoten handelt es sich um eine Reihe von Parity-Clients, die als Peers im Netzwerk vorhanden sind, aber nicht am Konsens teilnehmen.Transaction nodes are a set of parity clients that are peered with the network but are not participating in consensus. Diese Knoten können weiterhin verwendet werden, um Ethereum-Transaktionen zu übermitteln und den Smart Contract-Zustand zu lesen.These nodes can still be used to submit Ethereum transactions and read the smart contract state. Dieser Mechanismus funktioniert für die Bereitstellung der Überwachbarkeit für Konsortiumsmitglieder im Netzwerk, die keiner Autorität angehören.This mechanism works for providing auditability to non-authority consortium members on the network. Befolgen Sie hierfür die Schritte unter Vergrößern des Konsortiums.To achieve this, follow the steps in Growing the Consortium.

Warum dauern MetaMask-Transaktionen so lange?Why are MetaMask transactions taking a long time?

Um sicherzustellen, dass Transaktionen in der richtigen Reihenfolge empfangen werden, verfügt jede Ethereum-Transaktion über einen Nonce für die Inkrementierung.To ensure transactions are received in the correct order, each Ethereum transaction comes with an incrementing nonce. Wenn Sie ein Konto in MetaMask in einem anderen Netzwerk verwendet haben, müssen Sie den Nonce-Wert zurücksetzen.If you've used an account in MetaMask on a different network, you need to reset the nonce value. Klicken Sie auf das Symbol für die Einstellungen (drei Balken) und dann auf „Einstellungen > Konto zurücksetzen“.Click on the settings icon (three-bars), Settings, Reset Account. Der Transaktionsverlauf wird gelöscht, und Sie können die Transaktion erneut übermitteln.The transaction history will be cleared and now you can resubmit the transaction.

Muss ich in MetaMask eine gas-Gebühr angeben?Do I need to specify gas fee in MetaMask?

Ether erfüllt im Proof-of-Authority-Konsortium keinen Zweck.Ether doesn't serve a purpose in proof-of-authority consortium. Daher müssen Sie bei der Übermittlung von Transaktionen in MetaMask keine gas-Gebühr angeben.Hence, there is no need to specify gas fee when submitting transactions in MetaMask.

Was kann ich tun, wenn meine Bereitstellung aufgrund einer fehlgeschlagenen Bereitstellung der Azure OMS fehlschlägt?What should I do if my deployment fails due to failure to provision Azure OMS?

Die Überwachung ist ein optionales Feature.Monitoring is an optional feature. Wenn der seltene Fall eintritt, dass Ihre Bereitstellung fehlschlägt, weil die Azure Monitor-Ressource nicht bereitgestellt werden kann, können Sie die Bereitstellung ohne Azure Monitor noch mal durchführen.In some rare cases where your deployment fails because of inability to successfully provision Azure Monitor resource, you can redeploy without Azure Monitor.

Sind Bereitstellungen mit öffentlicher IP-Adresse mit Bereitstellungen privater Netzwerke kompatibel?Are public IP deployments compatible with private network deployments?

Nein.No. Für das Peering ist eine bidirektionale Kommunikation erforderlich, sodass das gesamte Netzwerk entweder öffentlich oder privat sein muss.Peering requires two-way communication so the entire network must either be public or private.

Welcher Transaktionsdurchsatz kann bei Proof-of-Authority erwartet werden?What is the expected transaction throughput of Proof-of-Authority?

Der Transaktionsdurchsatz hängt stark von den Transaktionstypen und der Netzwerktopologie ab.The transaction throughput will be highly dependent upon the types of transactions and the network topology. Bei der Verwendung einfacher Transaktionen haben wir durchschnittlich 400 Transaktionen pro Sekunde mit einem regionsübergreifenden Netzwerk gemessen.Using simple transactions, we've benchmarked an average of 400 transactions per second with a network deployed across multiple regions.

Wie kann ich ein Abonnement für Smart Contract-Ereignisse abschließen?How do I subscribe to smart contract events?

Ethereum Proof-of Authority unterstützt jetzt auch Web-Sockets.Ethereum Proof-of-Authority now supports web-sockets. Suchen Sie in der Bereitstellungsausgabe nach der URL und dem Port des Websocket.Check your deployment output to locate the web-socket URL and port.

Support und FeedbackSupport and feedback

Neues zu Azure Blockchain: Mit dem Azure Blockchain-Blog bleiben Sie in Bezug auf Blockchain-Dienstangebote und Informationen vom Azure Blockchain-Technikteam immer auf dem Laufenden.For Azure Blockchain news, visit the Azure Blockchain blog to stay up to date on blockchain service offerings and information from the Azure Blockchain engineering team.

Über das Azure-Feedbackforum für Blockchain können Sie Produktfeedback senden, neue Features anfordern oder über Ideen abstimmen.To provide product feedback or to request new features, post or vote for an idea via the Azure feedback forum for blockchain.

CommunityunterstützungCommunity support

Diskutieren Sie mit Microsoft-Technikern und Azure Blockchain-Communityexperten.Engage with Microsoft engineers and Azure Blockchain community experts.

Nächste SchritteNext steps

Weitere Azure Blockchain-Lösungen finden Sie in der Dokumentation zu Azure Blockchain.For more Azure Blockchain solutions, see the Azure Blockchain documentation.