请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
  兄弟连区块链教程Fabric1.0源代码分析Tx RWSet(读写集),2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。
# Fabric 1.0源代码笔记 之 Tx #RWSet(读写集)
## 1、RWSet概述
在背书节点模拟Transaction期间,为交易准备了一个读写集合。
Read Set包含模拟Transaction读取的Key和版本的列表,Write Set包含Key、写入的新值、以及删除标记(是否删除Key)。
RWSet相关代码分布在protos/ledger/rwset、core/ledger/kvledger/txmgmt/rwsetutil目录下。目录结构如下:
* protos/ledger/rwset目录:
    * rwset.pb.go,TxReadWriteSet和NsReadWriteSet结构体定义。
    * kv_rwset.pb.go,KVRWSet、KVRead、KVWrite、Version、RangeQueryInfo结构体定义,以及isRangeQueryInfo_ReadsInfo接口定义。
* core/ledger/kvledger/txmgmt/rwsetutil目录:
    * rwset_proto_util.go,TxRwSet和NsRwSet结构体及方法。
    * rwset_builder.go,RWSetBuilder结构体及方法。
    * query_results_helper.go,RangeQueryResultsHelper结构体及方法。
## 2、TxReadWriteSet结构体(protos)
TxReadWriteSet结构体:
```go
type TxReadWriteSet_DataModel int32
const (
    TxReadWriteSet_KV TxReadWriteSet_DataModel = 0
)
type TxReadWriteSet struct {