合约应该是私有的,但每个节点都可以访问账本



我正在尝试 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;
 }
 }

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

问题出在我正在使用的 solc 版本上。使用仲裁时,您有某种拖曳账本,一个是私有的,另一个是所有参与者节点的公共访问。当我使用 privateFor 时,我指定了应该访问私有账本的节点的地址,而其他节点不应该看到账本的修改。

相关内容

最新更新