Eu estava lendo este artigo da BBC News e o seguinte trecho chamou minha atenção. Parece grupos de disponibilidade sempre ativa ou espelhamento de alta disponibilidade, talvez com a segurança incluída automaticamente.
O blockchain é uma solução de banco de dados potencialmente viável para aplicativos modernos e de alto volume de transações?
É muito fácil perceber o valor de transações de baixo volume, como registros médicos pessoais, mas e os bancos de dados de alto volume?
O que é blockchain?
As cadeias de bloco dependem da criptografia para permitir que um conjunto de computadores faça alterações em um registro global sem precisar de um ator central.
A remoção do intermediário reduz custos em quase todos os setores.
A blockchain é um livro que registra tudo o que acontece com uma coleção de dados conhecida como "bloco" em uma ordem cronológica ou "cadeia".
Como moeda, esse é um recurso importante, pois permite que os usuários tenham certeza de que seu dinheiro digital é único, da mesma forma que cada nota em sua carteira é única.
"A tecnologia Blockchain será a maneira como criamos ativos porque permite transferir informações digitais sem copiar", diz Adam Ludwin, executivo-chefe da Chain.com, que cria redes de blockchain.
O Blockchain pode ser usado para rastrear o histórico de todos os tipos de informações e manter seu valor, portanto, por exemplo, os médicos poderiam usá-lo para atualizar os registros médicos.
Como cada alteração em uma blockchain é feita simultaneamente em toda a rede, nenhuma informação é perdida e, como as alterações não podem ser desfeitas, o sistema mantém sua transparência. É necessária uma chave especial para fazer alterações em cada bloco, para que os indivíduos possam manter seus registros seguros, protegendo essa chave.
fonte
Estou muito familiarizado com criptomoeda e bancos de dados e posso dizer que não é um ótimo mecanismo de banco de dados.
Usando o blockchain como um banco de dados ativo:
Pense nisso como uma primeira forma normalizada sem qualquer capacidade de pesquisa ou indexação realmente boa, tanto quanto o blockchain. Basicamente, uma planilha do Excel sem recursos de computação que fornece apenas recursos de 'leitura / gravação' com muita verificação e validação. Um blockchain é uma ótima maneira de validar que seus dados sejam higienizados e corretos antes de colocá-los em um banco de dados que permite consultá-lo de maneira diferente, indexá-lo etc.
Benefícios da blockchain:
O blockchain, nesse caso, é puramente um razão e uma API para solicitações PUT e GET. É sobre isso. O blockchain é interessante porque você precisa da maioria dos nós para passar a transação como válida e não há reversões, uma vez confirmadas, confirmadas. Portanto, se alguém tentar fazer uma transação falsa, ela será capturada, a menos que a pessoa que a tenha tenha um pool com uma participação majoritária forte. Em seguida, eles podem validá-lo em seu pool antes que alguém possa rejeitá-lo. Esse é o ponto forte da blockchain. Verificação de que os dados estão corretos. Também é tipicamente bem lento. Você está olhando cerca de 10 minutos sob carga normal para que seja validado. Sob carga pesada, o tempo sobe bastante.
Depois de validar que as transações são válidas e não fraudulentas usando o blockchain, você pode importar esses dados para um banco de dados e trabalhar com eles da maneira que desejar. Eu tenho alguma experiência com isso, mas observe que todas as transações na arquitetura atual do bitcoin serão registradas, portanto, há algumas informações interessantes para analisar.
Consultando dados fora do esquema blockchain em um DBMS:
Aqui está o diagrama de bitcoin que você pode usar para criar o esquema no PostgreSQL. Usando isso, você pode colocá-lo em um DBMS relacional: https://bitcointalk.org/index.php?topic=38246
Esse repositório de código também é útil se você deseja importar os dados para um RDBMS real: https://github.com/bitcoin-abe/bitcoin-abe
Quanto ao DBMS em que você deve inseri-lo, isso depende do seu caso de uso. Se você deseja analisar os IDs de transações / carteira para ver alguns padrões ou o trabalho de BI, eu recomendaria um banco de dados relacional. Se você deseja configurar uma ingestão ao vivo com várias criptomoedas, recomendo algo que não precise do log de transações, para que uma solução MongoDB seja boa. Eu não acho que você precise se preocupar com o Elastic Search, a menos que queira começar a gravar ao vivo de todas as criptomoedas ao mesmo tempo e usá-lo para fazer transações automáticas ou algo igualmente louco. :)
fonte
Em 2014, criamos o ascribe.io com a premissa de usar o Bitcoin como um banco de dados para reivindicações de propriedade intelectual. No lançamento, conectamos a rede porque ela não suportava a taxa de transferência, a latência era de pelo menos 10 minutos e estávamos limitados pelo que poderíamos colocar no OP_RETURN, forçando-nos a armazenar o arquivo digital real relacionado à reivindicação no Amazon S3 . Percebemos que o Bitcoin em sua forma atual nunca poderia ser um banco de dados de transações alto.
Mas a ideia de podermos ter um banco de dados no estilo blockchain - controle descentralizado, imutabilidade (resistência a violações) e ativos ativos na rede ficou conosco. Então, em meados de 2014, começamos a trabalhar no BigchainDB
Para encurtar a história - podemos processar 100k tps com 100mS de latência e ter petabytes de capacidade. O código é nosso BigchainDB Github, documentação técnica aqui e o pensamento fundamental em nosso whitepaper .
Se você tem um caso de uso para um banco de dados descentralizado e com alta transação - criamos o BigchainDB exatamente para isso.
fonte
Blockchain derivado do Bitcoin é lento e caro; a quantidade de dados que podem ser armazenados em um bloco é muito modesta. Os mecanismos por trás das blockchains (distribuir ledgers) destinam-se a fornecer um armazenamento de dados incorruptível e altamente replicado; ponto a ponto é menos uma característica essencial do que um "requisito político" para evitar a aparência de controle central. Trabalho há 18 meses para produzir um livro distribuído de alto desempenho (veja metrognomo.com por uma instanciação) que utiliza o mínimo possível de Bitcoin. No final, porém, um livro distribuído se parece muito com um arquivo seqüencial que pode ser adicionado, mas não editado, após a adição. Isso é algo valioso para alguns aplicativos, mas não o que a maioria das pessoas pensa como um banco de dados.
fonte