合约应该是私有的,但每个节点都可以访问分类帐
The contract is supposed to be private but every node can access the ledger
我正在尝试学习本教程 https://truffleframework.com/tutorials/building-dapps-for-quorum-private-enterprise-blockchains。
我配置了 2_deploy_simplestorage.js 和
命令
deployer.deploy(SimpleStorage, 42, {privateFor:
["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="]}).
当我尝试验证值的隐私时,似乎每个节点都可以访问数据,这可能是什么问题!
我不得不提一下,commend 将值首字母缩写为 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;
}
}
私有状态仅供参与者使用。
如果您尝试在非参与者节点上查询状态,那么它将 return 一个空结果。
因此 42 的值将 returned 在参与者节点上。非参与节点将return值为0。
问题出在我使用的 solc 版本上。使用法定人数时,您有一种拖车分类帐,一个是私有的,另一个是 public 所有参与者节点都可以访问的。当我使用 privateFor 时,我指定了应该访问私有分类帐的节点的地址,而其他节点不应该看到分类帐的修改。
我正在尝试学习本教程 https://truffleframework.com/tutorials/building-dapps-for-quorum-private-enterprise-blockchains。
我配置了 2_deploy_simplestorage.js 和
命令
deployer.deploy(SimpleStorage, 42, {privateFor:
["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="]}).
当我尝试验证值的隐私时,似乎每个节点都可以访问数据,这可能是什么问题! 我不得不提一下,commend 将值首字母缩写为 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;
}
}
私有状态仅供参与者使用。 如果您尝试在非参与者节点上查询状态,那么它将 return 一个空结果。 因此 42 的值将 returned 在参与者节点上。非参与节点将return值为0。
问题出在我使用的 solc 版本上。使用法定人数时,您有一种拖车分类帐,一个是私有的,另一个是 public 所有参与者节点都可以访问的。当我使用 privateFor 时,我指定了应该访问私有分类帐的节点的地址,而其他节点不应该看到分类帐的修改。