MultiChain Feeds para la integración de bases de datos PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

MultiChain Feeds para la integración de bases de datos

Obtener datos de la cadena de bloques y llevarlos al mundo en general

Con el primer lanzamiento público de MultiChain, en 2015, vimos interés en las aplicaciones blockchain desde una dirección sorprendente. Si bien originalmente habíamos diseñado MultiChain para permitir la emisión, transferencia y custodia de activos digitales, un número creciente de usuarios estaban interesados ​​en usarlo para aplicaciones orientadas a datos.

En estos casos de uso, el propósito de blockchain es permitir el almacenamiento y la recuperación de información de propósito general, que no tiene por qué ser de naturaleza financiera. La motivación para usar una cadena de bloques en lugar de una base de datos regular es evitar depender de un intermediario confiable para alojar y mantener esa base de datos. Por razones comerciales, regulatorias o políticas, los usuarios de la base de datos quieren que esto sea una responsabilidad distribuida en lugar de una centralizada.

La evolución de las corrientes

En respuesta a esta retroalimentación, en 2016 nosotros Introducido Las transmisiones MultiChain, que proporcionan una abstracción simple para el almacenamiento, indexación y recuperación de datos generales en una cadena de bloques. Una cadena puede contener cualquier cantidad de transmisiones, cada una de las cuales se puede restringir para la escritura de ciertas direcciones. Cada elemento de transmisión está etiquetado por la dirección de su editor, así como una clave opcional para su recuperación futura. Cada nodo puede decidir independientemente si se suscribe a cada flujo, indexando sus elementos en tiempo real para una recuperación rápida por clave, editor, hora, bloque o posición. Las transmisiones fueron un éxito instantáneo con los usuarios de MultiChain y lo diferenciaron fuertemente de otras plataformas de blockchain empresariales.

En 2017, las transmisiones fueron extendido para admitir texto nativo JSON y Unicode, múltiples claves por artículo y múltiples artículos por transacción. Este último cambio permite publicar más de 10,000 elementos de datos individuales por segundo en hardware de alta gama. Luego, en 2018, agregamos soporte transparente para datos fuera de la cadena, en el que solo se publica un hash de algunos datos en la cadena, y los datos en sí se entregan fuera de la cadena a los nodos que lo desean. Y más tarde ese año lanzamos MultiChain 2.0 Community con Filtros inteligentes, permitiendo que el código JavaScript personalizado realice una validación arbitraria de los elementos de la secuencia.

Durante 2019, nuestro enfoque se centró en MultiChain 2.0 Enterprise, la versión comercial de MultiChain para clientes más grandes. El primero Demostración empresarial aprovechó los datos fuera de la cadena en flujos para permitir permisos de lectura, entrega de datos encriptados y la recuperación selectiva y purga de elementos individuales. Como siempre, la complejidad subyacente se oculta detrás de un conjunto simple de API relacionadas con permisos y elementos de transmisión. Con las transmisiones, nuestro objetivo ha sido consistentemente ayudar a los desarrolladores a centrarse en los datos de sus aplicaciones y no preocuparse por la cadena de bloques que se ejecuta detrás de escena.

El dilema de la base de datos

A medida que las transmisiones de MultiChain han seguido evolucionando, nos enfrentamos a un dilema constante. Para leer y analizar los datos en una secuencia, ¿debería MultiChain seguir el camino de convertirse en una base de datos completa? ¿Debería ofrecer indexación de campo JSON, consultas optimizadas e informes avanzados? Si es así, ¿qué paradigma de base de datos debería usar: relacional (como MySQL o SQL Server), NoSQL (MongoDB o Cassandra), búsqueda (Elastic o Solr), series temporales (InfluxDB) o en memoria (SAP HANA)? Después de todo, hay casos de uso de blockchain adecuados para cada uno de esos enfoques.

