Está en la página 1de 127

Contents

Azure Blockchain Service (versión preliminar)


Información general
Acerca del servicio Azure Blockchain
Guías de inicio rápido
Creación de miembros (Portal)
Creación de miembros (CLI)
Conexión al nodo de transacción
Uso de Visual Studio Code
Uso de MetaMask
Uso de Geth
Uso de Truffle
Tutoriales
Creación de contratos inteligentes
Publicación de datos mediante Data Manager
Conceptos
Consortium
Acceso a datos y seguridad
Introducción a Data Manager
Desarrollar
límites
Aplicación de revisiones, actualización y control de versiones
Guías paso a paso
Configuración del acceso a Azure AD
Configuración de Data Manager - Portal
Configuración de Data Manager - CLI
Configuración de nodos de transacción
Administración mediante la CLI de Azure
Administración de consorcio con PowerShell
Uso de Logic Apps
Supervisión de Azure Blockchain Service
Recursos
Kit de desarrollo de Azure Blockchain
API REST de la cadena de bloques
Ejemplos de código
Blog
Foro de soporte de MSDN
Soporte técnico de la comunidad
Soporte técnico de Stack Overflow
Comentarios sobre el producto
Precios
Disponibilidad en regiones
¿Qué es Azure Blockchain Service?
19/02/2020 • 12 minutes to read • Edit Online

Azure Blockchain Service es un servicio de libro de contabilidad totalmente administrado que permite a los
usuarios crear y operar redes de cadena de bloques a escala en Azure. Al proporcionar un control unificado tanto
para la administración de la infraestructura como para el gobernanza de la red de cadena de bloques, Azure
Blockchain Service proporciona:
Implementación y operaciones de red sencillas
Administración de consorcios integrada
Desarrollo de contratos inteligentes con herramientas de desarrollo conocidas
Azure Blockchain Service está diseñado para admitir varios protocolos de libro de contabilidad. Actualmente,
ofrece compatibilidad con el libro de contabilidad Quorum de Ethereum utilizando el mecanismo de consenso
IBFT.
Estas funcionalidades no requieren casi ninguna tarea de administración y todas se proporcionan sin ningún costo
adicional. Puede centrarse en el desarrollo de aplicaciones y la lógica empresarial en lugar de asignar tiempo y
recursos a la administración de máquinas virtuales e infraestructura. Además, puede seguir desarrollando la
aplicación con las herramientas de código abierto y en la plataforma que prefiera para ofrecer sus soluciones sin
necesidad de adquirir nuevas aptitudes.

Implementación y operaciones de red


La implementación de Azure Blockchain Service se realiza a través de Azure Portal, la CLI de Azure, o bien a través
del código de Visual Studio mediante la extensión de Azure Blockchain. La implementación es sencilla, e incluye el
aprovisionamiento de nodos tanto de transacción como de validación, las redes de Azure Virtual Network para el
aislamiento de seguridad y el almacenamiento administrado por el servicio. Además, al implementar a un nuevo
miembro de la cadena de bloques, los usuarios también crean un consorcio o se unen a él. Los consorcios permiten
que varias partes de suscripciones de Azure diferentes puedan comunicarse entre sí de forma segura en una
cadena de bloques compartida. Esta implementación simplificada reduce la implementación de redes de cadena de
bloques de días a minutos.
Niveles de servicio y rendimiento
Azure Blockchain Service ofrece dos niveles de servicio: Básico y Estándar. Cada nivel ofrece un rendimiento
diferente y diferentes capacidades para admitir el desarrollo ligero y probar las cargas de trabajo hasta
implementaciones de cadena de bloques de producción a escala masiva. Ambos niveles incluyen al menos un nodo
de transacción y un nodo de validación (Básico) o dos nodos de validación (Estándar).
Además de ofrecer dos nodos de validación, el nivel Estándar proporciona dos núcleos virtuales para cada nodo de
transacción y validación, mientras que el nivel Básico ofrece una configuración con un núcleo virtual. Al ofrecer dos
núcleos virtuales para los nodos de transacción y validación, un núcleo virtual puede dedicarse al libro de
contabilidad Quorum, mientras que el otro puede usarse para otros servicios relacionados con la infraestructura, lo
que garantiza un rendimiento óptimo para las cargas de trabajo de cadenas de bloques de producción. Para
obtener más información sobre los detalles de precios, consulte Precios de Azure Blockchain Service.
Seguridad y mantenimiento
Tras aprovisionar al primer miembro de la cadena de bloques, tiene la capacidad de agregar nodos de transacción
adicionales al miembro. De forma predeterminada, los nodos de transacción se protegen mediante reglas de
firewall y requieren una configuración para el acceso. Además, todos los nodos de transacción cifran los datos en
tránsito mediante TLS. Existen varias opciones para proteger el acceso a los nodos de transacción, entre las que se
incluyen reglas de firewall, autenticación básica, claves de acceso e integración de Azure Active Directory. Para
obtener más información, consulte cómo configurar los nodos de transacción y cómo configurar el acceso a Azure
Active Directory.
Como servicio administrado, Azure Blockchain Service garantiza que los nodos de su miembro de la cadena de
bloques se revisan con las actualizaciones más recientes del sistema operativo y la pila de software de libro de
contabilidad, configuradas para la alta disponibilidad (solo en el nivel Estándar), lo que elimina gran parte de los
DevOps necesarios para los nodos de cadena de bloques de IaaS tradicionales. Para obtener más información
sobre la aplicación de revisiones y actualizaciones, consulte las versiones de libro de contabilidad de Azure
Blockchain Service admitidas.
Supervisión y registro
Además, Azure Blockchain Service proporciona métricas enriquecidas a través del servicio Azure Monitor que
proporciona información sobre el uso de la CPU, la memoria y el almacenamiento de los nodos. Azure Monitor
también proporciona información útil sobre la actividad de la red de cadena de bloques, como las transacciones y
los bloques extraídos, la profundidad de cola de transacciones y las conexiones activas. Las métricas se pueden
personalizar para proporcionar vistas de la información relevantes para la aplicación de la cadena de bloques.
Además, los umbrales se pueden definir a través de alertas, lo que permite a los usuarios desencadenar acciones
como, por ejemplo, enviar un mensaje de texto o un correo, ejecutar una aplicación lógica o una función de Azure o
bien enviar a un webhook personalizado.
A través de los análisis de registros de Azure, los usuarios pueden ver los registros relacionados con el libro de
contabilidad Quorum u otra información importante, como, por ejemplo, los intentos de conexión a los nodos de
transacción.

Administración de consorcios integrada


Al implementar el primer miembro de la cadena de bloques, se une a un consorcio o crea uno nuevo. Un consorcio
es un grupo lógico que se usa para administrar la gobernanza y la conectividad entre miembros de la cadena de
bloques que operan en un proceso de varias partes. Azure Blockchain Service proporciona controles de gobernanza
integrados a través de contratos inteligentes predefinidos, que determinan qué acciones pueden llevar a cabo los
miembros del consorcio. El administrador del consorcio puede personalizar estos controles de gobernanza según
sea necesario. Al crear un nuevo consorcio, el miembro de la cadena de bloques es el administrador
predeterminado del consorcio y tiene capacidad para invitar a otras partes a unirse al consorcio. Solo puede unirse
a un consorcio si le han invitado con anterioridad. Al unirse a un consorcio, el miembro de la cadena de bloques
está sujeto a los controles de gobernanza que haya impuesto el administrador del consorcio.
Las acciones de administración de consorcios, como, por ejemplo, agregar y quitar a miembros de un consorcio,
están disponibles a través de PowerShell y una API de REST. Puede administrar un consorcio mediante
programación utilizando interfaces habituales en lugar de modificar y enviar contratos inteligentes basados en la
solidez. Para obtener más información, consulte el artículo sobre la administración de consorcios.

Desarrollar con herramientas de desarrollo conocidas


Según el libro de contabilidad de Quorum Ethereum de código abierto, puede desarrollar aplicaciones para Azure
Blockchain Service de la misma manera en que lo hace para las aplicaciones de Ethereum existentes. La extensión
Azure Blockchain Development Kit de Visual Studio Code trabaja con partners líderes del sector y permite a los
desarrolladores aprovechar herramientas conocidas, como, por ejemplo, Truffle Suite, para generar contratos
inteligentes. Con la extensión Azure Blockchain Development Kit, los desarrolladores pueden crear un consorcio o
conectarse a uno para generar e implementar sus contratos inteligentes desde un solo entorno de desarrollo
integrado. Con la extensión Azure Blockchain Visual Studio Code, puede crear un consorcio o conectarse a uno
para generar e implementar sus contratos inteligentes desde un solo entorno de desarrollo integrado. Para más
información, consulte Azure Blockchain Development Kit en el Marketplace de VS Code y la Guía de usuario de
Azure Blockchain Development Kit.

Publicación de datos de una cadena de bloques


Blockchain Data Manager para Azure Blockchain Service captura, transforma y entrega datos de transacciones de
Azure Blockchain Service a temas de Azure Event Grid, lo que proporcionan una integración confiable y escalable
del libro de contabilidad de la cadena de bloques con los servicios de Azure. Blockchain Data Manager se puede
usar para integrar aplicaciones y almacenes de datos que estén fuera de la cadena. Para más información, consulte
Blockchain Data Manager para Azure Blockchain Service.

Soporte y comentarios
Para leer noticias acerca de Azure Blockchain, visite el blog de Azure Blockchain, que le permitirá mantenerse al día
sobre las ofertas de servicio de Blockchain y le proporcionará información del equipo de ingeniería de Azure
Blockchain.
Para proporcionar comentarios sobre el producto o solicitar nuevas características, realice una publicación o vote
para una idea a través del Foro de comentarios de Azure para Blockchain.
Soporte técnico de la comunidad
Interactúe con los ingenieros de Microsoft y con expertos de la comunidad de Azure Blockchain.
Foro de MSDN de Azure Blockchain
Comunidad tecnológica de Microsoft
Stack Overflow

Pasos siguientes
Para empezar, pruebe un inicio rápido u obtenga más detalles de estos recursos.
Crear un miembro de cadena de bloques con Azure Portal o Crear un miembro de cadena de bloques mediante
la CLI de Azure
Visite la página de precios para consultar comparaciones y calculadoras de costos.
Compilar la primera aplicación mediante Azure Blockchain Development Kit
Guía del usuario de la extensión VSCode de Azure Blockchain
Inicio rápido: Creación de un miembro de cadena
de bloques de Azure Blockchain Service mediante
Azure Portal
19/02/2020 • 5 minutes to read • Edit Online

En este inicio rápido se implementan un nuevo miembro de una cadena de bloques y el consorcio en Azure
Blockchain Service mediante Azure Portal.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Creación de un miembro de cadena de bloques


Un miembro de Azure Blockchain Service es un nodo de la cadena de bloques en una red de cadenas de
bloques del consorcio privado. Al aprovisionar un miembro, puede crear una red de consorcio o unirse a ella.
Necesita al menos un miembro para una red de consorcio. El número de miembros de la cadena de bloques
que necesitan los participantes depende de su escenario. Los participantes del consorcio pueden tener uno o
varios miembros de la cadena de bloques o pueden compartir miembros con otros participantes. Para más
información sobre los consorcios, consulte Consorcio de Azure Blockchain Service.
1. Inicie sesión en Azure Portal.
2. Haga clic en Crear un recurso en la esquina superior izquierda de Azure Portal.
3. Seleccione Cadena de bloques > Azure Blockchain Service (versión preliminar) .
CONFIGURACIÓN DESCRIPCIÓN

Subscription Seleccione la suscripción de Azure que quiere usar con el


servicio. Si tiene varias suscripciones, elija aquella en la
que se factura el recurso.

Resource group Cree un nombre de grupo de recursos o use uno


existente en la suscripción.
CONFIGURACIÓN DESCRIPCIÓN

Region Elija la región en que desea crear el miembro. Todos los


miembros del consorcio deben estar en la misma
ubicación.

Protocolo Actualmente, la versión preliminar de Azure Blockchain


Service admite el protocolo Quorum.

Consortium Si es un nuevo consorcio, escriba un nombre único. Si se


va a unirse a un consorcio por medio de una invitación,
elija dicho consorcio. Para más información sobre los
consorcios, consulte Consorcio de Azure Blockchain
Service.

Nombre Elija un nombre único para el miembro de Azure


Blockchain Service. El nombre del miembro de la cadena
de bloques solo puede contener letras minúsculas y
números. El primer carácter debe ser una letra. El valor
debe tener entre 2 y 20 caracteres.

Member account password (Contraseña de la cuenta del cifrar la clave privada de la cuenta de Ethereum que se
miembro) crea para el miembro. Usará la cuenta del miembro y la
contraseña de la cuenta del miembro para la
administración del consorcio.

Precios La configuración de nodo y el costo del nuevo servicio.


Seleccione el vínculo Cambiar para elegir entre los
niveles Estándar y Básico.

Contraseña del nodo La contraseña del nodo de transacción predeterminado


del miembro. Use la contraseña para la autenticación
básica al conectarse al punto de conexión público del
nodo de transacción predeterminado del miembro de la
cadena de bloques.

4. Seleccione Revisar y crear para validar la configuración. Seleccione Crear para aprovisionar el servicio.
El aprovisionamiento tarda aproximadamente 10 minutos.
5. Para supervisar el proceso de implementación, seleccione Notificaciones en la barra de herramientas.
6. Después de la implementación, vaya al miembro de cadena de bloques.
Seleccione Información general para ver la información básica sobre el servicio, como la dirección y la cuenta
del miembro RootContract.
Limpieza de recursos
Puede usar el miembro que ha creado en el siguiente inicio rápido o tutorial. Cuando ya no necesite los
recursos, puede eliminarlos; para ello, elimine el grupo de recursos myResourceGroup que creó para el inicio
rápido.
Para eliminar el grupo de recursos:
1. En Azure Portal, vaya a Grupo de recursos en el panel de navegación izquierdo y seleccione el grupo de
recursos que desea eliminar.
2. Seleccione Eliminar grupo de recursos. Compruebe la eliminación escribiendo el nombre del grupo de
recursos y seleccionando Eliminar.

Pasos siguientes
En este inicio rápido ha implementado un miembro de Azure Blockchain Service y un nuevo consorcio. Pruebe
el siguiente inicio rápido para usar Azure Blockchain Development Kit para Ethereum para adjuntar a un
miembro de Azure Blockchain Service.
Uso de Visual Studio Code para conectarse a Azure Blockchain Service
Inicio rápido: Creación de un miembro de cadena
de bloques de Azure Blockchain Service mediante la
CLI de Azure
19/02/2020 • 6 minutes to read • Edit Online

En esta guía de inicio rápido, implementará un nuevo miembro de la cadena de bloques y un consorcio en Azure
Blockchain Service mediante la CLI de Azure.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Inicio de Azure Cloud Shell


Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene
las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.
Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código. También
puede ir a https://shell.azure.com/bash para iniciar Cloud Shell en una pestaña independiente del explorador.
Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione Entrar para
ejecutarlos.
Si prefiere instalar y usar la CLI de forma local, en este inicio rápido se requiere la versión 2.0.51 o posterior.
Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI
de Azure.

Crear un grupo de recursos


Para crear un grupo de recursos, use el comando az group create. Un grupo de recursos de Azure es un
contenedor lógico en el que se implementan y se administran los recursos de Azure. En el ejemplo siguiente, se
crea un grupo de recursos denominado myResourceGroup en la ubicación eastus:

az group create \
--name myResourceGroup \
--location westus2

Creación de un miembro de cadena de bloques


Un miembro de Azure Blockchain Service es un nodo de la cadena de bloques en una red de cadenas de bloques
del consorcio privado. Al aprovisionar un miembro, puede crear una red de consorcio o unirse a ella. Necesita al
menos un miembro para una red de consorcio. El número de miembros de la cadena de bloques que necesitan
los participantes depende de su escenario. Los participantes del consorcio pueden tener uno o varios miembros
de la cadena de bloques o pueden compartir miembros con otros participantes. Para más información sobre los
consorcios, consulte Consorcio de Azure Blockchain Service.
Hay varios parámetros y propiedades que se deben pasar. Reemplace los parámetros de ejemplo por los suyos
propios.
az resource create \
--resource-group myResourceGroup \
--name myblockchainmember \
--resource-type Microsoft.Blockchain/blockchainMembers \
--is-full-object \
--properties '{"location":"westus2", "properties":
{"password":"strongMemberAccountPassword@1", "protocol":"Quorum", "consortium":"myConsortiumName",
"consortiumManagementAccountPassword":"strongConsortiumManagementPassword@1"}, "sku":{"name":"S0"}}'

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se crean los recursos


de Azure Blockchain Service. Use el grupo de recursos que
creó en la sección anterior.

name Un nombre único que identifica al miembro de cadena de


bloques de Azure Blockchain Service. El nombre se usa como
dirección de punto de conexión público. Por ejemplo,
myblockchainmember.blockchain.azure.com .

ubicación Región de Azure donde se crea el miembro de cadena de


bloques. Por ejemplo, westus2 . Elija la ubicación más
cercana a los usuarios o a sus otras aplicaciones de Azure.

password La contraseña del nodo de transacción predeterminado del


miembro. Use la contraseña para la autenticación básica al
conectarse al punto de conexión público del nodo de
transacción predeterminado del miembro de la cadena de
bloques.

consortium Nombre del consorcio al que unirse o que se va a crear. Para


más información sobre los consorcios, consulte Consorcio de
Azure Blockchain Service.

consortiumAccountPassword Este valor también se conoce como la contraseña de la


cuenta del miembro, y se usa para cifrar la clave privada de la
cuenta de Ethereum que se crea para el miembro. Usará la
cuenta del miembro y la contraseña de la cuenta del
miembro para la administración del consorcio.

skuName Tipo de nivel. Use S0 para Estándar y B0 para Básico.

La creación del miembro de cadena de bloques y de los recursos auxiliares tarda unos 10 minutos.

Limpieza de recursos
Puede usar el miembro de cadena de bloques que ha creado en el siguiente inicio rápido o tutorial. Cuando ya
no necesite los recursos, puede eliminarlos; para ello, elimine el grupo de recursos myResourceGroup que creó
para el inicio rápido.
Ejecute el siguiente comando para quitar el grupo de recursos y todos los recursos relacionados.

az group delete \
--name myResourceGroup \
--yes
Pasos siguientes
En este inicio rápido ha implementado un miembro de Azure Blockchain Service y un nuevo consorcio. Pruebe
el siguiente inicio rápido para usar Azure Blockchain Development Kit para Ethereum para adjuntar a un
miembro de Azure Blockchain Service.
Uso de Visual Studio Code para conectarse a Azure Blockchain Service
Inicio rápido: Uso de Visual Studio Code para
conectarse a una red del consorcio de Azure
Blockchain Service
19/02/2020 • 6 minutes to read • Edit Online

En este inicio rápido, se instala y usa la extensión de Visual Studio Code (VS Code) kit de desarrollo de Azure
Blockchain para Ethereum para realizar la asociación a un consorcio en Azure Blockchain Service. El kit de
desarrollo de Azure Blockchain simplifica la creación, conexión, compilación e implementación de contratos
inteligentes en libros de contabilidad de una cadena de bloques de Ethereum.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos
Realizar el tutorial Quickstart: Creación de un miembro de cadena de bloques mediante Azure Portal o Inicio
rápido: Creación de un miembro de cadena de bloques de Azure Blockchain Service mediante la CLI de
Azure
Visual Studio Code
Kit de desarrollo de Azure Blockchain para la extensión de Ethereum
Node.js 10.15.x o superior
Git 2.10.x o superior
Python 2.7.15 Agregue python.exe a la ruta de acceso. Se necesita la versión 2.7.15 de Python en la ruta de
acceso de Azure Blockchain Development Kit.
Truffle 5.0.0
CLI de Ganache 6.0.0
En Windows, se requiere un compilador de C++ instalado para el módulo node-gyp. Puede usar las
herramientas de MSBuild:
Si está instalado Visual Studio 2017, configure npm para que use las herramientas de MSBuild con el
comando npm config set msvs_version 2017 -g
Si está instalado Visual Studio 2019, establezca la ruta de acceso de las herramientas de MSBuild para npm.
Por ejemplo:
npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
En caso contrario, instale las herramientas independientes de VS Build mediante
npm install --global windows-build-tools en un shell de comandos Ejecutar como administrador con
privilegios elevados.
Para más información sobre node-gyp, consulte el repositorio de node-gyp en GitHub.
Comprobación del entorno del kit de desarrollo de Azure Blockchain
El kit de desarrollo de Azure Blockchain comprueba que se han cumplido los requisitos previos del entorno de
desarrollo. Para comprobar el entorno de desarrollo:
En la paleta de comandos de VS Code, elija Azure Blockchain: mostrar página de bienvenida.
El kit de desarrollo de Azure Blockchain ejecuta un script de validación que tarda aproximadamente un minuto
en completarse. Para ver la salida, seleccione Terminal > Nuevo terminal. En la barra de menús de terminal,
seleccione la pestaña Salida y Azure Blockchain en la lista desplegable. Una validación correcta tiene un
aspecto similar al de la siguiente imagen:

Si falta una herramienta necesaria, en una nueva pestaña denominada Azure Blockchain Development Kit
(versión preliminar) se muestran las herramientas necesarias con vínculos para descargarlas.

Instale los requisitos previos que faltan antes de continuar con el inicio rápido.

Conexión al miembro de un consorcio


Puede conectarse a los miembros de un consorcio mediante la extensión para VS Code del kit de desarrollo de
Azure Blockchain. Una vez conectado a un consorcio, puede crear, compilar e implementar contratos inteligentes
en un miembro del consorcio de Azure Blockchain Service.
Si no tiene acceso a un miembro del consorcio de Azure Blockchain Service, complete el requisito previo Inicio
rápido: Creación de un miembro de cadena de bloques mediante Azure Portal o Inicio rápido: Creación de un
miembro de cadena de bloques de Azure Blockchain Service mediante la CLI de Azure.
1. En el panel Explorador de VS Code, expanda la extensión Azure Blockchain.
2. Seleccione Conectarse a una red.
Si se le solicita la autenticación de Azure, siga las indicaciones para autenticarse con un explorador.
3. Elija Azure Blockchain Service en el menú desplegable de la paleta de comandos.
4. Elija la suscripción y el grupo de recursos asociados a su miembro del consorcio de Azure Blockchain
Service.
5. Elija su consorcio de la lista.
Los miembros de la cadena de bloques y del consorcio se enumeran en la barra lateral del explorador de
VS Code.

