如何在法定人数中使智能合约私有化

时间:2017-10-26 10:37:17

标签: blockchain ethereum solidity quorum

在仲裁的7nodes示例(https://github.com/jpmorganchase/quorum-examples/tree/master/examples/7nodes)中,部署的智能合约是node1和node7之间的私有契约。为了使其成为私有,脚本文件作者使用私钥传递的公钥。" 发送私有事务以生成从节点1发送的(私有)智能合约(SimpleStorage)"用于&#34 ;节点7(由在publicTransaction调用中通过privateFor:[" ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc ="]传递的公钥表示。)"

关键值" ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc ="生成了我无法理解?

此外,在JS文件script1.js完成后,它给了我合同交易发送:TransactionHash",我从未得到合同地址。 合同地址何时才能完成采矿? 我怎么知道这个地址是我的智能合约地址?

4 个答案:

答案 0 :(得分:0)

已经为节点生成了密钥。 当您启动环境时,会为每个节点分配一个预定义的虚拟公钥。 这可以在以下位置找到:\ quorum-examples \ examples \ 7nodes \ keys

答案 1 :(得分:0)

在7Nodes示例中,您可以在raft / nodekey *文件中看到256位私钥,在static-nodes.json中看到nodename(enode)文本中的相应512位公钥。使用bootnode创建私钥和公钥对。并使用constellation-node生成.pub和.key文件。

答案 2 :(得分:0)

要回答问题的第二部分,要获取合同地址,可以使用eth.getTransactionReceipt(__);,然后将获得的txHash(引号)复制到空白处。 然后,合同地址应出现在返回的字段之一中。

查看this page了解更多信息/详细信息。

答案 3 :(得分:0)

这里使用的密钥是交易管理器的公钥,除了加密通信之外,它还负责发送和接收私人交易。您可以在节点的数据文件夹内名为 tm.pub 的文件中找到此密钥,并在文件 tm.key 中找到其关联的私钥。