Una opción que consideramos es usar una base de datos externa como el almacén de datos primario de MultiChain, en lugar de la combinación actual de LevelDB incrustado y archivos binarios. Esta estrategia fue adoptada por Núcleo de cadena (interrumpido), cadena de correos (aún no es público) y está disponible como una opción en tela Hyperledger. Pero finalmente decidimos no usar este enfoque, debido a los riesgos de depender de un proceso externo. Realmente no desea que su nodo blockchain se congele porque perdió su conexión de base de datos o porque alguien está ejecutando una consulta compleja en su almacén de datos.

Otro factor a considerar es el agnosticismo tecnológico y de integración. En una red blockchain que abarca múltiples organizaciones, cada participante tendrá sus propias preferencias con respecto a la tecnología de bases de datos. Ya tendrán aplicaciones, herramientas y flujos de trabajo integrados en las plataformas que se adapten a sus necesidades. Entonces, al elegir cualquier base de datos en particular, o incluso al ofrecer algunas opciones, terminaríamos haciendo que algunos usuarios estén descontentos. Del mismo modo que cada participante de blockchain puede ejecutar su nodo en una amplia variedad de sabores de Linux, deberían poder integrarse con su base de datos de elección.

Presentando Feeds MultiChain

Hoy estamos encantados de lanzar nuestro enfoque para la integración de bases de datos: MultiChain Feeds. Un feed es un registro binario en disco en tiempo real de los eventos relacionados con una o más secuencias de blockchain, para leer por procesos externos. También estamos ofreciendo el código abierto Adaptador de alimentación multicadena que puede leer un feed y replicar automáticamente su contenido en una base de datos Postgres, MySQL o MongoDB (o varias a la vez). El adaptador está escrito en Python y tiene una licencia liberal, por lo que puede modificarse fácilmente para admitir bases de datos adicionales o agregar filtros y transformación de datos. (También hemos documentado el formato de archivo de alimentación para aquellos que quieran escribir un analizador sintáctico en otro idioma)

Diagrama de Feeds MultiChain

Un nodo no necesita suscribirse a una secuencia para replicar sus eventos en una fuente. Esto permite que la indexación de flujo incorporada de MultiChain se omita por completo, para ahorrar tiempo y espacio en disco. Los feeds también reflejan la recuperación y purga de datos fuera de la cadena, y pueden informar sobre la llegada de nuevos bloques en la cadena. Para ahorrar espacio en el disco, puede controlar exactamente qué eventos se escriben en una fuente y qué campos se registran para cada uno de esos eventos. Además, los archivos de alimentación se rotan diariamente y hay un comando de purga simple para eliminar archivos después del procesamiento.

¿Por qué los feeds de MultiChain se escriben en el disco, en lugar de transmitirse entre procesos o a través de la red? Porque queremos que sirvan como un registro de replicación ultra confiable que sea resistente al tiempo de inactividad de la base de datos, fallas del sistema, pérdida de energía y similares. Al usar archivos de disco, podemos garantizar la durabilidad y permitir que la base de datos de destino se actualice de forma asincrónica. Si por alguna razón esta base de datos se sobrecarga o desconecta, MultiChain puede continuar funcionando sin interrupción, y la base de datos se pondrá al día una vez que las cosas vuelvan a la normalidad.

Comenzando con los feeds

Los feeds están integrados en la última versión demo / beta de MultiChain Enterprise, que es disponible para descarga ahora. Comience leyendo la documentación para el Adaptador de alimentación multicadenao revisando el API relacionadas con el feed. Nos encantaría escucha tus comentarios sobre esta característica y cómo podemos expandirla en el futuro.

Con el lanzamiento de los feeds, la versión 2.0 de MultiChain Enterprise ahora está completa: vea el Descarga e instala página para una comparación completa entre las ediciones Community y Enterprise. En los próximos meses, completaremos sus pruebas y optimización, y esperamos que esté listo para la producción a fines del primer trimestre. Mientras tanto, para obtener información sobre licencias o precios de MultiChain Enterprise, no dude en contáctanos.

Por favor publique cualquier comentario en Linkedin.

Fuente: https://www.multichain.com/blog/2020/02/multichain-feeds-for-database-integration/

Sello de tiempo:

Mas de Multicain