Una Inmersión en la Testnet de Ocean

Introducción a Ocean Protocol para desarrolladores

Santiago Gonzalez Toral
Ocean Protocol International
6 min readJan 18, 2019

--

(Versión original en inglés por Troy McConaghy)

El lanzamiento de nuestra red principal aún está a unos meses de distancia, ¡pero eso no significa que tu debas esperar para revisar lo que estamos construyendo! Si Ocean está dentro de tus planes para vender, compartir, comprar u obtener datos (o servicios de datos), o si deseas desarrollar un software que interactue con Ocean, hoy en día ya puedes echar un vistazo a nuestra testnet y probarla.

Photo by Tim Zänkert on Unsplash

Nuestros desarrolladores han estado implementando el stack tecnológico de Ocean Protocol durante varios meses, y la mayoría de este ya se encuentra público y de código abierto en GitHub, especialmente desde el lanzamiento a mediados de Agosto. Aunque ya puedas probar su código, este podría cambiar de manera repentina conforme progrese su desarrollo. Entonces, ¿por donde puedes empezar?

La Testnet de Ocean

Muchas blockchains poseen redes de prueba (o testnets) que operan de manera similar a la red principal en producción, pero estás son gratuitas o de bajo costo de uso. Esto significa que puedes experimentar con ellas sin mucho riesgo.

Para ejecutar cualquier tipo de red de Ocean, incluyendo la testnet, existes dos conjuntos de módulos que deben ser ejecutados:

  1. Los contratos inteligentes (o EVM smart contracts) de Ocean, también conocidos como Keeper smart contracts. Estos podrían ser desplegados en una testnet de Ethereum en tu máquina local, una tesnet de Ethereum como Kovan, o la Mainnet de Ethereum.
  2. El resto de software dentro del stack de Ocean que no sean EVM smart contracts. Esto incluye aquel software que sirve de interfaz con bases de datos off-chain para el almacenamiento de metadatos.

¡Vamos a Intentarlo!

Para ejecutar la testnet de Ocean en una máquina local:

  • Asegúrate de tener la versión más reciente de alguna distribución Linux, macOS o Windows, como también de un hardware reciente. Yo tenía Ubuntu 18.04 (64-bits) en una máquina Intel Core i7.
  • Asegúrate de que tener la versión más reciente de Git, Docker y Docker Compose.

A continuación, clona el repositorio oceanprotocol/docker-images de Github y ejecuta el script de consola start_ocean.sh con la opción--latest:

git clone git@github.com:oceanprotocol/docker-images.git
cd docker-images/
./start_ocean.sh --latest

En este punto podrías ver un montón de información de salida en consola, iniciando por este agradable mensaje bienvenida:

Docker Compose debería iniciar y conectar cuatro contenedores Docker:

  1. Uno para la base de datos local de MongoDB, donde los metadatos de los datasets (y otros activos digitales) serán almacenados.
  2. Uno para la testnet de Ganache (testnet de Ethereum), donde se despliegan todos los Keeper smart contracts de Ocean.
  3. Uno para un “Provider” local, que actúa como interfaz para MongoDB, entre otros. (Su nombre podría cambiar pronto. El nuevo nombre probablemente será el de una criatura acuática o una deidad.) Nota del editor: El nombre fue cambiado a “Aquarius” después de que esta publicación fue publicada por primera vez.
  4. Uno para Pleuston, una aplicación web para que consumidores puedan explorar, descargar, y publicar activos digitales o datos.

Es educativo leer toda la información de consola. Por ejemplo, cuando el contenedor keeper-contracts inicia, tu podrías ver algo como:

Aquellas cuentas y claves privadas son utilizadas para pruebas. A continuación, podrás ver como los diez Keeper smart contracts son desplegados. Aquí está la salida de consola cuando el contrato OceanToken es desplegado:

Los cuatro contenedores mencionados anteriormente poseen un hostname y puerto con los que puedes conectarte e interactuar con los servicios prestados por cada uno de estos. Por ejemplo, para ver todos los endpoints asociados con el (pronto a ser renombrado) Provider, debes navegar a http://0.0.0.0:5000/api/v1/docs/, donde podrás ver algo como lo siguiente:

