3

I'm trying to deploy a contract private to one node in the Quourm 7-nodes example. The migrate works as expected when deployed normally with truffle, but ignores the privateFor part and deploys a public contract when used with truffle-hdwallet-provider. Are there any changes I can make to make the HDWalletProvider work?

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='] })
};

truffle.js

Works:

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

Fails (Deploys a public contract instead of a private one):

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

The consensus I am using is IBFT, if that is useful.

1 Answer 1

5

Updated: Since Quorum v2.2.1, we now support remote signing for raw (read signed) private transactions. The API is explained in several places, but a great starting point is Quorum.js hosted here: https://github.com/jpmorganchase/quorum.js/

Original: answered Sep 10 '18 at 18:54 At the moment, Quorum does not support sending signed / raw txns that are private -- only public ones. The simple explanation is that Quorum client (geth) will pass open data / value into txn manager (ie, constellation) on its own and when you send a signed txn, client does not have the keys needed to run it through constellation.

2
  • Thanks for answering! Can you tell if there is any chance of enabling remote signing in future releases?
    – KBhokray
    Sep 10, 2018 at 19:14
  • Its likely that we will provide some kind of a custom bridge between an ethereum/quorum account and txn manager in Quorum that will allow for signing with own keys, but its a feature that we're only beginning to look at.
    – fixanoid
    Sep 11, 2018 at 21:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.