Hyperledger Fabric 1.0 中的读集和写集是什么?
what is read set and write set in Hyperledger Fabric 1.0?
我对fabric 1.0中的读写设置感到困惑,请有人举例说明。
读集和写集与事务相关。
假设有一笔交易,读取key a1(假设a1的值=value_a1,版本=version_a1),和key a2(假设a2的值=value_a2,版本= version_a2), 假设我们希望 a1 的值递减,a2 的值递增;
所以这个交易的读集是:
{a1, value_a1, version_a1; a2, value_a2, version_a2};
即相关键、它的值、它的版本列表;
这个事务的写集是:
{a1, (value_a1 -1); a2, (value_a2 +1)};
即更新后的键及其新值列表。
读集和写集用于提交者的事务背书和提交(更新世界状态)。
读写集由Endorser生成,committer用来验证交易。
结构词状态中的数据存储在键值对中。每当提交者在世界状态中提交(insert/update/delete)一个事务时,它也会生成这个键值对的一个版本并插入。
示例:
key="K1", value="V1, version="111"
key="K2", value="V2, version="112"
在当前的fabric版本中,交易修改的所有key都以交易的height为最新版本。
Endorser 生成读写集。
读取集包含将受当前事务影响的对的键=、值=、版本=(提交前)。
写集包含上述键的新值(没有版本,因为版本是由提交者生成的)。
提交者在提交事务之前,使用读写集的读集部分来检查事务的有效性,使用读写集的写集部分来更新受影响的键的值,并且为此键值对生成一个新版本。
我对fabric 1.0中的读写设置感到困惑,请有人举例说明。
读集和写集与事务相关。
假设有一笔交易,读取key a1(假设a1的值=value_a1,版本=version_a1),和key a2(假设a2的值=value_a2,版本= version_a2), 假设我们希望 a1 的值递减,a2 的值递增;
所以这个交易的读集是:
{a1, value_a1, version_a1; a2, value_a2, version_a2};
即相关键、它的值、它的版本列表;
这个事务的写集是:
{a1, (value_a1 -1); a2, (value_a2 +1)};
即更新后的键及其新值列表。
读集和写集用于提交者的事务背书和提交(更新世界状态)。
读写集由Endorser生成,committer用来验证交易。
结构词状态中的数据存储在键值对中。每当提交者在世界状态中提交(insert/update/delete)一个事务时,它也会生成这个键值对的一个版本并插入。 示例:
key="K1", value="V1, version="111"
key="K2", value="V2, version="112"
在当前的fabric版本中,交易修改的所有key都以交易的height为最新版本。
Endorser 生成读写集。 读取集包含将受当前事务影响的对的键=、值=、版本=(提交前)。 写集包含上述键的新值(没有版本,因为版本是由提交者生成的)。
提交者在提交事务之前,使用读写集的读集部分来检查事务的有效性,使用读写集的写集部分来更新受影响的键的值,并且为此键值对生成一个新版本。