Cosmos.- En el espacio blockchain, así como en otras industrias que dependen de procesos operativos e intercambio o compartir información entre diferentes sistemas, tener un conjunto de estándares de interoperabilidad es clave para construir protocolos sólidos y fundamentales.

Rosetta API , una especificación de código abierto y un conjunto de herramientas desarrolladas por Coinbase , hace que la integración con blockchains sea más simple, rápida y confiable al establecer una API estándar para integrar aplicaciones blockchain.

Al utilizar una interfaz común que estandariza el proceso de cómo un usuario interactúa con una cadena de bloques, se reduce considerablemente tanto el trabajo de los intercambios para integrarse con nuevas cadenas de bloques como el de los desarrolladores para construir aplicaciones de cadenas de bloques cruzadas como exploradores de bloques, billeteras y dApps. .

Con IBC a punto de habilitarse luego de la inminente actualización de Stargate y una visión de cadenas de bloques interconectables en el horizonte, Tendermint Engineering ha estado trabajando en una implementación inicial de API de Rosetta para Cosmos SDK para permitir que las aplicaciones hagan que los datos de la cadena de bloques estén disponibles a través de puntos finales que cumplan con el estándar. propuesto por Coinbase.

¿Qué significa esto para el ecosistema Cosmos?

La implementación de la API de Rosetta permite:

  • Intercambios para integrar a la perfección nuevas cadenas de bloques que ejecutan la API de Rosetta sin ningún esfuerzo adicional del desarrollador.
  • Las aplicaciones entre cadenas de bloques, como exploradores de bloques, billeteras y dApps, se compilarán más fácilmente y tendrán una integración de incorporación más rápida.

El equipo de Tendermint se complace en lanzar el MVP de la API de Rosetta, que inicialmente diseñamos para admitir el Launchpad del SDK de Cosmos , e invitamos a toda la comunidad de Cosmos a probar y proporcionar comentarios.

¿Cómo se puede ejecutar?

Hemos creado una solución pensada de forma amplia para ser utilizada en diferentes casos de uso. 

La más simple es ejecutar la aplicación independiente que se comunicará con un nodo en ejecución, preferiblemente de forma local (pero no forzada). Pero sabemos que algunas aplicaciones preferirían que este servicio estuviera integrado en sus propios archivos binarios de aplicación. 

Es por eso que hemos abstraído el servicio en el código para brindar la opción de crear una instancia a través del código. Puede tomar un ejemplo leyendo main.go en el repositorio.

Instrucciones

Cómo instalar la puerta de enlace independiente de la API de Rosetta

  1. Clonar el repositorio
$ git clone -b v0.1.0 https: // github.com/tendermint/cosmos-rosetta-gateway

2. Instale la herramienta:

$ cd cosmos-rosetta-gateway 
$ make install

3.Asegúrese de que GOPATH esté configurado, luego ejecute:

$ crg --help

Probando la API

Requisitos:
cualquier cadena que utilice la versión 0.39.1 del SDK de Cosmos debería funcionar. (Si no es así, abra un problema ). Usaremos la herramienta Starport para montar y ejecutar una aplicación de cadena de bloques y probarla. ¡Aquí vamos!

  1. Crea una aplicación:
$ aplicación starport github.com/jgimeno/blog 
$ cd blog
$ starport serve --verbose

Estos 3 comandos deberían iniciar una cadena de bloques para que se ejecute en su máquina.

2. Busque banderas:

  • -prefijo : esta bandera es importante, ya que no todas las cadenas de bloques de cosmos utilizan el prefijo «cosmos» predeterminado. Por ejemplo, para IOV blockchain, usaríamos `-prefix star`.
  • -blockchain y -network: estos indicadores le permiten cambiar el nombre de su aplicación blockchain y el nombre de la red. Rosseta utiliza estos valores en el punto final de la lista de la red. Por ejemplo, para Bitcoin, establecería `- blockchain bitcoin – network mainnet`.
  • -app-rpc y -tendermint-rpc: de forma predeterminada, este apunta a localhost: 1317 y localhost: 26657. Pero puede poner los puntos finales que necesita para probar. Recuerde que en la especificación de Rosetta se menciona que no deben hablar con un servicio externo al empaquetarlo en un Dockerfile.
  • -port: De forma predeterminada, el servicio Rosetta escucha en 8080, use el que funcione mejor para usted.

3. Ejecute la aplicación:

$ crg

Si todo salió bien tendremos nuestro servicio escuchando en el puerto 8080.

Extrayendo datos

Además de los puntos finales que están documentados en el sitio oficial de Rosetta , hemos preparado una colección básica de Postman para ayudar con las pruebas y el uso de los puntos finales, que puede encontrar aquí. Enlace .

Conclusión

La visión de Cosmos siempre ha sido convertirse en una parte importante de Interchain , una red de economías de token de blockchain interoperables y escalables. 

Con la API de Rosetta, la integración de nuevas cadenas de bloques y aplicaciones de cadenas de bloques cruzadas se convierte en una experiencia mucho más fácil para los desarrolladores, ya que está estandarizando las operaciones que permiten que diferentes sistemas funcionen mejor juntos.

Además, con la próxima actualización de Stargate , esperamos que Exchanges pueda usar IBC como una forma de simplificar la lista. Enlace .

Hoy, nos complace ofrecer el primer MVP de API de Rosetta para que la comunidad pueda probarlo e integrarlo en sus aplicaciones. Como esta es la primera versión, algunas cosas aún están pendientes y se agregarán con las próximas integraciones.
Por ahora, hemos agregado compatibilidad para las cadenas de Cosmos Launchpad y los tipos de transacciones MsgSend .

¡Nos encantaría recibir comentarios! No dude en contactarnos en el canal dedicado a la discordia de Cosmos .

COSMOS

MAS SOBRE COSMOS