¡Una forma simple y elegante de desarrollar/desplegar contratos inteligentes y más!
Foto de Hannah Joshua en Unsplash
Hoy vamos a hablar de una increíble herramienta de desarrollo de Ethereum, que cambiará su vida como desarrollador de Ethereum para siempre 😎
sbt
es una herramienta de construcción de código abierto para proyectos de Scala y Java, similar a Maven y Ant de Java.
sbt-ethereum
sbt-ethereum
es una excelente herramienta que permite a desarrolladores y aficionados empezar a trabajar con Ethereum en cuestión de minutos.
sbt-ethereum
tiene como objetivo los siguientes objetivos:
- Una plataforma de texto interactivo en la que los "aficionados", personas que no son programadores, pero que están dispuestas a dedicar un poco de tiempo a aprender, pueden interactuar con Ethereum (y otras blockchains compatibles), y hacerlo con un gran nivel de potencia y sofisticación.
- Una herramienta de publicación para aplicaciones de contratos inteligentes de Ethereum, ya que los repositorios de
sbt-ethereum
se esfuerzan por ser portátiles, y permitir tanto la implementación de nuevas instancias de contratos inteligentes como la interacción conveniente con los contratos inteligentes ya implementados. - Para aquellos que son (o desean ser) programadores, un rico entorno de desarrollo para los contratos inteligentes de Ethereum.
- Una herramienta de integración, que facilita el desarrollo de bibliotecas y aplicaciones Scala de alto rendimiento que interactúan con los contratos inteligentes de Ethereum.
Si eres un desarrollador principiante, la principal fricción surge al configurar el nuevo proyecto/tecnología. sbt
minimiza esa dificultad y te enseña a trabajar con la blockchain de Ethereum a través de la interfaz de línea de comandos (CLI).
¿Línea de comandos? ¿No es difícil?
No, sbt
mantiene las cosas básicas y maneja mucho detrás de escena para mantener las cosas simples.
¿Qué proporciona sbt-ethereum?
- Funcionalidad de billetera
- Funcionalidad de desarrollo de contratos inteligentes
- Interacciones con la blockchain de Ethereum
- Soporte ENS
- Integración de Etherscan
¡Sí! Todo lo anterior a través de la línea de comandos. Ahora veamos sbt-ethereum
en acción.
Instalación
Usaremos Ubunsu (si estás utilizando Windows, sigue estas instrucciones).
Clona este repositorio de GitHub:
git clone https://github.com/swaldman/eth-command-line.git --branch 0.1.10
Ahora, ve dentro del directorio:
$ cd eth-command-line
Si haces ls
, puedes ver los siguientes archivos:
$ ls
LICENSE README.md build.sbt
project sbtw
Aquí, sbtw
es un script contenedor que instalará sbt.
$ ./sbtw
Como sbt-ethereum
es una herramienta interactiva, durante la instalación hará algunas preguntas para configurar su billetera. También puedes configurar una billetera más tarde, pero por ahora, verás preguntas como 👇
There are no wallets in the sbt-ethereum keystore. Would you like to generate one? [y/n] y
Would you like the new address
'0x1144f4f7aad0c463c667e0f8d73fc13f1e7e86a2' to be the default sender on chain with ID 1? [y/n] y
Ejecutando Comandos en sbt-ethereum
sbt-ethereum
busca la simplicidad y proporciona comandos fáciles de leer. Por ejemplo, utiliza ethAddressAlias
en lugar de algo como etaa, eta. Esto hace que los comandos sean más grandes y difíciles de escribir, por eso sbt
admite finalización de pestañas enriquecidas (rich tab completions). Puedes consultar la lista completa de comandos sbt
aquí.
Haciendo Respaldos
Sus billeteras y alias de direcciones, así como otra información como su historial de transacciones, compilaciones de contratos inteligentes, y ABIs de contratos con los que interactúa, se almacenan en la "shoebox" (caja de zapatos) de sbt-ethereum
, a la que querrá acostumbrarse a hacer respaldos. Por ello, se recomienda usar el comando ethShoeboxBackup
(que no acepta argumentos).
El comando es interactivo. Nos pedirá un directorio en el que nos gustaría almacenar las copias de seguridad (que se conservarán — ¡en la shoebox! — para su posible reutilización en el futuro). Proporciona un directorio adecuado para su sistema. Puedes querer hacer una copia de seguridad en una unidad flash o un disco externo, así que si algo le sucede al disco duro de su computadora, tienes una copia en otro lugar.
Podemos restaurar nuestra shoebox, si algo malo sucede, desde el archivo generado utilizando ethShoeboxRestore
.
Conecta su QuikNode a sbt-ethereum
Podemos conectar nuestro nodo Ethereum a sbt-ethereum
(sbt puede tener un nodo ETH predeterminado que puedes usar para pruebas, sin embargo, su documentación recomienda usar un nodo personal para fiabilidad y rendimiento).
Regístrate en QuikNode, si quieres la experiencia más rápida y mejor para interactuar con un nodo Ethereum.
Recuerda que puedes usar TAB
para completar tus comandos. Vamos a conectar a nuestro nodo Ethereum (oculté mi URL Web3 de QuikNode, puedes obtener la suya aquí.)
sbt:eth-command-line> ethNodeUrlDefaultSet https://xxxx-xxxx-xxxx.quiknode.io/uuid/token/
Para verificar el URL del nodo actual, ejecutemos el comando para verificar el número de bloque más reciente:
sbt:eth-command-line> ethNodeBlockNumberPrint
Puedes anular o cambiar su configuración de Nodo predeterminada siempre que quieras.
Para eso, sbt
proporciona los siguientes comandos:
ethNodeBlockNumberPrint ethNodeChainId
ethNodeChainIdDefaultDrop ethNodeChainIdDefaultPrint ethNodeChainIdDefaultSet
ethNodeChainIdOverride ethNodeChainIdOverrideDrop ethNodeChainIdOverridePrint ethNodeChainIdOverrideSet ethNodeChainIdPrint
ethNodeUrl ethNodeUrlDefaultDrop
ethNodeUrlDefaultPrint ethNodeUrlDefaultSet
ethNodeUrlOverride
ethNodeUrlOverrideDrop ethNodeUrlOverridePrint
ethNodeUrlOverrideSet ethNodeUrlPrint
Usando Alias
Todos saben que trabajar con direcciones puede ser problemático. Nosotros, los humanos, no estamos diseñados para trabajar con valores hexadecimales (las máquinas sí) — por lo que recordarlos o incluso emparejarlos correctamente puede ser difícil. Es por eso que sbt
utiliza alias para direcciones. Ya agregó un alias para su dirección predeterminada: para comprobarlo, ejecuta el siguiente comando:
sbt:eth-command-line> ethAddressAliasList
Verás un "default-sender" delante de su dirección. Para agregar un nuevo alias para una dirección o un alias existente, simplemente utiliza este comando:
ethAddressAliasSet new-name default-sender
Para verificar un alias, puedes ejecutar ethAddressAliasList
nuevamente.
Comandos de billetera
Para administrar billeteras, direcciones y claves, vamos a revisar algunos comandos proporcionados por sbt
.
Crear una nueva billetera
ethKeystoreWalletV3Create
Este comando crea una nueva billetera JSON "v3" eth-rpc que representa una dirección de Ethereum y una clave privada cifrada con código de acceso en el almacén de claves (keystore) "shoebox" de sbt-ethereum
.
El comando ethKeystoreList
muestra las direcciones de Ethereum en el almacén de claves "shoebox" de sbt-ethereum
y cualquier alias asociado con esas direcciones.
Para verificar la clave privada de su billetera, utiliza el siguiente comando:
ethKeystorePrivateKeyReveal <dirección hexadecimal> o <nombre de alias>
Importar billetera
Hay varias formas de importar una billetera a sbt
. Veamos una por una:
1.Utilizando claves privadas: puedes importar una billetera a sbt
utilizando claves privadas.
ethKeystoreWalletV3FromPrivateKeyImport
2.Usando JSON v3 de eth-rpc
> ethKeystoreWalletV3FromJsonImportV3 Wallet JSON: {"address":"d78fe1d978ad8cc5a94484725d059bec694f215e","crypto":{"mac":"98c53c7d05c7daeb1b8d2bef6af8643bf679a73a34d014f09a45f7035088f89b","kdf":"pbkdf2","cipherparams":{"iv":"70c4340f5305dca3fad9e54d47db4a2b"},"ciphertext":"9a2fc0212827877068d5a54f0ad64fab8767d52849535305e984682db25be23d","cipher":"aes-128-ctr","kdfparams":{"salt":"b9562670465f5ec13a4babe91aea6bd41d3400dfb0f97b1fb21617cbd62e9782","dklen":32,"c":262144,"prf":"hmac-sha256"}},"id":"f2f3bad7-4da0-424b-a363-fde7a6e3cb49","version":3}
[info] Imported JSON wallet for address '0xd78fe1d978ad8cc5a94484725d059bec694f215e', but have not validated it.
[info] Consider validating the JSON using 'ethKeystoreWalletV3Validate 0xd78fe1d978ad8cc5a94484725d059bec694f215e'.
[success] Total time: 3 s, completed Mar 16, 2019 12:35:14 AM
¡Valide siempre su billetera después de importarla! Para validar la billetera, use el siguiente comando:
ethKeystoreWalletV3Validate <dirección hexadecimal> o <nombre de alias>
Para imprimir el JSON de la billetera (v3), ejecuta el siguiente comando:
ethKeystoreWalletV3Print <dirección hexadecimal> o <nombre de alias>
Conclusión
sbt
ofrece una funcionalidad rica y profundizaremos en ella en futuros artículos. Podemos crear contratos inteligentes y también nombres ENS utilizando la herramienta de línea de comandos sbt
. En el próximo artículo, crearemos, implementaremos y leeremos un contrato inteligente utilizando sbt-ethereum
.
Lectura adicional:
- Método sbt-ethereum para la locura
- Advertencias y deficiencias de sbt-ethereum
- Lista de comandos de sbt-ethereum
Acerca de QuikNode
QuikNode está construyendo infraestructura para apoyar el futuro de Web3. Desde 2017, hemos trabajado con cientos de desarrolladores y empresas, ayudando a escalar dApps y proporcionando nodos Ethereum de alto rendimiento. Estamos trabajando en algo interesante desde hace meses y lanzaremos pronto, ¡así que suscríbase a nuestro boletín para obtener más actualizaciones! 😃
Artículo original publicado por Gaurav Agrawal. Traducido por Paulinho Giovannini.
Discussion (0)