转载自 1分钟了解区块链的本质

区块链,比特币这些概念最近都很火,但很多人搞不清楚它究竟是啥,准备从技术的角度,从架构的角度,用通俗的语言谈谈楼主的理解。

究竟啥是区块链?

答:一句话,区块链是一个存储系统。

更细一点,区块链是一个没有管理员,每个节点都拥有全部数据的分布式存储系统。

通常所见的存储系统是啥样的?

答:如上图,一块空间存储数据,一个软件管理数据,提供接口写入数据,这是存储系统,例如mysql。

普通的存储系统会有什么常见的问题?

答:常见的有两个问题:

  • 数据存在一个地方很危险,空间损坏数据就丢了,用技术的话说即“数据不高可用”

  • 写入点只有一个,用技术的话说即“单点控制”

如何保证数据高可用?

答:解决高可用要“冗余”,如上图,如果能把数据冗余到多个地方,就能保证高可用,一个地方的数据挂了,另外的地方仍存有数据。例如mysql主从集群,以及磁盘的RAID都是这个原理。

这里需要强调两点:

  • 数据冗余往往会引发一致性问题,例如mysql主从集群中的读写延时问题

  • 数据冗余往往会降低写入效率,因为同步数据需要消耗额外的资源

画外音:更详细的,可阅读《互联网架构,如何保证高可用》。

可不可以多点写入?

答:可以。可以多个节点都实施写入,例如mysql双主集群,又或者多机房多活数据中心。这里要强调的是,多节点写入往往会引发写写冲突的一致性问题。

画外音:双主一致性,可阅读《mysql双主架构如何保证一致性》。

多点控制写入之后,其实出现了多中心控制,在数据不一致的时候,往往需要有一个算法来协商如何处理不一致数据。

例如,存在两个中心节点时,可以约定这样的算法来处理不一致:

  • 以时间戳最小的数据为准,即先来先得

又例如,存在多个中心节点时,可以约定这样的算法来处理不一致:

  • 投票,以多数票的数据为准

什么是区块链?

答:

  • 区块是一块存储空间,可以存储数据

  • 区块链不但像链表一样把区块串起来,还有约定了一系列的方法管理这些数据,所以它是存储系统

  • 区块链有很多节点,每个节点都保存了全部的数据,所以它是高可用的

  • 每一个中心节点都可以生成区块,并写入数据,所以每一个点都是中心节点,或者说区块链是去中心化的,要想控制整个系统,必须控制一半以上的节点,才能控制投票,于是这个系统没有管理员

综上,区块链实际上是一个没有管理员的,去中心化的,每个节点都拥有全部数据的分布式存储系统。只要你愿意,你随时可以成为区块链中的一个节点,并参与区块的生成与写入,比特币就是基于这个分布式存储上的电子货币。

由于节点很多,很多数据需要同步,这个系统的存储容量其实不大,目前全球存储比特币的区块链也就100多G。

画外音:额,有朋友说他们公司的mysql数据库轻轻松松几百G。

因为节点很多,数据需要保持一致,这个系统的写入效率也很低,存储比特币的区块链每10分钟才生成1个区块,1个区块只有1M的存储空间,只够写入2000笔比特币交易的数据。

画外音:比特币全球交易,每10分钟只能处理2000笔交易。有朋友说他们公司自研的存储系统轻轻松松;每秒处理交易10W笔。

关于区块链,本文只说了概念,作为一个存储系统,数据的生成,写入,管理,数据一致性,数据冲突处理方法,数据完整性保证…很多细节未来再用“通俗技术性文字”和大家分享。

希望这一分钟,大家了解了区块链的本质。

