我很难理解Fabric 1.0中的读写集是什么,如果可能的话,有人通过举例解释。
答案 0 :(得分:6)
读取集和写入集与事务相关。
假设你有一个事务,读取密钥a1(假设a1' s value = value_a1,version = version_a1)和密钥a2(假设a2' s value = value_a2,version = version_a2),假设我们想要a1的值递减,a2的值递增;
所以这个交易的阅读集是:
{a1, value_a1, version_a1; a2, value_a2, version_a2};
,即相关密钥,其值,版本列表;
此交易的写入集是:
{a1, (value_a1 -1); a2, (value_a2 +1)};
即更新的密钥及其新值列表。
读取集和写集用于提交者的事务认可和提交(更新世界状态)。
答案 1 :(得分:0)
读写集由Endorser生成,并由提交者用来验证交易。
处于结构字状态的数据存储在键值对中。每当committer在world-state提交(插入/更新/删除)事务时,它还会生成此键值对的版本并插入。 示例:
key="K1", value="V1, version="111"
key="K2", value="V2, version="112"
在当前的结构版本中,事务的高度用作该事务修改的所有密钥的最新版本。
Endorser生成读写集。 读集包含将受当前事务(在提交之前)影响的一对key =,value =,version =。 写入集包含上述密钥的新值(由于提交者生成了版本,因此没有版本)。
提交者在提交事务之前,使用读写集的读集部分来检查事务的有效性,并使用读写集的写集部分来更新受影响的键的值,并生成一个此键值对的新版本。