我使用java web3j lib并使用以下方法创建新的钱包文件:
WalletUtils.generateFullNewWalletFile()
使用:
Web3j web3 = Web3j.build(new HttpService());
...我正在连接到运行geth的本地私有区块链。
问题是。如何在我的钱包中添加一些测试,以及我本地创建的钱包和我正在运行的geth客户端之间的上下文。
如何将web3j创建的钱包连接到geth客户端?
使用:
WalletUtils.loadCredentials()
..我可以获得钱包的公共地址,但在我使用时,该帐户未列在geth客户端中:
web3.ethAccounts().send().getAccounts()
这是如何组合在一起的?
答案 0 :(得分:0)
初始化私有区块链时,需要在{
"config": {
"chainId": 29462
},
"difficulty": "0x400",
"gasLimit": "0x8000000",
"alloc": {
"d69cc234de15189f0ba998a41421961e89837fc5": {
"balance": "30000000000000000000000000000"
}
}
}
中指定初始以太网。
一个简单的例子:
geth
此处指定的地址需要在初始化genesis块之前创建。您可以使用WalletUtils.generateFullNewWalletFile()
手动创建地址,也可以使用geth
创建的地址。这里的重要部分是确保在运行destinationDirectory
命令时使用相同的密钥库目录。无论您传入generateFullNewWalletFile()
的{{1}}是什么,都需要通过geth
选项传递到--keystore
。
如果您已经创建了私有区块链并将以太网分配给了与您在web3j中创建的帐户不同的帐户,请确保您为两个帐户使用相同的密钥库目录(并且该目录与--keystore
选项)并简单地将以太币从原始帐户转移到您创建的新帐户。