摘要

通过我前几篇区块链知识的介绍,我们知道区块链系统实际上就是一个维护公共数据账本的系统,一切的技术单元的设计都是为了更好地维护好这个公共账本。通过共识算法达成节点的账本的数据一致;通过密码算法确保账本数据的不可篡改性以及数据发送的安全性;通过脚本系统扩展账本数据的表达范畴。我们甚至可以认为去区块链系统实际上就是特别设计的数据库系统或者分布式数据库系统,在这个数据库可以存储数字货币,也可以存储更复杂的智能合约,以及范围更加广阔的各种业务数据。在区块链的发展历程中,也经历了一个这样的阶段,从比特币开始,早期的区块链系统都是面向数字货币的,比如比特币、莱特币。这个阶段我们可以认为区块链系统是一个支持数字货币合约的系统。之后出现了更灵活地,能够支持自定义智能合约的系统,其代表作就是以太坊,可以认为以太坊就是对比特币这样数字货币系统的扩展,不过以太坊仍然内置了对数字货币的支持,延续了比特币系统的金融特征,也使得以太坊的应用更多的是面向金融范畴,再之后就是代表就是超级账本项目,尤其是其中的Fabric子项目,在这个系统中,超越了对金融范畴的应用,支持哥哥领域的数据定义。我们分别将这个三个阶段成为区块链系的1.0、2.0、3.0结构时期。为了让大家让大家对发展过程中的区块链系统有一个整体的概念,在本文中,我将描述一下区块链系统的架构,并在不同角度对区块链系统进行分类。

区块链架构

1.区块链1.0架构

如摘要中所说的,这个阶段的区块链系统主要是用来实现数字货币的,我们可以先看看示意图

如图所示,在整个结构中,分为核心节点和前端工具,这里我要提一下核心节点中的“矿工”功能。在矿工的1.0系统中,主要承担两个任务:

第一个是通过竞争获得区块数据的打包权后将内存池(发送在网络中但是还没有确认进区块的交易数据,属于待确认交易数据)中的交易数据打包进区块,并且广播给其他节点;

第二个是接受系统对打包行为的数字货币奖励,从而系统通过这种奖励机制完成新货币的发行。

在前端工具中,最明显的就是钱包工具,钱包工具是提供给用户管理自己账户地址以及余额的;浏览器是用来查看区块链网络中发生的数据情况,比如最新的区块高度,内存池的交易数、单位时间的网络处理能力等;PRC客户端和命令行接口都是用来访问节点的功能的,在这个时候,核心节点就相当于一个服务器,通过PRC服务提供功能调用接口。

2.区块链2.0架构

在区块链2.0架构的代表产品是以太坊,因此我们可以套用以太坊的架构来说明,先来看看示意图:

与1.0的架构相比,最大的特点就是支持智能合约,在以太坊中,我们使用智能合约开发工具开发合约程序,并且编译为字节码,最终部署到以太坊的区块链账本中。部署后的智能合约是运行在虚拟机上的,成为“以太坊虚拟机”。正式通过这样的智能合约的实现,扩展了区块链系统的功能,同时我们也看到,在以太坊中还是支持数字货币的,因此在应用工具中还是有钱包工具的。

3.区块链3.0架构

在3.0的架构中,超越了对数字货币或者金融的应用范畴,而将区块链技术作为一种泛解决方案,可以在其他领域使用,比如行政管理、文化艺术、企业供应链、医疗健康、物联网、产权登记等,可以认为是面向行业应用。

行业应用一般是需要具备企业级属性的,比如身份认证、许可授权、加密传输等,并且对数据的处理性能也会有要求,因此企业级场景下的应用,往往都是联盟链或者私有链。我们来看一下示意图

在上图中,数字货币不再是一个必选的组件了,当然如果需要,我们也可以通过智能合约的方式来实现数字货币的。与之前的架构相比,最大的特点就是增加了一个网管控制,实际上就是增加了对安全保密的需求的支持,并且通过数据审计加强对数据的可靠性管理。

在3.0中,实际上可以看成是一套框架,通过对框架的配置和二次开发可以使用各行业的需求,比如图中的“可插拔共识”,意思就是共识机制不是固定的,而是可以通过用户自己去选用配置。

结语:大家可以通过上面的三张示意图去理解三种阶段的架构以及在发展过程中增进的地方,下篇我将给大家介绍一下区块链的三种种类,分别是共有链、私有链、联盟链。