Pasos siguientes
En este inicio rápido, se usa la extensión de VS Code Azure Blockchain Development Kit for Ethereum para
establecer la asociación con un consorcio en Azure Blockchain Service. Pruebe el siguiente tutorial para usar
Azure Blockchain Development Kit for Ethereum para crear, compilar, implementar y ejecutar una función de
contrato inteligente mediante una transacción.
Creación, compilación e implementación de contratos inteligentes en Azure Blockchain Service
Inicio rápido: Uso de MetaMask para conectarse a un
contrato inteligente e implementarlo
19/02/2020 • 7 minutes to read • Edit Online

En este inicio rápido, usará MetaMask para conectarse a una red de Azure Blockchain Service y usará Remix para
implementar un contrato inteligente. MetaMask es una extensión del navegador para administrar una cartera de
Ether y realizar acciones de contrato inteligente.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos
Realizar el tutorial Quickstart: Creación de un miembro de cadena de bloques mediante Azure Portal o Inicio
rápido: Creación de un miembro de cadena de bloques de Azure Blockchain Service mediante la CLI de Azure
Instalar la extensión del explorador MetaMask
Generar una cartera de MetaMask

Obtención de la dirección de punto de conexión


Necesitará la dirección de punto de conexión de Azure Blockchain Service para conectarse a la red de cadena de
bloques. Puede encontrar la dirección de punto de conexión y las claves de acceso en Azure Portal.
1. Inicie sesión en el Azure Portal.
2. Vaya al miembro de Azure Blockchain Service. Seleccione Nodos de transacción y el vínculo al nodo de
transacción predeterminado.

3. Seleccione Cadenas de conexión > Claves de acceso.


4. Copie la dirección de punto de conexión de HTTPS (Access key 1) (HTTPS [clave de acceso 1]). La
necesitará en la próxima sección.
Conexión de MetaMask
1. Abra la extensión del explorador MetaMask e inicie sesión.
2. En la lista desplegable de redes, seleccione Custom RPC (RPC personalizado).

3. En New Network > New RPC URL (Nueva red > Nueva URL de RPC ), especifique la dirección de punto
de conexión copiada de la sección anterior.
4. Seleccione Guardar.
Si la conexión se realizó correctamente, la red privada se muestra en la lista desplegable de redes.

Implementación de un contrato inteligente


Remix es un entorno de desarrollo de Solidity basado en explorador. Cuando se usan MetaMask y Remix juntos,
puede implementar y realizar acciones sobre los contratos inteligentes.
1. Abra el explorador y vaya a https://remix.ethereum.org .
2. Seleccione Nuevo archivo en la pestaña Inicio, en Archivo.
Asigne el nombre simple.sol al archivo nuevo.

Seleccione Aceptar.
3. En el editor Remix, pegue el siguiente código de contrato inteligente sencillo.

pragma solidity ^0.5.0;

contract simple {
uint balance;

constructor() public{
balance = 0;
}

function add(uint _num) public {


balance += _num;
}

function get() public view returns (uint){


return balance;
}
}

El contrato simple declara una variable de estado denominada balance. Hay dos funciones definidas. La
función add agrega un número a balance. La función get devuelve el valor de balance.
4. Para compilar el contrato, primero seleccione el panel del compilador de Solidity y, a continuación,
seleccione Compile simple.sol.
5. Seleccione el panel Deploy & Run (Implementar y ejecutar) y, a continuación, establezca Environment
(Entorno) en Injected Web3 (Web3 insertado) para conectarse a través de MetaMask al miembro de
cadena de bloques.

6. Seleccione el contrato simple (sencillo) y haga clic en Deploy (Implementar).

7. Se muestra una notificación de MetaMask que le avisa de que no hay fondos suficientes para realizar la
transacción.
Con una red pública de cadena de bloques, necesitaría Ether para pagar el costo de la transacción. Puesto
que se trata de una red privada de un consorcio, puede establecer el precio del gas en cero.
8. Seleccione Gas Fee > Edit > Advanced (Tarifa de gas > Editar > Avanzado) y establezca Gas Price (Precio
del gas) en 0.

Seleccione Guardar.
9. Seleccione Confirm (Confirmar) para implementar el contrato inteligente en la cadena de bloques.
10. En la sección Deployed Contracts (Contratos implementados), expanda el contrato simple (sencillo).

Hay dos acciones add (agregar) y get (obtener) que se asignan a las funciones definidas en el contrato.
11. Para realizar una transacción add sobre la cadena de bloques, escriba un número para agregar y, luego,
seleccione add (agregar). Puede recibir un mensaje de error de estimación de gas de Remix. Está enviando
la transacción a una cadena de bloques privada que no requiere gas. Seleccione Send Transaction (Enviar
transacción) para forzar la transacción.
12. Al igual que cuando implementó el contrato, se muestra una notificación de MetaMask que le avisa de que
no hay fondos suficientes para realizar la transacción.
Puesto que se trata de una red privada de un consorcio, podemos establecer el precio del gas en cero.
13. Seleccione Gas Fee > Edit > Advanced (Tarifa de gas > Editar > Avanzado), establezca Gas Price (Precio
del gas) en 0 y seleccione Save (Guardar).
14. Seleccione Confirm (Confirmar) para enviar la transacción a la cadena de bloques.
15. Seleccione la acción get (obtener). Esta es una llamada a los datos del nodo de consulta. No es necesaria
una transacción.
16. En el panel de depuración de Remix, puede ver detalles acerca de las transacciones sobre la cadena de
bloques.

Puede ver la creación del contrato simple (sencillo), la transacción de simple.add y la llamada a
simple.get.
17. También puede ver el historial de transacciones en MetaMask. Abra la extensión del explorador MetaMask.
18. En la sección History (Historial), puede ver un registro del contrato implementado y de las transacciones.

Pasos siguientes
En este tutorial, usó la extensión del explorador MetaMask para conectarse a un nodo de transacción de Azure
Blockchain Service, implementar un contrato inteligente y enviar una transacción a la cadena de bloques. Pruebe el
siguiente tutorial para usar el kit de desarrollo de Azure Blockchain para Ethereum y Truffle a fin de crear, compilar,
implementar y ejecutar una función de contrato inteligente mediante una transacción.
Creación, compilación e implementación de contratos inteligentes en Azure Blockchain Service
Inicio rápido: Uso de Geth para conectarse a un nodo
de transacción de Azure Blockchain Service
19/02/2020 • 3 minutes to read • Edit Online

En este inicio rápido, se usa el cliente de Geth para conectarse a una instancia de Geth en un nodo de transacción
de Azure Blockchain Service. Una vez conectado, use la consola JavaScript de Geth para llamar a JavaScript Dapp
API de web3.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos
Instalar Geth
Realizar el tutorial Quickstart: Creación de un miembro de cadena de bloques mediante Azure Portal o Inicio
rápido: Creación de un miembro de cadena de bloques de Azure Blockchain Service mediante la CLI de Azure

Obtención de una cadena de conexión de Geth


La cadena de conexión de Geth para un nodo de transacción de Azure Blockchain Service se puede obtener en
Azure Portal.
1. Inicie sesión en el Azure Portal.
2. Vaya al miembro de Azure Blockchain Service. Seleccione Nodos de transacción y el vínculo al nodo de
transacción predeterminado.

3. Seleccione Cadenas de conexión.


4. Copie la cadena de conexión de HTTPS (Access key 1) (HTPPS [clave de acceso 1]). Necesita la cadena
para la siguiente sección.
Conexión a Geth
1. Abra el shell o un símbolo del sistema.
2. Use el subcomando attach de Geth para conectarse a la instancia de Geth en ejecución en el nodo de
transacción. Pegue la cadena de conexión como un argumento para el subcomando attach. Por ejemplo:

geth attach <connection string>

3. Una vez conectado a la consola de Ethereum del nodo de transacción, puede llamar a la API de aplicación
deserializada web3 JavaScript o a la API de administración.
Por ejemplo, use la siguiente API para averiguar el valor de chainId.

admin.nodeInfo.protocols.istanbul.config.chainId

En este ejemplo, es 661.

4. Para desconectarse de la consola, escriba exit .

Pasos siguientes
En este tutorial, usó el cliente de Geth para conectarse a una instancia de Geth en un nodo de transacción de Azure
Blockchain Service. Pruebe el siguiente tutorial para usar Azure Blockchain Development Kit for Ethereum para
crear, compilar, implementar y ejecutar una función de contrato inteligente mediante una transacción.
Creación, compilación e implementación de contratos inteligentes en Azure Blockchain Service
Inicio rápido: Uso de Truffle para conectarse a Azure
Blockchain Service
19/02/2020 • 4 minutes to read • Edit Online

En este inicio rápido, se usa Truffle para conectarse a un nodo de transacción de Azure Blockchain Service. Luego,
se usa la consola interactiva de Truffle para llamar a los métodos de web3 para interactuar con la red de cadenas
de bloque.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos
Realizar el tutorial Quickstart: Creación de un miembro de cadena de bloques mediante Azure Portal o Inicio
rápido: Creación de un miembro de cadena de bloques de Azure Blockchain Service mediante la CLI de Azure
Instale Truffle. Para usar Truffle es necesario instalar varias herramientas, como Node.js y Git.
Instale Python 2.7.15. Python es necesario para Web3.

Creación de un proyecto de Truffle


1. Abra un símbolo del sistema o shell de Node.js.
2. Cambie el directorio por el lugar donde quiere crear el directorio del proyecto de Truffle.
3. Cree un directorio para el proyecto y cambie la ruta de acceso para que señale al nuevo directorio. Por
ejemplo,

mkdir truffledemo
cd truffledemo

4. Inicialice el proyecto de Truffle.

truffle init

5. Instale Ethereum JavaScript API web3 en la carpeta del proyecto. Actualmente, se requiere web3 1.0.0-
beta.37.

npm install web3@1.0.0-beta.37

Puede que reciba advertencias de npm durante la instalación.

Configuración del proyecto de Truffle


Para configurar el proyecto de Truffle, debe ir a Azure Portal para obtener información del nodo de transacción.
1. Inicie sesión en el Azure Portal.
2. Vaya al miembro de Azure Blockchain Service. Seleccione Nodos de transacción y el vínculo al nodo de
transacción predeterminado.
3. Seleccione Cadenas de conexión.
4. Copie la cadena de conexión de HTTPS (Access key 1) (HTPPS [clave de acceso 1]). Necesita la cadena
para la siguiente sección.

Edición del archivo de configuración


A continuación debe actualizar el archivo de configuración de Truffle con el punto de conexión del nodo de
transacción.
1. En la carpeta del proyecto truffledemo, abra el archivo de configuración truffle-config.js de Truffle en
un editor.
2. Reemplace el contenido del archivo por la siguiente información de configuración. Agregue una variable
que contenga la dirección del punto de conexión. Reemplace los corchetes angulares por los valores
recopilados de la sección anterior.
var defaultnode = "<default transaction node connection string>";
var Web3 = require("web3");

module.exports = {
networks: {
defaultnode: {
provider: new Web3.providers.HttpProvider(defaultnode),
network_id: "*"
}
}
}

3. Guarde los cambios en truffle-config.js .

Conexión al nodo de transacción


Use Web3 para la conexión al nodo de transacción.
1. Use la consola de Truffle para conectarse al nodo de transacción predeterminado. En el símbolo del sistema
o shell, ejecute el siguiente comando:

truffle console --network defaultnode

Truffle se conecta al nodo de transacción predeterminado y proporciona una consola interactiva.


Puede llamar a los métodos del objeto web3 para interactuar con la red de cadenas de bloque.
2. Llame al método getBlockNumber para devolver el número de bloque actual.

web3.eth.getBlockNumber();

Salida de ejemplo:

truffle(defaultnode)> web3.eth.getBlockNumber();
18567

3. Salga de la consola de Truffle.

.exit

Pasos siguientes
En este inicio rápido, ha usado Truffle para conectarse a un nodo de transacción predeterminado de Azure
Blockchain Service y ha usado la consola interactiva para devolver el número de bloque actual de la cadena de
bloques.
Pruebe el siguiente tutorial para usar Azure Blockchain Development Kit for Ethereum para crear, compilar,
implementar y ejecutar una función de contrato inteligente mediante una transacción.
Creación, compilación e implementación de contratos inteligentes en Azure Blockchain Service
Tutorial: Creación, compilación e implementación de
contratos inteligentes en Azure Blockchain Service
19/02/2020 • 9 minutes to read • Edit Online

En este tutorial, usará el kit de desarrollo de Azure Blockchain para la extensión Ethereum en Visual Studio Code
a fin de crear, compilar e implementar un contrato inteligente en Azure Blockchain Service. También puede usar
el kit de desarrollo para ejecutar una función de contrato inteligente mediante una transacción.
Use el kit de desarrollo de Azure Blockchain para Ethereum para:
Crear un contrato inteligente
Implementar un contrato inteligente
Ejecutar una función de contrato inteligente mediante una transacción
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos
Realizar el tutorial Quickstart: Uso de Visual Studio Code para conectarse a una red del consorcio de Azure
Blockchain Service
Visual Studio Code
Kit de desarrollo de Azure Blockchain para la extensión de Ethereum
Node.js 10.15.x o superior
Git 2.10.x o superior
Python 2.7.15 Agregue python.exe a la ruta de acceso. Se necesita la versión 2.7.15 de Python en la ruta de
acceso de Azure Blockchain Development Kit.
Truffle 5.0.0
CLI de Ganache 6.0.0
En Windows, se requiere un compilador de C++ instalado para el módulo node-gyp. Puede usar las
herramientas de MSBuild:
Si está instalado Visual Studio 2017, configure npm para que use las herramientas de MSBuild con el
comando npm config set msvs_version 2017 -g
Si está instalado Visual Studio 2019, establezca la ruta de acceso de las herramientas de MSBuild para npm.
Por ejemplo:
npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
En caso contrario, instale las herramientas independientes de VS Build mediante
npm install --global windows-build-tools en un shell de comandos Ejecutar como administrador con
privilegios elevados.
Para más información sobre node-gyp, consulte el repositorio de node-gyp en GitHub.

Crear un contrato inteligente


El kit de desarrollo de Azure Blockchain para Ethereum usa plantillas de proyecto y herramientas de Truffle para
ayudar a preparar, compilar e implementar contratos. Antes de empezar, debe cumplir los siguientes requisitos
previos Inicio rápido: Uso de Visual Studio Code para conectarse a una red del consorcio de Azure Blockchain
Service. El inicio rápido le guía en la instalación y configuración del Kit de desarrollo de Azure Blockchain para
Ethereum.
1. En la paleta de comandos de VS Code, elija Azure Blockchain: New Solidity Project (Azure Blockchain:
nuevo proyecto de Solidity).
2. Elija Create basic project (Crear proyecto básico).
3. Cree una nueva carpeta denominada HelloBlockchain y seleccione New project path (Nueva ruta de acceso
de proyecto).
El kit de desarrollo de Azure Blockchain crea e inicializa un nuevo proyecto de Solidity automáticamente. El
proyecto básico incluye un contrato inteligente de ejemplo HelloBlockchain y todos los archivos necesarios
para compilar e implementar en el miembro del consorcio en Azure Blockchain Service. La creación del proyecto
puede tardar unos minutos. Puede supervisar el progreso en el panel del terminal de VS Code; para ello,
seleccione la salida de Azure Blockchain.
La estructura del proyecto debe ser similar al siguiente ejemplo:

Creación de un contrato inteligente


Los contratos inteligentes se encuentran en el directorio de contratos del proyecto. Primero se crean los
contratos inteligentes y después se implementan en una cadena de bloques. Use el comando Build Contracts
para crear todos los contratos inteligentes del proyecto.
1. En la barra lateral del explorador de VS Code, expanda la carpeta de contratos del proyecto.
2. Haga clic con el botón derecho en HelloBlockchain.sol y elija Build Contracts (Crear contratos) en el
menú.
El kit de desarrollo de Azure Blockchain usa Truffle para compilar los contratos inteligentes.

Implementar un contrato inteligente


Truffle usa scripts de migración para implementar los contratos en una red de Ethereum. Las migraciones son
archivos JavaScript ubicados en el directorio de migraciones del proyecto.
1. Para implementar el contrato inteligente, haga clic con el botón derecho en HelloBlockchain.sol y elija
Deploy Contracts (Implementar contratos) en el menú.
2. Elija su red de consorcio de Azure Blockchain en la paleta de comandos. La red de consorcio de la red de la
cadena de bloques se agregó al archivo de configuración Truffle del proyecto al crearlo.
3. Elija Generate mnemonic (Generar mnemotécnico). Elija un nombre de archivo y guarde el archivo
mnemotécnico en la carpeta del proyecto. Por ejemplo, myblockchainmember.env . El archivo mnemotécnico se
usa para generar una clave privada de Ethereum para el miembro de la cadena de bloques.
El kit de desarrollo de Azure Blockchain usa Truffle para ejecutar el script de migración con el fin de implementar
los contratos en la cadena de bloques.
Llamada a una función de contrato
La función SendRequest del contrato HelloBlockchain cambia la variable de estado RequestMessage. El
cambio del estado de una red de la cadena de bloques se realiza con una transacción. Puede usar la página de
interacción del contrato inteligente del kit de desarrollo de Azure Blockchain para llamar a la función
SendRequest mediante una transacción.
1. Para interactuar con el contrato inteligente, haga clic con el botón derecho en HelloBlockchain.sol y elija
Show Smart Contract Interaction Page (Mostrar página de interacción del contrato inteligente) en el
menú.

2. La página de interacción permite elegir una versión del contrato implementada, llamar a funciones, ver el
estado actual y ver los metadatos.
3. Para llamar a una función del contrato inteligente, seleccione la acción del contrato y pase los argumentos.
Elija la acción de contrato SendRequest y escriba Hello, Blockchain! para el parámetro
requestMessage. Seleccione Execute (Ejecutar) para llamar a la función SendRequest mediante una
transacción.

Una vez que se procesa la transacción, la sección de interacción refleja los cambios de estado.
La función SendRequest establece los campos RequestMessage y State. El estado actual de RequestMessage
es el argumento que pasó, Hello, blockchain. El valor del campo State permanece en Request.

Limpieza de recursos
Cuando ya no necesite los recursos, puede eliminarlos; para ello, elimine el grupo de recursos myResourceGroup
que creó en el inicio rápido de requisitos previos Creación de un miembro de cadena de bloques.
Para eliminar el grupo de recursos:
1. En Azure Portal, vaya a Grupo de recursos en el panel de navegación izquierdo y seleccione el grupo de
recursos que desea eliminar.
2. Seleccione Eliminar grupo de recursos. Compruebe la eliminación escribiendo el nombre del grupo de
recursos y seleccionando Eliminar.

Pasos siguientes
En este tutorial ha creado un proyecto de Solidity de ejemplo mediante el kit de desarrollo de Azure Blockchain.
Ha creado e implementado un contrato inteligente y ha llamado a una función con una transacción en una red de
cadena de bloques de consorcio hospedada Azure Blockchain Service.
Desarrollo de aplicaciones de cadena de bloques con Azure Blockchain Service
Tutorial: Uso de Blockchain Data Manager para
enviar datos a Azure Cosmos DB
19/02/2020 • 27 minutes to read • Edit Online

En este tutorial, usará Blockchain Data Manager para que Azure Blockchain Service registre datos de
transacciones de cadenas de bloques en Azure Cosmos DB. Blockchain Data Manager captura, transforma y
entrega datos de libro de contabilidad de cadena de bloques a los temas de Azure Event Grid. En Azure Event Grid,
se usa un conector de aplicación lógica para crear documentos en una base de datos de Azure Cosmos DB. Una
vez finalizado el tutorial, puede explorar los datos de transacciones de cadena de bloques en Azure Cosmos DB
Data Explorer.

En este tutorial, hizo lo siguiente:


Crear una instancia de Blockchain Data Manager
Agregar una aplicación de cadena de bloques para descodificar propiedades y eventos de transacciones
Crear una cuenta de Azure Cosmos DB y una base de datos para almacenar datos de transacciones
Crear una aplicación lógica de Azure para conectar un tema de Azure Event Grid con Azure Cosmos DB
Enviar una transacción a un libro de contabilidad de cadena de bloques
Ver los datos de transacción descodificados en Azure Cosmos DB
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos
Realizar el tutorial Quickstart: Creación de un miembro de cadena de bloques mediante Azure Portal o Inicio
rápido: Creación de un miembro de cadena de bloques de Azure Blockchain Service mediante la CLI de Azure
Realizar el tutorial Quickstart: Uso de Visual Studio Code para conectarse a una red del consorcio de Azure
Blockchain Service. El inicio rápido le guía por la instalación de Azure Blockchain Development Kit para
Ethereum y la configuración del entorno de desarrollo de la cadena de bloques.
Complete el Tutorial: Uso de Visual Studio Code para crear, compilar e implementar contratos inteligentes. El
tutorial le guía a lo largo de la creación de un contrato inteligente de ejemplo.
Crear un tema de Event Grid
Más información sobre Controladores de eventos en Azure Event Grid

Crear instancia
Una instancia de Blockchain Data Manager conecta y supervisa un nodo de transacción de Azure Blockchain
Service. Una instancia captura todos los datos de transacciones y bloques sin procesar del nodo de transacción.
Una conexión saliente envía datos de la cadena de bloques a Azure Event Grid. Configura una conexión saliente
única cuando crea la instancia.
1. Inicie sesión en el Azure Portal.
2. Vaya al miembro de Azure Blockchain Service que creó en el requisito previo Inicio rápido: Creación de un
miembro de cadena de bloques mediante Azure Portal. Seleccione Blockchain Data Manager.
3. Seleccione Agregar.

Escriba la siguiente información:

CONFIGURACIÓN EJEMPLO DESCRIPCIÓN

NOMBRE mywatcher Escriba un nombre único para una


