¡HOY! Workshop para lanzar tu propio chain en Arbitrum, guía paso a paso
Hoy tendremos un workshop para que pruebes cómo lanzar tu propia chain en Arbitrum.
Hoy tenemos un gran workshop donde te daremos el paso a paso para desplegar tu propia cadena utilizando Arbitrum Orbit. Regístrate aquí y expande tu conocimiento como dev.
Te dejamos el paso a paso del tutorial por si no te puedes unir.
Desplegando tu propia blockchain nunca había sido tan fácil.
Hola comunidad de espacio cripto espero se encuentren muy bien, les saluda su dev de confianza; Eder. En este artículo haremos un viaje al planeta Orbit, que se encuentra en la galaxia de Arbitrum dentro del universo de Ethereum. Yo, su capitán por hoy, les acompañaré en este viaje; iremos desentrañando cada rincón de Orbit, desde una explicación de cómo funciona, hasta tener nuestra propia cadena corriendo en nuestra computadora, mejor conocida como una (devnet) 🫡🚀.
Acompáñame e iniciemos este viaje y descubre lo fácil que es desarrollar en Arbitrum
Haz click aquí si quieres saltarte la explicación de qué es Arbitrum Orbit e irte directo a desplegar tu propia blockchain.
¿Que es Orbit?
Orbit es un de los productos que proporciona Arbitrum para escalar Ethereum, que te permite crear tu propia red, ya sea una L2, o L3 personalizable.
El problema que resuelve, es la descentralización, escalabilidad y rendimiento. Orbit brinda la posibilidad de crear cadenas AnyTrust y Rollup. En este artículo de esta serie te contamos qué es un Arbitrum Rollup y en este te contamos que es una cadena AnyTrust. Utilizando su propia infraestructura, enfocando en un camino de la autogestión, beneficiándose de la seguridad de Ethereum.
¿Cómo me beneficia Orbit al crear aplicaciones descentralizadas?
Hicimos una lista con algunos de los principales beneficios al hacer una blockchain utilizando Arbitrum Orbit. Ahí te va,
Orbit brinda soporte en la autogestión de nuestras propias redes, ofreciendo un rendimiento dedicado. Dada la posible necesidad de nuestros proyectos de contar con una alta disponibilidad de recursos computacionales, Orbit se presenta como una solución ideal.
Orbit es compatible de forma nativa con el Ethereum Virtual Machine (EVM). Con Stylus, podemos implementar contratos inteligentes compatibles con la EVM utilizando Solidity, C, C++ y Rust, sin necesidad de cambiar de lenguaje o conjunto de herramientas que ya estemos utilizando. En este artículo te contamos cómo usar Stylus.
Orbit da mayor predictibilidad en los costos de transacción dado que la cadenas de Orbit están aisladas del tráfico de Arbitrum L2 y Ethereum L1. La actividad en las cadenas Orbit está aislada de la actividad en cadena otras cadenas cadenas como: Otras orbits Rollops, Arbitrum Rollup, o Ethereum L1. Esto reduce la congestión en transacciones.
Otra gran funcionalidad es que puedes seleccionar el token a usar para pagar las transacciones (gas). Esto da más flexibilidad a cada developer a hacer sus token economics más sofisticados.
La lógica de protocolo es personalizable, lo que significa que es posible modificar la lógicas de los protocolos de liquidación, ejecución de gobernanza de la cadena, para cumplir con criterios específicos. Por ejemplo se puede ajustar la creación de la Bonding Curve en la Ingeniería y desarrollo del token nativo, pools de liquidez para la creación de stablecoins, y muchas cosas más. En resumen, la creatividad es el límite.
Las cadenas de Arbitrum Orbit tienen acceso a las actualizaciones de nitro. Si quieres profundizar más en Nitro, te invito a leer el artículo de esta serie sobre Arbitrum Nitro. En resumen quiere decir que estas cadenas heredan las funcionalidades de todo el ecosistema de Arbitrum, reduciendo la complejidad de mantenimiento y actualización del software.
Las Orbits heredan la seguridad de Arbitrum. En lugar de crear una cadena de cero donde la seguridad será un reto, puedes apalancarte de una de las redes con mayor reputación y desarrollo en la industria.
Acceso autorizado, cada cadena usando Orbit brinda la libertad de elegir qué contratos se implementan en su cadena, la cadena puede ser abierta y permissionless como Ethereum, o restringir la implementación de contratos específicos.
¿Cuál es la diferencia entre una dAppChain y Orbit?
Puede que te preguntes si es lo mismo una dAppChain, a una Orbit chain.
Una dAppChain es una red blockchain diseñada específicamente para correr una aplicación descentralizada (dApp). A diferencia de las blockchains principales como Ethereum, que tienen que lidiar con una gran cantidad de transacciones y contratos inteligentes de diversas aplicaciones, una dAppChain se enfoca en una aplicación específica o un conjunto limitado de aplicaciones.
Las cadenas Orbit se pueden comunicar con todas las cadenas en el universo de Arbitrum ya que Orbit se sustentan en nodos autoadministrados que operan instancias individuales del software de nodo de Arbitrum Nitro. Este software da soporte a los protocolos AnyTrust y Rollup, lo que asegura que Orbit no funcione como una red aislada, lo que abre paso al universo Interoperable.
Conociendo ahora tanto las ventajas como los inconvenientes teóricos, es momento de dar un gran salto en nuestro viaje, y daremos comienzo a la creación de nuestra propia cadena, nuestra propia blockchain una (devnet). Si surge alguna duda, te recomiendo consultar la documentación oficial: https://docs.arbitrum.io/launch-orbit-chain/orbit-gentle-introduction
Junto con el discord: https://discord.com/invite/arbitrum de Arbitrum o solicitar asistencia en la comunidad de Discord de Arbitrum.
Tutorial: Creando tu propia cadena Orbit
El objetivo de este mini tutorial es lanzar una cadena utilizando Arbitrum Orbit, al final obtendremos un Devnet local, que aloja nuestros contratos inteligentes.
Adquiere Eth sepolia en la testnet de Arbitrum en una cartera compatible con la EVM. Para este ejemplo, vamos a utilizar metamask, verifica que está usando una dirección nueva que sea para pruebas, no uses alguna wallet con fondos, solo tokens testnet.
Algunos Tips que te pueden, ayudar para conseguir Eth sepolia, en la tesnet de Arbitrum.
Puedes ir a los link que te dejo a continuación
https://www.alchemy.com/faucets/arbitrum-sepolia
https://faucet.quicknode.com/arbitrum/sepolia
https://sepolia-faucet.pk910.de/
Yo te recomiendo que uses el primer link, y esperar un día para poder tener el Eth ya que necesitamos 1 ETH en testnet, pero estamos ansiosos por hacer el tutorial, puedes usar el tercer link, para obtener Eth sepolia.
Preguntar en las comunidades si alguien tiene algo de Eth sepolia, ya que para este tutorial necesitamos mínimo 1 Eth sepolia, te dejo el link al canal de telegram de espacio cripto https://t.me/espaciocripto
Mini tutorial de como conseguir sepolia y hacer visibles las redes de prueba en nuestro metamask.
Al inicio solo vamos a ver nuestra wallet con 0 ETH
Vamos a copiar nuestra dirección de nuestra wallet.
Vamos a la faucet, utilizamos Pow Faucet ( con el siguiente link Sepolia PoW Faucet )
Pegamos nuestra dirección, resolvemos el Captcha.
Luego de resolver el captcha, iniciara una prueba de trabajo.
Después de unos minutos se actualizará nuestro Mining Reward, para este ejemplo vamos a minar, 1 eth, así que puede tardar unas horas, te recomiendo que hagas este proceso en un dispositivo que no estés utilizando, ya que usa el poder computacional para resolver algunos problemas matemáticos.
En la imagen nos da las especificaciones de nuestro mint, y si queremos dejar de hacer pruebas de trabajo.
Y nos da un estado general de nuestra transacción.
Ahora vamos a habilitar las redes de prueba.
En la parte superior hay una barra de navegación, procedemos a dar un enter en el botón de redes que se encuentra en la parte superior izquierda
Aparecerá una lista de algunas redes, pero por default las redes de prueba estarán deshabilitadas, procederemos a habilitar las redes de prueba.
Listo, ahora solo seleccionamos la red y estamos preparados para seguir los siguientes pasos.
Entorno de trabajo.
Docker.
Git.
Nota rapida:
Si tienes algunas complicaciones en instalar docker o git, te recomiendo ver la documentación de estas herramientas o ir al canal de Espacio Cripto, alguien seguramente te puede ayudar con la instalación.
El primer paso es ir al portal de Arbitrum, con el siguente link
https://orbit.arbitrum.io/
Luego ve a la pestaña de deployment Orbit.
Veremos una ventana en donde deberás conectar tu wallet de pruebas:
Aprobamos los permisos en nuestra wallet.
Después, aparecerá un dashboard, donde vamos a poder seleccionar, la tecnología con la que vamos a trabajar, para este ejemplo vamos a desplegar un Rollup, y seleccionamos.
He decidido desplegar un optimistic Rollup, por un tema de filosofía personal, para este ejemplo, pero dependiendo de las necesidades de la dApp, podemos utilizar, cualquiera de las dos tecnologías, ejemplo: si quisiéramos crear una dAppChain, sería más viable desarrollar sobre AnyTrust, por un tema de disponibilidad de datos.
Nota rapida:
Los Rollups de Arbitrum envían datos a su cadena base (por ejemplo, Ethereum o Arbitrum One), logrando las propiedades de seguridad de Ethereum. Los Rollups construidos en Arbitrum One se benefician de tarifas de incorporación y mantenimiento 10 veces más bajas y tienen acceso al ecosistema vibrante de usuarios, liquidez e infraestructura de Arbitrum. Cualquier parte puede participar en la validación de la cadena para garantizar su seguridad.
Arbitrum AnyTrust introduce una leve suposición de confianza a cambio de tarifas mucho más bajas. La disponibilidad de datos es gestionada por un Comité de Disponibilidad de Datos; un conjunto fijo y con permisos de nodos con un modelo de confianza 2-de-N. Las cadenas AnyTrust son permisivas para validar y están aseguradas por pruebas de fraude de Arbitrum.
Ahora vamos a proceder a configurar nuestra chain.
Podemos corroborar con la tabla de información ubicada en la parte derecha de la pantalla. Te explico qué significa cada campo:
CHAIN ID (Identificador de cadena): Este campo no es relevante para las redes de desarrollo (devnets). En escenarios de producción (que aún no son compatibles), se utilizará un identificador único entero que represente la red de su cadena en índices de cadenas como Chainlist.org.
NOMBRE DE LA CADENA (CHAIN NAME): Este nombre proporciona una forma para que las personas distingan su cadena Orbit de otras cadenas Orbit. Es recomendable elegir un nombre fácil de recordar, que sus usuarios y desarrolladores reconozcan.
PERIODO DE DESAFÍO (BLOQUES) (CHALLENGE PERIOD BLOCKS): Este parámetro determina el tiempo que tienen los validadores de su cadena para disputar, o "desafiar", el estado actual de la cadena publicado en la cadena base de su cadena Orbit en L2 (Arbitrum Goerli o Sepolia por ahora; la liquidación a las cadenas principales One y Nova no es compatible aún). Un período de desafío más largo significa que los nodos de su cadena tendrán más tiempo para disputar estados fraudulentos, pero también significa que los usuarios de su cadena tendrán que esperar más tiempo para retirar sus activos de su cadena.
TOKEN DE STAKE (STAKE TOKEN): Su cadena Orbit será respaldada por al menos un nodo validador. Para que los validadores de su cadena publiquen afirmaciones sobre el estado de la cadena en la cadena base (L2), se les requerirá que apuesten un valor como incentivo para una participación honesta.
Participación BASE (BASE STAKE): Este parámetro especifica la cantidad del token de participación (ETH o un token ERC-20) que los validadores de su cadena deben depositar para publicar afirmaciones del estado de su cadena Orbit en los contratos de agrupación de la cadena base.
PROPIETARIO (OWNER): Esta dirección de cuenta es responsable de implementar, poseer y actualizar los contratos base de su cadena Orbit en su cadena base.
TOKEN DE GAS (GAS TOKEN): Este parámetro especifica el token (ETH o un token ERC-20) que se utiliza nativamente para los pagos de gas en la red.
VALIDADORES (VALIDATORS): El primer campo de entrada es un valor entero que determina el número de validadores que respaldarán su implementación inicial. Los campos posteriores le permiten especificar las direcciones de cada uno de estos validadores.
PUBLICADOR DE LOTES (BATCH POSTER): La dirección del publicador de lotes es responsable de publicar lotes de transacciones desde su cadena Orbit a sus contratos base en su cadena base. Una dirección se generará automáticamente para usted.
En el ejemplo modificamos, el nombre, base de stake,
Y firmamos.
Al firmar desde nuestra cartera, estaremos ejecutando un smart contract para la creación de nuestra Orbit Chain, y nos arroja nuestra configuración de archivos, que podemos observar en la siguiente imagen.
Para configurar ciertos eventos, es crucial acceder al SDK, pero eso nos da para otro artículo, pero les doy un resumen rapido.
El SDK de Arbitrum es una biblioteca TypeScript para interacciones del lado del cliente con Arbitrum, que proporciona funcionalidades auxiliares comunes y acceso a las interfaces de contrato inteligente subyacentes. Se han desarrollado diferentes versiones del SDK para diferentes casos de uso, y las funcionalidades de Orbit se pueden encontrar bajo las etiquetas orbit y orbit-custom-fee-token del paquete del SDK de Arbitrum.
Es super importante que no olviden descargar la configuración, que nos sirviera para desplegar nuestra red.
Ha llegado el momento de proceder al despliegue local. Para ello, es necesario contar con Docker, Node.js, el gestor de paquetes Yarn y Git instalados en tu equipo. La instalación de estos programas varía según el sistema operativo que utilices; este tutorial está basado en Linux y OS de Apple.
Es esencial verificar que disponemos de las herramientas mencionadas previamente. Esto se puede hacer ejecutando los siguientes comandos en la terminal, cada uno por separado: git --version, docker --version, yarn --version. Estos comandos te permitirán confirmar la versión de cada herramienta y asegurarte de que están correctamente instaladas y listas para usar.
Ahora vamos a crear una carpeta en nuestra computadora
Seguimos la siguiente ruta y abrimos nuestro editor de texto. En este caso es vscode.
Es momento de clonar un repositorio dentro de la terminal de nuestro VScode, verificamos que tenemos instalado con git -v.
ejecutamos : git clone https://github.com/OffchainLabs/orbit-setup-script.git
Lo siguiente es instalar dependencias ejecutamos yarn install, verificando que estamos en la ruta de la carpeta
Aceptamos e instalar las dependencias
A continuación, tenemos que mover los archivos de nodeConfig.json y orbitSetupScriptConfig.json al directorio de config del repositorio, que son los archivos que descargamos en el dashboard de Orbit.
Nos movemos a la carpeta config.
Ahora procederemos a ejecutar el coma. En caso de encontrarse con un error, puede ser necesario ejecutarlo como superusuario, lo cual varía según el sistema operativo que estés utilizando. Permite que el comando se ejecute completamente y finalice todos los procesos.
Cuando el sistema termine de correr los procesos, ve a localhost y sorpréndete ahora estamos corriendo una blockchain en la computadora.
En nuestra lista de pasos nos menciona que podemos hacer solicitudes a nuestro RPC local, en un siguiente paso visualizamos los Log. A través de nuestra terminal.
Nota rapida.
¿Que es un RPC?
Se refiere a Remote Procedure Call (Llamada a Procedimiento Remoto). En el mundo de las blockchains, RPC se utiliza para permitir que los usuarios y las aplicaciones externas se comuniquen con un nodo de la red blockchain y realicen ciertas operaciones o consultas.
Ahora es momento de arrancar nuestra Orbit chain,implica ejecutar el siguiente comando en la terminal:
PRIVATE_KEY="0xYourPrivateKey" L2_RPC_URL="https://sepolia-rollup.arbitrum.io/rpc" L3_RPC_URL="http://127.0.0.1:8449" yarn run setup
Pero ¿Si no se cual es mi PrivateKey? Les voy ayudar a revelar su privateKey es muy importante que sea la cartera con la que firmamos, todo esto es un test, pero estos datos nunca deben de ser compartidos. El primer paso es ir a nuestro metamask
En la superior hay una barra de navegación, piquemos los dos puntos
Este comando requiere que ingresemos nuestra clave privada. Para obtener dicha clave, es necesario acceder a nuestra wallet
Copiamos la siguiente información, y esa es nuestra pivate key, con la que firmamos.
Ahora podemos modificar el comando por la private key, procederemos a ejecutar el comando, esto puede tomar algunos minutos.
En la terminal puedes observar que está corriendo una running Orbit chain y configurando nuestra orbit chain.
Para ver nuestros logs de nuestro RPC, ejecutamos el comando sudo docker compose logs -f nitro
Ahí podemos ver el estado de la cadena con los puertos a los que se está accediendo al rcp de nuestra cadena, y listo tenemos nuestra orbit chain corriendo y lista para desplegar contratos inteligentes, crear nuestra lógica con nuestros tokens, acuñación les voy a dejar las tracciones de la creación del Orbit chain.
En nuestro localhost, podemos ver todos los bloques que se generaron en la creación de la Orbit Chain.
Y listo, builders este es todo el tutorial para desplegar una orbit (devnet) local.
Lanzar una cadena Orbit representa una oportunidad emocionante para desarrolladores y entusiastas de la blockchain que buscan explorar nuevas fronteras en la creación de dApps y soluciones descentralizadas. La capacidad de personalizar tu propia red, junto con el soporte y la seguridad que proporciona la infraestructura de Arbitrum, abre un abanico de posibilidades para la innovación y el desarrollo de proyectos que pueden beneficiarse de una escalabilidad mejorada y un rendimiento optimizado.
Este tutorial es un punto de partida. La exploración y el aprendizaje continuos son esenciales para aprovechar al máximo las capacidades que Orbit y la tecnología blockchain tienen para ofrecer. Te animamos a sumergirte en la documentación oficial, participar en comunidades como la de Discord de Arbitrum para resolver dudas y, sobre todo, experimentar creando y desplegando tus propias soluciones en Orbit.
Builders, este es el fin del tutorial para desplegar una Orbit Chain (devnet) local. Esperamos que este viaje haya sido informativo y estimulante, y que ahora te sientas más preparado para embarcarte en tus propios proyectos de blockchain con Orbit.