Truffle

Quorum privateFor 不使用 truffle-hd-wallet-provider

  • February 5, 2019

我正在嘗試在 Quourm 7-nodes 範例中為一個節點部署私有合約。與 truffle 一起正常部署時,遷移按預期工作,但在與 truffle 一起privateFor使用時忽略該部分並部署公共合約truffle-hdwallet-provider。我可以進行任何更改以使 HDWalletProvider 正常工作嗎?

2_deploy_contract.js

var SimpleStorage = artifacts.require("SimpleStorage");
module.exports = function (deployer) {
   // Pass 42 to the contract as the first constructor parameter
   deployer.deploy(SimpleStorage, 42, { privateFor: ['ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc='] })
};

松露.js

作品:

development: {
 host: "127.0.0.1",
 port: 22000,
 network_id: "*",
 gasPrice: 0,
 gas: 4500000
}      

失敗(部署公共契約而不是私人契約):

quorum: {
 provider: () => new HDWalletProvider(mnemonic, 'http://localhost:22000'),
 network_id: "*",
 gas: 4500000,
 gasPrice: 0
}

我使用的共識是 IBFT,如果有用的話。

更新:自 Quorum v2.2.1 起,我們現在支持對原始(讀取簽名)私有交易進行遠端簽名。該 API 在多個地方進行了解釋,但一個很好的起點是在這里托管的 Quorum.js:https ://github.com/jpmorganchase/quorum.js/

原文: 2018 年 9 月 10 日 18:54 回答 目前,Quorum 不支持發送私有的簽名/原始 txns - 只有公共的。簡單的解釋是,Quorum 客戶端(geth)會自行將開放數據/值傳遞給 txn 管理器(即星座),當您發送簽名的 txn 時,客戶端沒有通過星座執行它所需的密鑰。

引用自:https://ethereum.stackexchange.com/questions/57811