Inicio Facebook

Hyperledger - manipular datos desde CouchDB

Ya que Hyperledger es relativamente nuevo y CouchDB no es la base de datos más utilizada entre developers, hacer una app más allá del prototipo típico es complejo. Google no retorna muchos resultados a errores e iniciar está lleno de dudas.

Por eso compilé este grupo de vínculos relevantes dispersos en la red, e iré incrementando la lista conforme encuentre más.

Cuando uno crea una red en Hyperledger Fabric y decide utilizar CouchDB como World State, extraer información para mostrar puede seguir alguno de los siguientes patrones:

  1. Directo de la Blockchain. Este método es común (en la mayoría de ejemplos así se hace) pero es costoso ya que cada solicitud se debe firmar. Funciona para momentos críticos de la App (por ejemplo al crear una transacción basándose en otro registro), pero para otros momentos es mejor usar la Database State.
  2. Desde CouchDB. Otra forma es llamando registros desde su Id directo de CouchDB, sin embargo este tipo de casos de uso son poco prácticos en la vida real, en la vida real se requiere filtros, agrupaciones, etc. El SDK de CouchDB para NodeJS permite hacer llamadas out-of-the-box o a través de una vista. Ahí entra el juego donde una llamada directa no funciona, principalmente porque el World State se regenera desde el Chain de Hyperledger, por esto, cualquier índice o algo por el estilo que generemos en el CouchDB, desaparece fácilmente.

Resumen en mis palabras:
Las vistas se generan por un script que se almacena en CouchDB, el mismo se compone de un query map y uno reduce (opcional). Se generan enviando un archivo .js por Curl al HTTP endpoint (o directo desde el UI de Project Fauxton). La función map filtra e indexa la propiedad(es) relevantes y la función reduce puede agrupar la data.

Estos son los vínculos más útiles que he encontrado en la red.

Bonus: cuando uno crea una instancia desde los Docker default de Hyperledger Fabric, CouchDB implementa el Project Fauxton (visualizador de datos) y CouchDB viene instalada en Party Mode (sin usuario o contraseña), por ende para explorar datos una forma fácil es entrar a: http://127.0.0.1:5984/_utils/ Bonus 2: Tip. Versionar los documentos que crear las vistas en CouchDB y no crearlas directo desde Project Fauxton.

Walter Montes

Read more posts by this author.

San José, Costa Rica

Please Donate To Bitcoin Address: [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]