合同应该是私有的,但每个节点都可以访问分类帐

问题描述 投票:0回答:2

我正在尝试按照本教程https://truffleframework.com/tutorials/building-dapps-for-quorum-private-enterprise-blockchains。我在提到的时候配置了2_deploy_simplestorage.js 命令deployer.deploy(SimpleStorage,42,{privateFor:[“ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc =”]})。

当我试图验证价值的隐私时,似乎每个节点都可以访问数据,可能是什么问题!我不得不提一下,推荐将值初始化为42但是当我验证它为0时!这是智能合约:

 pragma solidity >=0.4.17;

 contract SimpleStorage {
 uint public storedData;

 function inita (uint initVal) public {
 storedData = initVal;
 }

 function set(uint x) public {
 storedData = x;
 }

 function get() view public returns (uint retVal) {
 return storedData;
 }
 }
blockchain ethereum quorum
2个回答
0
投票

私人州仅供参与者使用。如果您尝试在非参与者节点上查询状态,则它将返回空结果。因此,参与者节点将返回42的值。非参与者节点将返回值0。


0
投票

问题在于我使用的solcI版本。使用仲裁时,您可以使用一个私有的牵引分类帐,另一个是所有参与者节点公开访问的分类帐。当我使用privateFor时,我指定了应该访问私有分类帐的节点的地址,而其他节点不应该看到分类帐的修改。