AWS Blockchain Templates è stato interrotto il 30 aprile 2019. Non verranno effettuati ulteriori aggiornamenti a questo servizio o alla presente documentazione di supporto. Per la migliore esperienza di Managed Blockchain su AWS, ti consigliamo di utilizzare Amazon Managed Blockchain (AMB)
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo del modello AWS Blockchain per Ethereum
Ethereum è un framework blockchain che esegue contratti smart tramite Solidity, un linguaggio specifico di Ethereum. Homestead è la versione più recente di Ethereum. Per ulteriori informazioni, consulta la documentazione di Ethereum Homestead e la documentazione
Link per l'avvio
Consulta Getting Started with AWS Blockchain Templates
Opzioni Ethereum
Quando configuri la rete Ethereum utilizzando il modello, puoi effettuare delle scelte che determinano i requisiti successivi:
Scelta della piattaforma dei container
AWS Blockchain Templates utilizza contenitori Docker archiviati in Amazon ECR per distribuire software blockchain. Il modello AWS Blockchain per Ethereum offre due scelte per la piattaforma container:
ecs: specifica che Ethereum viene eseguito su un cluster Amazon ECS di istanze Amazon EC2.
docker-local: specifica che Ethereum viene eseguito su una singola istanza EC2.
Utilizzo della piattaforma container Amazon ECS
Con Amazon ECS, crei la tua rete Ethereum su un cluster ECS composto da più istanze EC2, con un Application Load Balancer e risorse correlate. Per ulteriori informazioni sull'uso della configurazione di Amazon ECS, consulta il Guida introduttiva a AWS Blockchain Templates tutorial.
Il diagramma seguente mostra una rete Ethereum creata utilizzando il modello con l'opzione della piattaforma container ECS:
Utilizzo della piattaforma docker-local
In alternativa, puoi avviare contenitori Ethereum all'interno di una singola istanza Amazon EC2. Tutti i container vengono eseguiti su una singola istanza EC2. Questa è una configurazione semplificata.
Il diagramma seguente mostra una rete Ethereum creata utilizzando il modello con l'opzione docker-local container platform:
Scelta di una rete Ethereum privata o pubblica
La scelta di un valore per l'ID di rete Ethereum diverso da 1-4 crea nodi Ethereum privati che vengono eseguiti all'interno di una rete che hai definito, utilizzando i parametri della rete privata da te specificati.
Quando scegli un ID di rete Ethereum compreso tra 1 e 4, i nodi Ethereum che crei vengono uniti alla rete pubblica Ethereum. Puoi ignorare le impostazioni della rete privata e le relative impostazioni predefinite. Se scegli di unire i nodi Ethereum alla rete Ethereum pubblica, assicurati che i servizi appropriati nella tua rete siano accessibili da Internet.
Modifica degli account predefiniti e della frase mnemonica
Una frase mnemonica è un insieme casuale di parole che è possibile utilizzare per generare wallet Ethereum (cioè coppie di chiavi private/pubbliche) per gli account associati su qualsiasi rete. La frase mnemonica può essere utilizzata per l'accesso a Ether da parte degli account associati. Abbiamo creato un mnemonico predefinito associato agli account predefiniti utilizzati dal modello Ethereum.
avvertimento
Utilizzare gli account predefiniti e la frase mnemonica associata solo a scopo di test. Non inviare Ether reale utilizzando il set predefinito di account perché chiunque abbia accesso alla frase mnemonica può accedere o rubare Ether dagli account. Specificare invece account personalizzati per scopi di produzione. La frase mnemonica associata all'account predefinito è outdoor father modify clever trophy abandon vital feel portion grit evolve twist
.
Prerequisiti
Quando configuri la tua rete Ethereum utilizzando il modello AWS Blockchain per Ethereum, devono essere soddisfatti i requisiti minimi elencati di seguito. Il modello richiede i componenti AWS elencati per ciascuna delle seguenti categorie:
Argomenti
Prerequisiti per l'accesso alle risorse di Ethereum
Prerequisito | Per la piattaforma ECS | Per docker-local |
---|---|---|
Una coppia di chiavi Amazon EC2 che puoi usare per accedere alle istanze EC2. La chiave deve esistere nella stessa regione del cluster ECS e delle altre risorse. |
✔ |
✔ |
Un componente connesso a Internet, ad esempio un bastion host o un sistema di bilanciamento del carico connesso a Internet, con un indirizzo interno dal quale è consentito il traffico verso l'Application Load Balancer. Questa operazione è necessaria per la piattaforma ECS perché il modello crea un sistema di bilanciamento del carico interno per motivi di sicurezza. Questa operazione è necessaria con la piattaforma docker-local quando l'istanza EC2 si trova in una sottorete privata, che è l'opzione consigliata. Per informazioni sulla configurazione di un bastion host, consulta Per creare un host bastione. |
✔ |
✔ (con sottorete privata) |
Prerequisiti IAM
Prerequisito | Per la piattaforma ECS | Per docker-local |
---|---|---|
Un responsabile IAM (utente o gruppo) che dispone delle autorizzazioni per lavorare con tutti i servizi correlati. |
✔ |
✔ |
Un profilo di istanza Amazon EC2 con autorizzazioni appropriate per consentire alle istanze EC2 di interagire con altri servizi. Per ulteriori informazioni, consulta To create an EC2 instance profile. |
✔ |
✔ |
Un ruolo IAM con autorizzazioni per Amazon ECS per interagire con altri servizi. Per ulteriori informazioni, consulta Creazione del ruolo ECS e delle autorizzazioni. |
✔ |
Prerequisiti per i gruppi di sicurezza
Prerequisito | Per la piattaforma ECS | Per docker-local |
---|---|---|
Un gruppo di sicurezza per le istanze EC2 con i seguenti requisiti: |
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
|
|
✔ |
|
Un gruppo di sicurezza per Application Load Balancer con i seguenti requisiti:
|
✔ |
Prerequisiti per VPC
Prerequisito | Per la piattaforma ECS | Per docker-local |
---|---|---|
Un indirizzo IP elastico, utilizzato per accedere ai servizi Ethereum. |
✔ |
✔ |
Una sottorete per eseguire le istanze EC2. Ti consigliamo una sottorete privata. |
✔ |
✔ |
Due sottoreti pubblicamente accessibili. Ogni sottorete deve trovarsi in zone di disponibilità diverse l'una dall'altra, una delle quali nella stessa zona di disponibilità della sottorete per le istanze EC2. |
✔ |
Esempi di autorizzazioni IAM per il profilo di istanza EC2 e il ruolo ECS
Quando utilizzi il modello, puoi specificare un ARN del profilo dell'istanza EC2 come uno dei parametri. Se utilizzi la piattaforma dei container ECS, puoi anche specificare un ARN del ruolo ECS. Le policy delle autorizzazioni collegate a questi ruoli consentono alle risorse AWS e alle istanze presenti nel cluster di interagire con altre risorse AWS. Per ulteriori informazioni, consulta Ruoli IAM nella Guida per l'utente di IAM. Utilizza le istruzioni e le procedure delle policy riportate di seguito come punto di partenza per la creazione delle autorizzazioni.
Esempio di policy delle autorizzazioni per il profilo dell'istanza EC2
Le seguenti policy delle autorizzazioni mostrano le operazioni consentite per il profilo dell'istanza EC2 quando scegli la piattaforma dei container ECS. Le stesse istruzioni delle policy possono essere utilizzate in una piattaforma di container docker-local, in cui le chiavi di contesto ecs
sono state rimosse per limitare l'accesso.
{ "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": "*" } ] }
Creazione del ruolo ECS e delle autorizzazioni
Per le autorizzazioni associate al ruolo ECS, ti consigliamo di iniziare con la politica di autorizzazione di Amazon EC2. ContainerServiceRole Utilizza la procedura seguente per creare un ruolo e collegare questa policy delle autorizzazioni. Utilizza la console IAM per visualizzare la maggior parte delle autorizzazioni in questa politica. up-to-date
Per creare il ruolo IAM per Amazon ECS
-
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel riquadro di navigazione, seleziona Ruoli > Crea ruolo.
-
In Select type of trusted entity (Seleziona tipo di entità attendibile), scegli AWS service (Servizio AWS).
-
In Choose the service that will use this role (Scegli il servizio che utilizzerà questo ruolo), selezionare Elastic Container Service.
-
In Select your use case (Seleziona il tuo caso d'uso), seleziona Elastic Container Service, Next:Permissions.
-
Per la politica di autorizzazione, lascia selezionata la politica predefinita (Amazon EC2 ContainerServiceRole) e scegli Avanti:Revisione.
-
Per Nome del ruolo, inserisci un valore che ti aiuti a identificare il ruolo, ad esempio ECS. RoleForEthereum Per Role Description (Descrizione ruolo) immetti un breve riepilogo. Annota il nome del ruolo per utilizzarlo in seguito.
-
Scegli Crea ruolo.
-
Dall'elenco, scegli il ruolo che hai appena creato. Se il tuo account ha molti ruoli, puoi cercare il nome del ruolo.
-
Copia il valore di Role ARN (ARN ruolo) e salvalo in modo che sia possibile copiarlo di nuovo. Hai bisogno di questo ARN quando crei la rete Ethereum.
Connessione a Ethereum Resources
Dopo che lo stack principale creato con il modello mostra CREATE_COMPLETE, puoi connetterti alle risorse Ethereum utilizzando la console. AWS CloudFormation La modalità di connessione dipende dalla piattaforma dei container (ECS o docker-local) che hai scelto:
ECS: la scheda Output dello stack principale fornisce collegamenti ai servizi in esecuzione su Application Load Balancer. Per motivi di sicurezza, questi URL non sono accessibili direttamente. Per connetterti, puoi configurare e utilizzare un bastion host per le connessioni proxy. Per ulteriori informazioni, consulta Connessioni proxy utilizzando un host Bastion di seguito.
docker-local: ti connetti utilizzando l'indirizzo IP dell'istanza EC2 che ospita i servizi Ethereum come elencato di seguito. Utilizza la console EC2 per trovare l'indirizzo
ec2-IP-address
dell'istanza creata dal modello.EthStats—Usa
l'
indirizzo IP http://EC2EthExplorer
—Usa l'indirizzo IP http://EC2:8080
EthJsonRpc—Usa l'indirizzo
IP http://EC2:8545
Se hai specificato una sottorete pubblica per Ethereum Network Subnet ID (ID sottorete rete Ethereum) (List of VPC Subnets to use (Elenco sottoreti VPC da utilizzare) all'interno del modello), puoi connetterti direttamente. Il client deve essere un'origine di traffico in entrata affidabile per SSH (porta 22) e per le porte elencate. Questo è determinato dal gruppo di sicurezza EC2 che hai specificato utilizzando il modello AWS Blockchain per Ethereum.
Se hai specificato una sottorete privata, puoi impostare e utilizzare un bastion host per le connessioni proxy a tali indirizzi. Per ulteriori informazioni, consulta Connessioni proxy utilizzando un host Bastion di seguito.
Connessioni proxy utilizzando un host Bastion
Con alcune configurazioni, i servizi Ethereum potrebbero non essere disponibili al pubblico. In questi casi, puoi connetterti alle risorse di Ethereum tramite un host bastion. Per ulteriori informazioni sui bastion host, consulta Architettura dei bastion host di Linux nella Guida rapida sui bastion host di Linux.
L'host bastion è un'istanza EC2. Assicurati che siano soddisfatti i seguenti requisiti:
L'istanza EC2 per l'host bastion si trova all'interno di una sottorete pubblica con Auto-Assign Public IP abilitato e che dispone di un gateway Internet.
L'host bastion ha la key pair che consente le connessioni ssh.
L'host bastion è associato a un gruppo di sicurezza che consente il traffico SSH in entrata dai client che si connettono.
Il gruppo di sicurezza assegnato agli host Ethereum (ad esempio, l'Application Load Balancer se ECS è la piattaforma container, o l'istanza EC2 host se docker-local è la piattaforma container) consente il traffico in entrata su tutte le porte da sorgenti all'interno del VPC.
Con un bastion host configurato, assicurati che i client che si connettono utilizzino l'host bastion come proxy. L'esempio seguente mostra la configurazione di una connessione proxy utilizzando Mac OS. Sostituisci BastionIP
con l'indirizzo IP dell'istanza EC2 del bastion host e MySshKey.pem
con il file key pair che hai copiato sull'host bastion.
Nella riga di comando, digita quanto segue:
ssh -i
mySshKey.pem
ec2-user@BastionIP
-D 9001
Questo imposta il port forwarding per la porta 9001 sul computer locale verso l'host bastion.
Successivamente, configura il browser o il sistema per utilizzare il proxy SOCKS per. localhost:9001
Ad esempio con Mac OS, seleziona System Preferences (Preferenze di sistema), Network (Rete), Advanced (Avanzate), seleziona proxy SOCKS e digita localhost:9001.
Utilizzando FoxyProxy Standard con Chrome, seleziona Altri strumenti, Estensioni. In FoxyProxy Standard, seleziona Dettagli, Opzioni di estensione, Aggiungi nuovo proxy. Seleziona Manual Proxy Configuration (Configurazione proxy manuale). In Host or IP Address (Indirizzo IP o host), digita localhost e in Port (Porta), digita 9001. Seleziona SOCKS proxy?, Salva.
Ora dovresti essere in grado di connetterti agli indirizzi host di Ethereum elencati nell'output del modello.