http://www.7klian.com

首发丨百度资深工程师孙君意:区块链和数据库有融合成长的契机

3、区块链和数据库有融合的契机,有一种是把区块链作为引擎接入到数据库中, 相当于从底层改革存储引擎实现去中心化的数据库。别的一个偏向,区块链警惕一下数据库好的对象,好比像SQL,将SQL语句翻译为智能合约代码。

(1). 数据的改观汗青需要透明、可审计的应用场景;

1. 数据的改观汗青需要透明、可审计的应用场景;

这里再举一个简朴的例子,照旧适才谁人”计数器”场景。假设Alice和Bob险些同时提倡合约挪用。合约执行到Get挪用,获得同样的值是 42, 版本也一样是tx1。然后加一计较获得43,再别离举办Set提交,Alice先提交的就可以将值更新到43,版本更新到tx3,而对付Bob,固然运算进程是对的,可是最终提交时候的版本已经逾期了,因为其依赖的版本便是tx1而此刻最新的版本是tx3,所以就会失败。

以下为孙君意的演讲整理:

网络局限越大,公信力越强,事实上人们也愿意为可信带来的溢价买单。一个简朴的例子,假如此刻在亚马逊的RDS存储1GB的数据,本钱或许是每月0.25美元,可是同样假如存在上,或许需要三万两千个ETH,有7200多个节点漫衍式地在全球存储其副本。区块链通过共鸣算法和智能合约,在实践层面真正实现了可信的数据打点,这是具有革命性的。

2、区块链合用的场景有三点:

2. 数据的处理惩罚进程需要凭据多方约定并公示后的法则来执行的场景;

由于要实现去中心化,区块链一般没有全局序号,而是通过显式的Reference干系表达事务之间的”顺序”。好比:中,生意业务的Input指向了其他生意业务,表达了一种”Happen Before”的语意,HyperLedger Fabric中,事务需要申明本身的”读写集”,个中,读集的版本是通过(区块高度, 块内序号)二元组引用。

上面的表格具体比拟了数据库&区块链在容错、选主方法、日志复制、安详和活性等方面的差别,而且区分了公链和同盟链。

我总结一下区块链合用的场景有三点:

在我们超等链内里的事务模子是XuperModel,它是基于经典的UTXO模子演化而来, 经典的UTXO模子只能描写转账场景,而XuperModel创新之处在于可以描写越发通用的数据改观。

孙君意:各人好,很兴奋各人可以或许介入我们的沙龙,抽出周末的名贵时间,本日主要给各人分享”区块链与数据库技能对等到融合展望”。

百度 区块链

最厥后做一下两者将来融合展望。我认为区块链和数据库有融合的契机,我写出来了两种大概,有一种是把区块链作为引擎接入到数据库中, 相当于从底层改革存储引擎实现去中心化的数据库。别的一个偏向,区块链警惕一下数据库好的对象,好比像SQL,将SQL语句翻译为智能合约代码。

别的一方面,许多人也看到区块链有许多的范围性,呈现了一些灰心的观点,好比认为区块链都是更慢的数据库,链式哈希不新鲜,Git中早就有了;绝大大都场景用数据库就够了, 不是刚需——Nice to Have , Not must have,可是我认为这种观点是错误的。

首先我们来思考一个问题,区块链和数据库在哪些维度上有共性,我本身有一个简朴的界说,我认为区块链和数据库都是数据打点技能,数据打点并不高妙,我们用一个Excel就可以举办。我们在项目实施进程中会被客户问到一个问题,为什么这个项目非得用区块链,因为区块链难以改动,好比说有暗码的支撑,较量利便实现多方共享。可是这些是不是足以说这个项目就可以用区块链,我认为假如在应用层做许多间接改革也可以实现大部门成果,可是个中有一部门很难实现,就是在参加打点数据的多方存在不信任的场景下,这种场景下是很难用传统数据库办理的。除非多方之间选出各人都公信的”牛耳”,让它来打点这个数据库,这个时候业务用数据库就可以做,不然的话是行不通的。

3. 数据的副本需要维护在多个不完全互信节点的场景。

1、区块链的革命性就是实现了可信的数据打点

我的演讲就到此竣事,感谢各人!

我认为区块链的革命性就是实现了可信的数据打点,为什么说可信,有两个方面,第一个是存储的可信;第二个是数据处理惩罚进程的可信。通过区块链的共鸣算法实现了在去中心的网络情况下成百上千个节点维护一致性的数据副本。而且,数据的改观都是果真透明和可审计的,每个节点城市验证,不管是暗码验证照旧合约执行功效的验证,城市在各个节点执行。

主持人:”百度资深工程师,今朝认真超等链的架构设计,对区块链的账本、事务模子有深入研究。在百度期间认真过万亿级网页链接库及时存储,Feed统一内容池、垂搜多版本数据库等项目,他本日带来主题分享《区块链与数据库技能对等到融合展望》感激君意。”

本次分享内容会从三个要害的技能维度去比拟:事务打点、共鸣算法和编程范式。从事务打点角度来看,区块链真的很慢吗?其实并不慢。为了机能,,大大都数据库的默认事务断绝级别较弱,而NUS最新研究表白:当Isolation Level配置为第一流别(SERIALIZABLE)环境下,主流漫衍式数据库的机能和HyperLedger Fabric是一个数量级的(400 TPS阁下),单一的这种场景下,传统数据库和区块链对比并没有机能上的绝对优势。

再一个,超等链底层的数据多版本机制实现也与数据库差异。 数据库的一般做法是将逻辑Key+版本号拼接成物理Key,可是这个方法只能保存有限个版本,一旦版本太多,就会导致区间查询迭代很慢,因为要Scan大量无用的老版本。超等链用了一种链式哈希的多版本接口,在状态树中Key对应的Value只是哈希指针,指向账本中事务的Output字段,要回溯之前的老版本也只需要通过事务的Input指针再往前回溯。当需要回滚事务或区块的时候,发生的IO开销也极低。

举个例子,这里有个”计数器”合约,挪用一次,Counter变量就会加一。从上图可以看到,每个事务的Input字段有个哈希指针指向其依赖的其他事务的Output。也就是说,事务的Input描写了它读取的变量的旧版本,而Output浮现了事务一旦乐成后会赋予变量的新值。图中,T2和T2’这两个事务是斗嘴的,因为他们的Input引用了沟通的变量的旧版本,可是输出是赋值同一个变量。最终,T2和T2’只能有一笔上链,别的一笔会回滚。

下面看一下编程范式比拟。数据库规模已经有统一的编程范式,就是SQL(Structured Query Language),详细实现上有一些方言的不同。区块链的编程范式是智能合约(Smart Contracts),然而其详细的实现千差万别,较量有影响力的是以太坊的Solidity语言。

(2). 数据的处理惩罚进程需要凭据多方约定并公示后的法则来执行的场景;

10月19日,百度超等链与金色财经在北京连系主办”与数据库的融合碰撞”技能沙龙,IBM、众享比特、conflux、covenantSQL等行业内相助同伴,共聚一堂,对各自在公链、同盟链等场景中的实际需求和履历,展开热烈的接头和分享。不只仅聚焦技能,话题还延展到了”在财富应用中碰着的坚苦与挑战”,为来自五湖四海的听众解读区块链与数据库的前世此生。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读