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

时间:2019-04-19 12:54:52

标签: blockchain ethereum quorum

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

当我尝试验证值的私密性时,似乎每个节点都可以访问数据,这可能是问题所在! 我必须提到值得称赞的值的初始值是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;
 }
 }

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

问题出在我使用的solc版本。使用仲裁时,您会有一些拖车分类帐,其中一个私有,而所有参与者节点都公开访问另一个。当我使用privateFor时,我指定应该访问私有分类帐的节点的地址,而其他节点不应该看到分类帐的修改。