我在NodeJS服务器上使用。当我尝试从keystore获取私钥时,我会得到一个堆栈跟踪。它正在标记这一行“keystore.generateNewAddress(PwDerivedKey)”;我看不出它是如何关联的。当我注释掉"account.prv_key = keystore.exportPrivateKey(sendingAddr,pwDerivedKey)“一行时,它似乎完美无缺地工作了。我做错什么了吗?错误是抛出“无种子集”,然而,当我查看调试模式时,种子是最肯定设置的。我对Node很陌生,并怀疑它与Node的异步特性有关。我已经包含了下面的代码和堆栈跟踪。谢谢。
lightwallet.keystore.deriveKeyFromPassword('mypassword',
function (err, pwDerivedKey) {
var seed = lightwallet.keystore.generateRandomSeed();
var keystore = new lightwallet.keystore(seed, pwDerivedKey);
keystore.generateNewAddress(pwDerivedKey);
account.address = keystore.getAddresses()[0];
account.prv_key = keystore.exportPrivateKey(sendingAddr, pwDerivedKey);
})
/Users/username/WebstormProjects/eth-project/nodejs-server/node_modules/eth-lightwallet/lib/keystore.js:389
throw new Error('KeyStore.generateNewAddress: No seed set');
^
Error: KeyStore.generateNewAddress: No seed set
at KeyStore.generateNewAddress (/Users/username/WebstormProjects/eth-project/nodejs-server/node_modules/eth-lightwallet/lib/keystore.js:389:11)
at /Users/username/WebstormProjects/eth-project/nodejs-server/controllers/ActorService.js:39:20
at cb (/Users/username/WebstormProjects/eth-project/nodejs-server/node_modules/eth-lightwallet/lib/keystore.js:459:7)
at /Users/username/WebstormProjects/eth-project/nodejs-server/node_modules/eth-lightwallet/node_modules/scrypt-async/scrypt-async.js:474:9
at Immediate._onImmediate (/Users/username/WebstormProjects/eth-project/nodejs-server/node_modules/eth-lightwallet/node_modules/scrypt-async/scrypt-async.js:433:11)
at processImmediate [as _immediateCallback] (timers.js:383:17)发布于 2016-05-17 20:53:24
您的处理程序函数可能有一些错误,使处理程序无法正确执行。您可以检查是否在处理程序中设置了"err“,并将其打印出来,以查看它到底是什么错误。对于我来说,如果我运行您的确切代码,我必须删除对“帐户”的引用,并在代码运行之前将"sendingAddr“更改为密钥存储库的第一个地址。确保在代码上下文中定义了这两个变量。这是对我有用的代码:
lightwallet.keystore.deriveKeyFromPassword('mypassword',
function (err, pwDerivedKey) {
var seed = lightwallet.keystore.generateRandomSeed();
var keystore = new lightwallet.keystore(seed, pwDerivedKey);
keystore.generateNewAddress(pwDerivedKey);
var address = keystore.getAddresses()[0];
var prv_key = keystore.exportPrivateKey(address, pwDerivedKey);
console.log('address and key: ', address, prv_key);
})https://ethereum.stackexchange.com/questions/3985
复制相似问题