你不需要区块链,你需要一个时间序列数据库

2020-10-22 09:35:32

近年来,区块链在企业应用程序中的使用激增--事实上,IBM X-Force Red曾表示,“组织正从使用区块链中看到真正的效率和成本节约”。有远见的企业可以选择R3的Corda、Consensys的Quorum,甚至Hyperledger(由Linux基金会托管)来支持他们的应用程序。从理论上讲,这样的区块链将提供从房地产到金融服务,从医疗保健到供应链管理的跨行业支持。然而,现实是不同的;根据HFS Research的数据,到目前为止,只有大约14%的POC能够投入生产。

这就引出了一个重要的问题:您的应用程序真的需要企业区块链吗?

在QuestDB,在致力于区块链和数据库技术的职业生涯之后,我们认为对于许多应用程序来说,你真正需要的是一个高性能的时序数据库。但在我们论证我们的案例之前,让我们先快速提醒一下区块链是什么,以及公有区块链-如比特币-与私有、封闭、企业区块链的区别。

首先,区块链是一个存储信息的数据库。“比特币区块链”被广泛吹捧为一项革命性的技术,因为它引入了完全去中心化的共识机制,绕过了中介机构。例如,可以在参与者之间验证金融交易,而无需求助于独立的第三方。这是一个任何人都可以参与的网络,它将决定交易是否有效。一旦验证,该事务将被添加到新的事务块中。然后,每个新的区块都将被添加到区块链中。这优雅地解决了同一种数字货币可以多次消费的“双重消费”问题。这个网络是所谓的无许可的,因为任何人都可以参与并开始验证交易。公共的、未经许可的区块链在去中心化方面提供了新的视角。

对所有人开放的点对点框架可能对数字货币具有革命性意义,但不太适合企业需求,例如,可能包括不想向公众披露敏感记录,以及只允许少数可信用户进行审批。进入私有区块链的世界,这是允许的,这意味着只有选定数量的用户可以批准交易,并且还提供了一套围绕交易可见性、治理等方面的特定规则。

大多数企业应用程序从一开始就不需要分散化,最好由具有单点真实点的集中式数据库提供服务。

区块链形式的去中心化对企业来说是有重大权衡的。区块链的主要缺点是缺乏可扩展性。支撑部分企业区块链的以太区块链平均每秒只能处理15笔交易。这与企业需求相去甚远-单个数据库每秒可能会吞噬数百万个数据点。第二个挑战是,区块链依赖资源密集型共识机制,导致更多的处理开销和更高的能耗。

事实证明,一种被称为时序(“TSDB”)的专门类型的数据库与企业区块链共享许多属性。

以时间为主轴:区块以固定的时间间隔添加到区块链中。对于每个数据块,都有一个关联的时间戳。对时间序列数据库进行了优化,以高效地接收和检索与时间戳关联的数据点。想想股票价格每一微秒都在变化。

不可变性:区块一旦添加到区块链中,就无法更改。在数据库领域,这类似于“插入”,不能“删除”或“更新”。不需要更新记录,只需附加最新的记录,这实际上将成为最新的读数。时间序列数据库通常是仅附加的,并且共享这些特征。

长256格式:这是加密公有地址的格式。在QuestDB,我们构建了一种比字符串更好的数据类型,可以高效地读写长256个区块链地址。

因此,人们可以使用TSDB来重播按时间排序的所有单个事务的完整历史;这就是区块链节点的工作方式。其他相似之处包括:

数据复制:区块链中的每个节点都拥有整个交易历史。如果一个节点被攻破,我们将依靠其他节点提供完整的历史记录。同样,这个概念在传统数据库中已经生效了几十年:如果一个数据库出现故障,我们可能需要另一个数据库作为备份。

共识:区块链将有多方(即节点)就特定交易达成一致。传统数据库中有类似于投票机制的协商一致算法,如RAFT和Paxos。

分片:不是让所有节点计算所有操作来验证事务和执行智能合约,而是将节点分配为只处理某些计算。数据库分片将大型数据库分解为较小的块(称为碎片),以促进跨多个服务器的水平扩展。

区块链功能的其他方面可以在应用程序中处理。例如,私人分类账允许数据被不同的各方共享和查看,这些各方由于软件的规则而不需要相互信任-这可能是一家银行和监管机构共享对客户交易数据的数据访问。我认为这种数据访问可以通过位于数据库层之上的业务逻辑层来完成,以便向外部各方提供数据。

对于政府无法影响的数字货币等抗审查使用案例,有比特币等未经公开许可的区块链。大多数企业应用程序从一开始就不需要分散化,最好由具有单点真实点的集中式数据库提供服务。如果时间是您的主轴,那么时间序列数据库是您最好的选择。