instancia conectada de Blockchain
Data Manager.

Nodo de transacción myblockchainmember Elija el nodo de transacción


predeterminado del miembro de
Azure Blockchain Service que creó en
el requisito previo.

Nombre de conexión cosmosdb Escriba un nombre único de la


conexión saliente donde se envían los
datos de la transacción de la cadena
de bloques.
CONFIGURACIÓN EJEMPLO DESCRIPCIÓN

Punto de conexión de Event Grid myTopic Elija un tema de Event Grid que haya
creado en el requisito previo. Nota:
La instancia de Blockchain Data
Manager y el tema de Event Grid
deben estar en la misma suscripción.

4. Seleccione Aceptar.
Se tarda menos de un minuto crear una instancia de Blockchain Data Manager. Una vez implementada la
instancia, se inicia automáticamente. Una instancia de Blockchain Data Manager en ejecución captura los
eventos de la cadena de bloques del nodo de transacción y envía los datos a Event Grid.

Agregar aplicación
Agregue la aplicación de cadena de bloques helloblockchain para que Blockchain Data Manager descodifique el
estado de la propiedad y el evento. Blockchain Data Manager requiere la ABI del contrato inteligente y un archivo
de código de bytes para agregar la aplicación.
Obtener la ABI del contrato y el código de bytes
La ABI del contrato define las interfaces del contrato inteligente. Describe cómo interactuar con el contrato
inteligente. Puede usar la extensión del kit de desarrollo para Ethereum de Azure Blockchain para copiar la ABI del
contrato en el portapapeles.
1. En el panel del explorador de Visual Studio Code, expanda la carpeta build/contracts del proyecto Solidity
de helloblockchain que creó en el requisito previo Tutorial: Uso de Visual Studio Code para crear,
compilar e implementar contratos inteligentes
2. Haga clic con el botón derecho en el archivo JSON de metadatos del contrato. El nombre de archivo es el
nombre del contrato inteligente seguido de la extensión .json.
3. Seleccione Copy contract ABI (Copiar ABI del contrato).

La ABI del contrato se copia en el portapapeles.


4. Guarde la matriz abi como archivo JSON. Por ejemplo, abi.json. Usará este archivo en un paso posterior.
Blockchain Data Manager requiere el código de bytes implementado para el contrato inteligente. El código de
bytes implementado es diferente del código de bytes del contrato inteligente. Puede usar la extensión del kit de
desarrollo de Azure Blockchain para copiar el código de bytes en el portapapeles.
1. En el panel del explorador de Visual Studio Code, expanda la carpeta build/contracts del proyecto de
Solidity.
2. Haga clic con el botón derecho en el archivo JSON de metadatos del contrato. El nombre de archivo es el
nombre del contrato inteligente seguido de la extensión .json.
3. Seleccione Copiar código de bytes de la transacción.

El código de bytes se copia en el portapapeles.


4. Guarde el valor del código de bytes como archivo JSON. Por ejemplo, bytecode.json. Lo usará en un paso
posterior.
El ejemplo siguiente muestra archivos abi.json y bytecode.json abiertos en el editor de VS Code. Sus archivos
deben ser similares.

Obtener la ABI del contrato y la dirección URL del código de bytes


Blockchain Data Manager requiere que una dirección URL pueda acceder a la ABI del contrato y a los archivos del
código de bytes al agregar una aplicación. Puede usar una cuenta de Azure Storage para proporcionar una
dirección URL de acceso privado.
Crear cuenta de almacenamiento
Para crear una cuenta de almacenamiento de uso general v2 en Azure Portal, siga estos pasos:
1. En el menú de Azure Portal, seleccione Todos los servicios. En la lista de recursos, escriba Cuentas de
almacenamiento. Cuando comience a escribir, la lista se filtrará en función de la entrada. Seleccione
Cuentas de almacenamiento.
2. En la ventana Cuentas de almacenamiento que aparece, elija Agregar.
3. Seleccione la suscripción en la que se va a crear la cuenta de almacenamiento.
4. En el campo Grupo de recursos, haga clic en Crear nuevo. Escriba un nombre para el nuevo grupo de
recursos, como se muestra en la siguiente imagen.

5. Después, escriba un nombre para la cuenta de almacenamiento. El nombre que elija debe ser único en
Azure. El nombre debe tener también una longitud de entre 3 y 24 caracteres y solo puede contener
números y letras minúsculas.
6. Seleccione una ubicación para la cuenta de almacenamiento o utilice la ubicación predeterminada.
7. Deje estos campos con sus valores predeterminados:

CAMPO VALUE

Modelo de implementación Resource Manager

Rendimiento Estándar

Tipo de cuenta StorageV2 (uso general v2)

Replicación Almacenamiento con redundancia geográfica con acceso


de lectura (RA-GRS).

Nivel de acceso Acceso frecuente

8. Si planea usar Azure Data Lake Storage, elija la pestaña Opciones avanzadas y, después, en Espacio de
nombres jerárquico, seleccione Habilitado.
9. Seleccione Revisar y crear para revisar la configuración de la cuenta de almacenamiento y crear la cuenta.
10. Seleccione Crear.
Para obtener más información sobre los tipos de cuentas de almacenamiento y otros parámetros de la cuenta de
almacenamiento, consulte Introducción a las cuentas de Azure Storage. Para más información sobre los grupos de
recursos, consulte Información general de Azure Resource Manager.
Cargar archivos de contrato
1. Cree un nuevo contenedor para la cuenta de almacenamiento. Seleccione Contenedores > Contenedor.

CONFIGURACIÓN DESCRIPCIÓN

NOMBRE Nombre del contenedor. Por ejemplo, smartcontract

Nivel de acceso público Elija Privado (sin acceso anónimo )

2. Seleccione Aceptar para crear el contenedor.


3. Seleccione el contenedor y, a continuación, seleccione Cargar.
4. Elija los dos archivos JSON creados en la sección Obtener la ABI del contrato y el código de bytes.

Seleccione Cargar.
Generar dirección URL
Para cada blob, genere una firma de acceso compartido.
1. Seleccione el blob JSON de ABI.
2. Seleccione Generar SAS
3. Establezca la expiración de la firma de acceso deseada y seleccione Generar el token de SAS de blob y la
dirección URL.
4. Copie la dirección URL de SAS de blob y guárdela en la siguiente sección.
5. Repita los pasos para generar una dirección URL para el blob JSON del código de bytes.
Agregar la aplicación helloblockchain a una instancia
1. Seleccione la instancia de Blockchain Data Manager en la lista de instancias.
2. Seleccione Blockchain applications (aplicaciones de cadena de bloques).
3. Seleccione Agregar.

Escriba el nombre de la aplicación de cadena de bloques y las direcciones URL de la ABI del contrato
inteligente y los códigos de bytes.

CONFIGURACIÓN DESCRIPCIÓN

NOMBRE Escriba un nombre único para la aplicación de cadena de


bloques de la que se va a realizar el seguimiento.

ABI del contrato Ruta de acceso URL al archivo ABI del contrato. Para más
información, consulte Crear una dirección URL de la ABI
del contrato y el código de bytes.
CONFIGURACIÓN DESCRIPCIÓN

Código de bytes del contrato Ruta de acceso URL al archivo de código de bytes. Para
más información, consulte Crear una dirección URL de la
ABI del contrato y el código de bytes.

4. Seleccione Aceptar.
Una vez creada la aplicación, esta aparece en la lista de aplicaciones de cadena de bloques.

Puede eliminar la cuenta de Azure Storage o usarla para configurar más aplicaciones de cadena de bloques. Si
quiere eliminar la cuenta de Azure Storage, puede eliminar el grupo de recursos. Al eliminar el grupo de recursos,
también se elimina la cuenta de almacenamiento asociada y cualquier otro recurso que esté asociado a dicho
grupo.

Creación de una base de datos de Azure Cosmos DB


1. Vaya a Azure Portal para crear una cuenta de Azure Cosmos DB. Busque y seleccione Azure Cosmos DB.
2. Seleccione Agregar.
3. En la página Creación de una cuenta de Azure Cosmos DB , especifique la configuración básica de la
nueva cuenta de Azure Cosmos.

CONFIGURACIÓN VALUE DESCRIPCIÓN

Subscription Nombre de suscripción Seleccione la suscripción de Azure


que desea usar para esta cuenta de
Azure Cosmos.

Grupo de recursos Definición de un nombre de grupo Seleccione un grupo de recursos o


de recursos seleccione Crear nuevo y escriba un
nombre único para el grupo de
recursos nuevo.

Nombre de cuenta Un nombre único Escriba un nombre para identificar la


cuenta de Azure Cosmos. Dado que
documents.azure.com se anexa al
nombre que se proporciona para
crear el identificador URI, debe usar
un nombre único.

El nombre solo puede contener letras


minúsculas, números y el carácter de
guion (-). Debe tener una longitud de
entre 3 y 31 caracteres.

API El tipo de cuenta que se va a crear Seleccione Core(SQL) para crear una
base de datos de documentos y
consultarla mediante la sintaxis SQL.

La API determina el tipo de cuenta


que se va a crear. Azure Cosmos DB
proporciona cinco API: Core (SQL) y
MongoDB para datos de documento,
Gremlin para datos de gráfico, Azure
Table y Cassandra. Actualmente,
debe crear una cuenta independiente
para cada API.

Más información acerca de SQL API.

Location Región más cercana a los usuarios Seleccione una ubicación geográfica
para hospedar la cuenta de Azure
Cosmos DB. Use la ubicación más
cercana a los usuarios para que
puedan acceder de la forma más
rápida posible a los datos.
4. Seleccione Revisar + crear. Puede omitir las secciones Red y Etiquetas.
5. Revise la configuración de la cuenta y seleccione Crear. La operación de creación de la cuenta tarda unos
minutos. Espere hasta que la página del portal muestre Se completó la implementación .

6. Seleccione Ir al recurso para ir a la página de la cuenta de Azure Cosmos DB.


Adición de una base de datos y un contenedor
Para crear una base de datos y un contenedor, puede usar Data Explorer en Azure Portal.
1. Seleccione Data Explorer en el panel de navegación izquierdo de la página de la cuenta de Azure Cosmos
DB y, después, seleccione Nuevo contenedor.
2. En el panel Agregar contenedor, especifique la configuración del nuevo contenedor.

CONFIGURACIÓN DESCRIPCIÓN

Identificador de base de datos Escriba blockchain-data como nombre de la nueva base


de datos.

Throughput Deje el rendimiento en 400 unidades de solicitud por


segundo (RU/s). Si quiere reducir la latencia, puede escalar
verticalmente el rendimiento más adelante.

Id. de contenedor Escriba Messages como nombre del nuevo contenedor.


CONFIGURACIÓN DESCRIPCIÓN

Clave de partición Use /MessageType como clave de partición.

3. Seleccione Aceptar. Data Explorer muestra la nueva base de datos y el contenedor que ha creado.

Creación de la aplicación lógica


Azure Logic Apps le ayuda a programar y automatizar procesos empresariales y flujos de trabajo cuando necesita
integrar sistemas y servicios. Puede usar una aplicación lógica para conectar Event Grid a Azure Cosmos DB.
1. En Azure Portal, seleccione Crear un recurso > Integración > Logic App.
2. Proporcione detalles sobre dónde va a crear la aplicación lógica. Seleccione Crear cuando haya terminado.
Para más información sobre la creación de aplicaciones lógicas, consulte Creación de flujos de trabajo
automatizados con Azure Logic Apps.
3. Después de que Azure implemente la aplicación, seleccione el recurso de la aplicación lógica.
4. En el Diseñador de aplicaciones lógicas, en Plantillas, seleccione Aplicación lógica en blanco.
Incorporación del desencadenador de Event Grid
Cada aplicación lógica debe comenzar con un desencadenador, que se activa cuando sucede un evento específico o
cuando se cumple una condición determinada. Cada vez que el desencadenador se activa, el motor de Logic Apps
crea una instancia de aplicación lógica que inicia y ejecuta el flujo de trabajo. Use un desencadenador de Azure
Event Grid para enviar datos de transacciones de cadena de bloques de Event Grid a Cosmos DB.
1. En el diseñador de Logic Apps, busque y seleccione el conector de Azure Event Grid.
2. En la pestaña Triggers (Desencadenadores), seleccione Cuando se produce un evento de recursos.
3. Cree una conexión de API con su tema de Event Grid.

CONFIGURACIÓN DESCRIPCIÓN

Subscription Elija una suscripción que contenga el tema de Event Grid.

Tipo de recurso Elija Microsoft.EventGrid.Topics.


CONFIGURACIÓN DESCRIPCIÓN

Nombre de recurso Elija el nombre del tema de Event Grid en que Blockchain
Data Manager envía mensajes de datos de transacciones.

Agregar acción de Cosmos DB


Agregue una acción para crear un documento en Cosmos DB para cada transacción. Use el tipo de mensaje de
transacción como clave de partición para clasificar los mensajes.
1. Seleccione Nuevo paso.
2. En Elegir una acción, busque Azure Cosmos DB.
3. Elija Azure Cosmos DB > Acciones > Crear o actualizar documento.
4. Cree una conexión de API con la base de datos de Cosmos DB.

CONFIGURACIÓN DESCRIPCIÓN

Nombre de la conexión Elija una suscripción que contenga el tema de Event Grid.

Cuenta de DocumentDB Elija la cuenta de DocumentDB que creó en la sección


Crear cuenta de Azure Cosmos DB.

5. Escriba el Id. de base de datos y el Id. de colección para la instancia de Azure Cosmos DB que creó
anteriormente en la sección Adición de una base de datos y un contenedor.
6. Seleccione la opción Documento. En el menú desplegable Agregar contenido dinámico, seleccione
Expresión y copie y pegue la siguiente expresión:

addProperty(triggerBody()?['data'], 'id', utcNow())

La expresión obtiene la parte de datos del mensaje y establece el identificador en un valor de marca de
tiempo.
7. Seleccione Agregar nuevo parámetro y elija Valor de la clave de partición.
8. Defina el Valor de la clave de partición en "@{triggerBody()['data']['MessageType']}" . El valor debe ir
entre comillas dobles.
El valor establece la clave de partición en el tipo de mensaje de transacción.
9. Seleccione Guardar.
La aplicación lógica supervisa el tema de Event Grid. Cuando se envía un nuevo mensaje de transacción desde
Blockchain Data Manager, la aplicación lógica crea un documento en Cosmos DB.

Enviar una transacción


A continuación, envíe una transacción al libro de contabilidad de cadena de bloques para probar lo que ha creado.
Use el script sendrequest.js que creó en el requisito previo Tutorial: Uso de Visual Studio Code para crear,
compilar e implementar contratos inteligentes.
En el panel del terminal de VS Code, use Truffle para ejecutar el script en la red de la cadena de bloques del
consorcio. En la barra de menús del panel del terminal, seleccione la pestaña Terminal y PowerShell en la lista
desplegable.

truffle exec sendrequest.js --network <blockchain network>

Reemplace <blockchain network> por el nombre de la red de la cadena de bloques definida en truffle-config.js.

Ver datos de transacción


Ahora que ha conectado Blockchain Data Manager con Azure Cosmos DB, puede ver los mensajes de
transacciones de cadena de bloques en Cosmos DB Data Explorer.
1. Vaya a la vista de Cosmos DB Data Explorer. Por ejemplo, cosmosdb-blockchain > Data Explorer >
blockchain-data > Mensajes > Elementos.
Data Explorer muestra los mensajes de datos de cadena de bloques que se crearon en la base de datos de
Cosmos DB.
2. Para navegar por los mensajes, seleccione el identificador del elemento y busque el mensaje con el hash de
transacción coincidente.

El mensaje de transacción sin procesar contiene detalles sobre la transacción. Sin embargo, la información
de la propiedad está cifrada.
Como ha agregado el contrato inteligente de HelloBlockchain a la instancia de Blockchain Data Manager,
también se envía un tipo de mensaje ContractProperties que contiene información de la propiedad
descodificada.
3. Busque el mensaje ContractProperties de la transacción. Debería ser el siguiente mensaje de la lista.
La matriz DecodedProperties contiene las propiedades de la transacción.
Felicidades. Ha creado correctamente un explorador de mensajes de transacción con Blockchain Data Manager y
Azure Cosmos DB.

Limpieza de recursos
Cuando ya no los necesite, puede eliminar los recursos y los grupos de recursos que usó para este tutorial. Para
eliminar un grupo de recursos:
1. En Azure Portal, vaya a Grupo de recursos en el panel de navegación izquierdo y seleccione el grupo de
recursos que desea eliminar.
2. Seleccione Eliminar grupo de recursos. Compruebe la eliminación escribiendo el nombre del grupo de
recursos y seleccionando Eliminar.

Pasos siguientes
Más información sobre la integración con los libros de contabilidad de cadena de bloques.
Uso del conector Ethereum Blockchain con Azure Logic Apps
Consorcio de Azure Blockchain Service
19/02/2020 • 6 minutes to read • Edit Online

Mediante Azure Blockchain Service, puede crear redes de cadenas de bloques de consorcio privadas, donde
cada red de cadena de bloques puede estar limitada a participantes específicos de la red. Solo los participantes
de la red de cadena de bloques de consorcio privada pueden ver e interactuar con la cadena de bloques. Las
redes de consorcio en Azure Blockchain Service pueden contener dos tipos de roles de participante miembro:
Administrador: participantes con privilegios que pueden realizar acciones de administración de
consorcios y participar en transacciones de cadenas de bloques.
Usuario: participantes que no pueden realizar acciones de administración de consorcios, pero pueden
participar en transacciones de cadenas de bloques.
Las redes de consorcio pueden ser una combinación de roles de participantes y pueden tener un número
arbitrario de cada tipo de rol. Debe haber al menos un administrador.
En el siguiente diagrama se muestra una red de consorcio con varios participantes:

Con la administración de consorcios en Azure Blockchain Service, puede administrar los participantes en la red
de consorcio. La administración del consorcio se basa en el modelo de consenso de la red. En la versión
preliminar actual, Azure Blockchain Service proporciona un modelo de consenso centralizado para la
administración de consorcios. Cualquier participante con privilegios con un rol de administrador puede realizar
acciones de administración de consorcios, como agregar o quitar participantes de una red.

Roles
Los participantes de un consorcio pueden ser individuos u organizaciones y se les puede asignar un rol de
usuario o de administrador. En la tabla siguiente se muestran las diferencias de alto nivel entre los dos roles:

. ROL DE USUARIO ROL DE ADMINISTRADOR

Crear nuevo miembro Sí Sí

Invitar nuevos miembros Sin Sí

Establecer o cambiar el rol de Sin Sí


participante miembro

Cambiar el nombre para mostrar del Solo para el propio miembro Solo para el propio miembro
miembro

Eliminación de miembros Solo para el propio miembro Sí

Participar en transacciones de cadenas Sí Sí


de bloques

Rol de usuario
Los usuarios son participantes de consorcio sin funcionalidades de administrador. No pueden participar en la
administración de miembros relacionados con el consorcio. Los usuarios pueden cambiar el nombre para
mostrar de miembro y pueden quitarse de un consorcio.
Administrador
Un administrador puede administrar los miembros dentro del consorcio. Un administrador puede invitar a
miembros, quitar miembros o actualizar los roles de los miembros del consorcio. Siempre debe haber al menos
un administrador dentro de un consorcio. El último administrador debe especificar a otro participante como rol
de administrador antes de abandonar un consorcio.

Administración de miembros
Solo los administradores pueden invitar a otros participantes al consorcio. Los administradores invitan a los
participantes con su identificador de suscripción de Azure.
Una vez invitados, los participantes pueden unirse al consorcio de la cadena de bloques mediante la
implementación de un nuevo miembro en Azure Blockchain Service. Para ver el consorcio invitado y unirse a él,
debe especificar el mismo identificador de suscripción de Azure usado por el administrador de red en la
invitación.
Los administradores pueden quitar a cualquier participante del consorcio, incluidos otros administradores. Los
miembros solo pueden quitarse a sí mismos de un consorcio.

Contrato inteligente de administración de consorcios


La administración de consorcios en Azure Blockchain Service se realiza a través de los contratos inteligentes de
administración de consorcios. Los contratos inteligentes se implementan automáticamente en los nodos al
implementar un nuevo miembro de la cadena de bloques.
La dirección del contrato inteligente de administración de consorcios raíz puede verse en Azure Portal. La
dirección de RootContract está en la sección de información general del miembro de la cadena de bloques.

Puede interactuar con el contrato inteligente de administración de consorcios mediante el módulo de


PowerShell de administración de consorcios, Azure Portal o directamente a través del contrato inteligente
mediante la cuenta de Ethereum generada por Azure Blockchain Service.

Cuenta de Ethereum
Cuando se crea un miembro, se crea una clave de cuenta de Ethereum. Azure Blockchain Service usa la clave
para crear transacciones relacionadas con la administración de consorcios. La clave de cuenta de Ethereum se
administra mediante Azure Blockchain Service automáticamente.
La cuenta de miembro puede verse en Azure Portal. La cuenta del miembro está en la sección de información
general del miembro de la cadena de bloques.

Para restablecer la cuenta de Ethereum, haga clic en la cuenta de miembro y escriba una contraseña nueva. Se
restablecerá la dirección de la cuenta de Ethereum y la contraseña.

Pasos siguientes
Se puede acceder a las acciones de administración del consorcio a través de PowerShell. Para más información,
consulte Administración de los miembros del consorcio en Azure Blockchain Service mediante PowerShell.
Seguridad de Azure Blockchain Service
19/02/2020 • 6 minutes to read • Edit Online

Azure Blockchain Service usa varias capacidades de Azure para mantener los datos seguros y disponibles. Los
datos se protegen mediante aislamiento, cifrado y autenticación.

Aislamiento
Los recursos de Azure Blockchain Service están aislados en una red virtual privada. Cada nodo de transacción y
validación es una máquina virtual (VM ). Las máquinas virtuales de una red virtual no se pueden comunicar
directamente con las máquinas virtuales de una red virtual diferente. El aislamiento garantiza que la comunicación
siga siendo privada dentro de la red virtual. Para obtener más información sobre el aislamiento de la red virtual de
Azure, consulte el aislamiento en la nube pública de Azure.