Puedes intentar con alguno de esos endpoints (p.e. los API endpoint del Provider) directamente desde el navegador. Por ejemplo:

  1. Almacenar nuevos metadatos (JSON) en la base de datos de MongoDB al hacer click en la barra POST /api/v1/provider/assets/metadata, a continuación “Try it out”, y después “Execute”. Esto debería almacenar en la base de datos algunos metadatos de ejemplo acerca del dataset del clima de UK.
  2. Obtener un listado de todos los identificadores de los activos digitales al hacer click en la barra GET /api/v1/provider/assets, a continuación “Try it out”, y después “Execute”. El resultado debería incluir algo como lo siguiente:

También es posible interactuar con los API endpoints del Provider utilizando curl, Postman o cualquier lenguaje de programación moderno (ya que todos ellos permiten realizar peticiones HTTP).

Para trabajar con un Provider de Ocean, puedes conectarte directamente o utilizar los API endpoints, pero también puedes utilizar una librería o API de segundo nivel como Squid. Squid es otra pieza del stack tecnológico de Ocean, y un tema para otro día. (Al momento de escribir esto, Squid está siendo modificado, pero pronto debe estar listo)

Un Vistazo a Pleuston

Es posible conectarse a la aplicación web de Pleuston en http://localhost:3000/. Al hacerlo, podrás ver algo como lo siguiente:

Pleuston se encuentra actualmente en desarrollo por lo que puede cambiar drásticamente en los próximos meses. La exploraremos (y actualizaremos) en una siguiente publicación en el blog.

Algunas Notas para los Futuros Desarrolladores

El proceso descrito anteriormente para ejecutar la testnet de Ocean es útil para probar todas las “últimas” versiones de los contenedores Docker (p.e. etiquetados con latest, en base al branch develop del repositorio de Github asociado). Si deseas desarrollar y probar tu propio código fuente de Pleuston, el proceso es similar, excepto que se debería añadir la opción --no-pleuston, por ejemplo:

./start_ocean.sh --latest --no-pleuston

y posteriormente ejecutar tu código de Pleuston como sea necesario. Para mayor información, puedes revisar el respositorio oceanprotocol/pleuston.

De manera similar, si deseas desarrollar y probar nuevo código en el Provider, puede revisar las instrucciones en el repositorio oceanprotocol/provider.

¿Ves Algo Extraño?

¡Haznoslo saber! Actualmente estamos ejecutando nuestro programa de recompensas Open Waters bounty, en el que cualquiera puede leer nuestro código fuente y realizar sugerencias de mejora. Tienes la opción de ganar tokens de Ocean en caso de tomar en cuenta tu sugerencia para un bounty. Puedes encontrar más detalles en nuestra reciente publicación acerca de Open Waters bounty.

Esperamos que esto te inspire a involucrarte con Ocean Protocol, o por lo menos a que lo eches un vistazo. Nuestro siguiente lanzamiento (v0.2) Trilobite será para el siguiente mes. Este vendrá empaquetado con una nueva ola de capacidades, como la posibilidad para que Científicos de Datos y profesionales en Inteligencia Artificial puedan descubrir, realizar transacciones, y consumir datos.

¿Estás listo para la inmersión? Sigue a Ocean protocol en Twitter, Telegram, LinkedIn, Reddit, GitHub y nuestro Newsletter para recibir actualizaciones y anuncios del proyecto. Echa un vistazo a nuestro Business Board (Ocean Developer Roadmap) para que tengas una idea de en qué estamos trabajando, y en caso de tener algunas preguntas técnicas, puedas hacerlas en nuestra sala de chat de Gitter.

Sigue a Ocean Protocol en Twitter, Telegram, Reedit, Github & Newsletter para actualizaciones y anuncios.

Si eres desarrollador, entra en Ocean Protocol Documentation o Dev-Ocean para hacerte una idea sobre lo que estamos trabajando y dispara todas tus preguntas técnicas en nuestro chatroom the Gitter.

This is a community-translated blog. Ocean Protocol cannot be held responsible for any translated content. For an official English-language version of this blog, please visit https://blog.oceanprotocol.com/a-dive-into-the-ocean-testnet-98fdb43456ce.

--

--