Architecture Explained
1. 系统架构
1.1 交易
交易有两种类型:
-
部署交易:创建新的chaincode,把一个程序作为一个参数。当部署交易运行成功时,这个chaincode就被安装到区块链上了。
-
触发(invoke)交易:在之前部署过的chaincode的背景下执行操作
(总结: 这里的两种交易,一种是部署chaincode,一种是在部署好的chaincode上执行某种操作,从而改变区块链属性)
1.2 区块链数据结构
1.2.1 state 世界状态
世界状态是一种 k-v 数据存储(kvs),key 是名称,value 是任意的二进制对象。(也可能使用RDBMSs 关系型数据库存储)
a mapping : K -> (V X N)
-
k: keys的集合
-
v: values的集合
-
N: 是一个无穷大的版本号集合
State 是由peers保存维护,而不是由orders或者clients
1.2.2 Ledger 账本
账本保存着所有已验证过的成功的state的改变的历史记录,以及不成功的改变state的尝试
Ledger是由 ordering service构建的
1.3 Nodes 节点
节点是区块链中通信的实体。一个node 仅仅是指逻辑结构,因为多个不同类型的节点也可以在同一台物理机上运行。重要的是这些节点是如何在“信任域”中组织的
有三种节点类型:
-
Client or submitting-client:客户端提交真实的交易给背书节点,并广播交易提案,给ordering service
-
Peer:这个节点提交交易和保存维护state,并且有一份Ledger的拷贝,此外它还有一个特殊的背书endorser的角色
-
Ordering-service-node or orderer: 运行通信服务,实现提交验证,比如原子或者全部的排序广播
2. 基本的交易背书流程
下面我们大体列出一个交易的高等级的请求流程
2.1 Client 创建一个交易,并把它发送给多个背书节点
client 会给 多个背书节点发 PROPOSE 信息
网友评论