[英]Using java web3j to create wallet but how then connect to private running blockchain?
我正在使用java web3j lib并使用以下命令创建一个新的钱包文件:
WalletUtils.generateFullNewWalletFile()
带有:
Web3j web3 = Web3j.build(new HttpService());
...我正在连接到运行geth的本地私有区块链。
问题是。 如何向我的钱包添加测试,以及本地创建的钱包和正在运行的geth客户端之间的上下文是什么?
如何将web3j创建的钱包与geth客户端连接?
带有:
WalletUtils.loadCredentials()
..我可以获取钱包的公共地址,但是在使用时,该帐户未在geth客户端中列出:
web3.ethAccounts().send().getAccounts()
这如何搭配在一起?
初始化私有区块链时,需要在genesis.json
指定初始的ether。
一个简单的例子:
{
"config": {
"chainId": 29462
},
"difficulty": "0x400",
"gasLimit": "0x8000000",
"alloc": {
"d69cc234de15189f0ba998a41421961e89837fc5": {
"balance": "30000000000000000000000000000"
}
}
}
需要在初始化创世块之前创建此处指定的地址。 您可以使用geth
手动创建地址,也可以使用通过WalletUtils.generateFullNewWalletFile()
创建的地址。 这里重要的部分是确保在运行geth
命令时使用相同的密钥库目录。 无论您传递给generateFullNewWalletFile()
destinationDirectory
什么,都需要使用--keystore
选项传递给geth
。
如果您已经创建了私有区块链并将以太币分配给与在web3j中创建的账户不同的账户,请确保两个账户都使用相同的密钥库目录(并且该目录与--keystore
选项匹配),并且只需将以太币从原始帐户转移到您创建的新帐户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.