区块链(比特币)作为数据库?

Jam*_*ins 16 normalization database-design distributed-transactions

我正在阅读这篇 BBC 新闻文章和以下摘录,引起了我的注意。这听起来像是Always On Availability GroupsHigh Availability Mirroring,可能会自动包含安全性。

区块链是现代、高交易量应用程序的潜在可行数据库解决方案吗?

很容易看出它对个人医疗记录等小批量交易的价值,但是大批量数据库呢?

什么是区块链?

区块链依靠密码学来允许一组计算机在不需要中央参与者的情况下更改全局记录。

去除中间商可以降低几乎每个部门的成本。

区块链是一个分类帐,它按时间顺序或“链”记录一组称为“块”的数据所发生的一切。

作为一种货币,这是一项重要功能,因为它允许用户确保他们的数字货币是独一无二的,就像钱包中的每张纸币都是独一无二的一样。

“区块链技术将成为我们创造资产的方式,因为它允许你在不复制的情况下传输数字信息,”构建区块链网络的 Chain.com 的首席执行官 Adam Ludwin 说。

区块链可用于跟踪各种信息的历史并保持其价值,例如,医生可以使用它来更新医疗记录。

由于对区块链的每次更改都是在整个网络中同时进行的,因此不会丢失任何信息,并且由于更改无法撤消,系统保持其透明度。需要一个特殊的密钥来对每个块进行更改,因此个人可以通过保护该密钥来保证他们的记录安全。

Ali*_*ghi 16

我对加密货币和数据库非常熟悉,我可以告诉你它根本不是一个很棒的数据库引擎。

使用区块链作为实时数据库:

就区块链而言,将其视为第一个规范化形式,没有任何真正好的内置搜索功能或索引。基本上是一个没有任何计算功能的 Excel 表,它只是为您提供“读/写”功能,并进行大量验证和验证。区块链是一种很好的方式,可以在您将数据放入数据库之前验证您的数据是否经过清理和正确,这样您就可以以不同的方式对其进行查询、索引等。

区块链的好处:

在这种情况下,区块链纯粹是一个分类账和一个用于 PUT 和 GET 请求的 API。就是这样。区块链很有趣,因为您需要大多数节点才能将交易传递为有效且没有任何回滚,一旦提交就提交。因此,如果有人试图进行虚假交易,它将被抓住,除非这样做的人拥有一个拥有强大多数份额的池。然后他们可以在有人拒绝之前在他们的池中验证它。这就是区块链的强项。验证数据是否准确。它通常也很慢。您在正常负载下需要大约 10 分钟才能对其进行验证。在重负载下,时间会增加很多。

在您使用区块链验证交易有效且不具有欺诈性后,您可以将该数据导入数据库并随心所欲地使用它。我在这方面有一些经验,但请注意,当前比特币架构上的每一笔交易都将被记录下来,因此它有一些有趣的信息需要分析。

在 DBMS 中从区块链模式中查询数据:

这是您可以用来在 PostgreSQL 中创建架构的比特币图。使用它,您可以将其放入关系 DBMS:https : //bitcointalk.org/index.php?topic=38246 在此处输入图片说明

如果您想将数据导入真正的 RDBMS,此代码存储库也很有帮助:https : //github.com/bitcoin-abe/bitcoin-abe

至于你应该把它放在什么 DBMS 中,这取决于你的用例。如果您想分析交易/钱包 ID 以查看某些模式或进行 BI 工作,我会推荐关系数据库。如果您想使用多个加密货币设置实时摄取,我会推荐一些不需要事务日志的东西,因此 MongoDB 解决方案会很好。我不认为你需要担心 Elastic Search,除非你想同时开始对所有加密货币进行实时记录,并用它来进行自动交易或同样疯狂的事情。:)


ype*_*eᵀᴹ 15

区块链是现代、高交易量应用程序的潜在可行数据库解决方案吗?

区块链技术通常具有一些使其难以处理大容量的特性。

以比特币为例。每天的平均交易量从未超过 30 万:每天交易量(来源 blockchain.info)

在此处输入图片说明

更重要的是,交易的中位确认时间约为 8 分钟!:中位交易确认时间(仅收费)和来自Quandl的精美图片:

在此处输入图片说明

现在全世界有多少台计算机负责保管比特币数据库?我不是比特币专家,但我认为交易的完整历史存储在区块链中,因此所有参与比特币网络的计算机本质上都保留了整个数据库的副本(当然是交易部分,而不是账户信息)和秘密密钥,这些都保存在个人钱包中)。

我们只能估计它们有多少,但我猜它们超过一百万。一天内有 100 万台计算机的 30 万笔交易听起来并不高。8分钟确认?

一个体面的硬件中的现代 RDBMS 可以很容易地达到每秒 1000 个事务。这大约是每天 8600 万笔交易。确认时间?这取决于交易的大小(它影响多少表和行),但对于比特币类型的小交易(从账户 A 中移除 42 个硬币并向账户 B 添加 42 个硬币),它将是毫秒。

总之,今天的数量和时间差异是 1000 到 100000 倍。

如果区块链技术在未来解决了这个问题,它可能会被用于中等或大量的应用程序。我们可以阅读有关如何解决问题的讨论和建议——链接中提到的许多公司实际上都在解决这些问题——但我们还没有看到提供高容量和速度的实际可行的解决方案或产品。

  • 这篇文章 https://www.technologyreview.com/s/540921/the-looming-problem-that-c​​ould-kill-bitcoin/ 声称每秒有七笔交易的概念限制。 (2认同)

小智 8

2014 年,我们在使用比特币作为知识产权索赔数据库的前提下建立了 ascribe.io。发布时,我们插入了网络,因为它无法处理吞吐量,延迟至少 10 分钟,而且我们受到可以放入 OP_RETURN 的内容的限制,迫使我们将与索赔相关的实际数字文件存储在 Amazon S3 中. 我们意识到目前形式的比特币永远不可能成为一个高交易数据库。

但是我们是否可以拥有一个区块链风格的数据库——分散控制、不变性(抗篡改)和网络上的实时资产的想法一直困扰着我们。所以在 2014 年年中,我们开始研究 BigchainDB

长话短说 - 我们可以以 100 毫秒的延迟处理 100k tps 并拥有数 PB 的容量。代码是我们的 BigchainDB Github,这里的技术文档和我们白皮书中的基本思想。

如果您有一个高交易、去中心化数据库的用例 - 我们正是为此构建了 BigchainDB。