区块链学习——区块链的架构相关推荐

  1. 区块链学习——区块链的技术栈

    摘要 我在区块链学习的上一篇博文,链接:区块链学习--区块链技术理念与工作流程中,简单介绍了区块链的技术理念以及工作流程,本文我将继续介绍区块链技术栈. 我们知道,区块链本身只是一个数据的记录格式,就 ...

  2. 区块链学习 | 区块链的核心概念

    想要学习区块链的相关知识,区块链的核心概念--区块.哈希算法.公钥和私钥.时间戳等是必须要弄懂的.区块链由多个相连的区块构成,所以我们先从了解区块的概念开始! 一.区块 区块的结构图 先看上面的区块的 ...

  3. 区块链学习路径,看这一篇就够了 | FISCO BCOS

    FISCO BCOS开源社区已沉淀过百篇文章,覆盖了区块链学习各个阶段.为了方便大家对应自身学习阶段找到合适的教程,我们按照区块链学习成长路径对社区文章进行整理排序,希望沿着这份路径规划,大家都能成为 ...

  4. 学习区块链的十大理由

    学习区块链的十大理由 技术发展迅速!如果你仍然在你的多维数据集中编辑Java代码或只是搞PowerBuilder,那么你可能只生活在过去.少数雇主的地方.现在的情况发生了很大变化.你需要领先一步,采用 ...

  5. 如何学习区块链技术?

    2018年春节最火热的概念应该就是区块链了,从百度的莱茨狗和网易星球刷屏朋友圈,到3点钟区块链无眠群的大火,大佬们纷纷进军区块链,不了解区块链好像错过一个时代. 这里把学习区块链过程中的一些资料进行索 ...

  6. 怎么样才能更高效的学习区块链

    一.为什么选择区块链 选择区块链作为实践学习的案例,原因有三: 第一,区块链是我最近两三个月刚学习的领域,对我来说也是一门从零开始学习的领域,这样的学习案例最具有指导作用.因为时间没有隔太久,很多学习 ...

  7. 月薪 100K?还不来看看区块链学习清单?字字都是 Money!

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! CSDN粉丝今日专属购书福利:全场书籍优惠,满100减50!仅限当日使用. 初春乍寒,又到了 ...

  8. 【论文】联邦学习区块链 论文集(三)

    21.\color{#FF0000} 21.21. Privacy-Preserving Blockchain Based Federated Learning with Differential D ...

  9. 如何系统学习区块链技术-干货来袭

    区块链术涉及面很广,很多开发人员看了一些资料后,感觉似懂非懂. 如何系统的学习区块链技术,是很多想从事区块链开发的程序员的疑问,本文内容有点多,一次吸收不完可以收藏以后再用. 苦口婆心写在前面: 从事 ...

最新文章

  1. 今年,你会为5G消费吗?就一分钟,求投票
  2. 英语发音规则---发/i:/的字母及字母组合
  3. 云原生架构下日志服务数据预处理
  4. 算法 --- 插入排序的JS实现
  5. 使用DBI(perl)实现文本文件的导入导出mysql
  6. 【Flink】Flink 报错 ResourceManager leader changed to new address null
  7. idea2020代码el组件红色波浪线_Android实现炫酷的ViewPager3D组件
  8. 工程技术学院c语言题库,2016年天津农学院工程技术学院C语言程序设计(同等学力加试)复试笔试最后押题五套卷...
  9. html中optition默认类型,射频微电子学概论.PDF
  10. txt格式单词导入有道词典生词本
  11. python数据与挖掘实战学习:实战篇 第七章航空公司客户价值分析笔记
  12. 软件工程师考试报名须知
  13. kafka多线程消费
  14. 新应用——信息化财务管理,一站式满足多个需求
  15. 霍金门徒:计算机如何比人更懂世界
  16. Spring Data JPA自定义SELECT查询语句,自定义UPDATE修改语句
  17. 日本80年代芯片战后二次决战
  18. 基于Glodstein枝切法相位解包裹算法
  19. Vulnhub-Zico2靶机实战
  20. 深度解码互联网后台服务架构-魏佳-专题视频课程

热门文章

  1. java淡蓝色怎么表示_最淡的蓝是什么颜色(淡蓝色配什么颜色好看)
  2. /*深度优先建立深林,孩子兄弟法*/
  3. 听说学习是件苦差事——Linux第一天
  4. [英语阅读]希腊古剧场对高跟鞋说“不”
  5. knockout click点击事件及事件源解释
  6. 【GPT-4】立即停止训练比 GPT-4 更强的模型,至少六个月!马斯克、图灵奖得主等数千 AI 专家紧急呼吁
  7. Ubuntu 16.04 parted 对 GPT 格式硬盘 (12 TB) 分区
  8. 60.大数据之旅——电信日志项目03
  9. 【lc3】汇编实现I/O中断
  10. Solidworks 如何复制 基准面