繁体   English   中英

使用java web3j创建钱包,但是如何连接到私有运行的区块链?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM