web3j中凭据的钱包路径是什么?

时间:2017-05-30 10:07:26

标签: blockchain ethereum web3 web3-java

我正在使用自述指南https://github.com/web3j/web3j

我感兴趣的是从我的主机使用Java + Web3j开发智能合约到在我的虚拟机上运行的私有以太坊网络。

有这样的界限:

Web3j web3 = Web3j.build(new HttpService());  // defaults to http://localhost:8545/
Credentials credentials = WalletUtils.loadCredentials("password", "/path/to/walletfile");

所以问题是:

我该如何制作这个钱包?我应该在我的VM上生成帐户,然后将wallet.json文件复制到我的主机吗?

4 个答案:

答案 0 :(得分:1)

WalletUtils.loadCredentials可能有问题,我建议您事先创建帐户,然后您可以提取私钥并使用

Credentials.create(privateKey)

您可以使用密钥库文件并使用myetherwallet查看您的私钥。

答案 1 :(得分:1)

val k = ECKeyPair.create(BigInteger(credentialsOne.ecKeyPair.privateKey.toString()))
            val test = Credentials.create(k)

像普通文本一样传递私钥可以给你一些陌生人的结果,将他传递给ECKeyPair,然后你就可以访问你的公钥和地址了。 我正在使用kotlin开发android,我没有任何麻烦

钱包路径是您保存json的地方,每次想要获得钥匙时,都必须使用相同的路径和密码

答案 2 :(得分:1)

我不建议您使用WalletUtils.loadCredentials(),因为它可能有问题。

我建议您:

1。。预先创建帐户,例如在myetherwallet或使用以下方式使用web3j:web3j wallet create

2。。提取私钥或密码和walletfile。

3。。使用Credentials.create()

替代1:

如果拥有密码和walletfile,则可以使用:

Credentials credentials = Credentials.create(Wallet.decrypt(password, walletFile));

替代2:

如果您有EcKeyPair,则可以使用:

Credentials credentials = Credentials.create(getEcKeyPair());

替代3:

如果您有私钥,则可以使用:

Credentials credentials = Credentials.create(privateKey);

答案 3 :(得分:0)

WalletUtils.loadCredentials()方法在第一个参数中获取密码,在第二个参数中获取已创建的钱包UTC文件的路径。 如果不创建任何钱包,则应首先创建钱包 通过WalletUtils.createWallet()提供密码和成功创建钱包后要保存utc文件的路径,utc文件将保存在您提供的位置,然后您可以使用WalletUtils.loadCredentials()加载凭据并签署交易