目录
-
sawtooth基本概念
1、Batch:a protobuf object,包含一系列的transactions,一个header一个签名,batch signer用私钥对batch header进行签名。
2、Transaction:一个protobuf object,包含payload,header,和signature。签名是transaction signer使用自己的私钥进行签名。transaction修改状态,客户端建立交易发送给valid
ator(个人理解是节点)。transaction打包在batch中,客户端发送出去。
3、Consensus:建立一个共识(the mutually distrusting participants are the other nodes on the validator network.)
4、Transaction Family:包含了transaction payload 的格式,a model for storing information in global state(一个模型用于往global state(merkle hsah)中存储数据)验证交易以及基于transaction payload更新更新状态的程序。由开发者开发(codify business rules used to modify state)
5、Transaction Processor:基于Transaction Family定义的规则进行交易验证并且更新状态。
6、Validator:一个component来验证batches和transaction,将它们存入区块,保证整个网络的一致(maintaining consensus),负责和client以及其他的validator和transaction processor通信(validator个人理解就是网络中的节点)。
7、Node:一个尝试连接到网络的validator
8、Client:尝试连接到validator的程序,可以去查询区块链状态、发送交易
9、Radix Merkle Tree:representation of state
10、Validator Network:p2p网络,同一个区块链
11、Authorization Procedure:与validator建立链接的时候必须遵循的规则。
12、Policy:一系列规则来判断是否能够加入validator network,以及一个交易是否会被处理。
13、Transactor:对batch和transaction签名的人,对batch签名的话同时也是batch signer,对transaction签名的话同时也是transaction signer
14、Network Operator:一个或多个sawtooth网络的管理员,配置协调整个网络的配置(which transaction processors are being run, the consensus mechanism, modifying on-chain settings)
15、Sysadmin:运行validator software的人
-
全局状态:
区块中数据Radix Merkle Tree表示全局状态,树中每个节点有一个地址,用于标识一个节点。所有的transaction family的交易存储在一个merkle tree当中。merkle tree的根哈希存储在区块头中。地址前三个字节为命名空间,命名空间使得transaction family authors可以定义、共享、复用全局数据(merkle tree的数据),地址35个字节,前三个字节为命名空间,后32个字节为命名空间相关的编码。不同的transaction processor设定不同地址的数据,数据是业务相关的,对平台透明。个人理解:所有transaction processor的交易数据存储在一颗merkle tree中,merkle tree可寻址,每个节点有一个地址,由不同的命名空间区分不同的transaction processor的数据。
-
Transaction和Batches:
sawtooth运行基本流程:client生成交易=>提交交易给validator=>validator处理交易,修改状态。