Ethereum 执行truffle.migrate时出错,";的参数数无效;“未定义”;

Ethereum 执行truffle.migrate时出错,";的参数数无效;“未定义”;,ethereum,quorum,Ethereum,Quorum,我正在尝试部署智能合约: ` pragma稠度>=0.4.21 contract SimpleStorage { uint public storedData; constructor(uint initVal) public { storedData = initVal; } function set(uint x) public { storedData = x; } function get() view public returns (uint retVal) { return s

我正在尝试部署智能合约:

`
pragma稠度>=0.4.21

contract SimpleStorage {
uint public storedData;

constructor(uint initVal) public {
storedData = initVal;
}

function set(uint x) public {
storedData = x;
}

function get() view public returns (uint retVal) {
return storedData;
}
}`
我已经创建了2_deploy.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.migration时,我得到了以下错误:

 'Error encountered, bailing. Network state unknown. Review 
 successful transactions manually.
  Error: Invalid number of parameters for "undefined". Got 2 
  expected 1!
at Object.InvalidNumberOfParams 
 (/usr/lib/node_modules/truffle/build/webpack:/~/web3-eth- 
contract/~/web3-core-helpers/src/errors.js:32:1)
at Object._createTxObject 
(/usr/lib/node_modules/truffle/build/webpack:/~/web3-eth- 
contract/src/index.js:699:1)
 at Contract.deploy 
(/usr/lib/node_modules/truffle/build/webpack:/~/web3-eth- 
contract/src/index.js:504:1)
at Function.deploy 
(/usr/lib/node_modules/truffle/build/webpack:/packages/truffle- 
contract/lib/execute.js:214:1)
at constructor.detectNetwork.then.network 
(/usr/lib/node_modules/truffle/build/webpack:/packages/truffle- 
contract/lib/contract/constructorMethods.js:56:1)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)        
Truffle v5.0.13 (core: 5.0.13)
Node v8.9.4''
遇到错误,
,正在清除。网络状态未知。复习
手动执行成功的事务。
错误:“未定义”的参数数无效。有两个
期望1!
在Object.InvalidNumberOfParams处
(/usr/lib/node_modules/truffle/build/webpack://~/web3 eth-
合同/~/web3核心助手/src/errors.js:32:1)
在对象处。\u createTxObject
(/usr/lib/node_modules/truffle/build/webpack://~/web3 eth-
合同/src/index.js:699:1)
按合同部署
(/usr/lib/node_modules/truffle/build/webpack://~/web3 eth-
合同/src/index.js:504:1)
在Function.deploy
(/usr/lib/node_modules/truffle/build/webpack:/packages/truffle-
contract/lib/execute.js:214:1)
在constructor.detectNetwork.then.network
(/usr/lib/node_modules/truffle/build/webpack:/packages/truffle-
contract/lib/contract/constructorMethods.js:56:1)
在
在进程中。_tick回调(内部/process/next_tick.js:188:7)
块菌v5.0.13(核心:5.0.13)
节点v8.9.4“

有人知道如何处理这个问题吗?

Truffle最近才添加了对仲裁私人事务的支持。所以你需要块菌5.0.14版。
我希望这能有所帮助。

什么是
privateFor
参数?尝试传递
deployer.deploy(SimpleStorage,42)
它表示此值应在仲裁中的私有分类账中注册。只有地址为“ROAZBWTSACxxQROE3FGAQJDYJFEPR5CE4TSIZMJ0BC=”的节点才能加入该值,因此只有执行事务的节点和地址为“ROAZBWTSACxxQROE3FGAQJDYJFEPR5CE4TSIZMJ0BC=”的代码才能看到该事务。