超级账本 --- ReadWriteSet的逻辑结构

简介: 用于时序校验,解决双花问题 (doublespending)• Endorser– 模拟执行交易,生成ReadSet和WriteSet– ReadSet是交易前key值的状态– WriteSet是交易产生的变化量• Committer– ReadSet作MVCC检查(Multi-VersionCon...

用于时序校验,解决双花问题 (double
spending)
Endorser
模拟执行交易,生成ReadSet和WriteSet
ReadSet是交易前key值的状态
WriteSet是交易产生的变化量
Committer
ReadSet作MVCC检查(Multi-Version
Concurrency Control),确保数据没有变

校验通过后,把交易的WriteSet写入状态
数据库
把Block写入区块链 (账本)

 

实例:

Block{
Transactions [
{
"Id" : txUUID2
"Invoke" : “Method(arg1, arg2,..,argN)"
“TxRWSet" : [
{ ”Chaincode” : “ccId”
“Reads”:[{"key" : “key1", "version” : “v1” }]
“Writes”:[{"key" : “key1", ”value" : bytes1}]
} // end chaincode RWSet
] // end TxRWSet
}, // end transaction with "Id" txUUID2
{ // another transaction },
] // end Transactions
}// end Block

 

相关文章
|
11月前
去中心化和中心化的解释
去中心化和中心化的解释
214 2
|
11月前
|
SQL 数据库
关系数据库——关系操作和关系完整性
关系数据库——关系操作和关系完整性
162 0
|
存储 前端开发 编译器
智能合约与DApp的关系与区别
以太坊社区把基于智能合约的应用称为去中心化的应用程序(Decentralized App,简称DApp)。
智能合约与DApp的关系与区别
|
存储 定位技术
我爱啃书--逻辑结构与物理结构(大话数据结构)
我爱啃书--逻辑结构与物理结构(大话数据结构)
80 0
分布式系统设计,中心化和去中心化设计需要知道的内容(2)
分布式系统设计,中心化和去中心化设计需要知道的内容(2)
359 2
|
Kubernetes 微服务 容器
分布式系统设计,中心化和去中心化设计需要知道的内容(1)
分布式系统设计,中心化和去中心化设计需要知道的内容(1)
237 2
|
Unix 区块链 索引
比特币区块结构解析
前言 本文主要具体分析一个区块的值,通过逐字节分析,找出与比特币区块字段对应的部分,我们就可以加深对比特币区块的了解。 准备工作 我们在https://webbtc.com网站上查询区块哈希值为00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee的区块,查询到该区块的json格式信息和十六进制格式信息。
2752 0
|
Linux
【超级账本】cryptogen 与 configtxgen 模块介绍(三)
目录 1. cryptogen模块 1.1 命令介绍 1.2 生成证书 1.2.1 生成模板配置文件 1.2.2 生成证书 2. configtxgen模块 2.1 configtxgen命令介绍 2.2 修改配置文件 2.3 配置信息介绍 2.4 生成创世块 2.5 生成通道文件 2.6 更新锚节点 最后
204 0
【超级账本】cryptogen 与 configtxgen 模块介绍(三)
|
存储 区块链
【超级账本】Fabric 层次结构以及核心模块的介绍(二)
目录 1. 结构介绍 2. 核心代码 3. 核心模块 3.1 peer 系统模块 3.2 order 系统模块 3.3 cryptogen 工具模块 3.4 configtxgen 工具模块 3.5 configtxlator 工具模块 最后
286 0
【超级账本】Fabric 层次结构以及核心模块的介绍(二)