Estaba leyendo este artículo de BBC News y el siguiente extracto me llamó la atención. Suena como Grupos de disponibilidad siempre activados o Reflejo de alta disponibilidad, tal vez con seguridad incluida automáticamente.
¿Blockchain es una solución de base de datos potencialmente viable para aplicaciones modernas de alto volumen de transacciones?
Es bastante fácil ver su valor para transacciones de bajo volumen como registros médicos personales, pero ¿qué pasa con las bases de datos de alto volumen?
¿Qué es blockchain?
Las cadenas de bloques dependen de la criptografía para permitir que un conjunto de computadoras realice cambios en un registro global sin necesidad de un actor central.
Eliminar al intermediario reduce los costos en casi todos los sectores.
La cadena de bloques es un libro mayor que registra todo lo que sucede a una colección de datos conocida como "bloque" en un orden cronológico o "cadena".
Como moneda, esta es una característica importante porque permite a los usuarios asegurarse de que su dinero digital sea único, de la misma manera que cada nota en su billetera es única.
"La tecnología Blockchain será la forma en que creamos activos porque le permite transferir información digital sin copiar", dice Adam Ludwin, director ejecutivo de Chain.com, que construye redes blockchain.
Blockchain se puede usar para rastrear el historial de todo tipo de información y mantener su valor, por lo que, por ejemplo, los médicos podrían usarlo para actualizar los registros médicos.
Dado que cada cambio en una cadena de bloques se realiza simultáneamente en toda la red, no se pierde información y debido a que los cambios no se pueden deshacer, el sistema mantiene su transparencia. Se necesita una clave especial para realizar cambios en cada bloque, de modo que las personas puedan mantener sus registros seguros al proteger esa clave.
fuente
Estoy muy familiarizado con la criptomoneda y las bases de datos, y puedo decirte que no es un gran motor de base de datos.
Usando el blockchain como una base de datos en vivo:
Piense en ello como una primera forma normalizada sin ninguna capacidad de búsqueda o indexación realmente buena en lo que respecta a la cadena de bloques. Básicamente, una hoja de Excel sin ninguna capacidad de cálculo que solo le brinda capacidades de 'lectura / escritura' con mucha verificación y validación. Un blockchain es una excelente manera de validar que sus datos se desinfectan y corrigen antes de colocarlos en una base de datos que le permite consultarlos de manera diferente, indexarlos, etc.
Beneficios de la cadena de bloques:
La cadena de bloques en este caso es puramente un libro mayor y una API para solicitudes PUT y GET. Eso es todo. La cadena de bloques es interesante porque necesita una mayoría de nodos para pasar la transacción como válida y no hay retrocesos, una vez que se confirma, se confirma. Por lo tanto, si alguien intenta realizar una transacción falsa, será atrapado a menos que la persona que lo haga tenga un grupo que tenga una fuerte participación mayoritaria. Luego pueden validarlo en su grupo antes de que alguien pueda rechazarlo. Ese es el punto fuerte de la cadena de bloques. Verificación de que los datos son precisos. También suele ser bastante lento. Estás viendo unos 10 minutos bajo carga normal para que se valide. Bajo una carga pesada, el tiempo sube bastante.
Después de validar que las transacciones son válidas y no fraudulentas utilizando blockchain, puede importar esos datos a una base de datos y trabajar con ellos como desee. Tengo algo de experiencia con esto, pero tenga en cuenta que cada transacción en la arquitectura actual de bitcoin se registrará, por lo que tiene información interesante para analizar.
Consulta de datos fuera del esquema de blockchain en un DBMS:
Aquí está el diagrama de bitcoin que puede usar para crear el esquema en PostgreSQL. Con esto, puede colocarlo en un DBMS relacional: https://bitcointalk.org/index.php?topic=38246
Este repositorio de código también es útil si desea importar los datos en un RDBMS real: https://github.com/bitcoin-abe/bitcoin-abe
En cuanto a qué DBMS debe poner, depende de su caso de uso. Si desea analizar las transacciones / ID de billetera para ver algunos patrones o hacer un trabajo de BI, recomendaría una base de datos relacional. Si desea configurar una ingesta en vivo con múltiples criptomonedas, recomendaría algo que no necesita el registro de transacciones, por lo que una solución MongoDB sería buena. No creo que deba preocuparse por Elastic Search a menos que quiera comenzar a grabar en vivo todas las criptomonedas al mismo tiempo y lo usará para realizar operaciones automáticas o algo igualmente loco. :)
fuente
En 2014 creamos ascribe.io con la premisa de usar Bitcoin como base de datos para reclamos de Propiedad Intelectual. Tras el lanzamiento, conectamos la red porque no podía manejar el rendimiento, la latencia fue de al menos 10 minutos y estábamos limitados por lo que podíamos poner en OP_RETURN, lo que nos obligó a almacenar el archivo digital real relacionado con el reclamo en Amazon S3 . Nos dimos cuenta de que Bitcoin en su forma actual nunca podría ser una base de datos de transacciones altas.
Pero la idea de si podríamos tener una base de datos de estilo blockchain: control descentralizado, inmutabilidad (resistencia a la manipulación) y activos activos en la red se quedó con nosotros. Entonces, a mediados de 2014, comenzamos a trabajar en BigchainDB
En pocas palabras: podemos procesar 100k tps con una latencia de 100mS y tener petabytes de capacidad. El código es nuestro BigchainDB Github, la documentación técnica aquí y el pensamiento fundamental en nuestro documento técnico .
Si tiene un caso de uso para una base de datos descentralizada de alta transacción, creamos BigchainDB exactamente para esto.
fuente
Blockchain derivado de Bitcoin es lento y costoso; La cantidad de datos que se pueden almacenar en un bloque es muy modesta. Los mecanismos detrás de blockchains (distribuir libros de contabilidad) están destinados a proporcionar un almacén de datos incorruptible y altamente replicado; De igual a igual es menos una característica esencial que un "requisito político" para evitar la apariencia de control central. He estado trabajando durante unos 18 meses para producir un libro mayor distribuido de alto rendimiento (consulte metrognomo.com para una instanciación) que toma la menor cantidad posible de Bitcoin. Al final, sin embargo, un libro mayor distribuido se parece bastante a un archivo secuencial que se puede agregar pero no editar después de la adición. Esto es algo valioso para algunas aplicaciones, pero no es lo que la mayoría de la gente piensa como una base de datos.
fuente