Tutorial: Crear una Blockchain Privada Rápido y Fácil con NEO

in #cryptocurrency7 years ago (edited)

En la actualidad muchas personas y grandes Empresas han tendido interés especial por crear sus propias blockchains privadas y no está demás decir que esta tendencia ya tiene algún tiempo creciendo.

Compañías como Digital Assets, Alibaba.com y Nasdaq son sólo algunas de las empresas que actualmente se encuentran desarrollando libros contables digitales. Sin embargo, gracias a las diferentes tecnologías desarrolladas en las Criptomonedas en la actualidad es sumamente fácil hacer tu propia Blockchain privada, en este caso te enseñaremos como hacerlo con NEO.

Para implementar una blockchain privada con la maravillosa y nueva tecnología de NEO se necesitan un mínimo de cuatro servidores y/o nodos para poder llegar a un consenso.

Cada servidor corresponde a nodo consenso y dispone de un monedero dedicado por nodo:

1.jpg

  1. Configuracion de las máquinas virtuales
    IMPORTANT
    Despues de crear el entorno abre los puertos 10331-10334 y para establece nuevas reglas para acceder a los puertos 10331-10334.

Una vez que las máquina virtual han sido creadas anota las direcciones IP para su uso posterior.

  1. Instalación de un nodo NEO
    El proceso de instalación de un nodo NEO ha sido descrito anteriormente. Por favor, consulta las instrucciones de instalación Setup.

  2. Crear monederos
    Primero hemos creados cuatro ficheros de monedero llamados privatechain1.db3 - privatechain4.db3. Este paso puede ser creado tanto con la versión de PC NEO-gui como con la versión de línea de comandos NEO-cli. La siguiente imagen es usando el cliente NEO-cli.

privatechain_3.png

Una vez que los monederos han sido creados y su correspondiente clave publica guardada, cópiala en el portapapeles o guárdala en un fichero txt, o usa el comando list key vía CLI Command

A continuación, copia los cuatro monederos en los directorios donde se encuentra el cliente CLI Neo-cli de cada una de las máquinas virtuales

  1. Modificar los ficheros de configuració de los nodos
    Accede al directorio donde se encuenta el cliente CLI y modifica el fichero protocol.json con los siguientes parametros.

Primero modifica el valor de Magic. El valor Magic se usa para identificar el origen de la red del mensaje, al especificar el mismo valor Magic nos aseguramos que los mensajes se reciben en la misma red y no se envian a otra distinta.

NOTE
El tipo de Magic es uint, el valor a introducir debe ser del rango. [0 - 4294967295].

Modifica el valor StandbyValidators. Hay que introducir las 4 claves publicas anotadas en el paso 3. Finalmente mofificar el valor SeedList, introduce las direcciones IPs de los nodos, el número de puerto se mantiene sin cambios.

A modo de ejemplo, nuestra configuración es la siguiente:

{
"ProtocolConfiguration": {
"Magic": 12345678,
"AddressVersion": 23,
"StandbyValidators": [
"0371568c58c85e7c1237f0b8ca029139ac0ce97bbb11eeb67bb9e3b6fbfc0182df",
"03ebdefbc19cff99e8a87e7303ec0ff67ea6b1fa1766c6770e4128526c9803ecd4",
"039b1c1f9120ed823cf5f7207eb0ed50c2ef6cc4b3a6ea0e0073f6ed7410ee5151",
"03156d1c0e315d63d400c695261d169c881f550e7a17757963489ecc30d4fa5604"
],
"SeedList": [
"privatechain1.neolab.local:10333",
"privatechain2.neolab.local:10333",
"privatechain3.neolab.local:10333",
"privatechain4.neolab.local:10333"
],
"SystemFee": {
"EnrollmentTransaction": 1000,
"IssueTransaction": 500,
"PublishTransaction": 500,
"RegisterTransaction": 10000
}
}
}

Tambien la puedes Descargar o Clonar de nuestro Repositorio de GitHub aquí:

https://github.com/jdaidag/Blockchain_Private

El valor SystemList es la tarifa del sistema. La tarifa se paga en NeoGas. Puede establecer la tarifa de tu blockchain privada modificando esos valores.

IMPORTANT
Una vez modificado el fichero protocol.json sustitúyelo en los 4 nodos, en el directorio donde se encuentra el cliente NEO-cli

TIP
Antes de ejecutar por primera vez la blockchain privada asegúrate que eliminar, si existe, la carpeta "Chain" y el fichero "peers.dat"

Una vez sustituido el fichero de configuración en los cuatro nodos, introduce los siguiente comandos para ejecutar el cliente CLI, abrir el monedero y ejecutar el conseso. Revisa la línea de comandos aquí CLI Command Reference.

A modo de ejemplo en el nodo1:

Arrancar el cliente:
👉dotnet neo-cli.dll

Abrir el monedero:
👉open wallet privatechain1.db3

Ejecutar consenso:
👉start consensus

Ejecución paso a paso en los cuatro nodos:

privatechain_4.png
privatechain_5.png
privatechain_6.png
privatechain_7.png

Si la operación anterior se ha ejecutado de forma correcta el proceso consenso se ejecutará en los cuatro nodos, tal y como se muestra en la imagen.