Cifrado
Los datos de usuario se almacenan en Azure Storage. Los datos de usuario se cifran en movimiento y en reposo
por motivos de seguridad y confidencialidad. Para más información, consulte: Guía de seguridad de Azure Storage.

Authentication
Las transacciones se pueden enviar a los nodos de cadena de bloques a través de un punto de conexión RPC. Los
clientes se comunican con un nodo de transacción mediante un servidor proxy inverso que controla la
autenticación de usuario y cifra los datos a través de SSL.
Existen tres modos de autenticación para el acceso RPC.
Autenticación básica
La autenticación básica utiliza un encabezado de autenticación HTTP que contiene el nombre de usuario y la
contraseña. El nombre de usuario es el nombre del nodo de la cadena de bloques. La contraseña se establece
durante el aprovisionamiento de un miembro o un nodo. La contraseña se puede cambiar desde Azure Portal o
desde la CLI.
Claves de acceso
Las claves de acceso usan una cadena generada aleatoriamente que se incluye en la dirección URL del punto de
conexión. Dos claves de acceso ayudan a permitir la rotación de claves. Las claves se pueden volver a generar
desde Azure Portal y la CLI.
Azure Active Directory
Azure Active Directory (Azure AD ) usa un mecanismo de autenticación basado en notificaciones donde el usuario
se autentica en Azure AD utilizando las credenciales de usuario de Azure AD. Azure AD proporciona la
administración de identidades basada en la nube y permite a los clientes usar una identidad única en toda una
empresa y las aplicaciones de acceso en la nube. Azure Blockchain Service se integra con Azure AD mediante la
habilitación del id. de federación, el inicio de sesión único y la autenticación multifactor. Puede asignar usuarios,
grupos y roles de aplicación de su organización para el acceso de nodo y miembro de cadena de bloques.
El proxy de cliente de Azure AD está disponible en GitHub. El proxy de cliente dirige al usuario a la página de inicio
de sesión de Azure AD y obtiene un token de portador tras la autenticación correcta. Posteriormente, el usuario
conecta una aplicación de cliente de Ethereum, como Geth o Truffle, al punto de conexión del proxy de cliente. Por
último, cuando se envía una transacción, el proxy de cliente inyecta el token de portador en el encabezado HTTP y
el proxy inverso valida el token mediante el protocolo OAuth.

Claves y cuentas de Ethereum


Al aprovisionar un miembro de Azure Blockchain Service, se genera una cuenta de Ethereum y un par de claves
pública y privada. La clave privada se utiliza para enviar las transacciones a la cadena de bloques. La cuenta de
Ethereum es los últimos 20 bytes del hash de la clave pública. La cuenta de Ethereum también se denomina
cartera.
El par de claves pública y privada se almacena como un archivo de clave en formato JSON. La clave privada se
cifra con la contraseña que escribió al crear el servicio de libro de contabilidad de la cadena de bloques.
Las claves privadas se utilizan para firmar digitalmente las transacciones. En las cadenas de bloques privadas, un
contrato inteligente firmado por una clave privada representa la identidad del firmante. Para comprobar la validez
de la firma, el receptor puede comparar la clave pública del firmante con la dirección que se calcula a partir de la
firma.
Las claves de constelación se usan para identificar de forma única un nodo de Quorum. Las claves de constelación
se generan en el momento de aprovisionamiento de nodo y se especifican en el parámetro privateFor de una
transacción privada en Quorum.

Pasos siguientes
Consulte Configuración del acceso a Azure Active Directory.
¿Qué es Blockchain Data Manager para Azure
Blockchain Service?
20/02/2020 • 5 minutes to read • Edit Online

La cadena de bloques Data Manager captura, transforma y entrega datos de transacciones de Azure Blockchain
Service a Temas de Azure Event Grid que proporcionan una integración de cadena de bloques de contabilidad
confiable y escalable con los servicios de Azure.
En la mayoría de los escenarios de Blockchain empresarial, un libro de Blockchain es una parte de una solución.
Por ejemplo, para transferir un recurso de una entidad a otra, necesita un mecanismo para enviar la transacción.
Luego, necesita un mecanismo para leer los datos de contabilidad para asegurarse de que se ha producido la
transacción, se aceptó y los cambios de estado resultantes se integran con la solución de un extremo a otro. En
este ejemplo, si escribe un contrato inteligente para transferir recursos, puede usar la cadena de bloques Data
Manager para integrar aplicaciones y almacenes de datos fuera de la cadena. En el ejemplo de transferencia de
recursos, cuando se transfiere un recurso en el Blockchain, los eventos y los cambios de estado de propiedades los
entrega la cadena de bloques Data Manager a través de Event Grid. Después, puede usar varios controladores de
eventos posibles para Event Grid almacenar los datos de Blockchain fuera de la cadena o reaccionar a los cambios
de estado en tiempo real.
La cadena de bloques Data Manager realiza tres funciones principales: capturar, transformar y entregar.

Capturar
Cada instancia de Blockchain Data Manager se conecta a un nodo de transacción miembro de Azure Blockchain
Service. Solo los usuarios con acceso al nodo de transacción pueden crear una conexión, lo que garantiza el
control de acceso adecuado a los datos del cliente. Una instancia de la cadena de bloques Data Manager captura
de forma confiable todos los datos de bloques sin procesar y de transacciones sin procesar del nodo de
transacción y se puede escalar para admitir cargas de trabajo empresariales.

Transformación
Puede usar la cadena de bloques Data Manager para descodificar el estado de los eventos y las propiedades
mediante la configuración de aplicaciones de contrato inteligente en la cadena de bloques Data Manager. Para
agregar un contrato inteligente, proporcione el contrato ABI y el código de bytes. La cadena de bloques Data
Manager usa los artefactos de contrato inteligente para descodificar y detectar direcciones de contrato. Después
de agregar la aplicación Blockchain a la instancia, la cadena de bloques Data Manager detecta de forma dinámica
la dirección del contrato inteligente cuando se implementa el contrato inteligente en el consorcio y envía el estado
de la propiedad y el evento descodificado a los destinos configurados.
Entrega
La cadena de bloques Data Manager admite varias conexiones salientes de tema Event Grid para cualquier
instancia de cadena de bloques Data Manager determinada. Puede enviar datos de la cadena de bloques a un
único destino o enviar datos de la cadena de bloques a varios destinos. Con la cadena de bloques Data Manager,
puede crear una solución escalable de publicación de datos basada en eventos para cualquier implementación de
Blockchain.

Opciones de configuración
Puede configurar la cadena de bloques Data Manager para satisfacer las necesidades de la solución. Por ejemplo,
puede aprovisionar:
Una única instancia de la cadena de bloques Data Manager para un miembro Azure Blockchain Service.
Una instancia de la cadena de bloques Data Manager por nodo de transacción Azure Blockchain Service. Por
ejemplo, los nodos de transacción privados pueden tener su propia instancia de cadena de bloques Data
Manager para mantener la confidencialidad.
Una instancia de cadena de bloques Data Manager puede admitir varias conexiones de salida. Una instancia de
cadena de bloques Data Manager se puede usar para administrar todos los puntos de integración de
publicación de datos para un miembro Azure Blockchain Service.

Pasos siguientes
Intente creando una instancia de cadena de bloques Data Manager para un miembro Azure Blockchain Service.
Introducción al desarrollo de Azure Blockchain
Service
19/02/2020 • 8 minutes to read • Edit Online

Con Azure Blockchain Service, puede crear redes de cadenas de bloques de consorcio para habilitar escenarios
empresariales, como seguimiento de recursos, token digital, fidelidad y recompensa, cadena de suministro
financiero y procedencia. En las secciones siguientes se presentan el desarrollo de Azure Blockchain Service para
implementar soluciones de cadena de bloques de empresa.

Conexión a Azure Blockchain Service


Hay distintos tipos de clientes de redes de cadenas de bloques, incluidos nodos completos, nodos de luz y clientes
remotos. Azure Blockchain Service compila una red de cadenas de bloques que incluye nodos. Puede usar distintos
clientes como puerta de enlace a Azure Blockchain Service para el desarrollo de cadenas de bloques. Azure
Blockchain Service ofrece autenticación básica o la clave de acceso como punto de conexión de desarrollo. A
continuación, se indican algunos clientes populares que puede usar para conectarse.
Visual Studio Code
Puede conectarse a los miembros de un consorcio mediante la extensión para Visual Studio Code del kit de
desarrollo de Azure Blockchain. Una vez conectado a un consorcio, puede crear, compilar e implementar contratos
inteligentes en un miembro del consorcio de Azure Blockchain Service.
Para más información, consulte Inicio rápido: Uso de Visual Studio Code para conectarse a una red del consorcio
de Azure Blockchain Service.
MetaMask
MetaMask es una cartera basada en explorador (cliente remoto), cliente RPC y explorador de contrato básico. A
diferencia de otras carteras de explorador, MetaMask inserta una instancia web3 en el contexto de JavaScript del
explorador, actuando como un cliente RPC que se conecta a una variedad de cadenas de bloques de Ethereum
(mainnet, Ropsten testnet, Kovan testnet, nodo de RPC local, etc.). Puede configurar una RPC personalizada
fácilmente para conectarse a Azure Blockchain Service e iniciar el desarrollo de la cadena de bloques mediante
Remix.
Para más información, consulte Inicio rápido: Uso de MetaMask para conectarse a un contrato inteligente e
implementarlo
Geth
Geth es la interfaz de la línea de comandos para ejecutar un nodo de Ethereum completo implementado en Go. No
es necesario ejecutar el nodo completo, pero puede iniciar su consola interactiva que proporciona un entorno en
tiempo de ejecución de JavaScript que expone una API de JavaScript para interactuar con Azure Blockchain
Service.
Para más información, consulte Inicio rápido: Uso de Geth para conectarse a un nodo de transacción de Azure
Blockchain Service.

Configuración del marco de desarrollo


Para desarrollar soluciones empresariales sofisticadas de cadenas de bloques, es necesario un marco de desarrollo
para conectarse a diferentes redes de cadenas de bloques y administrar el ciclo de vida del contrato inteligente.
Truffle es uno de los marcos de desarrollo de cadenas de bloques más populares para escribir, compilar,
implementar y probar aplicaciones descentralizadas en las cadenas de bloques de Ethereum. Truffle también se
puede considerar como un marco que intenta integrar sin problemas el desarrollo de contratos inteligentes y el
desarrollo web tradicional.
La mayoría de los proyectos interactúan con al menos dos nodos de la cadena de bloques. Los desarrolladores
usan una cadena de bloques local durante el desarrollo. Cuando la aplicación está lista para la prueba o
lanzamiento, el desarrollador se implementa en una red de cadena de bloques. Por ejemplo, la principal red de
Ethereum pública o Azure Blockchain Service. Truffle se puede usar para compilar e implementar contratos
inteligentes para cada red y simplifica la implementación de la aplicación final. Para más información, consulte
Inicio rápido: Uso de Truffle para conectarse a una red de Azure Blockchain Service.

Transacciones privadas de Quorum de Ethereum


Quorum es un protocolo de libro de contabilidad distribuida basado en Ethereum con transacción, además de
privacidad de contrato y nuevos mecanismos de consenso. Las mejoras claves realizadas en Go-Ethereum
incluyen:
Privacidad: Quorum admite transacciones privadas y contratos privados mediante la separación del estado
público y privado y usa los intercambios de mensajes cifrados punto a punto para transferencias dirigidas de
datos privados para los participantes de la red.
Otros mecanismos de consenso: sin necesidad de consenso de prueba de trabajo o de prueba de
participación en una red con permisos. Quorum ofrece varios mecanismos de consenso que están diseñados
para cadenas de consorcio, como RAFT e IBFT. Azure Blockchain Service usa el mecanismo de consenso IBFT.
Permisos del mismo nivel: los permisos de nodo y del mismo nivel que usan contratos inteligentes
garantizan que solo puedan unirse a la red entidades conocidas.
Mayor rendimiento: Quorum ofrece un mayor rendimiento respecto a la interfaz Geth pública.

Exploradores de bloques
Los exploradores de bloques son los exploradores de cadenas de bloques en línea que muestran el contenido de
bloques individuales, datos de direcciones de transacción y el historial. La información básica de bloques está
disponible a través de Azure Monitor en Azure Blockchain Service. Sin embargo, si necesita información más
detallada durante el desarrollo, los exploradores de bloques pueden ser útiles. Los siguientes exploradores de
bloques funcionan con Azure Blockchain Service:
Epirus Azure Blockchain Service Explorer de Web3 Labs
BlockScout
También puede crear su propio explorador de bloques con Blockchain Data Manager y Azure Cosmos DB.
Consulte Tutorial: Uso de Blockchain Data Manager para enviar datos a Azure Cosmos DB.

Medición de TPS
Como las cadenas de bloques se usan en más escenarios empresariales, la velocidad de las transacciones por
segundo (TPS ) es importante para evitar cuellos de botella y deficiencias de sistema. Las altas tasas de transacción
pueden ser difíciles de mantener dentro de una cadena de bloques descentralizada. Una medida precisa de TPS
puede verse afectada por distintos factores, como el subproceso del servidor, el tamaño de la cola de transacciones,
la latencia de red y la seguridad. Si necesita medir la velocidad de TPS durante el desarrollo, una herramienta de
código abierto popular es ChainHammer.

Pasos siguientes
Pruebe un inicio rápido que usa Azure Blockchain Development Kit for Ethereum para realizar la asociación con un
consorcio en Azure Blockchain Service.
Uso de Visual Studio Code para conectarse a Azure Blockchain Service
Límites en Azure Blockchain Service
19/02/2020 • 3 minutes to read • Edit Online

Azure Blockchain Service tiene límites funcionales y de servicio, como el número de nodos que puede tener un
miembro, restricciones de consorcio y cantidades de almacenamiento.

Plan de tarifa
Los límites máximos de los nodos de validación y transacciones dependen de si aprovisiona
Azure Blockchain Service en el plan de tarifa Básico o Estándar.

CANTIDAD MÁXIMA DE NODOS DE CANTIDAD MÁXIMA DE NODOS DE


PLAN DE TARIFA TRANSACCIÓN VALIDACIÓN

Básica 10 1

Estándar 10 2

Después de la creación de un miembro, no se puede cambiar el plan de tarifa de Básico a Estándar.

Capacidad de almacenamiento
La cantidad máxima de almacenamiento que se puede usar por nodo para los datos de libro de contabilidad y
registros es de 1,8 terabyte.
El tamaño de almacenamiento del libro de contabilidad y del registro no se puede reducir.

Límites del consorcio


Los nombres de miembro y de consorcio deben ser únicos en Azure Blockchain Service.
Los nombres de miembro y de consorcio no se pueden cambiar
Todos los miembros de un consorcio deben estar en el mismo plan de tarifa
Todos los miembros que participan en un consorcio deben residir en la misma región
El primer miembro creado en un consorcio dicta la región. Los miembros invitados al consorcio deben
residir en la misma región que el primer miembro. Limitar todos los miembros a la misma región ayuda a
garantizar que el consenso de red no se ve afectado.
Un consorcio debe tener al menos un administrador
Si un consorcio solo tiene un administrador, este no se puede quitar del consorcio ni eliminar a su miembro
hasta que se agregue otro administrador o se promocione en el consorcio.
Los miembros quitados del consorcio no se pueden volver a agregar
Tienen que recibir una nueva invitación para unirse al consorcio y crear un nuevo miembro. Los recursos de
los miembros existentes no se eliminan para conservar el historial de transacciones.
Todos los miembros de un consorcio deben usar la misma versión de libro de contabilidad
Para obtener más información sobre la aplicación de revisiones, actualizaciones y versiones del libro de
contabilidad disponibles en Azure Blockchain Service, vea Aplicación de revisiones, actualizaciones y
versiones.

Pasos siguientes
Más información sobre las directivas relacionadas con la revisión y las actualizaciones de sistemas: Revisiones,
actualizaciones y versiones.
Versiones que Azure Blockchain Service admite para
los libros de contabilidad
19/02/2020 • 2 minutes to read • Edit Online

Azure Blockchain Service usa el libro de contabilidad de Quorum basado en Ethereum y diseñado para el
procesamiento de transacciones privadas dentro de un grupo de participantes conocidos, identificado como un
consorcio de Azure Blockchain Service.
Actualmente, Azure Blockchain Service admite Quorum versión 2.2.3 y el administrador de transacciones Tessera.

Administración de actualizaciones
El control de versiones en Quorum se realiza con las versiones principal, secundaria y de revisión. Por ejemplo, si
la versión de Quorum es la 2.0.1, el tipo de versión se clasificaría como sigue:

PRINCIPAL MINOR REVISIÓN

2 0 1

Azure Blockchain Service actualiza automáticamente las versiones de las revisiones de Quorum para los
miembros existentes que se ejecutan dentro de los 30 días posteriores a que estén disponibles desde Quorum.

Disponibilidad de nuevas versiones del libro de contabilidad


Azure Blockchain Service proporciona las versiones principales y secundarias más recientes del libro de
contabilidad de Quorum 60 días después de que el fabricante de Quorum las publique. Se proporcionan cuatro
versiones secundarias, como máximo, para que los consorcios elijan cuándo aprovisionar un nuevo miembro y un
consorcio. La actualización a una versión principal o secundaria no se admite actualmente. Por ejemplo, si va a
ejecutar la versión 2.x, actualmente no se admite la actualización a la versión 3.x. Por ejemplo, si va a ejecutar la
versión 2.2, actualmente no se admite la actualización a la versión 2.3.

Pasos siguientes
Límites en Azure Blockchain Service
Configuración del acceso a Azure Active Directory
para Azure Blockchain Service
19/02/2020 • 5 minutes to read • Edit Online

En este artículo, aprenderá a conceder acceso y conectarse a los nodos de Azure Blockchain Service mediante los
id. de aplicación, grupo o usuario de Azure Active Directory (Azure AD ).
Azure AD proporciona la administración de identidades basada en la nube y le permite usar una identidad única
en toda una empresa y las aplicaciones de acceso en Azure. Azure Blockchain Service se integra con Azure AD y
ofrece ventajas como el id. de federación, el inicio de sesión único y la autenticación multifactor.

Requisitos previos
Create a blockchain member using the Azure portal (Creación de un miembro de cadena de bloques mediante
Azure Portal)

Conceder acceso
Puede conceder acceso en el nivel de miembro y el nivel de nodo. Conceder derechos de acceso en el nivel de
miembro dará acceso a su vez a todos los nodos que se encuentran el miembro.
Conceder acceso de nivel de miembro
Para conceder permiso de acceso en el nivel de miembro:
1. Inicie sesión en el Azure Portal.
2. Navegue hasta Control de acceso (IAM ) > Agregar > Agregar asignación de roles.
3. Seleccione el rol Acceso a nodos de miembros de Blockchain (versión preliminar) y agregue el
objeto de id. de Azure AD al que desea conceder acceso. El objeto de id. de Azure AD puede ser:

OBJETO DE AZURE AD EJEMPLO

Usuario de Azure AD kim@contoso.onmicrosoft.com

Grupo de Azure AD sales@contoso.onmicrosoft.com

Identificador de aplicación 13925ab1-4161-4534-8d18-812f5ca1ab1e


4. Seleccione Guardar.
Conceder acceso de nivel de nodo
Para conceder acceso en el nivel de nodo, navegue hasta la seguridad de nodo y haga clic en el nombre de nodo
al que desea conceder acceso.
Seleccione el rol Acceso a nodos de miembros de Blockchain (versión preliminar) y agregue el objeto de id. de
Azure AD al que desea conceder acceso.
Para más información, consulte Configurar los nodos de transacción de Azure Blockchain Service.

Conectar mediante el conector de Azure Blockchain


Descargue o clone el conector de Azure Blockchain desde GitHub.

git clone https://github.com/Microsoft/azure-blockchain-connector.git

Siga la sección de inicio rápido de Léame para crear el conector desde el código fuente.
Conectar con una cuenta de usuario de Azure AD
1. Ejecute el siguiente comando para autenticarse con una cuenta de usuario de Azure AD. Reemplace
<myAADDirectory> por un dominio de Azure AD. Por ejemplo, yourdomain.onmicrosoft.com .

connector.exe -remote <myMemberName>.blockchain.azure.com:3200 -method aadauthcode -tenant-id


<myAADDirectory>

2. Azure AD pide las credenciales.


3. Inicie sesión con su nombre de usuario y contraseña.
4. Tras una autenticación correcta, el proxy local se conecta al nodo de cadena de bloques. Ahora puede
adjuntar el cliente Geth con el punto de conexión local.

geth attach http://127.0.0.1:3100

Conectar mediante un id. de aplicación


Muchas aplicaciones se autentican con Azure AD mediante un id. de aplicación en lugar de una cuenta de usuario
de Azure AD.
Para conectarse al nodo mediante un id. de aplicación, reemplace aadauthcode por aadclient.
connector.exe -remote <myBlockchainEndpoint> -method aadclient -client-id <myClientID> -client-secret "
<myClientSecret>" -tenant-id <myAADDirectory>

PARÁMETRO DESCRIPCIÓN

tenant-id Dominio de Azure AD, por ejemplo,


yourdomain.onmicrosoft.com

client-id Id. de cliente de la aplicación registrada en Azure AD

client-secret Secreto de cliente de la aplicación registrada en Azure AD

Para obtener más información sobre cómo registrar una aplicación en Azure AD, consulte Procedimiento: Uso del
portal para crear una aplicación de Azure AD y una entidad de servicio con acceso a los recursos
Conectar un dispositivo móvil o un explorador de texto
Para un dispositivo móvil o explorador basado en texto en los que no es posible la visualización emergente de la
autenticación de Azure AD, Azure AD genera un código de acceso de un solo uso. Puede copiar el código de
acceso y continuar con la autenticación de Azure AD en otro entorno.
Para generar el código de acceso, reemplace aadauthcode por aaddevice. Reemplace <myAADDirectory> por
un dominio de Azure AD. Por ejemplo, yourdomain.onmicrosoft.com .

connector.exe -remote <myBlockchainEndpoint> -method aaddevice -tenant-id <myAADDirectory>

