4 minutos de lectura
Resumen
Gracias a su amplio uso en aplicaciones web y a su sintaxis sencilla, Ruby es utilizado por un gran número de personas. En esta guía se explica cómo crear una dirección de Ethereum en Ruby utilizando la gema o el paquete «ruby-eth ».
Requisitos previos
- Ruby instalado en tu sistema (Ruby 2.x o superior)
- Gestor de entornos de Ruby (RBEnv)
- Un editor de texto
¿Qué es una dirección de Ethereum?
Al iniciar sesión en cualquier plataforma de Internet, debes autenticarte mediante una combinación de credenciales. Piensa en una dirección de Ethereum como tu nombre de usuario y en la clave privada correspondiente como la contraseña. Aunque tu dirección de Ethereum es pública y se puede compartir, la clave privada debe mantenerse siempre en secreto. El uso de esta combinación te permite interactuar con la cadena de bloques de Ethereum. Una dirección de Ethereum es tu identidad en la cadena de bloques y tiene este aspecto: «0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE». Es necesario disponer de una dirección de Ethereum válida para:
- Recibir/enviar Ethereum
- Firma y envío de transacciones
- Conexión a aplicaciones descentralizadas
Cómo se genera una dirección de Ethereum:
- En primer lugar, se genera una clave privada aleatoria de 64 caracteres (hexadecimales) (256 bits / 32 bytes).
Por ejemplo:
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- A continuación, se deriva una clave pública de 128 caracteres (hexadecimales) (64 bytes) a partir de la clave privada generada, utilizando el algoritmo de firma digital de curva elíptica (ECDSA).
Por ejemplo:
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe
- A continuación, se aplica la función hash Keccak-256 a la clave pública (128 caracteres / 64 bytes) para obtener una cadena hash de 64 caracteres (32 bytes). Los últimos 40 caracteres / 20 bytes de esta cadena, precedidos por 0x, constituyen la dirección final de Ethereum.
Por ejemplo:
0xd5e099c71b797516c10ed0f0d895f429c2781142
Nota: «0x» en la codificación indica que el número o la cadena está escrito en hexadecimal.
¿Qué es Ruby?
Ruby es un lenguaje de alto nivel, interpretado y de código abierto. Ruby se creó a partir de una mezcla de Perl, Smalltalk, Eiffel, Ada y Lisp, los lenguajes favoritos de Yukihiro «Matz» Matsumoto. Ruby es totalmente orientado a objetos; incluso los tipos de datos más básicos, como los enteros, contienen métodos y variables de instancia. Esto permite el encadenamiento de métodos, gracias al cual se pueden combinar muchas líneas de código en una sola. Ruby on Rails, un marco de trabajo de Ruby, ha contribuido a que el lenguaje gane popularidad en la programación web, y su principal atractivo es que los programadores no tienen que dedicar mucho tiempo a crear archivos.
Para lograr nuestro objetivo de crear una dirección de Ethereum, utilizaremos una gema de Ruby llamada «ruby-eth».
¿Qué es ruby-eth?
Ruby-eth es una biblioteca que facilita la firma de transacciones y la generación de claves; Ruby-eth nos permite crear y enviar transacciones de Ethereum utilizando cualquier nodo. Esta gema permite separar las claves de los nodos. Firma transacciones y gestiona claves en cualquier lugar donde puedas ejecutar Ruby, y envía transacciones a través de cualquier punto de conexión de nodo que desees.
Instalación de dependencias
Antes de instalar las gemas, comprobemos que Ruby está instalado. Abre un terminal y ejecuta:
$ ruby -v
Para Linux/UNIX: puedes utilizar el sistema de gestión de paquetes de tu distribución siguiendo la guía que encontrarás aquí o utilizando herramientas de terceros como rbenv o RVM.
Para macOS: puedes utilizar herramientas de terceros como rbenv o RVM.
Para Windows: puedes utilizar RubyInstaller.
Utilizaremos rbenv para gestionar la versión de Ruby de nuestro proyecto. En primer lugar, para comprobar si rbenv está instalado o no, escribe:
$ rbenv -v
Debe mostrar la versión actual de rbenv instalada en tu sistema; si no es así, descárgala siguiendo las instrucciones que encontrarás aquí. A continuación, abre la terminal y escribe lo siguiente para activar una versión concreta de Ruby en ese directorio.
$ rbenv install 2.6.5
$ rbenv local 2.6.5
Una vez que nos hayamos asegurado de que Ruby está instalado y de que es la versión correcta (2.6.5 en este caso), continuemos e instalemos las gemas necesarias. Puedes instalarlas desde la línea de comandos utilizando RubyGems, el gestor de paquetes de Ruby:
$ gem install eth
Si utilizas macOS, es posible que te encuentres con un problema relacionado con los permisos al instalar gem, ya que la versión de Ruby que viene incluida en macOS suele ser para uso propio de Apple; te recomendamos utilizar rbenv y RVM (Ruby Version Manager) para gestionar una versión independiente de Ruby, que se instalará en un entorno aislado dentro de tu directorio de usuario, en el que podrás realizar cambios sin preocuparte por alterar la instalación de Ruby del sistema.
Creación de una dirección de Ethereum.
Abre tu editor de texto, crea un nuevo archivo Ruby llamado «address.rb» y copia y pega en él el siguiente código.
require "eth"
key = Eth::Key.new
key.public_hex
puts "SAVE BUT DO NOT SHARE THIS (Private Key): 0x#{key.private_hex}"
puts "Address: #{key.address}"
Explicación del código anterior
Línea 1: Importación del gem/paquete eth.
Línea 2: Se crea una instancia del objeto Eth, se genera una nueva clave y se almacena en la variable «key».
Línea 3: Generación de una clave pública hexadecimal a partir de «key» mediante el método «public_hex».
Línea 4: Generar una clave privada hexadecimal a partir de «key» mediante el método «private_key» y añadirle el prefijo «0x»; a continuación, mostrarla en pantalla con una advertencia.
Línea 5: Generar la dirección e imprimirla con la cadena «Dirección:»
Guarda el archivo y ejecútalo utilizando...
$ ruby address.rb
Si todo va bien y el código se ejecuta correctamente, debería quedar así.

Conclusión
Enhorabuena, ya tienes tu propia dirección de Ethereum, que puedes utilizar para firmar o enviar transacciones e interactuar con la red de Ethereum. Echa un vistazo a la guía sobre cómo conectarse a Ethereum utilizando Ruby (ethereum.rb).
Suscríbete a nuestro boletín para recibir más artículos y guías sobre Ethereum. Si tienes algún comentario, no dudes en ponerte en contacto con nosotros a través de Twitter. Siempre puedes charlar con nosotros en nuestro servidor de la comunidad de Discord, donde encontrarás a algunos de los desarrolladores más geniales que jamás hayas conocido :)