1分钟了解区块链的本质相关推荐

  1. 1分钟了解“区块链分叉”的本质

    转载自 1分钟了解"区块链分叉"的本质 有不少朋友问,全球每个区块链节点都包含全部数据,都在最新的区块链数据上挖符合条件的区块,如何两个节点同时挖到新区块,出现数据不一致,该怎么办 ...

  2. 5分钟学会区块链 - 开发一条区块链 Develop BlockChain with Tendermint

    本文攻略:解惑区块链开发,学习 Tendermint,给自己造一条区块链 建议玩家等级:技术小白,学生党,初级码农 阅读此文先解锁技能: 一点点命令行基础 一点点 GO 基础:三天包学会 一点点区块链 ...

  3. 常用的数据结构_三分钟了解区块链常用数据结构「默克尔树」

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 来源:万向区块链 原文标题:三分钟了解区块链常用数据结构「默克尔树」 默克尔树是 ...

  4. 解析:区块链的本质是伴随信息社会产生的一种新型生产关系

    最近看了不少关于区块链本质的讨论,大家对区块链本质的理解仁者见仁智者见智.有的说区块链的本质是个不可篡改的数据库,有的说就是个分布式账本,还有的说是制造信任的机器.这些论述都是从区块链的技术特质去理解 ...

  5. 视频| 什么是区块链,本质、意义和发展 8月22日(本周三)晚8点, 微信群在线讲座---区块链存储(下)...

    [编者按] 封面如下图是,早在2001年(甚至比云计算还要早6年!),就有团队开启构建跨越全球的存储池.向他们致敬. 上周三,由日知录主办,我主讲的<区块链存储 (上) - 什么是区块链,本质. ...

  6. 3分钟把区块链的技术与应用彻底讲清楚

    作为互联网新名词中的重要词汇--区块链,许多人似乎似懂非懂,本文的描述,是看到的版本中最容易懂的,特此推荐给各位

  7. 1分钟实现区块链与电子货币

    近期"区块链"的概念异常火爆,借助区块链技术,以比特币为首的各种虚拟货币越来越多,但区块链技术的应用绝不仅限于虚拟货币,而是可以应用到各大行业. 区块链技术蓬勃发展,可大多数同学对 ...

  8. 10分钟了解区块链编程

    谈起这几年最热的技术,一定少不了区块链.按说新技术的出现本是稀松平常的事情,但区块链的出现和发展,却有那么一点让人不淡定: 其一,区块链的代表应用比特币,其价格在这七八年间翻了上百万倍.2010年有人 ...

  9. 区块链的本质是什么?看完这篇秒懂!

    文章转载自华章计算机,前方高能区块链知识普及,文末有热书推荐!!! ☞ 区块链技术是指一种全民参与记账的方式.所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本.目前是各自记各自的账. ...

最新文章

  1. linux curl https报错: curl: (35) SSL connect error
  2. 实现不同vlan间PC不可互访,而不同vlan的PC均可访问服务器的特殊效果,(华为)...
  3. 大数据2 Hadoop伪分布模式配置部署
  4. cd返回上一 git_git统计代码量脚本
  5. Genymotion 下载一直失败的解决办法
  6. Foxmail新建自动标签功能在哪 如何给Foxmail收件人邮件设置自动标签
  7. Netflix正在搞的混沌工程到底是什么?终于有人讲明白了
  8. 面试官邪魅一笑:MySQL千万级别大表,你要如何优化?
  9. java中的让步_java基本教程之线程让步 java多线程教程
  10. three.js两个点给线条加宽度_2020湘乡线条立体逼真方兴装饰诚信服务
  11. JavaFX Scene Builder支持JxBrowser
  12. jmu-python-涨工资
  13. 【人工大猩猩部队优化算法】基于人工大猩猩部队优化算法求解单目标优化问题(GTO)含Matlab源码
  14. hdu6638 Snowy Smile 离散 扫描线 线段树
  15. Python多线程、多进程最全整理
  16. bazel 构建问题总结
  17. 网易七鱼的使用(web代码接入)
  18. 害怕国内那林林总总的浏览器
  19. ShardingSphere学习(超详细)
  20. .net4.7.2在win7安装失败

热门文章

  1. C++vector容器-容量和大小
  2. linux查找应用主机,Linux 主机和服务器基本性能检查命令和工具
  3. android 运行在ui县城,Android基础:在UI线程中运行代码
  4. 统计学习笔记(1) 监督学习概论(1)
  5. 与Min_25筛有关的一些模板
  6. 2021 ccpc 哈尔滨 G. Damaged Bicycle 状压 + 期望dp
  7. Codeforces Round #740 (Div. 2) F. Top-Notch Insertions 线段树 / 平衡树 + 组合数学
  8. Inverse Pair
  9. JavaWeb --第一章Web基本概念
  10. 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】