Pasos siguientes
Para más información sobre la seguridad de datos en Azure Blockchain Service, consulte Seguridad de Azure
Blockchain Service.
Configuración de cadena de bloques Data Manager
con Azure Portal
19/02/2020 • 14 minutes to read • Edit Online

Configure la cadena de bloques Data Manager para que la cadena de bloques de Azure Blockchain Service capture
los datos de la cadena de bloques y los envíe a un tema Azure Event Grid.
Para configurar una instancia de cadena de bloques Data Manager, puede:
Crear una instancia de cadena de bloques Data Manager para un nodo de transacción de la cadena de bloques
de Azure Blockchain Service
Agregue sus aplicaciones de cadena de bloques

Requisitos previos
Realizar el tutorial Quickstart: Creación de un miembro de cadena de bloques mediante Azure Portal o Inicio
rápido: Creación de un miembro de cadena de bloques de Azure Blockchain Service mediante la CLI de Azure
Crear un tema Event Grid
Más información sobre Controladores de eventos en Azure Event Grid

Crear instancia
Una instancia de cadena de bloques Data Manager conecta y supervisa un nodo de transacción de la cadena de
bloques de Azure Blockchain Service. Solo los usuarios con acceso al nodo de transacción pueden crear una
conexión. Una instancia captura todos los datos de transacciones y bloques sin procesar del nodo de transacción.
Una conexión saliente envía datos de la cadena de bloques a Azure Event Grid. Configura una conexión saliente
única cuando crea la instancia. La cadena de bloques Data Manager admite varias conexiones salientes de tema
Event Grid para cualquier instancia de cadena de bloques Data Manager determinada. Puede enviar datos de la
cadena de bloques a un único destino o enviar datos de la cadena de bloques a varios destinos. Para agregar otro
destino, solo tiene que agregar conexiones salientes adicionales a la instancia.
1. Inicie sesión en el Azure Portal.
2. Vaya al miembro de la cadena de bloques de Azure Blockchain Service que quiere conectar con la cadena
de bloques Data Manager. Seleccione la cadena de bloques Data Manager.
3. Seleccione Agregar.
Escriba la siguiente información:

CONFIGURACIÓN DESCRIPCIÓN

NOMBRE Escriba un nombre único para una cadena de bloques


Data Manager conectada. El nombre de la cadena de
bloques Data Manager puede contener letras minúsculas
y números y tener una longitud máxima de 20 caracteres.

Nodo de transacción Elija un nodo de transacción. Solo se muestran los nodos


de transacción a los que tiene acceso de lectura.

Nombre de conexión Escriba un nombre único de la conexión saliente donde se


envían los datos de la transacción de la cadena de
bloques.

Punto de conexión de Event Grid Elija un tema de Event Grid en la misma suscripción que la
instancia de la cadena de bloques Data Manager.

4. Seleccione Aceptar.
Se tarda menos de un minuto crear una instancia de Blockchain Data Manager. Una vez implementada la
instancia, se inicia automáticamente. Una instancia de la cadena de bloques Data Manager en ejecución
captura los eventos de la cadena de bloques desde el nodo de transacción y envía los datos a las conexiones
salientes.
La nueva instancia aparece en la lista de instancias de la cadena de bloques Data Manager para el miembro
de Azure Blockchain Service.
Agregar aplicación de cadena de bloques
Si agrega una aplicación de cadena de bloques, la cadena de bloques Data Manager descodifica el estado de los
eventos y las propiedades de la aplicación. De lo contrario, solo se envían datos de transacciones y bloques sin
procesar. La cadena de bloques Data Manager también detecta direcciones de contrato cuando se implementa el
contrato. Puede agregar varias aplicaciones de la cadena de bloques a una instancia de cadena de bloques Data
Manager.

IMPORTANT
Actualmente, las aplicaciones de cadena de bloques que declaran tipos de matriz o tipos de asignación de Solidity no son
totalmente compatibles. Las propiedades declaradas como matrices o tipos de asignación no se descodificarán en mensajes
ContractPropertiesMsg ni DecodedContractEventsMsg.

Blockchain Data Manager requiere la ABI del contrato inteligente y el archivo de código de bytes implementado
para agregar la aplicación.
Obtener la ABI del contrato y el código de bytes
La ABI del contrato define las interfaces del contrato inteligente. Describe cómo interactuar con el contrato
inteligente. Puede usar la extensión del kit de desarrollo para Ethereum de Azure Blockchain para copiar la ABI del
contrato en el portapapeles.
1. En el panel del explorador de Visual Studio Code, expanda la carpeta build/contracts del proyecto de
Solidity.
2. Haga clic con el botón derecho en el archivo JSON de metadatos del contrato. El nombre de archivo es el
nombre del contrato inteligente seguido de la extensión .json.
3. Seleccione Copy contract ABI (Copiar ABI del contrato).
La ABI del contrato se copia en el portapapeles.
4. Guarde la matriz abi como archivo JSON. Por ejemplo, abi.json. Usará este archivo en un paso posterior.
Blockchain Data Manager requiere el código de bytes implementado para el contrato inteligente. El código de
bytes implementado es diferente del código de bytes del contrato inteligente. Puede usar la extensión del kit de
desarrollo de Azure Blockchain para copiar el código de bytes en el portapapeles.
1. En el panel del explorador de Visual Studio Code, expanda la carpeta build/contracts del proyecto de
Solidity.
2. Haga clic con el botón derecho en el archivo JSON de metadatos del contrato. El nombre de archivo es el
nombre del contrato inteligente seguido de la extensión .json.
3. Seleccione Copiar código de bytes de la transacción.

El código de bytes se copia en el portapapeles.


4. Guarde el valor del código de bytes como archivo JSON. Por ejemplo, bytecode.json. Lo usará en un paso
posterior.
El ejemplo siguiente muestra archivos abi.json y bytecode.json abiertos en el editor de VS Code. Sus archivos
deben ser similares.

Obtener la ABI del contrato y la dirección URL del código de bytes


Blockchain Data Manager requiere que una dirección URL pueda acceder a la ABI del contrato y a los archivos del
código de bytes al agregar una aplicación. Puede usar una cuenta de Azure Storage para proporcionar una
dirección URL de acceso privado.
Crear cuenta de almacenamiento
Para crear una cuenta de almacenamiento de uso general v2 en Azure Portal, siga estos pasos:
1. En el menú de Azure Portal, seleccione Todos los servicios. En la lista de recursos, escriba Cuentas de
almacenamiento. Cuando comience a escribir, la lista se filtrará en función de la entrada. Seleccione
Cuentas de almacenamiento.
2. En la ventana Cuentas de almacenamiento que aparece, elija Agregar.
3. Seleccione la suscripción en la que se va a crear la cuenta de almacenamiento.
4. En el campo Grupo de recursos, haga clic en Crear nuevo. Escriba un nombre para el nuevo grupo de
recursos, como se muestra en la siguiente imagen.
5. Después, escriba un nombre para la cuenta de almacenamiento. El nombre que elija debe ser único en
Azure. El nombre debe tener también una longitud de entre 3 y 24 caracteres y solo puede contener
números y letras minúsculas.
6. Seleccione una ubicación para la cuenta de almacenamiento o utilice la ubicación predeterminada.
7. Deje estos campos con sus valores predeterminados:

CAMPO VALUE

Modelo de implementación Resource Manager

Rendimiento Estándar

Tipo de cuenta StorageV2 (uso general v2)

Replicación Almacenamiento con redundancia geográfica con acceso


de lectura (RA-GRS).

Nivel de acceso Acceso frecuente

8. Si planea usar Azure Data Lake Storage, elija la pestaña Opciones avanzadas y, después, en Espacio de
nombres jerárquico, seleccione Habilitado.
9. Seleccione Revisar y crear para revisar la configuración de la cuenta de almacenamiento y crear la cuenta.
10. Seleccione Crear.
Para obtener más información sobre los tipos de cuentas de almacenamiento y otros parámetros de la cuenta de
almacenamiento, consulte Introducción a las cuentas de Azure Storage. Para más información sobre los grupos de
recursos, consulte Información general de Azure Resource Manager.
Cargar archivos de contrato
1. Cree un nuevo contenedor para la cuenta de almacenamiento. Seleccione Contenedores > Contenedor.

CAMPO DESCRIPCIÓN

NOMBRE Nombre del contenedor. Por ejemplo, smartcontract

Nivel de acceso público Elija Privado (sin acceso anónimo )

2. Seleccione Aceptar para crear el contenedor.


3. Seleccione el contenedor y, a continuación, seleccione Cargar.
4. Elija los dos archivos JSON creados en la sección Obtener la ABI del contrato y el código de bytes.
Seleccione Cargar.
Generar dirección URL
Para cada blob, genere una firma de acceso compartido.
1. Seleccione el blob JSON de ABI.
2. Seleccione Generar SAS
3. Establezca la expiración de la firma de acceso deseada y seleccione Generar el token de SAS de blob y la
dirección URL.

4. Copie la dirección URL de SAS de blob y guárdela en la siguiente sección.


5. Repita los pasos para generar una dirección URL para el de código de bytes JSON blob.
Agregar aplicación a instancia
1. Seleccione la instancia de la cadena de bloques Data Manager en la lista de instancias.
2. Seleccione Blockchain applications (aplicaciones de cadena de bloques).
3. Seleccione Agregar.
Escriba el nombre de la aplicación de cadena de bloques y las direcciones URL de la ABI del contrato
inteligente y los códigos de bytes.

CONFIGURACIÓN DESCRIPCIÓN

NOMBRE Escriba un nombre único para la aplicación de cadena de


bloques de la que se va a realizar el seguimiento.

ABI del contrato Ruta de acceso URL al archivo ABI del contrato. Para más
información, consulte Crear una dirección URL de la ABI
del contrato y el código de bytes.

Código de bytes del contrato Ruta de acceso URL al archivo de código de bytes. Para
más información, consulte Crear una dirección URL de la
ABI del contrato y el código de bytes.

4. Seleccione Aceptar.
Una vez creada la aplicación, esta aparece en la lista de aplicaciones de cadena de bloques.

Puede eliminar la cuenta de Azure Storage o usarla para configurar más aplicaciones de cadena de bloques. Si
quiere eliminar la cuenta de Azure Storage, puede eliminar el grupo de recursos. Al eliminar el grupo de recursos,
también se elimina la cuenta de almacenamiento asociada y cualquier otro recurso que esté asociado a dicho
grupo.

Detener instancia
Detenga la instancia de Blockchain Manager cuando quiera dejar de capturar eventos Blockchain y enviar datos a
las conexiones salientes. Cuando se detiene la instancia, no se aplica ningún cargo por la cadena de bloques Data
Manager. Para más información, consulte los precios.
1. Vaya a Información general y seleccione Detener.

Pasos siguientes
Intente crear con el siguiente tutorial un explorador de mensajes de transacción de cadena de bloques con
Blockchain Data Manager y Azure Cosmos DB.
Uso de Blockchain Data Manager para enviar datos a Azure Cosmos DB
Configuración de la cadena de bloques Data
Manager con la CLI de Azure
19/02/2020 • 18 minutes to read • Edit Online

Configure la cadena de bloques Data Manager para que la cadena de bloques de Azure Blockchain Service capture
los datos de la cadena de bloques y los envíe a un tema Azure Event Grid.
Para configurar una instancia de cadena de bloques Data Manager, puede:
Crear una instancia del Administrador de la cadena de bloques
Crear una entrada a un nodo de transacción de Azure Blockchain Service
Crear una salida para un tema Azure Event Grid
Agregue una aplicación Blockchain
Iniciar una instancia

Requisitos previos
Instale el CLI de Azure más reciente y con la sesión iniciada az login .
Realizar el tutorial Quickstart: Uso de Visual Studio Code para conectarse a una red del consorcio de Azure
Blockchain Service
Crear un tema Event Grid
Más información sobre Controladores de eventos en Azure Event Grid

Inicio de Azure Cloud Shell


Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las
herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.
Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código. También
puede ir a https://shell.azure.com/bash para iniciar Cloud Shell en una pestaña independiente del explorador.
Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione Entrar para
ejecutarlos.
Si prefiere instalar y usar la CLI de forma local, en este inicio rápido se requiere la versión 2.0.51 o posterior.
Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI
de Azure.

Crear un grupo de recursos


Cree un grupo de recursos con el comando az group create. Un grupo de recursos de Azure es un contenedor
lógico en el que se implementan y se administran los recursos de Azure. En el ejemplo siguiente, se crea un grupo
de recursos denominado myResourceGroup en la ubicación eastus:

az group create --name myRG --location eastus

Crear instancia
Una instancia de la cadena de bloques Data Manager supervisa un nodo de transacción de servicio de Azure
Blockchain. Una instancia captura todos los datos de transacciones y bloques sin procesar del nodo de transacción.

az resource create \
--resource-group <Resource group> \
--name <Blockchain Data Manager instance name> \
--resource-type Microsoft.blockchain/watchers \
--is-full-object \
--properties <watcher resource properties>

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se creará la instancia de


la cadena de bloques Data Manager.

Nombre Nombre de la instancia de la cadena de bloques Data


Manager.

tipo de recurso El tipo de recurso de una instancia de la cadena de bloques


Data Manager es Microsoft.blockchain/watchers.

is-full-object Indica que las propiedades contienen opciones para el recurso


de monitor.

properties Cadena con formato JSON que contiene las propiedades del
recurso de monitor. Se puede pasar como una cadena o un
archivo.

Ejemplos de creación de instancia


Ejemplo de configuración de JSON para crear una instancia del administrador de la cadena de bloques en la región
este de EE. UU. .

{
"location": "eastus",
"properties": {
}
}

ELEMENTO DESCRIPCIÓN

location Región en la que se creará el recurso de monitor

properties Propiedades que se establecen al crear el recurso de monitor

Cree una instancia de la cadena de bloques de Data Manager denominada mywatcher con una cadena JSON para
la configuración.

az resource create \
--resource-group myRG \
--name mywatcher \
--resource-type Microsoft.blockchain/watchers \
--is-full-object \
--properties '{"location":"eastus"}'

Cree una instancia de la cadena de bloques de Data Manager denominada mywatcher con el archivo de
configuración JSON.
az resource create \
--resource-group myRG \
--name mywatcher \
--resource-type Microsoft.blockchain/watchers \
--is-full-object \
--properties @watcher.json

Creación de una entrada


Una entrada conecta a la cadena de bloques Data Manager a un nodo de transacción de servicio Azure Blockchain.
Solo los usuarios con acceso al nodo de transacción pueden crear una conexión.

az resource create \
--resource-group <Resource group> \
--name <Input name> \
--namespace Microsoft.Blockchain \
--resource-type inputs \
--parent watchers/<Watcher name> \
--is-full-object \
--properties <input resource properties>

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se creará el recurso de


entrada.

Nombre Nombre de la entrada.

espacio de nombres Use el espacio de nombres del proveedor


Microsoft.Blockchain.

tipo de recurso El tipo de recurso para una entrada de la cadena de bloques


Data Manager es entradas.

primario Ruta de acceso al monitor al que está asociada la entrada. Por


ejemplo, monitor/mi monitor.

is-full-object Indica que las propiedades contienen opciones para el recurso


de monitor.

properties Cadena con formato JSON que contiene las propiedades del
recurso de monitor. Se puede pasar como una cadena o un
archivo.

Ejemplos de entrada
Ejemplo de JSON de configuración para crear un recurso de entrada en la región este de EE. UU. que está
conectada a <miembro Blockchain>.
{
"location": "eastus",
"properties": {
"inputType": "Ethereum",
"dataSource": {
"resourceId": "/subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.Blockchain/blockchainMembers/<Blockchain member>/transactionNodes/transaction-node"
}
}
}

ELEMENTO DESCRIPCIÓN

location Región en la que se va a crear el recurso de entrada.

inputType Tipo de libro de contabilidad del miembro Azure Blockchain


Service. Actualmente, se admite Ethereum.

resourceId Nodo de transacción al que está conectada la entrada.


Reemplace <ID. de suscripción>, <Grupo de recursos> y
<miembro de Blockchain> con los valores para el recurso de
nodo de transacción. La entrada se conecta al nodo de
transacción predeterminado para el miembro Azure Blockchain
Service.

Cree una entrada denominada myinput para mywatcher con la cadena JSON para la configuración.

az resource create \
--resource-group myRG \
--name myInput \
--namespace Microsoft.Blockchain \
--resource-type inputs \
--parent watchers/mywatcher \
--is-full-object \
--properties '{"location":"eastus", "properties":{"inputType":"Ethereum","dataSource":
{"resourceId":"/subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.Blockchain/BlockchainMembers/<Blockchain member>/transactionNodes/transaction-
node"}}}'

Cree una entrada denominada myinput para mywatcher con un archivo de configuración JSON.

az resource create \
--resource-group myRG \
--name input \
--namespace Microsoft.Blockchain \ --resource-type inputs \
--parent watchers/mywatcher \
--is-full-object \
--properties @input.json

Crear salida
Una conexión saliente envía datos de la cadena de bloques a Azure Event Grid. Puede enviar datos de la cadena de
bloques a un único destino o enviar datos de la cadena de bloques a varios destinos. La cadena de bloques Data
Manager admite varias conexiones salientes de tema Event Grid para cualquier instancia de cadena de bloques
Data Manager determinada.
az resource create \
--resource-group <Resource group> \
--name <Output name> \
--namespace Microsoft.Blockchain \
--resource-type outputs \
--parent watchers/<Watcher name> \
--is-full-object \
--properties <output resource properties>

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se creará el recurso de


entrada.

Nombre Nombre de la salida.

espacio de nombres Use el espacio de nombres del proveedor


Microsoft.Blockchain.

tipo de recurso El tipo de recurso para una salida de la cadena de bloques


Data Manager es salidas.

primario Ruta de acceso al monitor al que está asociada la salida. Por


ejemplo, monitor/mi monitor.

is-full-object Indica que las propiedades contienen opciones para el recurso


de salida.

properties Cadena con formato JSON que contiene las propiedades del
recurso de monitor. Se puede pasar como una cadena o un
archivo.

Ejemplos de salida
Ejemplo de JSON de configuración para crear un recurso de salida en la región este de EE. UU. que está conectada
a un tema de Event Grid denominado <tema de Event Grid>.

{
"location": "eastus",
"properties": {
"outputType": "EventGrid",
"dataSource": {
"resourceId": "/subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.EventGrid/topics/<event grid topic>"
}
}
}

ELEMENTO DESCRIPCIÓN

location Región en la que se va a crear el recurso de salida.

outputType Tipo de salida. Actualmente, se admite EventGrid.


ELEMENTO DESCRIPCIÓN

resourceId Recurso al que está conectada la salida. Reemplace <ID. de


suscripción>, <>Grupo de recursos y <miembro de
Blockchain> con los valores del recurso de Event Grid.

Cree una salida con el nombre demyoutput para mywatcher que se conecta a un tema de Event Grid con una
cadena de configuración de JSON.

az resource create \
--resource-group myRG \
--name myoutput \
--namespace Microsoft.Blockchain \
--resource-type outputs \
--parent watchers/mywatcher \
--is-full-object \
--properties '{"location":"eastus","properties":{"outputType":"EventGrid","dataSource":
{"resourceId":"/subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.EventGrid/topics/<event grid topic>"}}}'

Cree una salida con el nombre de myoutput para mywatcher que se conecta a un tema de Event Grid con un
archivo de configuración JSON.

az resource create \
--resource-group myRG \
--name myoutput \
--namespace Microsoft.Blockchain \
--resource-type outputs \
--parent watchers/mywatcher \
--is-full-object \
--properties @output.json

Agregar aplicación de cadena de bloques


Si agrega una aplicación de cadena de bloques, la cadena de bloques Data Manager descodifica el estado de los
eventos y las propiedades de la aplicación. De lo contrario, solo se envían datos de transacciones y bloques sin
procesar. La cadena de bloques Data Manager también detecta direcciones de contrato cuando se implementa el
contrato. Puede agregar varias aplicaciones de la cadena de bloques a una instancia de cadena de bloques Data
Manager.

IMPORTANT
Actualmente, las aplicaciones de cadena de bloques que declaran tipos de matriz o tipos de asignación de Solidity no son
totalmente compatibles. Las propiedades declaradas como matrices o tipos de asignación no se descodificarán en mensajes
ContractPropertiesMsg ni DecodedContractEventsMsg.

az resource create \
--resource-group <Resource group> \
--name <Application name> \
--namespace Microsoft.Blockchain \
--resource-type artifacts \
--parent watchers/<Watcher name> \
--is-full-object \
--properties <Application resource properties>
PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se creará el recurso de


entrada.

Nombre Nombre de la aplicación.

espacio de nombres Use el espacio de nombres del proveedor


Microsoft.Blockchain.

tipo de recurso El tipo de recurso de una aplicación de cadena de bloques


Data Manager es artefactos.

primario Ruta de acceso al monitor al que está asociada la aplicación.


Por ejemplo, monitor/mi monitor.

is-full-object Indica que las propiedades contienen opciones para el recurso


de la aplicación.

properties Cadena con formato JSON que contiene las propiedades del
recurso de la aplicación. Se puede pasar como una cadena o
un archivo.

Ejemplos de aplicaciones de Blockchain


Ejemplo de JSON de configuración para crear un recurso de aplicación en la región del este de EE. UU. que
supervisa un contrato inteligente definido por la ABI del contrato y el código de bytes.

{
"location": "eastus",
"properties": {
"artifactType": "EthereumSmartContract",
"content": {
"abiFileUrl": "<ABI URL>",
"bytecodeFileUrl": "<Bytecode URL>",
"queryTargetTypes": [
"ContractProperties",
"ContractEvents"
]
}
}
}

ELEMENTO DESCRIPCIÓN

location Región en la que se va a crear el recurso de aplicación.

artifactType Tipo de aplicación. Actualmente, se admite


EthereumSmartContract.

abiFileUrl Dirección URL para el archivo JSON de la ABI del contrato


inteligente. Para más información sobre cómo obtener la ABI
de contrato y crear una dirección URL, vea obtener contrato
ABI y código de bytes y crear contrato de la dirección URL de
la ABI y el código de bytes.
ELEMENTO DESCRIPCIÓN

bytecodeFileUrl Dirección URL del archivo JSON del código de bytes


