Ich versuche, einen Vertrag privat auf einem Knoten im Quourm-7-Knoten-Beispiel bereitzustellen. Die Migration funktioniert wie erwartet, wenn sie normal mit Truffle bereitgestellt wird, ignoriert den privateFor
Teil jedoch und stellt einen öffentlichen Vertrag bereit, wenn sie mit verwendet wird truffle-hdwallet-provider
. Gibt es irgendwelche Änderungen, die ich vornehmen kann, damit der HDWalletProvider funktioniert?
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
Werke:
development: {
host: "127.0.0.1",
port: 22000,
network_id: "*",
gasPrice: 0,
gas: 4500000
}
Schlägt fehl (stellt einen öffentlichen Vertrag anstelle eines privaten bereit):
quorum: {
provider: () => new HDWalletProvider(mnemonic, 'http://localhost:22000'),
network_id: "*",
gas: 4500000,
gasPrice: 0
}
Der Konsens, den ich verwende, ist IBFT, falls das nützlich ist.
Aktualisiert: Seit Quorum v2.2.1 unterstützen wir jetzt Remote-Signaturen für unformatierte (gelesene signierte) private Transaktionen. Die API wird an mehreren Stellen erklärt, aber ein guter Ausgangspunkt ist Quorum.js, das hier gehostet wird: https://github.com/jpmorganchase/quorum.js/
Original: beantwortet am 10. September 18 um 18:54 Uhr Momentan unterstützt Quorum nicht das Senden von signierten/rohen TXNS, die privat sind – nur öffentliche. Die einfache Erklärung ist, dass der Quorum-Client (geth) selbst offene Daten/Werte an den txn-Manager (d. h. die Konstellation) weitergibt, und wenn Sie einen signierten txn senden, hat der Client nicht die Schlüssel, die erforderlich sind, um ihn durch die Konstellation zu führen.
KBhokray
fixanoid