我正在测试Quorum的隐私功能,但看来我的数据正在发布到所有节点,否则我正在使用的调用方法不适用于privateFrom
。这是我的代码。
使用truffle
来编译和部署合同:
module.exports = function(deployer) {
deployer.deploy(SomeData, {privateFor: ["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc=",
"UfNSeSGySeKg11DVNEnqrUtxYRVor4+CvluI8tVv62Y="]});
};
据我了解,合同应仅位于上述指定的节点上,而不应位于7nodes示例中的其他5个节点上。
现在,我使用以下方法添加一些数据:
csContract.methods.addData("0xabcd", [s1hex,s2hex,s3hex]).send({from: 'ed9d02e382b34818e88b88a309c7fe71e65f419d', gas: 150000000,
privateFor: ["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="] }
) .then(receipt => {
console.log("addData receipt " + receipt);
},
(error) => {
console.log("Error in addData = " + error);
}).catch((err) => {
console.log("Catch Error in addData = " + error);
});
现在我要打电话查看数据是否保存在适当的节点上:
csContract.methods.getData('0xabcd').call({from: 'ed9d02e382b34818e88b88a309c7fe71e65f419d', gas: 150000000,
privateFrom: ["oNspPPgszVUFw0qmGFfWwh1uxVUXgvBxleXORHj07g8="]})
.then(receipt => {
console.log("getValue receipt at 0 " + receipt);
}
, (error) =>{
console.log("Error in getData = " + error);
}).catch((err) => {
console.log("Catch Error in getData = " + error);
});
即使privateFrom
中的节点不应该部署合同,我仍要获取在addData
中推送的数据。这不应该发生。
我想念什么?