Ethereum Zero to Hero: Configuración de un entorno de desarrollo

Esta es la segunda parte de nuestra guía Ethereum Zero to Hero. Si no ha leído la parte, se la recomiendo antes de saltar.

En esta publicación, vamos a configurar un entorno de red de prueba privado básico para el desarrollo y la experimentación de ethereum.

Paso 0: requisitos

Paso 1: Configuración de Test-Net

Si bien estamos aprendiendo los entresijos del desarrollo de Ethereum, probablemente no queramos probar contra la red de producción real con éter real.

Hay varias redes de prueba de Ethereum en la naturaleza para este propósito Rinkeby y Morden por ejemplo; sin embargo, interactuar con estas redes todavía requiere que adquiera ethereum ya sea mediante minería o obteniendo éter de otros usuarios.

Si bien eventualmente trabajaremos con las redes de prueba públicas, para los principiantes como nosotros que estamos comenzando, eso está lejos de ser ideal y puede ser difícil obtener cantidades significativas de éter.

Una mejor opción es configurar nuestra red de prueba privada , que podemos doblar y torcer; también nos permitirá obtener una comprensión más profunda del funcionamiento interno de la red Ethereum.

Empecemos con GETH

Necesitaremos instalar geth, un cliente CLI de go que nos permitirá ejecutar localmente un nodo ethereum completo.

brew tap ethereum / ethereum brew install ethereum

Podemos verificar que todo se instaló correctamente escribiendo:

versión geth

Lo que debería darle un resultado similar al siguiente:

Paso 2: Bloque Génesis

Para poner en marcha nuestra red de prueba privada, necesitaremos un Bloque Génesis. Cada Blockchain requiere un bloque de génesis, que es esencialmente el archivo de configuración de nuestro blockchain.

El bloque génesis es el inicio de la cadena de bloques: el primer bloque, bloque 0, y el único bloque que no apunta a un bloque predecesor. El protocolo garantiza que ningún otro nodo estará de acuerdo con su versión de la cadena de bloques a menos que tengan el mismo bloque de génesis, por lo que puede crear tantas cadenas de bloques de testnet privadas como desee.

Como puede ver, el contenido del archivo está en json y en su mayor parte se explica por sí mismo, pero repasemos rápidamente cada uno de los parámetros para aclarar su propósito.

Por último, los parámetros de configuración sirven para garantizar que determinadas actualizaciones de protocolo estén disponibles desde el principio.

Para obtener una explicación completa, consulte esta respuesta en stackexchange

A continuación, necesitaremos inicializar nuestra cadena ejecutando el siguiente comando:

geth --datadir ./TestNetData init HeroGenesis.json

La configuración del directorio de datos es importante ya que, de lo contrario, anularemos el directorio de datos predeterminado para la red Ethereum real .

La salida debería devolver algo similar a lo siguiente:

Paso 3: ejecutar un nodo local

Ahora que creamos nuestra cadena inicial, podemos ejecutarla ejecutando el siguiente comando:

geth --datadir ./TestNetData --identity & quot; HeroNode1 & quot; --rpc --rpcport & quot; 8080 & quot; --rpccorsdomain & quot; * & quot; --puerto & quot; 30303 & quot; --nodiscover --rpcapi & quot; db, eth, net, web3 & quot; --maxpeers 0 --networkid 24 consola

Este comando hace algunas cosas:

El resultado debe ser similar al siguiente:

En este punto, debería estar en funcionamiento y en la consola geth listo para hacer algo, pero ¿qué?

Bien, cambiemos la atención a la siguiente advertencia:

ADVERTENCIA No se configuró etherbase ni se encontraron cuentas por defecto

Tenemos el nodo en funcionamiento, pero no será de mucha utilidad sin ninguna cuenta.

Paso 4: creación de una cuenta

Como ya estamos en la consola Geth es más fácil avanzar y crear una cuenta directamente desde allí, en la terminal tecleamos lo siguiente:

personal.newAccount()

La consola te pedirá una contraseña ¡NO LO PIERDAS! y devolverá un has como el siguiente:

0xe857331e4e3354bb72b3751cce419c8444e89e17

Y validemos que la cuenta existe ejecutando:

& gt; eth.getBalance (& quot; 0xe857331e4e3354bb72b3751cce419c8444e89e17 & quot;) 0

Ahora, pongamos un poco de éter en esa cuenta.

Paso 5: vamos a Geth Mining

Resumen rápido:

Ahora, si bien podríamos fácilmente emitir ether a nuestra cuenta usando el bloque Génesis , divirtámonos un poco y extraigamos Ether en nuestra red privada.

Abra una nueva pestaña de terminal y ejecute el siguiente comando:

obtener adjuntar ./<DirectoryName>/geth.ipc

Esto conectará nuestra segunda terminal a la instancia geth existente y abrirá la consola Javascript . Dentro de la consola, ejecute lo siguiente:

miner.setEtherbase (& quot; 0xe857331e4e3354bb72b3751cce419c8444e89e17 & quot;) miner.start ()

Si volvemos a nuestra primera terminal, deberíamos ver lo siguiente:

Regresemos a la segunda terminal y detengamos al minero y revisemos nuestro saldo:

miner.stop () eth.getBalance (& # x27; 0xe857331e4e3354bb72b3751cce419c8444e89e17 & # x27;) 75000000000000000000

¡Felicitaciones! Ahora hemos creado nuestra red privada y extraído nuestra pequeña cantidad de éter, y tenemos una red válida que podemos usar para desarrollar nuestros Contratos inteligentes y DApps .

En la próxima publicación de la serie, comenzaremos a desarrollar con Solidity y Smart Contracts.

Este artículo se publicó originalmente en mi propio sitio .