我正在使用readme指南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
文件复制到主机?
我不建议使用 WalletUtils.loadCredentials()
,因为可能会遇到麻烦。
我推荐您:
1。在手动创建帐户,例如在MyetherWallet或Web3J中使用:web3j wallet create
2。提取私钥或密码和钱包。
3。使用Credentials.create()
。
替代1:
如果您有密码和钱包,则可以使用:
Credentials credentials = Credentials.create(Wallet.decrypt(password, walletFile));
替代2:
如果您有eckeypair,则可以使用:
Credentials credentials = Credentials.create(getEcKeyPair());
替代3:
如果您有私人关键,则可以使用:
Credentials credentials = Credentials.create(privateKey);
Walletutils.loadcredentials可能是错误的,我建议您提前创建帐户,然后您可以提取私钥并使用
Credentials.create(privateKey)
您可以使用密钥库文件并使用MyetherWallet查看您的私钥。
val k = ECKeyPair.create(BigInteger(credentialsOne.ecKeyPair.privateKey.toString()))
val test = Credentials.create(k)
通过纯文本像纯文本一样,可以给您一些陌生的结果,将他传递到eckeypair中,然后您将可以使用公共密钥和地址。我正在与Kotlin一起在Android开发,并且没有任何麻烦
钱包路径是可以保存JSON的地方,每次您想获得钥匙时,都必须放置相同的路径和密码
Walletutils.loadcredentials((方法在frist参数中获取密码,在第二个参数中,它采用了您已经创建的Wallet UTC文件的路径。如果不创建任何钱包,那么您应该制造钱包通过Walletutils.CreateWallet((提供密码和路径,您要在成功创建Wallet后要保存UTC文件的路径将保存在您提供的位置上,然后您可以使用Walletutils.loadutils.loadcredentials((加载凭据并签名交易