我正在尝试 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 时,我指定了应该访问私有账本的节点的地址,而其他节点不应该看到账本的修改。