Blockchain Hyperledger锯齿数据权限

Blockchain Hyperledger锯齿数据权限,blockchain,hyperledger,hyperledger-sawtooth,Blockchain,Hyperledger,Hyperledger Sawtooth,因此,我一直在为我的下一个项目研究Hyperledger Sawtooth,我想问是否有可能根据区块链的状态创建权限。例如,对于事务族IntegerKey,我只希望一个特定用户更改变量X的值。这是可能的。IntegerKey事务处理程序中的智能合约逻辑应验证特定用户(您打算)是否正在更新变量X的值 开箱即用标识tp将帮助您限制对可以执行IntegerKey事务的客户端的访问。此外,它还将帮助您限制网络上仅允许运行的事务系列。但对于特定变量,这取决于您决定在全局状态中存储值的方式。一旦决定将变量存

因此,我一直在为我的下一个项目研究Hyperledger Sawtooth,我想问是否有可能根据区块链的状态创建权限。例如,对于事务族IntegerKey,我只希望一个特定用户更改变量X的值。

这是可能的。IntegerKey事务处理程序中的智能合约逻辑应验证特定用户(您打算)是否正在更新变量X的值

开箱即用
标识tp
将帮助您限制对可以执行IntegerKey事务的客户端的访问。此外,它还将帮助您限制网络上仅允许运行的事务系列。但对于特定变量,这取决于您决定在全局状态中存储值的方式。一旦决定将变量存储在全局状态中的方式,您可以选择使用验证逻辑来检查事务是否确实由正确的人发送

您可以利用TpProcessRequest中发送的事务标头。这是您在事务处理程序的
apply()
方法中看到的。您可以从事务头获取批处理程序和事务签名者的公钥信息

下面介绍了在围棋中执行此操作的方法:

对于Go SDK,上下文是如何传递给事务处理程序的
apply()
方法的。请注意请求中的header参数。请注意签名者的公钥信息

假设您使用
设置tp
,并存储自己的设置键,以了解每个值的允许用户。对于变量X,这类似于
settings.variable.X=[List of]
。在事务处理程序中,可以看到变量X是否正在更新。如果是,则读取先前存储的设置键。检查公钥是否与事务请求标头中的公钥匹配