AWS Blockchain Templates se suspendió el 30 de abril de 2019. No habrá más actualizaciones de este servicio ni de esta documentación complementaria. Para disfrutar de la mejor experiencia de Managed Blockchain AWS, le recomendamos que utilice Amazon Managed Blockchain (AMB).
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de AWS Blockchain Template para Hyperledger Fabric
Hyperledger Fabric es un marco de trabajo de cadena de bloques que ejecuta contratos inteligentes denominados código de cadena escritos en Go. Es posible crear una red privada con Hyperledger Fabric para limitar los homólogos que se pueden conectar a la red y participar en ella. Para obtener más información sobre Hyperledger Fabric, consulte la documentación de Hyperledger Fabric.
La AWS Blockchain Template para Hyperledger Fabric solo es compatible con una plataforma de contenedores docker-local, lo que significa que los contenedores de Hyperledger Fabric se implementan en una sola instancia EC2.
Enlaces para el lanzamiento
Consulte Introducción a las plantillas de Blockchain de AWS
AWS Blockchain Template para componentes de Hyperledger Fabric
La AWS Blockchain Template para Hyperledger Fabric crea una instancia EC2 con Docker y lanza una red Hyperledger Fabric utilizando los contenedores de dicha instancia. La red incluye un servicio de orden y tres organizaciones, cada una con un servicio de homólogos. La plantilla también lanza un contenedor de Hyperledger Explorer, que le permite examinar los datos de cadena de bloques. Se lanza un contenedor de servidor de PostgreSQL para admitir Hyperledger Explorer.
El siguiente diagrama muestra una red de Hyperledger Fabric creada con la plantilla:
Requisitos previos
Antes de lanzar una red de Hyperledger Fabric con la plantilla, asegúrese de que se cumplen los requisitos siguientes:
La entidad principal (usuario o grupo) de IAM que utilice debe tener permiso para trabajar con todos los servicios relacionados.
Se debe tener acceso a un par de claves que se puede utilizar para obtener acceso a las instancias EC2 (por ejemplo, mediante SSH). La clave debe existir en la misma región que la instancia.
Se debe tener un perfil de instancia EC2 con una política de permisos asociada que permita el acceso a Amazon S3 y a Amazon Elastic Container Registry (Amazon ECR) para extraer contenedores. Si desea ver un ejemplo de política de permisos, consulte Ejemplo de permisos de IAM para el perfil de instancia EC2.
Debe tener una red de Amazon VPC con una subred pública o una subred privada con una puerta de enlace NAT y una dirección IP elástica para poder acceder a Amazon S3 CloudFormation y Amazon ECR.
Se debe tener un grupo de seguridad de EC2 con reglas de entrada que permitan el tráfico SSH (puerto 22) desde las direcciones IP que necesiten conectarse a la instancia mediante SSH, y lo mismo para los clientes que necesiten conectarse a Hyperledger Explorer (puerto 8080).
Ejemplo de permisos de IAM para el perfil de instancia EC2
Debe especificar el ARN de un perfil de instancia EC2 como uno de los parámetros cuando utilice la AWS Blockchain Template para Hyperledger Fabric. Utilice la siguiente instrucción de política como punto de partida para la política de permisos asociada a ese rol y ese perfil de instancia de EC2.
Conexión a los recursos de Hyperledger Fabric
Una vez que la pila raíz creada con la plantilla muestre CREATE_COMPLETE, puede conectarse a los recursos de Hyperledger Fabric de la instancia EC2. Si ha especificado una subred pública, puede conectarse a la instancia EC2 al igual que haría con cualquier otra instancia EC2. Para obtener más información, consulte Conexión a la instancia de Linux mediante SSH en la Guía del usuario de Amazon EC2.
Si ha especificado una subred privada, puede configurar y utilizar un host bastión para que actúe como proxy en las conexiones a los recursos de Hyperledger Fabric. Para obtener más información, consulte Conexiones proxy mediante un host bastión más abajo.
nota
Es posible que observe que la plantilla asigna una dirección IP pública a la instancia EC2 que aloja los servicios de Hyperledger Fabric; sin embargo, esta dirección IP no está accesible públicamente, ya que las políticas de direccionamiento de la subred privada especificada no permiten el tráfico entre esta dirección IP y los orígenes públicos.
Conexiones proxy mediante un host bastión
En algunas configuraciones, es posible que los servicios de Hyperledger Fabric no estén disponibles públicamente. En esos casos, puede conectarse a los recursos de Hyperledger Fabric a través de un host bastión. Para obtener más información sobre los hosts bastión, consulte Arquitectura de host bastión de Linux en la Guía de inicio rápido del host bastión de Linux.
El host bastión es una instancia EC2. Asegúrese de que se cumplan los siguientes requisitos:
La instancia EC2 del host bastión se encuentra dentro de una subred pública con la asignación automática de IP pública habilitada y que tiene una puerta de enlace de Internet.
El host bastión tiene el par de claves que permite conexiones SSH.
El host bastión está asociado a un grupo de seguridad que permite el tráfico SSH entrante desde los clientes que se conecten.
El grupo de seguridad asignado a los hosts de Hyperledger Fabric (por ejemplo, el equilibrador de carga de aplicaciones si ECS es la plataforma de contenedores, o la instancia EC2 del host si docker-local es la plataforma de contenedores) permite el tráfico entrante en todos los puertos desde los orígenes que se encuentren en la VPC.
Si tiene un host bastión configurado, asegúrese de que los clientes que se conecten utilicen el host bastión como proxy. En el siguiente ejemplo, se muestra cómo establecer una conexión de proxy mediante Mac OS. BastionIPSustitúyala por la dirección IP de la instancia EC2 del host bastión y MySshKey.pem por el archivo de pares de claves que copió en el host bastión.
En la línea de comando, escriba lo siguiente:
ssh -imySshKey.pemec2-user@BastionIP-D 9001
Así se configura el reenvío de puertos del puerto 9001 de la máquina local al host bastión.
A continuación, configure su navegador o sistema para que utilice el proxy SOCKS para localhost:9001. Por ejemplo, si usa Mac OS, seleccione System preferences (Preferencias del Sistema), Network (Red), Advanced (Avanzado), seleccione SOCKS proxy y escriba localhost:9001.
Si utilizas la opción FoxyProxy Estándar con Chrome, selecciona Más herramientas y extensiones. En FoxyProxy Estándar, selecciona Detalles, Opciones de extensión y Añadir nuevo proxy. Seleccione Manual Proxy Configuration (Configuración manual del proxy). En Host or IP Address (Host o dirección IP) escriba localhost y en Port (Puerto) escriba 9001. Seleccione SOCKS Proxy?, Save (Guardar).
Ahora debería poder conectarse a las direcciones de host de Hyperledger Fabric enumeradas en la salida de la plantilla.