privatechain_8.png

En la siguiente imagen se muestra como 1 nodo han sido apagado y todavía se consigue consenso:

privatechain_9.png

  1. Extraer NEO y NeoGas
    Instala la versión cliente PC NEO-gui y modifica el fichero de configuración protocol.json con los paramentros del paso 4 para conectar a la blockchain privada.

Ejecuta el cliente PC; Para comprobar que nos hemos conectado correctamente a la blockchain privada en la parte inferior izquierda el tamaño de bloque Height no es cero y el número conexiones Connected corresponde al numero de nodos en nuestra blockchain privada, en nuestro ejemplo 4 nodos.

privatechain_11.png

Abre el fichero del monedero privatechain1.db3 click derecho sobre la dirección y click en Create Contract Add. y click en Multi-Signature.

privatechain_12.png

Introduce las cuatro claves publicas apuntadas en el paso 4. Para eso, introduce la clave y pulsa el simbolo [+] Una vez introducida las 4 claves publicas, modifica el parametro número mínimo de firmas Min.Sig.Num a 3, siendo (número de nodos consensos/2 + 1), tal y como se muestra en la imagen.

privatechain_12.png

IMPORTANT
Debe hacer la misma operación anterior en los 4 monederos: crear un cuenta contrato multi-firma y añadir las 4 claves publicas.

Paso a paso:

Abrir el monedero privatechain2.db3 click en Create Contract Add click en Multi-Signature y añade las 4 claves publicas.
Abrir el monedero privatechain3.db3 click en Create Contract Add click en Multi-Signature y añade las 4 claves publicas.
Abrir el monedero privatechain4.db3 click en Create Contract Add click en Multi-Signature y añade las 4 claves publicas
Una vez introducidas las claves publicas, abre nuevamente el monedero privatechain1.db3 y recrea los indices, click en la barra del menu Wallet y click en Rebuild Index.
privatechain_13.png

Una vez recreados los índices aparecerá la dirección de contrato con 100 millones de NEOs.
privatechain_14.png

Una vez realizado el paso anterior debemos transferir los NEO de la dirección de contrato a la dirección normal. Para eso, abre cualquiera de los cuatro monederos. (En mi ejemplo, abriré el primer monedero privatechain1.db3)

Click en la barra del menu Transaction y click en Transfer e introduce la dirección de la cuenta estandard para transferir los 100 millones de NEOs a esa dirección. Click en OK.
privatechain_15.png

El sistema mostrará el siguiente mensaje Transaction initiated, but the signature is incompleted.

privatechain_16.png

Copia el codigo. Click en Copy y abre otro monedero distinto, en mi ejemplo el fichero privatechain2.db3, click en la barra del menu Transaction y click en Signature
privatechain_17.png

Pega el codigo que anteriormente has copiado. Click Signature y vuelte a copiar el codigo de salida Output, click en Copy
privatechain_18.png

Nuevamente abre otro monedero distinto, en mi ejemplo el fichero privatechain3.db3, click en la barra del menu Transaction y click en Signature y pega el codigo anteriormente copiado y click en Signature. En este momento aparecerá un botón Broadcast que significa que la transación se ha completado (Se ha alcanzado el número mínimo de firmas requerido para el contrato). En este momento la transación puede ser emitida. Click en Broadcast.
privatechain_19.png

La operación puede tardar unos 15 segundos para ver la tranferencia realizada. Una vez esperado ese tiempo abre el fichero del monedero privatechain1.db3 para ver las monedas recibidas en la cuenta normal.
privatechain_20.png

La operación para extraer los NeoGas es similar. Abre el primer fichero monedero privatechain1.db3 y click en el barra de Advanced y click en NeoGas Claim,

privatechain_21.png

Click en Claim All

privatechain_22.png

Una vez pulsado del botón Claim All. Nos aparecerá el siguiente mensaje:

privatechain_23.png

La operación es similar a la de transferir NEOs. Copia el codigo de firma incompleta, abre el fichero del segundo monedero privatechain2.db3 click en la barra de menu y click en Transaction y Signature y pega el codigo anteriormente copiado. Una vez copiado, copia el codigo de salida Output. Abre otro monedero, en mi caso privatechain3.db3 click en la barra del menu Transaction y click en Signature y pega el codigo anteriormente copiado y click en Signature.

Una vez copiado aparecerá el botón de Broadcast Broadcast y la transación puede ser emitida. Click en Broadcast.

privatechain_24.png

La operación puede tardar unos 15 segundos para ver la tranferencia realizada. Una vez esperado ese tiempo abre el fichero del monedero privatechain1.db3 y recrea los indices del monedero.

privatechain_25.png

Una vez recreado los indices veremos los NeoGas.

privatechain_26.png

ESO ES TODO!!!!!!!!!!!!!!!

Rápido y Fácil!

Tambien te puedes dirigir a la pagina oficial de NEO y ahí encontrar mas información!

Muy sencillo, tienes alguna duda pregunta cuantas veces desees, recuerda votar por esta publicación si te gusto y no olvides visitar nuestro Canal de Yotube.

Sort:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://docs.neo.org/es-es/node/private-chain.html