

AWS Blockchain Templates wurde am 30. April 2019 eingestellt. Es werden keine weiteren Aktualisierungen dieses Services oder dieser unterstützenden Dokumentation vorgenommen. Für ein optimales Managed Blockchain-Erlebnis empfehlen wir Ihnen AWS, [Amazon Managed Blockchain (AMB)](https://aws.amazon.com/managed-blockchain/) zu verwenden. Weitere Informationen zu den ersten Schritten mit Amazon Managed Blockchain finden Sie in unserem [Workshop zu Hyperledger Fabric](https://catalog.us-east-1.prod.workshops.aws/workshops/008da2cb-8454-42d0-877b-bc290bff7fcf/en-US) oder in unserem [Blog zur Bereitstellung eines Ethereum-Knotens](https://aws.amazon.com/blogs/database/deploy-an-ethereum-node-on-amazon-managed-blockchain/). Wenn Sie Fragen zu AMB haben oder weitere Unterstützung benötigen, [wenden Sie sich an unser Support Account-Team](https://console.aws.amazon.com/support/home#/case/create?issueType=technical). AWS 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS-Blockchain-Templates und -Funktionen
<a name="blockchain-template-features"></a>

Dieser Abschnitt enthält Links, über die Sie sofort mit der Erstellung eines Blockchain-Netzwerks beginnen können, sowie Informationen zu Konfigurationsmöglichkeiten und Voraussetzungen für die Einrichtung des Netzwerks auf AWS.

Die folgenden Vorlagen sind verfügbar:
+ [AWS-Blockchain-Template für Ethereum](https://docs.aws.amazon.com/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)
+ [AWS-Blockchain-Template für Hyperledger Fabric](https://docs.aws.amazon.com/blockchain-templates/latest/developerguide/blockchain-templates-hyperledger.html)

AWS Blockchain Templates ist in den folgenden Regionen verfügbar:
+ Region USA West (Oregon) (us-west-2)
+ Region USA Ost (Nord-Virginia) (us-east-1)
+ Region USA Ost (Ohio) (us-east-2)

**Anmerkung**  
Wenn Sie eine Vorlage in einer Region ausführen, die oben nicht aufgeführt ist, werden Ressourcen in der Region USA Ost (Nord-Virginia) (us-east-1) gestartet.

# Verwenden der AWS-Blockchain-Template für Ethereum
<a name="blockchain-templates-ethereum"></a>

Ethereum ist ein Blockchain-Framework, das intelligente Verträge mit Solidity, einer Ethereum-spezifischen Sprache, ausführt. Homestead ist die neueste Version von Ethereum. Weitere Informationen finden Sie in der [Ethereum Homestead-Dokumentation und der [Solidity-Dokumentation](https://solidity.readthedocs.io/en/v0.4.21/#)](http://www.ethdocs.org/en/latest/).

## Links für den Start
<a name="blockchain-ethereum-launch"></a>

Links zum [Start CloudFormation in bestimmten Regionen mithilfe der Ethereum-Vorlagen finden Sie unter Erste Schritte mit AWS-Blockchain-Templates](https://aws.amazon.com/blockchain/templates/getting-started/).

## Ethereum-Optionen
<a name="blockchain-ethereum-options"></a>

Wenn Sie das Ethereum-Netzwerk mithilfe der Vorlage konfigurieren, treffen Sie Entscheidungen, die die nachfolgenden Anforderungen bestimmen:
+ [Auswahl der Container-Plattform](#blockchain-ethereum-platform)
+ [Auswahl eines privaten oder öffentlichen Ethereum-Netzwerks](#blockchain-private-public)
+ [Ändern der Standardkonten und der mnemonischen Phrase](#blockchain-ethereum-mnemonic)

### Auswahl der Container-Plattform
<a name="blockchain-ethereum-platform"></a>

AWS-Blockchain-Templates verwenden Docker-Container, die in Amazon ECR gespeichert sind, um Blockchain-Software bereitzustellen. Das AWS-Blockchain-Template für Ethereum bietet zwei Optionen für die **Container-Plattform**:
+ **ecs** —Gibt an, dass Ethereum auf einem Amazon ECS-Cluster von EC2 Amazon-Instances läuft.
+ **docker-local** — Gibt an, dass Ethereum auf einer einzigen Instanz ausgeführt wird. EC2

#### Verwendung der Amazon ECS-Container-Plattform
<a name="blockchain-ethereum-ecs"></a>

Mit Amazon ECS erstellen Sie Ihr Ethereum-Netzwerk auf einem ECS-Cluster, der aus mehreren EC2 Instances besteht, mit einem Application Load Balancer und zugehörigen Ressourcen. Weitere Informationen zur Verwendung der Amazon ECS-Konfiguration finden Sie im [Erste Schritte mit AWS-Blockchain-Templates](blockchain-templates-getting-started.md) Tutorial.

Das folgende Diagramm zeigt ein Ethereum-Netzwerk, das mithilfe der Vorlage mit der ECS-Container-Plattformoption erstellt wurde:

![\[AWS diagram showing VPC with public and private subnets, load balancers, and Ethereum nodes in ECS containers.\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/images/ethereum-ecs-arch.png)


#### Verwendung der Docker-Local-Plattform
<a name="blockchain-ethereum-docker-local"></a>

Alternativ können Sie Ethereum-Container innerhalb einer einzigen EC2 Amazon-Instance starten. Alle Container laufen auf einer einzigen EC2 Instance. Dies ist eine vereinfachte Einrichtung.

Das folgende Diagramm zeigt ein Ethereum-Netzwerk, das mithilfe der Vorlage mit der Docker-Local-Container-Plattformoption erstellt wurde:

![\[Diagram of Ethereum network on AWS with VPC, EC2 instance, containers, and ECR registry.\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/images/ethereum-docker-local-arch.png)


### Auswahl eines privaten oder öffentlichen Ethereum-Netzwerks
<a name="blockchain-private-public"></a>

Wenn Sie einen anderen **Ethereum-Netzwerk-ID**-Wert als 1-4 wählen, werden private Ethereum-Knoten erstellt, die innerhalb eines von Ihnen definierten Netzwerks unter Verwendung der von Ihnen angegebenen privaten Netzwerkparameter ausgeführt werden.

Wenn Sie eine **Ethereum-Netzwerk-ID** von 1—4 wählen, werden die von Ihnen erstellten Ethereum-Knoten mit dem öffentlichen Ethereum-Netzwerk verbunden. Sie können private Netzwerkeinstellungen und deren Standardeinstellungen ignorieren. Wenn Sie sich dafür entscheiden, Ethereum-Knoten mit dem öffentlichen Ethereum-Netzwerk zu verbinden, stellen Sie sicher, dass die entsprechenden Dienste in Ihrem Netzwerk über das Internet zugänglich sind.

### Ändern der Standardkonten und der mnemonischen Phrase
<a name="blockchain-ethereum-mnemonic"></a>

Eine mnemonische Phrase ist eine zufällige Wortgruppe, die Sie verwenden können, um Ethereum-Wallets (d. h. private/public Schlüsselpaare) für zugehörige Konten in einem beliebigen Netzwerk zu generieren. Die mnemonische Phrase kann verwendet werden, um auf Ether für verknüpfte Konten zuzugreifen. Wir haben eine Standard-Mnemonik erstellt, die den Standardkonten zugeordnet ist, die von der Ethereum-Vorlage verwendet werden.

**Warnung**  
Verwenden Sie die Standardkonten und die zugehörige mnemonische Phrase nur zu Testzwecken. Senden Sie keinen echten Ether mit dem Standardkontensatz, da jeder Benutzer mit Zugriff auf die mnemonische Phrase auf Ether zugreifen oder aus den Konten stehlen kann. Geben Sie stattdessen benutzerdefinierte Konten für Produktionszwecke an. Die dem Standardkonto zugeordnete mnemonische Phrase lautet `outdoor father modify clever trophy abandon vital feel portion grit evolve twist`.

## Voraussetzungen
<a name="blockchain-ethereum-prereq"></a>

Wenn Sie Ihr Ethereum-Netzwerk mithilfe der AWS Blockchain Template for Ethereum einrichten, müssen die unten aufgeführten Mindestanforderungen erfüllt sein. Für die Vorlage sind die AWS Komponenten erforderlich, die für jede der folgenden Kategorien aufgeführt sind:

**Topics**
+ [Voraussetzungen für den Zugriff auf Ethereum-Ressourcen](#blockchain-ethereum-prereq-access)
+ [IAM-Voraussetzungen](#blockchain-ethereum-prereq-iam)
+ [Sicherheitsgruppen-Voraussetzungen](#blockchain-ethereum-prereq-sec)
+ [VPC-Voraussetzungen](#blockchain-ethereum-prereq-vpc)
+ [Beispiel für IAM-Berechtigungen für das EC2 Instanzprofil und die ECS-Rolle](#blockchain-ethereum-iam-examples)

### Voraussetzungen für den Zugriff auf Ethereum-Ressourcen
<a name="blockchain-ethereum-prereq-access"></a>


| Voraussetzung | Für ECS-Plattform | Für Docker-Local | 
| --- | --- | --- | 
|  Ein EC2 Amazon-Schlüsselpaar, mit dem Sie auf EC2 Instances zugreifen können. Der Schlüssel muss sich in derselben Region wie der ECS-Cluster und die anderen Ressourcen befinden.  |  ✔  |  ✔  | 
|  Eine mit dem Internet verbundene Komponente, z. B. ein Bastion-Host oder ein mit dem Internet verbundener Load Balancer, mit einer internen Adresse, von der aus Datenverkehr in den Application Load Balancer zugelassen wird. Dies ist bei der ECS-Plattform erforderlich, da die Vorlage aus Sicherheitsgründen einen internen Load Balancer erstellt. Dies ist bei der Docker-Local-Plattform erforderlich, wenn sich die EC2 Instance in einem privaten Subnetz befindet, was wir empfehlen. Weitere Informationen zum Konfigurieren eines Bastion-Hosts finden Sie unter [Erstellen eines Bastion-Host](blockchain-template-getting-started-prerequisites.md#blockchain-templates-bastion-host).  |  ✔  |  ✔ (mit privatem Subnetz)  | 

### IAM-Voraussetzungen
<a name="blockchain-ethereum-prereq-iam"></a>


| Voraussetzung | Für ECS-Plattform | Für Docker-Local | 
| --- | --- | --- | 
|  Ein IAM-Prinzipal (Benutzer oder Gruppe), der berechtigt ist, mit allen zugehörigen Diensten zu arbeiten.  |  ✔  |  ✔  | 
|  Ein EC2 Amazon-Instance-Profil mit entsprechenden Berechtigungen für EC2 Instances zur Interaktion mit anderen Services. Weitere Informationen finden Sie unter [To create an EC2 instance profile](blockchain-template-getting-started-prerequisites.md#create-ec2-role).   |  ✔  |  ✔  | 
|  Eine IAM-Rolle mit Berechtigungen für Amazon ECS zur Interaktion mit anderen Services. Weitere Informationen finden Sie unter [Erstellen der ECS-Rolle und Berechtigungen](#blockchain-ethereum-ecs-role).  |  ✔  |    | 

### Sicherheitsgruppen-Voraussetzungen
<a name="blockchain-ethereum-prereq-sec"></a>


| Voraussetzung | Für ECS-Plattform | Für Docker-Local | 
| --- | --- | --- | 
| Eine Sicherheitsgruppe für EC2 Instances mit den folgenden Anforderungen: | ✔ |  ✔  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)  | ✔ |  ✔  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)  | ✔ |  ✔  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html) | ✔ |  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html) |  | ✔ | 
|  Eine Sicherheitsgruppe für den Application Load Balancer mit den folgenden Voraussetzungen: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/blockchain-templates-ethereum.html)  |  ✔  |    | 

### VPC-Voraussetzungen
<a name="blockchain-ethereum-prereq-vpc"></a>


| Voraussetzung | Für ECS-Plattform | Für Docker-Local | 
| --- | --- | --- | 
|  Eine elastische IP-Adresse, die für den Zugriff auf Ethereum-Dienste verwendet wird.  |  ✔  |  ✔  | 
|  Ein Subnetz zum Ausführen von EC2 Instances. Wir empfehlen Ihnen dringend, ein privates Subnetz zu verwenden.  |  ✔  |  ✔  | 
|  Zwei öffentlich zugängliche Subnetze. Jedes Subnetz muss sich in unterschiedlichen Availability Zones befinden, wobei sich eine in derselben Availability Zone wie das Subnetz für Instances befinden muss. EC2   |  ✔  |    | 

### Beispiel für IAM-Berechtigungen für das EC2 Instanzprofil und die ECS-Rolle
<a name="blockchain-ethereum-iam-examples"></a>

Sie geben einen ARN für ein EC2 Instanzprofil als einen der Parameter an, wenn Sie die Vorlage verwenden. Wenn Sie die ECS-Container-Plattform verwenden, geben Sie zusätzlich einen ARN für die ECS-Rolle an. Die diesen Rollen zugeordneten Berechtigungsrichtlinien gestatten den AWS-Ressourcen und Instances in Ihrem Cluster, mit anderen AWS-Ressourcen zu interagieren. Weitere Informationen finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) im *IAM-Benutzerhandbuch*. Verwenden Sie die folgenden Richtlinienanweisungen und Verfahren als Basis für die Erstellung von Berechtigungen.

#### Beispiel für eine Berechtigungsrichtlinie für das EC2 Instanzprofil
<a name="blockchain-ethereum-ec2-instance"></a>

Die folgende Berechtigungsrichtlinie zeigt, welche Aktionen für das EC2 Instance-Profil zulässig sind, wenn Sie sich für die ECS-Containerplattform entscheiden. Dieselben Richtlinienanweisungen können auf einer Docker-Local-Container-Plattform verwendet werden, wobei `ecs`-Kontextschlüssel entfernt werden, um den Zugriff einzuschränken.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:CreateCluster",
                "ecs:DeregisterContainerInstance",
                "ecs:DiscoverPollEndpoint",
                "ecs:Poll",
                "ecs:RegisterContainerInstance",
                "ecs:StartTelemetrySession",
                "ecs:Submit*",
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "dynamodb:BatchGetItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:PutItem",
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem"
            ],
            "Resource": "*"
        }
    ]
}
```

#### Erstellen der ECS-Rolle und Berechtigungen
<a name="blockchain-ethereum-ecs-role"></a>

Für die mit der ECS-Rolle verknüpften Berechtigungen empfehlen wir, mit der **EC2ContainerServiceRoleAmazon-Berechtigungsrichtlinie** zu beginnen. Führen Sie die folgenden Schritte aus, um eine Rolle zu erstellen und diese Berechtigungsrichtlinie anzufügen. Verwenden Sie die IAM-Konsole, um die meisten up-to-date Berechtigungen in dieser Richtlinie einzusehen.

**So erstellen Sie die IAM-Rolle für Amazon ECS**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Roles (Rollen)** und **Create Role (Rolle erstellen)** aus.

1. Wählen Sie unter **Select type of trusted entity** (Typ der vertrauenswürdigen Entität auswählen) die Option **AWS service** (AWS-Service) aus.

1. Wählen Sie für **Choose the service that will use this role (Service auswählen, der diese Rolle verwendet)** die Option **Elastic Container Service** aus.

1. Wählen Sie unter **Select your use case (Auswahl Ihres Anwendungsfalls)** die Optionen **Elastic Container Service (Elastischer Container-Service)**, **Next:Permissions (Weiter: Berechtigungen)** aus.  
![\[AWS console interface for creating a role, with Elastic Container Service selected as the use case.\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/images/ecs-role.png)

1. Lassen Sie für die **Berechtigungsrichtlinie** die Standardrichtlinie (**Amazon EC2 ContainerServiceRole**) ausgewählt und wählen Sie **Weiter: Überprüfen**.

1. Geben Sie **unter Rollenname** einen Wert ein, anhand dessen Sie die Rolle leichter identifizieren können, z. B. *ECSRoleForEthereum* Geben Sie unter **Role Description (Rollenbeschreibung)** eine kurze Zusammenfassung ein. Notieren Sie sich den Rollennamen für später.

1. Wählen Sie **Rolle erstellen** aus.

1. Wählen Sie die gerade erstellte Rolle aus der Liste aus. Wenn Ihr Konto viele Rollen hat, können Sie nach dem Rollennamen suchen.  
![\[AWSIAM console showing a role named "ECSRoleForEtherum" with its description.\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/images/ecs-role-list.png)

1. Kopieren Sie den Wert **Role ARN (Rollen-ARN)** und speichern Sie ihn, sodass Sie ihn jederzeit erneut kopieren können. Sie benötigen diesen ARN beim Erstellen des Ethereum-Netzwerks.  
![\[AWSIAM role summary page showing role ARN, description, and attached policies.\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/images/ecs-role-arn.png)

## Verbindung zu Ethereum-Ressourcen herstellen
<a name="blockchain-ethereum-connecting"></a>

Nachdem der Root-Stack, den Sie mit der Vorlage erstellen, **CREATE\$1COMPLETE** anzeigt, können Sie über die Konsole eine Verbindung zu Ethereum-Ressourcen herstellen. CloudFormation Die Art der Verbindung hängt von der Container-Plattform ab, die Sie wählen: ECS oder Docker-Local:
+ **ECS** — Die Registerkarte „**Ausgabe**“ des Root-Stacks enthält Links zu Diensten, die auf dem Application Load Balancer ausgeführt werden. Auf URLs diese kann aus Sicherheitsgründen nicht direkt zugegriffen werden. Um eine Verbindung herzustellen, können Sie einen *Bastion-Host* für Proxy-Verbindungen zu ihnen einrichten und verwenden. Weitere Informationen hierzu finden Sie unter [Proxy-Verbindungen unter Verwendung eines Bastion-Hosts](#ethereum-create-bastion-host) weiter unten.
+ **docker-local** — Sie stellen eine Verbindung mit der IP-Adresse der EC2 Instanz her, die die Ethereum-Dienste hostet, wie unten aufgeführt. Verwenden Sie die EC2 Konsole, um die *ec2-IP-address* Instanz zu finden, die die Vorlage erstellt hat.
  + **EthStats**— Verwenden Sie http://*ec2-IP-address*
  + **EthExplorer**— Verwenden Sie http: //:8080 *ec2-IP-address*
  + **EthJsonRpc**—Verwenden Sie http: //:8545 *ec2-IP-address*

  Wenn Sie ein öffentliches Subnetz für die **Ethereum Network Subnet ID (Ethereum-Netzwerk-Subnetz-ID)** (**Liste der in der Vorlage zu verwendenden VPC-Subnetze**) angegeben haben, können Sie direkt eine Verbindung herstellen. Ihr Client muss eine vertrauenswürdige Quelle für eingehenden Datenverkehr für SSH (Port 22) sowie die aufgeführten Ports sein. Dies wird von der **EC2 Sicherheitsgruppe** bestimmt, die Sie mithilfe der AWS-Blockchain-Template für Ethereum angegeben haben.

  Wenn Sie ein privates Subnetz angegeben haben, können Sie einen *Bastion-Host* für Proxy-Verbindungen diesen Adressen einrichten und verwenden. Weitere Informationen hierzu finden Sie unter [Proxy-Verbindungen unter Verwendung eines Bastion-Hosts](#ethereum-create-bastion-host) weiter unten.

### Proxy-Verbindungen unter Verwendung eines Bastion-Hosts
<a name="ethereum-create-bastion-host"></a>

Bei einigen Konfigurationen sind Ethereum-Dienste möglicherweise nicht öffentlich verfügbar. In diesen Fällen können Sie über einen *Bastion-Host* eine Verbindung zu Ethereum-Ressourcen herstellen. Weitere Informationen über Bastion-Hosts finden Sie unter [Linux-Bastion-Host-Architektur](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html) im *Linux Bastion-Host Quick Start-Leitfaden*.

Der Bastion-Host ist eine Instanz EC2 . Stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:
+ Die EC2 Instanz für den Bastion-Host befindet sich in einem öffentlichen Subnetz, in dem Auto-Assign Public IP aktiviert ist und das über ein Internet-Gateway verfügt. 
+ Der Bastion-Host hat das key pair, das SSH-Verbindungen ermöglicht.
+ Der Bastion-Host ist einer Sicherheitsgruppe zugeordnet, die eingehenden SSH-Verkehr von den Clients, die eine Verbindung herstellen, zulässt.
+ Die den Ethereum-Hosts zugewiesene Sicherheitsgruppe (z. B. der Application Load Balancer, wenn ECS die Containerplattform ist, oder die EC2 Host-Instance, wenn Docker-Local die Container-Plattform ist) erlaubt eingehenden Datenverkehr auf allen Ports von Quellen innerhalb der VPC.

Stellen Sie bei der Einrichtung eines Bastion-Hosts sicher, dass die Clients, die eine Verbindung herstellen, den Bastion-Host als Proxy verwenden. Das folgende Beispiel zeigt die Einrichtung einer Proxyverbindung unter Mac OS. *BastionIP*Ersetzen Sie durch die IP-Adresse der EC2 Bastion-Host-Instance und *MySshKey.pem* durch die Schlüsselpaardatei, die Sie auf den Bastion-Host kopiert haben.

Geben Sie in der Befehlszeile Folgendes ein:

```
ssh -i mySshKey.pem  ec2-user@BastionIP -D 9001
```

Dadurch wird die Portweiterleitung für Port 9001 auf dem lokalen Computer zum Bastion-Host eingerichtet.

Als Nächstes konfigurieren Sie Ihren Browser oder Ihr System für `localhost:9001` die Verwendung des SOCKS-Proxys. Beispielsweise wählen Sie unter Mac OS **System Preferences (Systemeinstellungen)**, **Network (Netzwerk)**, **Advanced (Erweitert)**, **SOCKS proxy (SOCKS-Proxy)** und geben dann **localhost:9001** ein.

Wenn Sie FoxyProxy Standard mit Chrome verwenden, wählen Sie **Weitere Tools**, **Erweiterungen** aus. Wählen Sie unter **FoxyProxy Standard** die Optionen **Details**, **Erweiterungsoptionen** und **Neuen Proxy hinzufügen** aus. Wählen Sie **Manual Proxy Configuration (Manuelle Proxy-Konfiguration)** aus. Geben Sie für **Host or IP Address (Host- oder IP-Adresse)** **localhost** und für **Port** **9001** ein. Wählen Sie **SOCKS proxy?**, **Save (Speichern)** aus.

Sie sollten jetzt in der Lage sein, eine Verbindung zu den Ethereum-Hostadressen herzustellen, die in der Vorlagenausgabe aufgeführt sind.

# Verwenden der AWS-Blockchainvorlage für Hyperledger Fabric
<a name="blockchain-templates-hyperledger"></a>

Hyperledger Fabric ist ein Blockchain-Framework, das intelligente Verträge ausführt, die als Chaincode bezeichnet werden und in Go geschrieben sind. Sie können mit Hyperledger Fabric ein privates Netzwerk erstellen und so die Anzahl der Peers einschränken, die sich mit dem Netzwerk verbinden und daran teilnehmen können. [Weitere Informationen zu Hyperledger Fabric finden Sie in der Hyperledger Fabric-Dokumentation.](https://hyperledger-fabric.readthedocs.io/en/release-1.1/) [Weitere Informationen zu Chaincode finden Sie im Thema [Chaincode für Entwickler in der Hyperledger Fabric-Dokumentation](https://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html).](https://hyperledger-fabric.readthedocs.io/en/release-1.1/)

Das AWS Blockchain Template for Hyperledger Fabric unterstützt nur eine *Docker-Local-Container-Plattform*, was bedeutet, dass die Hyperledger Fabric-Container auf einer einzigen EC2-Instance bereitgestellt werden.

## Links für den Start
<a name="blockchain-hyperledger-launch"></a>

Links zum Start CloudFormation in bestimmten Regionen mithilfe der Hyperledger [Fabric-Vorlagen finden Sie unter Erste Schritte mit AWS-Blockchain-Templates](https://aws.amazon.com/blockchain/templates/getting-started/).

## AWS-Blockchain-Template für Hyperledger Fabric-Komponenten
<a name="blockchain-hyperledger-architecture"></a>

Die AWS Blockchain Template for Hyperledger Fabric erstellt eine EC2-Instance mit Docker und startet ein Hyperledger Fabric-Netzwerk mithilfe von Containern auf dieser Instance. Das Netzwerk umfasst einen Bestellservice und drei Organisationen mit jeweils einem Peer-Service. Über die Vorlage wird auch ein Hyperledger-Explorer-Container gestartet, mit dem Sie Blockchain-Daten durchsuchen können. Ein PostgreSQL-Server-Container wird gestartet, um den Hyperledger Explorer zu unterstützen.

Das folgende Diagramm zeigt ein Hyperledger Fabric-Netzwerk, das mit der Vorlage erstellt wurde:

![\[AWS architecture diagram showing EC2 instance with containers in a VPC, connected to ECR and S3.\]](http://docs.aws.amazon.com/de_de/blockchain-templates/latest/developerguide/images/hyperledger-docker-local-arch.png)


## Voraussetzungen
<a name="blockchain-hyperledger-prerequisites"></a>

Bevor Sie ein Hyperledger Fabric-Netzwerk mithilfe einer Vorlage starten, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind: 
+ Das von Ihnen verwendete IAM-Prinzip (Benutzer oder Gruppe) muss über die erforderlichen Berechtigungen verfügen, um mit allen zugehörigen Diensten arbeiten zu können.
+ Sie müssen Zugriff auf ein Schlüsselpaar haben, mit dem Sie auf EC2-Instances zugreifen können (z. B. über SSH). Der Schlüssel muss sich in derselben Region wie die Instance befinden.
+ Sie benötigen ein EC2-Instance-Profil mit einer angehängten Berechtigungsrichtlinie, die den Zugriff auf Amazon S3 und Amazon Elastic Container Registry (Amazon ECR) ermöglicht, um Container abzurufen. Ein Beispiel für eine Berechtigungsrichtlinie finden Sie unter [Beispiel für IAM-Berechtigungen für das EC2-Instance-Profil](#blockchain-hyperledger-ec2profile).
+ Sie benötigen ein Amazon VPC-Netzwerk mit einem öffentlichen Subnetz oder ein privates Subnetz mit einem NAT-Gateway und einer Elastic IP-Adresse CloudFormation, damit auf Amazon S3 und Amazon ECR zugegriffen werden kann.
+ Sie müssen über eine EC2-Sicherheitsgruppe mit Regeln für eingehenden Datenverkehr verfügen, die den SSH-Verkehr (Port 22) von den IP-Adressen zulassen, die eine Verbindung mit der Instance über SSH herstellen müssen, und dieselbe für Clients, die eine Verbindung zum Hyperledger Explorer (Port 8080) herstellen müssen.

### Beispiel für IAM-Berechtigungen für das EC2-Instance-Profil
<a name="blockchain-hyperledger-ec2profile"></a>

Sie geben einen ARN für ein EC2-Instance-Profil als einen der Parameter an, wenn Sie die AWS Blockchain Template for Hyperledger Fabric verwenden. Verwenden Sie die folgende Richtlinienanweisung als Basis für die Berechtigungsrichtlinie, die dieser EC2-Rolle und diesem Instance-Profil zugewiesen ist.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:ListImages",
                "ecr:DescribeImages",
                "ecr:BatchGetImage",
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Verbindung zu Hyperledger Fabric-Ressourcen herstellen
<a name="blockchain-hyperledger-connecting"></a>

Nachdem der Root-Stack, den Sie mit der Vorlage erstellen, **CREATE\$1COMPLETE** anzeigt, können Sie eine Verbindung zu Hyperledger Fabric-Ressourcen auf der EC2-Instance herstellen. Wenn Sie ein öffentliches Subnetz angegeben haben, können Sie eine Verbindung zur EC2-Instance wie bei jeder anderen EC2-Instance herstellen. Weitere Informationen finden Sie unter [Herstellen einer Verbindung zu Ihrer Linux-Instance mithilfe von SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

Wenn Sie ein privates Subnetz angegeben haben, können Sie einen *Bastion-Host einrichten und verwenden, um Verbindungen zu Hyperledger Fabric-Ressourcen* per Proxy herzustellen. Weitere Informationen hierzu finden Sie unter [Proxy-Verbindungen unter Verwendung eines Bastion-Hosts](blockchain-templates-ethereum.md#ethereum-create-bastion-host) weiter unten.

**Anmerkung**  
Möglicherweise stellen Sie fest, dass die Vorlage der EC2-Instance, die Hyperledger Fabric-Dienste hostet, eine öffentliche IP-Adresse zuweist. Diese IP-Adresse ist jedoch nicht öffentlich zugänglich, da die Routing-Richtlinien in dem von Ihnen angegebenen privaten Subnetz keinen Verkehr zwischen dieser IP-Adresse und öffentlichen Quellen zulassen.

### Proxyverbindungen, die einen Bastion-Host verwenden
<a name="hyperledger-create-bastion-host"></a>

Bei einigen Konfigurationen sind Hyperledger Fabric-Dienste möglicherweise nicht öffentlich verfügbar. *In diesen Fällen können Sie über einen Bastion-Host eine Verbindung zu Hyperledger Fabric-Ressourcen herstellen.* Weitere Informationen über Bastion-Hosts finden Sie unter [Linux-Bastion-Host-Architektur](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html) im *Linux Bastion-Host Quick Start-Leitfaden*.

Der Bastion-Host ist eine EC2-Instance. Stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:
+ Die EC2-Instance für den Bastion-Host befindet sich in einem öffentlichen Subnetz, in dem Auto-Assign Public IP aktiviert ist und das über ein Internet-Gateway verfügt. 
+ Der Bastion-Host hat das key pair, das SSH-Verbindungen ermöglicht.
+ Der Bastion-Host ist einer Sicherheitsgruppe zugeordnet, die eingehenden SSH-Verkehr von den Clients, die eine Verbindung herstellen, zulässt.
+ Die den Hyperledger Fabric-Hosts zugewiesene Sicherheitsgruppe (z. B. der Application Load Balancer, wenn ECS die Containerplattform ist, oder die Host-EC2-Instance, wenn Docker-Local die Container-Plattform ist) lässt eingehenden Datenverkehr auf allen Ports von Quellen innerhalb der VPC zu.

Stellen Sie bei der Einrichtung eines Bastion-Hosts sicher, dass die Clients, die eine Verbindung herstellen, den Bastion-Host als Proxy verwenden. Das folgende Beispiel zeigt die Einrichtung einer Proxyverbindung unter Mac OS. *BastionIP*Ersetzen Sie durch die IP-Adresse der Bastion-Host-EC2-Instance und *MySshKey.pem* durch die Schlüsselpaardatei, die Sie auf den Bastion-Host kopiert haben.

Geben Sie in der Befehlszeile Folgendes ein:

```
ssh -i mySshKey.pem  ec2-user@BastionIP -D 9001
```

Dadurch wird die Portweiterleitung für Port 9001 auf dem lokalen Computer zum Bastion-Host eingerichtet.

Als Nächstes konfigurieren Sie Ihren Browser oder Ihr System für `localhost:9001` die Verwendung des SOCKS-Proxys. Beispielsweise wählen Sie unter Mac OS **System Preferences (Systemeinstellungen)**, **Network (Netzwerk)**, **Advanced (Erweitert)**, **SOCKS proxy (SOCKS-Proxy)** und geben dann **localhost:9001** ein.

Wenn Sie FoxyProxy Standard mit Chrome verwenden, wählen Sie **Weitere Tools**, **Erweiterungen** aus. Wählen Sie unter **FoxyProxy Standard** die Optionen **Details**, **Erweiterungsoptionen** und **Neuen Proxy hinzufügen** aus. Wählen Sie **Manual Proxy Configuration (Manuelle Proxy-Konfiguration)** aus. Geben Sie für **Host or IP Address (Host- oder IP-Adresse)** **localhost** und für **Port** **9001** ein. Wählen Sie **SOCKS proxy?**, **Save (Speichern)** aus.

Sie sollten jetzt in der Lage sein, eine Verbindung zu den Hyperledger Fabric-Hostadressen herzustellen, die in der Vorlagenausgabe aufgeführt sind.