implementado del contrato inteligente. Para más información
sobre cómo obtener el código de bytes implementado del
contrato inteligente y cómo crear una dirección URL, consulte
Obtener la ABI del contrato y el código de bytes y Obtener la
ABI del contrato y una dirección URL del código de bytes.
Nota: Blockchain Data Manager requiere el código de bytes
implementado.

queryTargetTypes Tipos de mensajes publicados. La especificación de


ContractProperties publica el tipo de mensaje
ContractPropertiesMsg. La especificación de ContractEvents
publica el tipo de mensaje DecodedContractEventsMsg. Nota:
Siempre se publican los tipo de mensaje
RawBlockAndTransactionMsg y
RawTransactionContractCreationMsg.

Cree una aplicación denominada myApplication para mywatcher de los monitores de un contrato inteligente
definido por una cadena JSON.

az resource create \
--resource-group myRG \
--name myApplication \
--namespace Microsoft.Blockchain \
--resource-type artifacts \
--parent watchers/mywatcher \
--is-full-object \
--properties '{"location":"eastus","properties":
{"artifactType":"EthereumSmartContract","content":{"abiFileUrl":"<ABI URL>","bytecodeFileUrl":"<Bytecode
URL>","queryTargetTypes":["ContractProperties","ContractEvents"]}}}'

Cree una aplicación denominada myApplication para mywatcher de los monitores de un contrato inteligente
definido por archivo de configuración JSON.

az resource create \
--resource-group myRG \
--name myApplication \
--namespace Microsoft.Blockchain \
--resource-type artifacts \
--parent watchers/mywatcher \
--is-full-object \
--properties @artifact.json

Iniciar instancia
Al ejecutar, una instancia del administrador de Blockchain supervisa los eventos de la cadena de bloques de las
entradas definidas y envía los datos a las salidas definidas.

az resource invoke-action \
--action start \
--ids /subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.Blockchain/watchers/<Watcher name>
PARÁMETRO DESCRIPCIÓN

action Use iniciar para ejecutar el monitor.

ids Identificador de recurso de monitor. Reemplace <ID. de


suscripción>, <Grupo de recursos>, y el <Nombre de
monitor> por los valores del recurso de monitor.

Ejemplo de instancia de inicio


Inicie una instancia de cadena de bloques Data Manager denominada mywatcher.

az resource invoke-action \
--action start \
--ids /subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.Blockchain/watchers/mywatcher

Detener instancia
Detenga una instancia de cadena de bloques Data Manager.

az resource invoke-action \
--action stop \
--ids /subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.Blockchain/watchers/<Watcher name>

PARÁMETRO DESCRIPCIÓN

action Use detener para detener el monitor.

ids Nombre del monitor. Reemplace <ID. de suscripción>, <Grupo


de recursos>, y el <Nombre de monitor> por los valores del
recurso de monitor.

Ejemplo de monitor de detención


Detenga una instancia denominada mywatcher.

az resource invoke-action \
--action stop \
--ids /subscriptions/<Subscription ID>/resourceGroups/<Resource
group>/providers/Microsoft.Blockchain/watchers/mywatcher

Eliminar instancia
Elimine una instancia de cadena de bloques Data Manager.

az resource delete \
--resource-group <Resource group> \
--name <Watcher name> \
--resource-type Microsoft.Blockchain/watchers
PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos del monitor que se va a


eliminar.

Nombre Nombre del monitor que se va a eliminar.

tipo de recurso El tipo de recurso de un monitor de cadena de bloques Data


Manager es Microsoft.blockchain/watchers.

Ejemplo de eliminación de instancia


Elimine una instancia denominada mywatcher en el grupo de recursos myRG.

az resource delete \
--resource-group myRG \
--name mywatcher \
--resource-type Microsoft.blockchain/watchers

Pasos siguientes
Intente crear con el siguiente tutorial un explorador de mensajes de transacción de cadena de bloques con
Blockchain Data Manager y Azure Cosmos DB.
Uso de Blockchain Data Manager para enviar datos a Azure Cosmos DB
Configurar los nodos de transacción de Azure
Blockchain Service
19/02/2020 • 10 minutes to read • Edit Online

Los nodos de transacciones se usan para enviar transacciones de cadenas de bloques a Azure Blockchain Service a
través de un punto de conexión público. El nodo de transacciones predeterminado contiene la clave privada de la
cuenta de Ethereum registrada en la cadena de bloques y, por lo tanto, no se puede eliminar.
Para ver los detalles del nodo de transacción predeterminado:
1. Inicie sesión en el Azure Portal.
2. Vaya al miembro de Azure Blockchain Service. Seleccione Nodos de transacción.

Los detalles de información general incluyen las direcciones de punto de conexión público y la clave
pública.

Creación del nodo de transacción


Puede agregar hasta nueve nodos adicionales de transacción al miembro de la cadena de bloques, para un total de
10 nodos de transacción. Al agregar nodos de transacción, puede aumentar la escalabilidad o distribuir la carga.
Por ejemplo, podría tener un punto de conexión del nodo de transacción para diferentes aplicaciones cliente.
Para agregar un nodo de transacción:
1. En Azure Portal, vaya al miembro de Azure Blockchain Service y seleccione Nodos de transacción >
Agregar.
2. Realice la configuración del nuevo nodo de transacción.
CONFIGURACIÓN DESCRIPCIÓN

NOMBRE Nombre del nodo de transacción. El nombre se usa para


crear la dirección DNS del punto de conexión del nodo de
transacción. Por ejemplo,
newnode-myblockchainmember.blockchain.azure.com .
No se puede cambiar el nombre del nodo una vez creado.

Contraseña Establezca una contraseña segura. Use la contraseña para


acceder al punto de conexión del nodo de transacción con
autenticación básica.

3. Seleccione Crear.
El aprovisionamiento de un nuevo nodo de transacción tarda unos 10 minutos. Los nodos de transacción
adicionales generan costes. Para obtener más información sobre los costes, consulte Precios de Azure.

Puntos de conexión
Los nodos de transacción tienen un nombre DNS único y puntos de conexión públicos.
Para ver los detalles del punto de conexión de un nodo de transacción:
1. En Azure Portal, vaya a uno de los nodos de transacción del miembro de Azure Blockchain Service y
seleccione Información general.

Los puntos de conexión del nodo de transacción son seguros y requieren autenticación. Puede conectarse a un
punto de conexión de transacción mediante la autenticación de Azure AD, la autenticación básica HTTPS y
mediante una clave de acceso a través de HTTPS o WebSocket a través de SSL.
Control de acceso de Azure Active Directory
Los puntos de conexión del nodo de transacción de Azure Blockchain Service admiten la autenticación de Azure
Active Directory (Azure AD ). Puede conceder al usuario, grupo y entidad de servicio de Azure AD acceso al punto
de conexión.
Para conceder control de acceso de Azure AD al punto de conexión:
1. En Azure Portal, vaya al miembro de Azure Blockchain Service y seleccione Nodos de transacción >
Control de acceso (IAM ) > Agregar > Agregar asignación de roles.
2. Cree una nueva asignación de roles para un usuario, grupo o entidad de servicio (roles de aplicación).

CONFIGURACIÓN .

Role Seleccione Propietario, Colaborador o Lector.

Asignar acceso a Seleccione Usuario, grupo o entidad de servicio de


Azure AD.

Seleccionar Busque el usuario, grupo o entidad de servicio que quiere


agregar.

3. Seleccione Guardar para agregar la asignación de roles.


Para más información sobre el control de acceso de Azure AD, consulte Administración del acceso a los recursos
de Azure mediante RBAC y Azure Portal.
Para obtener más información sobre cómo conectarse mediante la autenticación de Azure AD, consulte connect to
your node using AAD authentication (Conectarse al nodo mediante la autenticación de AAD ).
Autenticación básica
Para la autenticación básica HTTPS, las credenciales de nombre y contraseña del usuario se pasan en el
encabezado HTTPS de la solicitud al punto de conexión.
Puede ver los detalles del punto de conexión de autenticación básica de un nodo de transacción en Azure Portal.
Vaya a uno de los nodos de transacción del miembro de Azure Blockchain Service y seleccione Autenticación
básica en la configuración.
El nombre de usuario es el nombre del nodo y no se puede cambiar.
Para usar la dirección URL, reemplace <contraseña> por la contraseña establecida cuando se aprovisionó el nodo.
Para actualizar la contraseña, seleccione Restablecer contraseña.
Claves de acceso
Para la autenticación de clave de acceso, la clave de acceso se incluye en la dirección URL del punto de conexión.
Cuando se aprovisiona el nodo de transacción, se generan dos claves de acceso. Se puede usar cualquier clave de
acceso para la autenticación. Dos claves le permiten cambiar y girar claves.
Puede ver los detalles de la clave de acceso de un nodo de transacción y copiar las direcciones del punto de
conexión que incluyen las claves de acceso. Vaya a uno de los nodos de transacción del miembro de Azure
Blockchain Service y seleccione Claves de acceso en la configuración.
Reglas de firewall
Las reglas de firewall permiten limitar las direcciones IP que pueden intentar autenticarse en el nodo de
transacción. Si no hay reglas de firewall configuradas para el nodo de transacción, ninguna entidad puede acceder
a él.
Para ver las reglas de firewall de un nodo de transacción, vaya a uno de los nodos de transacción del miembro de
Azure Blockchain Service y seleccione Reglas de firewall en la configuración.
Puede agregar reglas de firewall mediante la especificación de un nombre de regla, una dirección IP inicial y una
dirección IP final en la cuadrícula Reglas de firewall.

Para habilitar las siguientes opciones:


Dirección IP única: Configure la misma dirección IP para las direcciones IP iniciales y finales.
Intervalo de direcciones IP: Configure el intervalo de direcciones IP iniciales y finales. Por ejemplo, un
intervalo que empieza en 10.221.34.0 y termina en 10.221.34.255 habilita la subred 10.221.34.xxx completa.
Permitir todas las direcciones IP: Configure la dirección IP inicial en 0.0.0.0 y la dirección IP final en
255.255.255.255.

Cadenas de conexión
El sintaxis de la cadena de conexión para el nodo de transacción se proporcionan para la autenticación básica o
mediante claves de acceso. Se proporcionan cadenas de conexión, incluidas las claves de acceso a través de
HTTPS y WebSockets.
Puede ver las cadenas de conexión de un nodo de transacción y copiar las direcciones de punto de conexión. Vaya
a uno de los nodos de transacción del miembro de Azure Blockchain Service y seleccione Cadenas de conexión
en la configuración.

Código de ejemplo
El código de ejemplo se proporciona para habilitar rápidamente la conexión al nodo de transacción a través de
Web3, Nethereum, Web3js y Truffle.
Puede ver el código de conexión de ejemplo de un nodo de transacción y copiarlo para su uso con herramientas
de desarrollo populares. Vaya a uno de los nodos de transacción del miembro de Azure Blockchain Service y
seleccione Código de ejemplo en la configuración.
Elija la pestaña Web3, Nethereum, Truffle o Web3j para ver el código de ejemplo que quiere usar.
Pasos siguientes
Configuración de nodos de transacción mediante la CLI de Azure
Administrar una instancia de
Azure Blockchain Service con la CLI de Azure
19/02/2020 • 15 minutes to read • Edit Online

Además de Azure Portal, puede usar la CLI de Azure para administrar los miembros de la cadena de bloques y los
nodos de transacción para Azure Blockchain Service.
Asegúrese de que ha instalado la versión más reciente de la CLI de Azure y que ha iniciado sesión en una cuenta
de Azure con az login .
En los ejemplos siguientes, reemplace el ejemplo de <parameter names> con sus propios valores.

Creación de un miembro de cadena de bloques


En el ejemplo se crea un miembro de cadena de bloques en Azure Blockchain Service que ejecuta el protocolo de
libro de contabilidad de Quorum en un nuevo consorcio.

az resource create \
--resource-group <myResourceGroup> \
--name <myMemberName> \
--resource-type Microsoft.Blockchain/blockchainMembers \
--is-full-object \
--properties '{ "location":"<myBlockchainLocation>", "properties": {"password":"
<myStrongPassword>", "protocol":"Quorum","consortium":"<myConsortiumName>",
"consortiumManagementAccountPassword":"<myConsortiumManagementAccountPassword>", "firewallRules":
[{"ruleName":"<myRuleName>","startIpAddress":"<myStartIpAddress>", "endIpAddress":"<myEndIpAddress>"}]},
"sku":{"name":"<skuName>"}}'

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se crean los recursos de


Azure Blockchain Service.

name Un nombre único que identifica al miembro de cadena de


bloques de Azure Blockchain Service. El nombre se usa como
dirección de punto de conexión público. Por ejemplo,
myblockchainmember.blockchain.azure.com .

ubicación Región de Azure donde se crea el miembro de cadena de


bloques. Por ejemplo, eastus . Elija la ubicación más cercana
a los usuarios o a sus otras aplicaciones de Azure.

password La contraseña de la cuenta del miembro. La contraseña de la


