目录
区块链基础知识25讲
第一讲:理解分层的概念
软件系统的分层
- 应用层与实现层
- 功能性与非功能性
应用层关心什么?
应用层一般与客户的功能需求有关。比如手机:应用层关注的功能性特征拍照、打电话、发邮件、上网、玩游戏;非功能性特征:拥有漂亮的用户界面、操作简单、拍出的照片效果很好。
实现层:永久保存本地数据、自动连接最近的基站、使用硬件加速优化屏幕的动画效果。
理解完备性
完备性是任何软件系统中都是重要的非功能性特征,它往往包含以下3个方面的内容。
- 数据完备性:软件系统中的数据要完整、正确且无冲突。
- 行为完备性:软件系统要可顺利运行,并且保证不存在逻辑错误。
- 安全性:软件系统只对认证用户授权有限的数据访问与使用功能。
第二讲:区块链与软件架构
本节重点时理解区块链的核心作用,为什么需要区块链?
根据有无中心的标准来划分软件架构可以分为:去中心化系统加过和中心化系统架构。
左边的就是中心化的系统架构,右边的就是去中心化的系统架构。
去中心化的系统架构有很多好处:
- 更强的计算能力;
- 更低的成本;
- 更高的可靠性;
- 自增长的能力。
去中心化的不足之处:
- 节点间的协调更难;
- 节点间冗余通信;
- 对网络的过度依赖;
- 系统编程复杂度更高;
- 安全问题。
每个事物都具有两面性,有优点也有缺点,为了取长补短,人们一般会在事物之间找一个平衡。设计软件系统架构时,就出现了具有中心化与去中心化优势的混合系统。
上面的架构图就是一个混合系统。
那么,如何甄别一个系统到底是不是去中心化的系统?
一个分辨的技巧:如果存在这样的单独节点,比如其中有一个单独的关闭按钮可以切断整个系统,那么这个系统就不是去中心化的。
区块链的作用
区块链是去中心化系统中用来实现并确保系统完备性的工具。更令人“沮丧”的是当我们我们为去中心化的产业模式感到无比兴奋的时候,突然发现区块链是能够帮助我们实现目标的唯一手段。