内容简介:本文来源于“Ultrain联合创始人&CTO 李宁"什么是区块链?什么是分布式数据库?相信很多人容易混淆这两个概念。表面上看,区块链和分布式数据库在基础技术方面有很多相似的地方,但也仅仅只是相似而已,接下来,我们将从本质区别、核心价值和存储技术三个方面来探讨二者的不同。一致性的核心共识算法和冗余的数据存储是二者最为相似的一点,即便如此,二者在技术目的上仍存在本质区别。其中,区块链使用这些技术的核心目的在于构建一个尽可能去中心的、数据资产所有权永久保护和自由转让的世界;而分布式数据库核心目的则是尽可能构建一
本文来源于“Ultrain联合创始人&CTO 李宁"
什么是区块链?什么是分布式数据库?相信很多人容易混淆这两个概念。表面上看,区块链和分布式数据库在基础技术方面有很多相似的地方,但也仅仅只是相似而已,接下来,我们将从本质区别、核心价值和存储技术三个方面来探讨二者的不同。
一、区块链和分布式数据库的本质区别
1、一致性的核心共识算法和冗余的数据存储:
一致性的核心共识算法和冗余的数据存储是二者最为相似的一点,即便如此,二者在技术目的上仍存在本质区别。其中,区块链使用这些技术的核心目的在于构建一个尽可能去中心的、数据资产所有权永久保护和自由转让的世界;而分布式数据库核心目的则是尽可能构建一个逻辑中心,这个中心能对外提供高性能、低成本以及扩展性好的服务。
2、不可能三角:
二者都需要面对不可能三角的挑战,但二者所需要面对的具体挑战有本质的区别:其中区块链面对的是安全、去中心化和可扩展性;而分布式数据库面对的是对业务的支持度、工程实现复杂度和硬件要求。
3、一致性:
一致性在区块链和分布式数据库上对应的意义也不同:区块链系统中的一致性指的是多节点对数据状态的共同维护能力;而分布式数据库系统中的一致性指的是多个副本对外呈现的状态。
4、共识算法安全级别的不同
区块链系统解决的是拜占庭错误,主流算法有POW/POS(概率算法)和PBFT(确定性算法)。其中,POW/POS概率类算法的共识结果则是临时的,随着时间推移或某种强化,共识结果被推翻的概率越来越小,最终成为事实上结果。拜占庭类容错算法往往性能较差,无法容忍超过 1/3 的故障节点;而PBFT确定性算法一旦达成共识就不可逆转,即共识是最终结果。分布式数据库系统解决的是非拜占庭错误或故障错误,主流算法有Paxos和Raft,这类容错算法往往性能比较好,处理较快,容忍不超过1/2的故障节点。
二、从核心价值探究区块链和分布式数据库
1,区块链的核心价值
区块链的核心价值不是对外提供服务而是构建自己的数据资产世界,区块链世界更新的是状态,存储的是可追溯日志,主要数据结构分为两类:交易和区块。具体体现如下:
交易用于外部世界驱动区块链世界状态的更新,它又包含两类数据:交易输入和交易输出,交易输入指明了交易的数据资产来源,交易输出指明了数据资产的去向。
区块用于存储交易数据,主要由区块头和区块体两部分组成,区块头中记录了版本号、上一个区块的Hash地址、merkle根、区块创建时间戳、区块的工作量难度目标以及用于计算目标的参数值,区块体包含交易数量和完整的交易数据。
2,分布式数据库核心价值
分布式数据库核心价值是对业务系统提供数据存取服务,其中业务数据库是面向操作的,主要服务于业务产品和开发;而数据仓库是面向分析的,主要服务于分析人员。
三、从存储技术的角度解开区块链和分布式数据库的面纱
1,区块链
2008比特币到区块链3.0,区块链最基础的存储技术没太多的变化,下面我就举个比特币的存储原理的例子。
Bitcoin/blocks/文件夹下形如图1中的blk00000.dat的文件为区块数据存储的文件,每个文件128M左右,此文件夹下存储了所有的区块数据。
图1
Bitcoin/blocks/index/文件夹下存储了所有区块的索引数据,采用的leveldb格式的键/值对数据库。
图2
每个区块最大是2M,区块数据存储在区块文件中(如图1中blk00000. dat),区块与区块之间利用“魔术数”分隔(如图3中的0xF9BEB4D9),一个文件可以存储多个区块数据,文件也有最大限制,大于128M左右就会重新创建一个文件(如blk00001.dat)。
图3
2,分布式数据库
分布式数据库从2005年左右开始,首先是NoSQL这波浪潮。这些数据库解决的首要问题是单机上无法保存全部数据,如HBase/Cassadra/MongoDB等。紧接着是RDMS的救赎,除了NoSQL之外,RDMS系统也做了不少努力来适应业务的变化,也就是关系型数据库的中间件和 分库分表 方案。然后是NewSQL的发展,2012~2013年Google 相继发表了Spanner和F1两套系统的论文,让业界第一次看到了关系模型和NoSQL的扩展性在一个大规模生产系统上融合的可能性。
接上一篇区块链技术进化论,本篇从区块链和分布式本质区别,来进步剖析出区块链网络独特的核心价值,接下来将讲述为什么智能合约是构建区块链世界的核能,而不是对外提供服务的接口层,以及前面提到一系列区块链技术类和价值应用场景,希望让更多真正了解区块链并参与到区块链中,让区块链技术早日大规模赋能实体经济。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 中英区块链协会会长:区块链——一种具有分布式特性的“共票”理论
- 区块链和分布式账本技术
- 区块链是分布式数据存储?
- 区块链技术入门 | 分布式哈希表(上篇)
- 区块链与分布式账本技术的区别
- 刘大鸿:移动区块链技术构建分布式商业
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C程序设计语言
Brian W. Kernighan、Dennis M. Ritchie / 机械工业出版社 / 2006-8-1 / 35.00元
在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书是C语言的设计者之一Dennis M.Ritchie和著名计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。本书第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引......一起来看看 《C程序设计语言》 这本书的介绍吧!