cuenta del miembro se usa para autenticarse en el punto de
conexión público del miembro de cadena de bloques mediante
autenticación básica. La contraseña debe cumplir tres de los
cuatro requisitos siguientes: debe tener una longitud de entre
12 y 72 caracteres, un carácter en minúscula, un carácter en
mayúscula, un número y un carácter especial que no sea el
signo de número (#), porcentaje (%), coma (,), asterisco (*),
comilla inversa (`), comilla doble ("), comilla simple ('), guion (-)
y punto y coma (;).
PARÁMETRO DESCRIPCIÓN

protocolo La versión preliminar pública admite Quorum.

consortium Nombre del consorcio al que unirse o que se va a crear.

consortiumManagementAccountPassword La contraseña de administración del consorcio. La contraseña


se usa para unirse a un consorcio.

ruleName Nombre de la regla para poner en la lista blanca un intervalo


de direcciones IP. Parámetro opcional para reglas de firewall.

startIpAddress Inicio del intervalo de direcciones IP para la creación de listas


de permitidos. Parámetro opcional para reglas de firewall.

endIpAddress Fin del intervalo de direcciones IP para la creación de listas de


permitidos. Parámetro opcional para reglas de firewall.

skuName Tipo de nivel. Use S0 para Estándar y B0 para Básico.

Cambiar la contraseña del miembro de la cadena de bloques


En el ejemplo se cambia la contraseña de un miembro de la cadena de bloques.

az resource update \
--resource-group <myResourceGroup> \
--name <myMemberName> \
--resource-type Microsoft.Blockchain/blockchainMembers \
--set properties.password='<myStrongPassword>' \
--remove properties.consortiumManagementAccountAddress

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se crean los recursos de


Azure Blockchain Service.

name Nombre que identifica al miembro de


Azure Blockchain Service.

password La contraseña de la cuenta del miembro. La contraseña debe


cumplir tres de los cuatro requisitos siguientes: debe tener
una longitud de entre 12 y 72 caracteres, un carácter en
minúscula, un carácter en mayúscula, un número y un carácter
especial que no sea el signo de número (#), porcentaje (%),
coma (,), asterisco (*), comilla inversa (`), comilla doble ("),
comilla simple ('), guion (-) y punto y coma (;).

Creación del nodo de transacción


Cree un nodo de transacción en un miembro de la cadena de bloques existente. Al agregar nodos de transacción,
puede aumentar el aislamiento de la seguridad y distribuir la carga. Por ejemplo, podría tener un punto de
conexión del nodo de transacción para diferentes aplicaciones cliente.
az resource create \
--resource-group <myResourceGroup> \
--name <myMemberName>/transactionNodes/<myTransactionNode> \
--resource-type Microsoft.Blockchain/blockchainMembers \
--is-full-object \
--properties '{"location":"<myRegion>", "properties":{"password":"<myStrongPassword>",
"firewallRules":[{"ruleName":"<myRuleName>", "startIpAddress":"<myStartIpAddress>", "endIpAddress":"
<myEndIpAddress>"}]}}'

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se crean los recursos de


Azure Blockchain Service.

name Nombre del miembro de la cadena de bloques de


Azure Blockchain Service que también incluye el nuevo
nombre del nodo de transacción.

ubicación Región de Azure donde se crea el miembro de cadena de


bloques. Por ejemplo, eastus . Elija la ubicación más cercana
a los usuarios o a sus otras aplicaciones de Azure.

password Contraseña del nodo de transacción. La contraseña debe


cumplir tres de los cuatro requisitos siguientes: debe tener
una longitud de entre 12 y 72 caracteres, un carácter en
minúscula, un carácter en mayúscula, un número y un carácter
especial que no sea el signo de número (#), porcentaje (%),
coma (,), asterisco (*), comilla inversa (`), comilla doble ("),
comilla simple ('), guion (-) y punto y coma (;).

ruleName Nombre de la regla para poner en la lista blanca un intervalo


de direcciones IP. Parámetro opcional para reglas de firewall.

startIpAddress Inicio del intervalo de direcciones IP para la creación de listas


de permitidos. Parámetro opcional para reglas de firewall.

endIpAddress Fin del intervalo de direcciones IP para la creación de listas de


permitidos. Parámetro opcional para reglas de firewall.

Cambio de la contraseña del nodo de transacción


En el ejemplo se cambia la contraseña de un nodo de transacción

az resource update \
--resource-group <myResourceGroup> \
--name <myMemberName>/transactionNodes/<myTransactionNode> \
--resource-type Microsoft.Blockchain/blockchainMembers \
--set properties.password='<myStrongPassword>'

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos en el que se encuentran los


recursos de Azure Blockchain Service.
PARÁMETRO DESCRIPCIÓN

name Nombre del miembro de la cadena de bloques de


Azure Blockchain Service que también incluye el nuevo
nombre del nodo de transacción.

password Contraseña del nodo de transacción. La contraseña debe


cumplir tres de los cuatro requisitos siguientes: debe tener
una longitud de entre 12 y 72 caracteres, un carácter en
minúscula, un carácter en mayúscula, un número y un carácter
especial que no sea el signo de número (#), porcentaje (%),
coma (,), asterisco (*), comilla inversa (`), comilla doble ("),
comilla simple ('), guion (-) y punto y coma (;).

Cambio de la contraseña de la cuenta de administración del consorcio


La cuenta de administración del consorcio se usa para administrar la pertenencia al consorcio. Cada miembro se
identifica de forma única con una cuenta de administración del consorcio, cuya contraseña se puede cambiar con el
siguiente comando.

az resource update \
--resource-group <myResourceGroup> \
--name <myMemberName> \
--resource-type Microsoft.Blockchain/blockchainMembers \
--set
properties.consortiumManagementAccountPassword='<myConsortiumManagementAccountPassword>' \
--remove properties.consortiumManagementAccountAddress

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos donde se crean los recursos de


Azure Blockchain Service.

name Nombre que identifica al miembro de


Azure Blockchain Service.

consortiumManagementAccountPassword La contraseña de la cuenta de administración del consorcio La


contraseña debe cumplir tres de los cuatro requisitos
siguientes: debe tener una longitud de entre 12 y
72 caracteres, un carácter en minúscula, un carácter en
mayúscula, un número y un carácter especial que no sea el
signo de número (#), porcentaje (%), coma (,), asterisco (*),
comilla inversa (`), comilla doble ("), comilla simple ('), guion (-)
y punto y coma (;).

Actualización de las reglas de firewall


az resource update \
--resource-group <myResourceGroup> \
--name <myMemberName> \
--resource-type Microsoft.Blockchain/blockchainMembers \
--set properties.firewallRules='[{"ruleName":"<myRuleName>", "startIpAddress":"
<myStartIpAddress>", "endIpAddress":"<myEndIpAddress>"}]' \
--remove properties.consortiumManagementAccountAddress
PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos en el que se encuentran los


recursos de Azure Blockchain Service.

name Nombre del miembro de la cadena de bloques de


Azure Blockchain Service.

ruleName Nombre de la regla para poner en la lista blanca un intervalo


de direcciones IP. Parámetro opcional para reglas de firewall.

startIpAddress Inicio del intervalo de direcciones IP para la creación de listas


de permitidos. Parámetro opcional para reglas de firewall.

endIpAddress Fin del intervalo de direcciones IP para la creación de listas de


permitidos. Parámetro opcional para reglas de firewall.

Enumeración de las claves de API


Las claves de API se pueden usar para acceder al nodo de forma similar al nombre de usuario y la contraseña. Hay
dos claves de API que admiten la rotación de claves. Para enumerar las claves de API, utilice el comando siguiente.

az resource invoke-action \
--resource-group <myResourceGroup> \
--name <myMemberName>/transactionNodes/<myTransactionNode> \
--action "listApiKeys" \
--resource-type Microsoft.Blockchain/blockchainMembers

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos en el que se encuentran los


recursos de Azure Blockchain Service.

name Nombre del miembro de la cadena de bloques de


Azure Blockchain Service que también incluye el nuevo
nombre del nodo de transacción.

Regeneración de claves de API


Para generar claves de API, utilice el comando siguiente.

az resource invoke-action \
--resource-group <myResourceGroup> \
--name <myMemberName>/transactionNodes/<myTransactionNode> \
--action "regenerateApiKeys" \
--resource-type Microsoft.Blockchain/blockchainMembers \
--request-body '{"keyName":"<keyValue>"}'

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos en el que se encuentran los


recursos de Azure Blockchain Service.
PARÁMETRO DESCRIPCIÓN

name Nombre del miembro de la cadena de bloques de


Azure Blockchain Service que también incluye el nuevo
nombre del nodo de transacción.

keyName Reemplace <keyValue> con key1 o key2.

Eliminar un nodo de transacción


En el ejemplo se elimina un nodo de transacción del miembro de la cadena de bloques.

az resource delete \
--resource-group <myResourceGroup> \
--name <myMemberName>/transactionNodes/<myTransactionNode> \
--resource-type Microsoft.Blockchain/blockchainMembers

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos en el que se encuentran los


recursos de Azure Blockchain Service.

name Nombre del miembro de la cadena de bloques de


Azure Blockchain Service que también incluye el nombre del
nodo de transacción que se va a eliminar.

Eliminación de un miembro de cadena de bloques


En el ejemplo se elimina un miembro de cadena de bloques.

az resource delete \
--resource-group <myResourceGroup> \
--name <myMemberName> \
--resource-type Microsoft.Blockchain/blockchainMembers

PARÁMETRO DESCRIPCIÓN

resource-group Nombre del grupo de recursos en el que se encuentran los


recursos de Azure Blockchain Service.

name Nombre del miembro de cadena de bloques de


Azure Blockchain Service que se va a eliminar.

Azure Active Directory


Concesión de acceso a un usuario de Azure AD

az role assignment create \


--role <role> \
--assignee <assignee> \
--scope
/subscriptions/<subId>/resourceGroups/<groupName>/providers/Microsoft.Blockchain/blockchainMembers/<myMemberNa
me>
PARÁMETRO DESCRIPCIÓN

role Nombre del rol de Azure AD.

assignee Identificador de usuario de Azure AD. Por ejemplo:


user@contoso.com

scope Ámbito de la asignación de roles. Puede ser un miembro de


cadena de bloques o de nodo de transacción.

Ejemplo:
Conceda acceso al nodo al usuario de Azure AD para un miembro de la cadena de bloques:

az role assignment create \


--role 'myRole' \
--assignee user@contoso.com \
--scope
/subscriptions/mySubscriptionId/resourceGroups/contosoResourceGroup/providers/Microsoft.Blockchain/blockchainM
embers/contosoMember1

Ejemplo:
Conceda acceso al nodo al usuario de Azure AD para un nodo de transacción de la cadena de bloques:

az role assignment create \


--role 'MyRole' \
--assignee user@contoso.com \
--scope
/subscriptions/mySubscriptionId/resourceGroups/contosoResourceGroup/providers/Microsoft.Blockchain/blockchainM
embers/contosoMember1/transactionNodes/contosoTransactionNode1

Concesión de acceso al nodo a un rol de aplicación o grupo de Azure AD

az role assignment create \


--role <role> \
--assignee-object-id <assignee_object_id>

PARÁMETRO DESCRIPCIÓN

role Nombre del rol de Azure AD.

assignee-object-id Identificador de la aplicación o del grupo de Azure AD.

scope Ámbito de la asignación de roles. Puede ser un miembro de


cadena de bloques o de nodo de transacción.

Ejemplo:
Conceda acceso al nodo para el rol de aplicación.
az role assignment create \
--role 'myRole' \
--assignee-object-id 22222222-2222-2222-2222-222222222222 \
--scope
/subscriptions/mySubscriptionId/resourceGroups/contosoResourceGroup/providers/Microsoft.Blockchain/blockchainM
embers/contosoMember1

Retirada del acceso al nodo de Azure AD

az role assignment delete \


--role <myRole> \
--assignee <assignee> \
--scope
/subscriptions/mySubscriptionId/resourceGroups/<myResourceGroup>/providers/Microsoft.Blockchain/blockchainMemb
ers/<myMemberName>/transactionNodes/<myTransactionNode>

PARÁMETRO DESCRIPCIÓN

role Nombre del rol de Azure AD.

assignee Identificador de usuario de Azure AD. Por ejemplo:


user@contoso.com

scope Ámbito de la asignación de roles. Puede ser un miembro de


cadena de bloques o de nodo de transacción.

Pasos siguientes
Aprenda cómo configurar los nodos de transacción de Azure Blockchain Service con Azure Portal.
Administración de los miembros del consorcio en
Azure Blockchain Service mediante PowerShell
19/02/2020 • 12 minutes to read • Edit Online

Puede usar PowerShell para administrar los miembros del consorcio de una cadena de bloques para Azure
Blockchain Service. Los miembros que tienen privilegios de administrador pueden invitar, agregar, quitar y
cambiar los roles para todos los participantes en el consorcio de la cadena de bloques. Los miembros que tienen
privilegios de usuario pueden ver a todos los participantes en el consorcio de la cadena de bloques y cambiar su
nombre para mostrar miembros.

Requisitos previos
Cree un miembro de la cadena de bloques con Azure Portal.
Para obtener más información acerca de los consorcios, los miembros y los nodos, consulte Consorcio de
Azure Blockchain Service.

Apertura de Azure Cloud Shell


Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las
herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.
También puede ir abrir Cloud Shell en una pestaña independiente del explorador si va a
shell.azure.com/powershell. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y,
luego, seleccione Entrar para ejecutarlos.

Instalación del módulo de PowerShell


Instale el paquete Microsoft.AzureBlockchainService.ConsortiumManagement.PS desde la Galería de PowerShell.

Install-Module -Name Microsoft.AzureBlockchainService.ConsortiumManagement.PS -Scope CurrentUser


Import-Module Microsoft.AzureBlockchainService.ConsortiumManagement.PS

Establecimiento de la preferencia de información


Puede obtener más información al ejecutar los cmdlets estableciendo la variable de preferencia de información.
De forma predeterminada, $InformationPreference está establecida en SilentlyContinue.
Para obtener información más detallada de los cmdlets, establezca la preferencia de PowerShell como sigue:

$InformationPreference = 'Continue'

Establecimiento de una conexión Web3


Para administrar los miembros del consorcio, establezca una conexión Web3 a su punto de conexión del miembro
de Blockchain Service. Puede usar este script para establecer las variables globales para llamar a los cmdlets de
administración del consorcio.
$Connection = New-Web3Connection -RemoteRPCEndpoint '<Endpoint address>'
$MemberAccount = Import-Web3Account -ManagedAccountAddress '<Member account address>' -ManagedAccountPassword
'<Member account password>'
$ContractConnection = Import-ConsortiumManagementContracts -RootContractAddress '<RootContract address>' -
Web3Client $Connection

Reemplace la <contraseña de la cuenta de miembro> con la contraseña de cuenta de miembro que usó cuando
creó el miembro.
Busque los otros valores registrados en Azure Portal:
1. Inicie sesión en el Azure Portal.
2. Vaya a su página de Introducción del miembro del servicio Blockchain predeterminado.

Reemplace <Member account> (Cuenta de miembro) y <RootContract address> (Dirección de


RootContract) con los valores del portal.
3. Para la dirección de punto de conexión, seleccione Nodos de transacción y, a continuación, seleccione el
nodo de transacciones predeterminado. El nodo predeterminado tiene el mismo nombre que el
miembro de la cadena de bloques.
4. Seleccione Cadenas de conexión.
Reemplace <Endpoint address> (Dirección de punto de conexión) con el valor de HTTPS (tecla de
acceso 1) o HTTPS (tecla de acceso 2) .

Administración de la red y los contratos inteligentes


Use los cmdlets de los contratos inteligentes y la red para establecer una conexión con los contratos inteligentes
del punto de conexión de la cadena de bloques responsables de la administración del consorcio.
Import-ConsortiumManagementContracts
Use este cmdlet para conectarse a los contratos inteligentes de la administración del consorcio. Estos contratos se
usan para administrar y aplicar a los miembros dentro del consorcio.
Import-ConsortiumManagementContracts -RootContractAddress <String> -Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

RootContractAddress Dirección de contrato raíz de los Sí


contratos inteligentes de la
administración del consorcio

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo

Import-ConsortiumManagementContracts -RootContractAddress '<RootContract address>' -Web3Client $Connection

Import-Web3Account
Use este cmdlet para crear un objeto y contener la información de la cuenta de administración de un nodo
remoto.
Import-Web3Account -ManagedAccountAddress <String> -ManagedAccountPassword <String>
PARÁMETRO DESCRIPCIÓN OBLIGATORIO

ManagedAccountAddress Dirección de la cuenta del miembro de Sí


la cadena de bloques

ManagedAccountPassword Contraseña de la dirección de la cuenta Sí

Ejemplo

Import-Web3Account -ManagedAccountAddress '<Member account address>' -ManagedAccountPassword '<Member account


password>'

New-Web3Connection
Use este cmdlet para establecer una conexión con el punto de conexión RPC de un nodo de transacciones.
New-Web3Connection [-RemoteRPCEndpoint <String>]

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

RemoteRPCEndpoint Dirección del punto de conexión del Sí


miembro de la cadena de bloques

Ejemplo

New-Web3Connection -RemoteRPCEndpoint '<Endpoint address>'

Administración de los miembros del consorcio


Use los cmdlets de administración de los miembros del consorcio para administrar los miembros dentro del
consorcio. Las acciones disponibles dependen del rol del consorcio.
Get-BlockchainMember
Use este cmdlet para obtener detalles de los miembros o enumerar los miembros del consorcio.
Get-BlockchainMember [[-Name] <String>] -Members <IContract> -Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

NOMBRE El nombre del miembro de Blockchain Sin


Service cuyos detalles se desea
recuperar. Cuando se escribe un
nombre, devuelve los detalles del
miembro. Si se omite un nombre,
devuelve una lista de todos los
miembros del consorcio.

Members Objeto Members obtenido de Import- Sí


ConsortiumManagementContracts

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo
Establezca una conexión Web3 para definir la variable $ContractConnection.
$ContractConnection | Get-BlockchainMember -Name <Member Name>

Salida de ejemplo

Name : myblockchainmember
CorrelationId : 0
DisplayName : myCompany
SubscriptionId : <Azure subscription ID>
AccountAddress : 0x85b911c9e103d6405573151258d668479e9ebeef
Role : ADMIN

Remove -BlockchainMember
Use este cmdlet para quitar a un miembro de la cadena de bloques.
Remove-BlockchainMember -Name <String> -Members <IContract> -Web3Account <IAccount> -Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

NOMBRE Nombre del miembro que quitar Sí

Members Objeto Members obtenido de Import- Sí


ConsortiumManagementContracts

Web3Account Objeto Web3Account obtenido de Sí


Import-Web3Account

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo
Establezca una conexión Web3 para definir las variables $ContractConnection y $MemberAccount.

$ContractConnection | Remove-BlockchainMember -Name <Member Name> -Web3Account $MemberAccount

Set-BlockchainMember
Use este cmdlet para establecer los atributos de los miembros, incluidos el nombre para mostrar y el rol del
consorcio de la cadena de bloques.
Los administradores del consorcio pueden establecer el valor de DisplayName y de Role de todos los miembros.
Un miembro del consorcio con el rol de usuario puede cambiar solo el nombre para mostrar de su propio
miembro.

Set-BlockchainMember -Name <String> [-DisplayName <String>] [-AccountAddress <String>] [-Role <String>]


-Members <IContract> -Web3Account <IAccount> -Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

NOMBRE Nombre de un miembro de la cadena Sí


de bloques

DisplayName Nuevo nombre para mostrar Sin

AccountAddress Dirección de la cuenta Sin


PARÁMETRO DESCRIPCIÓN OBLIGATORIO

Members Objeto Members obtenido de Import- Sí


ConsortiumManagementContracts

Web3Account Objeto Web3Account obtenido de Sí


Import-Web3Account

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo
Establezca una conexión Web3 para definir las variables $ContractConnection y $MemberAccount.

$ContractConnection | Set-BlockchainMember -Name <Member Name> -DisplayName <Display name> -Web3Account


$MemberAccount

Administración de las invitaciones de los miembros del consorcio


Use los cmdlets de administración de invitaciones a miembros del consorcio para administrarlas. Las acciones
disponibles dependen del rol del consorcio.
New-BlockchainMemberInvitation
Use este cmdlet para invitar a nuevos miembros al consorcio.

New-BlockchainMemberInvitation -SubscriptionId <String> -Role <String> -Members <IContract>


-Web3Account <IAccount> -Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

SubscriptionId Identificador de suscripción de Azure Sí


del miembro que desea invitar

Role Rol del consorcio. Los valores pueden Sí


ser ADMIN o USER. ADMIN es el rol de
administrador del consorcio. USER es el
rol de miembro del consorcio.

Members Objeto Members obtenido de Import- Sí


ConsortiumManagementContracts

Web3Account Objeto Web3Account obtenido de Sí


Import-Web3Account

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo
Establezca una conexión Web3 para definir las variables $ContractConnection y $MemberAccount.

$ContractConnection | New-BlockchainMemberInvitation -SubscriptionId <Azure Subscription ID> -Role USER -


Web3Account $MemberAccount
Get-BlockchainMemberInvitation
Use este cmdlet para recuperar o enumerar el estado de la invitación de un miembro del consorcio.
Get-BlockchainMemberInvitation [[-SubscriptionId] <String>] -Members <IContract> -Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

SubscriptionId Identificador de suscripción de Azure Sin


del miembro que desea invitar. Si se
proporciona el identificador de la
suscripción, devuelve los detalles de la
invitación de dicho identificador. Si el
identificador de suscripción se omite,
devuelve una lista de todas las
invitaciones de miembros.

Members Objeto Members obtenido de Import- Sí


ConsortiumManagementContracts

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo
Establezca una conexión Web3 para definir la variable $ContractConnection.

$ContractConnection | Get-BlockchainMemberInvitation – SubscriptionId <Azure subscription ID>

Salida de ejemplo

SubscriptionId Role CorrelationId


-------------- ---- -------------
<Azure subscription ID> USER 2

Remove -BlockchainMemberInvitation
Use este cmdlet para revocar la invitación de un miembro del consorcio.

Remove-BlockchainMemberInvitation -SubscriptionId <String> -Members <IContract> -Web3Account <IAccount>


-Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

SubscriptionId Identificador de suscripción de Azure Sí


del miembro que desea revocar

Members Objeto Members obtenido de Import- Sí


ConsortiumManagementContracts

Web3Account Objeto Web3Account obtenido de Sí


Import-Web3Account

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo
Establezca una conexión Web3 para definir las variables $ContractConnection y $MemberAccount.
$ContractConnection | Remove-BlockchainMemberInvitation -SubscriptionId <Subscription ID> -Web3Account
$MemberAccount

Set-BlockchainMemberInvitation
Use este cmdlet para establecer el rol de una invitación existente. Solo los administradores del consorcio pueden
cambiar las invitaciones.

Set-BlockchainMemberInvitation -SubscriptionId <String> -Role <String> -Members <IContract>


-Web3Account <IAccount> -Web3Client <IClient>

PARÁMETRO DESCRIPCIÓN OBLIGATORIO

SubscriptionId Identificador de suscripción de Azure Sí


del miembro que desea invitar

Role Nuevo rol del consorcio para la Sí


invitación. Los valores pueden ser USER
o ADMIN.

Members Objeto Members obtenido de Import- Sí


ConsortiumManagementContracts

Web3Account Objeto Web3Account obtenido de Sí


Import-Web3Account

Web3Client Objeto Web3Client obtenido de New- Sí


Web3Connection

Ejemplo
Establezca una conexión Web3 para definir las variables $ContractConnection y $MemberAccount.

$ContractConnection | Set-BlockchainMemberInvitation -SubscriptionId <Azure subscription ID> -Role USER -


Web3Account $MemberAccount

Pasos siguientes
Para más información sobre los consorcios, los miembros y los nodos, consulte Consorcio de Azure Blockchain
Service.
Uso del conector Ethereum Blockchain con Azure
Logic Apps
19/02/2020 • 24 minutes to read • Edit Online

Use el conector Ethereum Blockchain con Azure Logic Apps para realizar acciones y responder a eventos de
contrato inteligente. Supongamos que desea crear un microservicio basado en REST que devuelva información de
un libro de contabilidad de cadena de bloques. Mediante el uso de una aplicación lógica, puede aceptar solicitudes
HTTP que consulten la información almacenada en un libro de contabilidad de cadena de bloques.

Requisitos previos
Complete el requisito previo opcional de Inicio rápido: Uso de Visual Studio Code para conectarse a una red del
consorcio de Azure Blockchain Service. El inicio rápido le guía por la instalación de Azure Blockchain Development
Kit para Ethereum y la configuración del entorno de desarrollo de la cadena de bloques.

Creación de una aplicación lógica


Azure Logic Apps le ayuda a programar y automatizar procesos empresariales y flujos de trabajo cuando necesita
integrar sistemas y servicios. En primer lugar, debe crear una lógica que use el conector Ethereum Blockchain.
1. En Azure Portal, seleccione Crear un recurso > Integración > Logic App.
2. En Crear aplicación lógica, indique los detalles sobre dónde va a crear la aplicación lógica. Seleccione
Crear cuando haya terminado.
Para más información sobre la creación de aplicaciones lógicas, consulte Creación de flujos de trabajo
automatizados con Azure Logic Apps.
3. Después de que Azure implemente la aplicación, seleccione el recurso de la aplicación lógica.
4. En el Diseñador de aplicaciones lógicas, en Plantillas, seleccione Aplicación lógica en blanco.
Cada aplicación lógica debe comenzar con un desencadenador, que se activa cuando sucede un evento específico o
cuando se cumple una condición determinada. Cada vez que el desencadenador se activa, el motor de Logic Apps
crea una instancia de aplicación lógica que inicia y ejecuta el flujo de trabajo.
El conector Ethereum Blockchain incluye un desencadenador y varias acciones. El desencadenador o la acción que
se usa depende del escenario.
Si el flujo de trabajo:
Se desencadena cuando se produce un evento en la cadena de bloques: Uso del desencadenador de eventos.
Consulta o implementa un contrato inteligente: Uso de acciones.
Sigue un escenario común: Generación de un flujo de trabajo mediante el kit de desarrollo.

Uso del desencadenador de eventos


Use desencadenadores de eventos de Ethereum Blockchain cuando quiera que se ejecute una aplicación lógica
después de que se produzca un evento del contrato inteligente. Por ejemplo, puede que desee enviar un correo
electrónico cuando se llame a una función del contrato inteligente.
1. En el Diseñador de aplicaciones lógicas, seleccione el conector Ethereum Blockchain.
2. En la pestaña Triggers (Desencadenadores), seleccione When a smart contract event occurs (Cuando se
produce un evento de contrato inteligente).
3. Cambie o cree una conexión de API a Azure Blockchain Service.
4. Escriba los detalles sobre el contrato inteligente en el que desea buscar eventos.

PROPIEDAD DESCRIPCIÓN

Contract ABI (ABI del contrato) La interfaz binaria de aplicaciones (ABI) del contrato define
las interfaces del contrato inteligente. Para más
información, consulte Obtención de ABI del contrato.

Smart contract address (Dirección del contrato La dirección del contrato es la dirección de destino del
inteligente) contrato inteligente en Ethereum Blockchain. Para más
información, consulte Obtención de la dirección del
contrato.

Event Name (Nombre del evento) Seleccione un evento de contrato inteligente para
buscarlo. El evento desencadena la aplicación lógica.

Interval (Intervalo) y Frequency (Frecuencia) Seleccione la frecuencia con la que desea buscar el evento.

5. Seleccione Guardar.
Para completar la aplicación lógica, puede agregar un nuevo paso que realice una acción basada en el
desencadenador de eventos de Ethereum Blockchain. Por ejemplo, enviar un correo electrónico.

Uso de acciones
Use las acciones de Ethereum Blockchain cuando quiera que una aplicación lógica realice una acción en el libro de
contabilidad de cadena de bloques. Por ejemplo, puede que desee crear un microservicio basado en REST que
llame a una función del contrato inteligente cuando se realice una solicitud HTTP a una aplicación lógica.
Las acciones del conector requieren un desencadenador. Puede usar una acción del conector Ethereum Blockchain
como paso siguiente después de un desencadenador, como un desencadenador de solicitud HTTP para un
microservicio.
1. En el Diseñador de aplicaciones lógicas, seleccione New Step (Nuevo paso) después de un desencadenador.
2. Seleccione el conector Ethereum Blockchain.
3. En la pestaña Actions (Acciones), seleccione una de las acciones disponibles.

4. Cambie o cree una conexión de API a Azure Blockchain Service.


5. En función de la acción que elija, proporcione los detalles siguientes sobre la función del contrato
inteligente.

PROPIEDAD DESCRIPCIÓN

Contract ABI (ABI del contrato) La ABI del contrato define las interfaces del contrato
inteligente. Para más información, consulte Obtención de
ABI del contrato.

Contract Bytecode (Código de bytes del contrato) Código de bytes del contrato inteligente compilado. Para
más información, consulte Obtención del código de bytes
del contrato.

Smart contract address (Dirección del contrato La dirección del contrato es la dirección de destino del
inteligente) contrato inteligente en Ethereum Blockchain. Para más
información, consulte Obtención de la dirección del
contrato.

Smart contract function name (Nombre de la función Seleccione el nombre de la función del contrato inteligente
del contrato inteligente) para la acción. La lista se rellena a partir de los detalles de
la ABI del contrato.

Después de seleccionar un nombre de función del contrato inteligente, puede ver los campos obligatorios
para los parámetros de la función. Escriba los valores o el contenido dinámico necesario para su escenario.
Ahora puede usar la aplicación lógica. Cuando se desencadena el evento de la aplicación lógica, se ejecuta la acción
de Ethereum Blockchain. Por ejemplo, un desencadenador de solicitud HTTP ejecuta una acción de Ethereum
Blockchain para consultar un valor de estado del contrato inteligente. Esta consulta da como resultado una
respuesta HTTP que devuelve el valor.

Generación de un flujo de trabajo


La extensión Azure Blockchain Development Kit for Ethereum de Visual Studio Code puede generar flujos de
trabajo de aplicación lógica para escenarios comunes. Hay cuatro escenarios disponibles:
Publicación de datos en una instancia de Azure SQL Database
Publicación de eventos en una instancia de Azure Event Grid o de Azure Service Bus
Publicación de informes
Microservicio basado en REST
Azure Blockchain Development Kit usa Truffle para simplificar el desarrollo de la cadena de bloques. Para generar
una aplicación lógica basada en un contrato inteligente, necesita una solución de Truffle para el contrato
inteligente. También necesita una conexión a la red del consorcio de Azure Blockchain Service. Para más
información, consulte Inicio rápido: Uso de Visual Studio Code para conectarse a una red del consorcio de Azure
Blockchain Service.
Por ejemplo, los pasos siguientes generan una aplicación lógica de un microservicio basado en REST que se basa
en el contrato inteligente HelloBlockchain del inicio rápido:
1. En la barra lateral del explorador de Visual Studio Code, expanda la carpeta contracts de la solución.
2. Haga clic con el botón derecho en HelloBlockchain.sol y seleccione Generate microservices for smart
contracts (Generar microservicios para contratos inteligentes) en el menú.

3. En la paleta de comandos, seleccione Aplicación lógica.


4. Escriba la dirección del contrato. Para más información, consulte Obtención de la dirección del contrato.
5. Seleccione la suscripción de Azure y el grupo de recursos para la aplicación lógica.
Los archivos de configuración y código de la aplicación lógica se generan en el directorio
generatedLogicApp.
6. Consulte el directorio generatedLogicApp/HelloBlockchain. Hay un archivo JSON de aplicación lógica
para cada función, evento y propiedad del contrato inteligente.
7. Abra el archivo
generatedLogicApp/HelloBlockchain/Service/property.RequestMessage.logicapp.json y copie el
contenido.

8. En la aplicación lógica, seleccione Vista de código de la aplicación lógica. Reemplace el archivo JSON
existente por el archivo JSON de la aplicación lógica generado.

9. Seleccione Diseñador para cambiar a la vista de diseñador.


10. La aplicación lógica incluye los pasos básicos para el escenario. Sin embargo, debe actualizar los detalles de
configuración para el conector Ethereum Blockchain.
11. Seleccione el paso Conexiones y cambie o cree una conexión de API a Azure Blockchain Service.

12. Ahora puede usar la aplicación lógica. Para probar el microservicio basado en REST, emita una solicitud
HTTP POST a la dirección URL de solicitud de la aplicación lógica. Copie el contenido de Dirección URL
de HTTP POST del paso Cuando se recibe una solicitud HTTP.
13. Use cURL para crear una solicitud HTTP POST. Reemplace el texto del marcador de posición <Dirección
URL de HTTP POST> por la dirección URL del paso anterior.

curl -d "{}" -H "Content-Type: application/json" -X POST "<HTTP POST URL>"

El comando cURL devuelve una respuesta de la aplicación lógica. En este caso, la respuesta es la salida de la
función RequestMessage del contrato inteligente.

Para más información sobre el uso del kit de desarrollo, consulte la página de la wiki sobre Azure Blockchain
Development Kit para Ethereum.

Creación de una conexión de API


El conector Ethereum Blockchain requiere una conexión de API a una cadena de bloques. Puede usar el conector
de API para varias aplicaciones lógicas. Algunas propiedades son necesarias y otras dependen del escenario.

IMPORTANT
Para crear transacciones en una cadena de bloques, se necesita una clave privada o la dirección y la contraseña de una
cuenta. Solo se precisa una forma de autenticación. No es necesario proporcionar a la vez la clave privada y los detalles de la
cuenta. La consulta de contratos no requiere una transacción. Si está usando acciones que consultan el estado del contrato,
no es necesario usar la clave privada ni la dirección y la contraseña de la cuenta.

Para ayudarle a configurar una conexión a un miembro de Azure Blockchain Service, en la siguiente lista se
muestran las propiedades que puede necesitar en función de su escenario.

PROPIEDAD DESCRIPCIÓN

Nombre de la conexión Nombre de la conexión de API. Necesario.

Ethereum RPC endpoint (Punto de conexión RPC de Dirección HTTP del nodo de transacción de Azure Blockchain
Ethereum) Service. Necesario. Para más información, consulte Obtención
del punto de conexión de RPC.

Clave privada Clave privada de la cuenta de Ethereum. Se requiere la clave


privada o la dirección y contraseña de la cuenta para las
transacciones. Para más información, consulte Obtención de la
clave privada.
PROPIEDAD DESCRIPCIÓN

Dirección de la cuenta Dirección de la cuenta de miembro de Azure Blockchain


Service. Se requiere la clave privada o la dirección y contraseña
de la cuenta para las transacciones. Para más información,
consulte Obtención de la dirección de la cuenta.

Contraseña de la cuenta La contraseña de la cuenta se establece al crear el miembro.


Para información sobre el restablecimiento de la contraseña,
consulte Cuenta de Ethereum.

Obtención del punto de conexión de RPC


Para conectarse a una red de cadena de bloques se necesita la dirección del punto de conexión RPC de Azure
Blockchain Service. Puede obtener la dirección del punto de conexión mediante Azure Blockchain Development Kit
para Ethereum o mediante Azure Portal.
Para usar el kit de desarrollo:
1. En Visual Studio Code, en Azure Blockchain Service, haga clic con el botón derecho en el consorcio.
2. Seleccione Copy RPC Endpoint Address (Copiar dirección del punto de conexión RPC ).

El punto de conexión RPC se copia en el portapapeles.


Para utilizar Azure Portal:
1. Inicie sesión en el Azure Portal.
2. Vaya al miembro de Azure Blockchain Service. Seleccione Nodos de transacción y el vínculo al nodo de
transacción predeterminado.

3. Seleccione Cadenas de conexión > Claves de acceso.


4. Copie la dirección del punto de conexión de HTTPS (Access key 1) (HTTPS [clave de acceso 1]) o HTTPS
(Access key 2) (HTTPS [clave de acceso 2]).

El punto de conexión RPC es la dirección URL HTTPS, que incluye la dirección y la clave de acceso del nodo
de transacción del miembro de Azure Blockchain Service.

Obtención de la clave privada


Puede usar la clave privada de la cuenta de Ethereum para autenticarse al enviar una transacción a la cadena de
bloques. Las claves pública y privada de la cuenta de Ethereum se generan a partir de un mnemotécnico de 12
palabras. Azure Blockchain Development Kit para Ethereum genera un mnemotécnico al conectarse a un miembro
del consorcio de Azure Blockchain Service. Puede obtener la dirección del punto de conexión mediante la
extensión del kit de desarrollo.
1. En Visual Studio Code, abra la paleta de comandos (F1).
2. Seleccione Azure Blockchain: Retrieve private key (Azure Blockchain: Recuperar la clave privada).
3. Seleccione el mnemotécnico que guardó al conectarse al miembro del consorcio.

La clave privada se copia en el portapapeles.

Obtención de la dirección de la cuenta


Puede usar la cuenta y la contraseña del miembro para autenticarse al enviar una transacción a la cadena de
bloques. La contraseña se establece al crear el miembro.
1. En Azure Portal, vaya a la página de información general de Azure Blockchain Service.
2. Copie la dirección de Member account (Cuenta del miembro).
Para más información sobre la dirección y la contraseña de la cuenta, consulte Cuenta de Ethereum.

Obtención de ABI del contrato


La ABI del contrato define las interfaces del contrato inteligente. Describe cómo interactuar con el contrato
inteligente. Puede obtener la ABI del contrato mediante Azure Blockchain Development Kit para Ethereum.
También puede obtenerla del archivo de metadatos del contrato creado por el compilador de Solidity.
Para usar el kit de desarrollo:
Si ha usado el kit de desarrollo o Truffle para compilar el contrato inteligente, puede usar la extensión para copiar
la ABI del contrato en el portapapeles.
1. En el panel del explorador de Visual Studio Code, expanda la carpeta build/contracts del proyecto de
Solidity.
2. Haga clic con el botón derecho en el archivo JSON de metadatos del contrato. El nombre de archivo es el
nombre del contrato inteligente seguido de la extensión .json.
3. Seleccione Copy contract ABI (Copiar ABI del contrato).

La ABI del contrato se copia en el portapapeles.


Para usar el archivo de metadatos del contrato:
1. Abra el archivo de metadatos del contrato incluido en la carpeta build/contracts del proyecto de Solidity.
El nombre de archivo es el nombre del contrato inteligente seguido de la extensión .json.
2. Busque la sección abi en el archivo JSON.
3. Copie la matriz JSON de abi.

Obtención del código de bytes del contrato


El código de bytes del contrato es el contrato inteligente compilado ejecutado por la máquina virtual de Ethereum.
Puede obtener el código de bytes del contrato mediante Azure Blockchain Development Kit para Ethereum.
También puede obtenerlo desde el compilador de Solidity.
Para usar el kit de desarrollo:
Si ha usado el kit de desarrollo o Truffle para compilar el contrato inteligente, puede usar la extensión para copiar
el código de bytes del contrato en el portapapeles.
1. En el panel del explorador de Visual Studio Code, expanda la carpeta build/contracts del proyecto de
Solidity.
2. Haga clic con el botón derecho en el archivo JSON de metadatos del contrato. El nombre de archivo es el
nombre del contrato inteligente seguido de la extensión .json.
3. Seleccione Copy Contract Bytecode (Copiar código de bytes del contrato).
El código de bytes del contrato se copia en el portapapeles.
Para usar el archivo de metadatos del contrato:
1. Abra el archivo de metadatos del contrato incluido en la carpeta build/contracts del proyecto de Solidity.
El nombre de archivo es el nombre del contrato inteligente seguido de la extensión .json.
2. Busque el elemento bytecode en el archivo JSON.
3. Copie el valor de bytecode.

Para usar el compilador de Solidity:


Use el comando solc --bin <smart contract>.sol para generar el código de bytes del contrato.

Obtención de la dirección del contrato


La dirección del contrato es la dirección de destino del contrato inteligente en Ethereum Blockchain. Esta dirección
se usa para enviar una transacción o para consultar el estado de un contrato inteligente. Puede obtener la dirección
del contrato a partir de la salida de la migración de Truffle o mediante el archivo de metadatos del contrato.
Para usar la salida de la migración de Truffle:
Truffle muestra la dirección del contrato después de la implementación del contrato inteligente. Copie la dirección
del contrato de la salida.
Para usar el archivo de metadatos del contrato:
1. Abra el archivo de metadatos del contrato incluido en la carpeta build/contracts del proyecto de Solidity. El
nombre de archivo es el nombre del contrato inteligente seguido de la extensión .json.
2. Busque la sección networks en el archivo JSON.
3. Las redes privadas se identifican mediante un identificador de red de entero. Busque el valor address en la
sección de red.
4. Copie el valor de address.

Pasos siguientes
Vea escenarios comunes en el vídeo Doing more with Logic Apps (Hacer más con las aplicaciones lógicas).
Supervisión de Azure Blockchain Service a través de
Azure Monitor
19/02/2020 • 16 minutes to read • Edit Online

A medida que los clientes ejecutan escenarios de cadena de bloques de producción en Azure Blockchain Service
(ABS ), resulta fundamental supervisar los recursos en cuanto a disponibilidad, rendimiento y operaciones. En este
artículo se describen los datos de supervisión generados por Azure Blockchain Service y cómo se pueden usar las
distintas características e integraciones de Azure Monitor para analizar y alertar sobre ello a fin de administrar
entornos de nivel de producción.

¿Qué es Azure Monitor?


Azure Blockchain Service crea datos de supervisión mediante Azure Monitor, que es un servicio de supervisión de
pila completo de Azure que proporciona un conjunto completo de características para supervisar los recursos de
Azure. Para más información acerca de Azure Monitor, consulte Supervisión de recursos de Azure con Azure
Monitor.
Las secciones siguientes se basan en este artículo, donde se describen los datos específicos recopilados de Azure
Blockchain Service y se proporcionan ejemplos para configurar la recopilación de datos y el análisis de estos datos
con herramientas de Azure.

Supervisión de los datos recopilados de Azure Blockchain Service


Azure Blockchain Service recopila los mismos tipos de datos de supervisión que otros recursos de Azure, que se
describen en Supervisión de datos de recursos de Azure. Consulte la referencia de datos de supervisión de Azure
Blockchain Service para obtener más detalles de los registros y las métricas creados por Azure Blockchain Service.
La página de información general de Azure Portal para cada recurso de miembro de Azure Blockchain Service
incluye una breve vista de las transacciones, incluidas las solicitudes administradas y los bloques procesados.
Algunos de estos datos se recopilan automáticamente y están disponibles para su análisis en cuanto crea el recurso
del miembro de Azure Blockchain Service, mientras que se puede habilitar la recopilación de datos adicional con
alguna configuración.

Configuración de diagnóstico
Las métricas de la plataforma y el registro de actividad se recopilan automáticamente, pero debe crear una
configuración de diagnóstico para recopilar registros de recursos o reenviarlos fuera de Azure Monitor. Consulte
Creación de una configuración de diagnóstico para recopilar registros de plataforma y métricas en Azure para ver
el proceso detallado para crear una configuración de diagnóstico mediante el Azure Portal, la CLI o PowerShell.
Cuando se crea una configuración de diagnóstico, se especifican las categorías de registros que se van a recopilar.
A continuación se enumeran las categorías de Azure Blockchain Service.
Registros de proxy de cadena de bloques: seleccione la categoría si desea supervisar los registros de proxy de
NGNIX. Todos los detalles de la transacción del cliente están disponibles para fines de auditoría y depuración.
Registros de aplicación de cadena de bloques: seleccione la categoría para obtener los registros de la
aplicación de cadena de bloques hospedada por el servicio administrado. Por ejemplo, para un miembro de ABS -
Quorum, estos registros serían los registros del propio Quorum.
Solicitudes de métricas: seleccione esta opción para recopilar datos de métricas de Azure Cosmos DB a los
destinos en la configuración de diagnóstico, que se recopilan automáticamente en las métricas de Azure. Recopile
datos de métricas con registros de recursos para analizar ambos tipos de datos juntos y para enviar datos de
métricas fuera de Azure Monitor.

Análisis de datos de métricas


Puede analizar las métricas de Azure Blockchain Service con el explorador de métricas, vaya a la pestaña Métricas
en la sección Supervisión de la hoja de recursos de ABS. Consulte Introducción al explorador de métricas de Azure
para obtener más información sobre esta herramienta. Las métricas completas de Azure Blockchain Service se
encuentran en las métricas estándar de Azure Blockchain Service del espacio de nombres.
Puede usar la dimensión de nodo al agregar un filtro o dividir las métricas, que básicamente proporciona valores
de métrica por nodos de transacción y nodos de validador del miembro de ABS.

Análisis de datos de registro


Estas son algunas consultas que puede escribir en la barra de búsqueda para ayudarle a supervisar los miembros
de Azure Blockchain Service. Estas consultas funcionan con el nuevo lenguaje.
Para consultar las condiciones de error en los registros de aplicación de la cadena de bloques, use la siguiente
consulta:

BlockchainApplicationLog | where BlockchainMessage contains "ERROR" or BlockchainMessage contains "fatal"

Para consultar las condiciones de error en los registros de aplicación de la cadena de bloques, use la siguiente
consulta.

BlockchainProxyLog
|filterCode!=200
|limit500

Puede usar los filtros de tiempo disponibles en los registros de Azure para filtrar la consulta por un intervalo de
tiempo específico.

Supervisión de la referencia de datos de Azure Blockchain Service


En este artículo se proporciona una referencia de datos de registro y métricas recopilados para analizar el
rendimiento y la disponibilidad de Azure Blockchain Service.
Registros del recurso
Todos los registros de recursos comparten un esquema común de nivel superior con pocas propiedades únicas
específicas del servicio de cadena de bloques. Puede consultar el artículo Esquema de registros de recursos de
nivel superior; a continuación se describen los detalles de las propiedades específicas de Azure Blockchain Service.
En la tabla siguiente se enumeran las propiedades de los registros del proxy de Azure Blockchain cuando se
recopilan en registros de Azure Monitor o Azure Storage.

NOMBRE DE PROPIEDAD DESCRIPCIÓN

time La fecha y hora (UTC) cuando se produjo la operación.


NOMBRE DE PROPIEDAD DESCRIPCIÓN

resourceID El recurso de Azure Blockchain Service para el que se habilitan


los registros.

category En el caso de Azure Blockchain Service, los valores posibles son


Proxylogs y Applicationlogs.

operationName Nombre de la operación representada por este evento.

Nivel de registro De forma predeterminada, Azure Blockchain Service habilita el


nivel de registro informativo.

NodeLocation Región de Azure donde se implementa el miembro de la


cadena de bloques.

BlockchainNodeName Nombre del nodo del miembro de Azure Blockchain Service en


el que se realiza la operación.

EthMethod El método, al que llama el protocolo de cadena de bloques


subyacente, en Quorum, podría ser eth_sendTransactions,
eth_getBlockByNumber, etc.

Agente Agente de usuario que actúa en nombre de un usuario, como


el explorador web Mozilla, Microsoft Edge, etc. Algunos
ejemplos de estos valores son: "Mozilla/5.0 (Linux x64)
node.js/8.16.0 v8/6.2.414.77"

Código Códigos de error HTTP. Normalmente, 4XX y 5XX son


condiciones de error.

NodeHost Nombre DNS del nodo.

RequestMethodName Se llama al método HTTP, los valores posibles aquí son PUT
para crear un miembro, GET para obtener detalles de un
miembro existente, DELETE para eliminar un miembro, PATCH
actualizar un miembro.

BlockchainMemberName Nombre del miembro de Azure Blockchain Service


proporcionado por el usuario.

Consortium Nombre del consorcio proporcionado por el usuario.

Remote Dirección IP del cliente de donde procede la solicitud.

RequestSize Tamaño de la solicitud realizada en bytes.

RequestTime Duración de la solicitud en milisegundos.

En la tabla siguiente se enumeran las propiedades de los registros de aplicaciones de Azure Blockchain.

NOMBRE DE PROPIEDAD DESCRIPCIÓN

time La fecha y hora (UTC) cuando se produjo la operación.


NOMBRE DE PROPIEDAD DESCRIPCIÓN

resourceID El recurso de Azure Blockchain Service para el que se habilitan


los registros.

category En el caso de Azure Blockchain Service, los valores posibles son


Proxylogs y Applicationlogs.

operationName Nombre de la operación representada por este evento.

Nivel de registro De forma predeterminada, Azure Blockchain Service habilita el


nivel de registro informativo.

NodeLocation Región de Azure donde se implementa el miembro de la


cadena de bloques.

BlockchainNodeName Nombre del nodo del miembro de Azure Blockchain Service en


el que se realiza la operación.

BlockchainMessage Este campo contendrá el registro de la aplicación Blockchain


que contiene los registros de datos sin formato. En el caso de
ABS-Quorum, esto tendría registros de Quorum. Contiene
información sobre el tipo de entrada de registro que es
informativa, de error, de advertencia y de una cadena que
proporciona más información sobre la acción ejecutada.

TenantID El inquilino específico de la región de Azure Blockchain Service.


El formato de este campo es https://westlake-rp-
prod..cloudapp.azure.com, donde la región especifica la región
de Azure del miembro implementado.

SourceSystem El sistema rellena los registros, en este caso es Azure.

Métricas
En las tablas siguientes se enumeran las métricas de plataforma recopiladas para Azure Blockchain Service. Todas
las métricas se almacenan en las métricas estándar de Azure Blockchain Service del espacio de nombres.
Para obtener una lista de todas las métricas compatibles de Azure Monitor (incluido Azure Blockchain Service),
consulte Métricas compatibles con Azure Monitor.
Métricas de Blockchain
En la tabla siguiente se especifica la lista de métricas de Blockchain que se recopilan para el recurso de miembro de
Azure Blockchain Service.

NOMBRE DE MÉTRICA UNIDAD TIPO DE AGREGACIÓN DESCRIPCIÓN

Pending Transactions Count Average Número de transacciones


(Transacciones pendientes) que esperan extracción.

Processed Blocks (Bloques Count Sum Número de bloques


procesados) procesados en cada intervalo
de tiempo. Actualmente, el
tamaño de bloque es de 5
segundos, por lo que cada
nodo procesará 12 bloques y
60 bloques en 5 minutos.
NOMBRE DE MÉTRICA UNIDAD TIPO DE AGREGACIÓN DESCRIPCIÓN

Processed Transactions Count Sum Número de transacciones


(Transacciones procesadas) procesadas en un bloque.

Queued Transactions Count Average Número de transacciones


(Transacciones en cola) que no pueden extraerse de
inmediato. Puede deberse a
que han llegado fuera de
orden y la futura está
esperando a que llegue la
anterior. O bien, puede ser
que dos transacciones
tengan el mismo número
que se usa solo una vez
(nonce) y el mismo valor de
gas; por lo tanto, no se
puede extraer e segunda.

Métricas de conexión
En la tabla siguiente se enumeran las diferentes métricas de conexión que se recopilan para el recurso de miembro
de Azure Blockchain Service. Estas son las métricas de proxy de NGINX.

NOMBRE DE MÉTRICA UNIDAD TIPO DE AGREGACIÓN DESCRIPCIÓN

Accepted Connections Count Sum Número total de conexiones


(Conexiones aceptadas) de cliente aceptadas.

Conexiones activas Count Average Número actual de


conexiones de cliente activas,
incluidas las conexiones en
espera.

Handled Connections Count Sum Número total de conexiones


(Conexiones controladas) controladas. Por lo general,
el valor del parámetro es el
mismo que el de las
conexiones aceptadas, a
menos que se hayan
alcanzado algunos límites de
recursos.

Handled Requests Count Sum Número total de solicitudes


(Solicitudes controladas) de cliente.

Métricas de rendimiento.
En la tabla siguiente se enumeran las métricas de conexión que se recopilan para cada uno de los nodos del
recurso del miembro de Azure Blockchain.

NOMBRE DE MÉTRICA UNIDAD TIPO DE AGREGACIÓN DESCRIPCIÓN

Porcentaje de uso de CPU Porcentaje Max Porcentaje de uso de CPU.

IO Read Bytes (Bytes de Kilobytes Sum Suma de bytes de lectura de


lectura de E/S) E/S en todos los nodos del
recurso de miembro de la
cadena de bloques.
NOMBRE DE MÉTRICA UNIDAD TIPO DE AGREGACIÓN DESCRIPCIÓN

IO Write Bytes (Bytes de Kilobytes Sum Suma de bytes de escritura


escritura de E/S) de E/S en todos los nodos
del recurso de miembro de la
cadena de bloques.

Memory Limit (Límite de Gigabytes Average Memoria máxima disponible


memoria) para el proceso de la cadena
de bloques por nodo.

Uso de la memoria Gigabytes Average Cantidad de memoria


utilizada en promedio en
todos los nodos.

Memory Usage Percentage Porcentaje Average Porcentaje de memoria


(Porcentaje de uso de utilizada en promedio en
memoria) todos los nodos.

Storage Usage (Uso del Gigabytes Average GB de almacenamiento


almacenamiento) utilizado en promedio en
todos los nodos.

Pasos siguientes
Obtenga más información sobre Blockchain Data Manager para capturar y transformar los datos de cadena de
bloques en Azure Event Grid.

También podría gustarte