概念 - 广义区块链: 点对点网络设计,加密技术应用,分布式算法实现和数据存储技术
- 狭义区块链: 数据存储技术,数据库或文件操作。
架构图: 区块链在架构设计上分为三个层次: 协议层(存储层,网络层) ,扩展层 ,应用层 1. 协议层: 最底层技术,通常是一个完整的区块链产品,类似于个人电脑的操作系统,维护网络节点,仅提供API以供调用。通常,官方会提供简单的客户端(通称为钱包),只能建立地址,验证签名,转账支付,查看余额等。这个层次构建了网络环境,搭建交易通道,制定节点奖励规则,其他一概不管。 从所用技术层面上说,协议层主要包括 —— 网络编程,分布式算法,密码学和数据存储技术,这个过程中点对点网络的实现和并发处理是一个开发难点 ,此时Node.js开发区块链就变得流行起来 2. 扩展层 这个层面类似电脑的驱动系统,是为了让区块链产品更加实用。目前有两类扩展层: 一. 各类交易市场,法币---加密货币,简单,来钱快,成本低,但是风险大。 二. 针对某个方向上的扩展实现 ,例如为第三方提供定制服务的扩展实现。‘智能合约’就是典型的扩展层的应用开发,智能是执行力智能,当达到某个条件时,合约就会自动执行,比如自动转移证券,自动付款等。 所用技术: 分布式存储,机器学习,物联网,大数据等。在开发上,除了交易与协议层进行交互,其他时候尽量不要和协议层的开发混在一起,应该更接近于应用层。也可以理解为B/S架构产品中的服务端(Server). 3. 应用层 这个层面类似于电脑中的各种软件程序。是普通人真正可以直接使用的产品。也可以理解为B/S机构的产品中的浏览器端(Browser),大家现在用的各类轻钱包(客户端),应该算是应用层最典型,最简单的应用。
下面是区块链架构设计图
编程实现 1. C/C++ 典型项目-比特币 2. Node.js/Javascript 亿书项目 3. Python 典型项目- 以太坊 4. Go 知识图谱 下面是与区块链相关的知识
|