Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blockchain web3j中凭证的钱包路径是什么?_Blockchain_Ethereum_Web3_Web3 Java - Fatal编程技术网

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

Blockchain web3j中凭证的钱包路径是什么?,blockchain,ethereum,web3,web3-java,Blockchain,Ethereum,Web3,Web3 Java,我正在使用自述指南 我感兴趣的是开发智能合约,从使用Java+Web3j的主机到运行在虚拟机上的专用以太坊网络 有这样几条线: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Credentials credentials = WalletUtils.loadCredentials("password", "/path/to/walletfile"); 因此,问题是: 我应该

我正在使用自述指南

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

有这样几条线:

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


我应该如何创建此钱包?我应该在虚拟机上生成帐户,然后将
wallet.json
文件复制到主机上吗

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

Credentials.create(privateKey)
您可以使用密钥库文件和MyTherWallet查看您的私钥

val k = ECKeyPair.create(BigInteger(credentialsOne.ecKeyPair.privateKey.toString()))
            val test = Credentials.create(k)
像纯文本一样传递私钥可以给你一些陌生的结果,在ECKeyPair中传递他,然后你就可以访问你的公钥和地址。 我正在用kotlin开发android,我没有任何问题


wallet路径是保存json的地方,每次您想要获取密钥时,必须放置相同的路径和密码短语。loadCredentials()方法在第一个参数中获取密码,在第二个参数中获取您已经创建的wallet UTC文件的路径。 如果不创建任何钱包,则应首先创建钱包
By WalletUtils.createWallet()提供密码和保存utc文件的路径成功创建wallet后,utc文件将保存在您提供的位置,然后您可以使用WalletUtils.loadCredentials()加载凭据并签署交易

我不建议使用
WalletUtils.loadCredentials()
因为可能会出现故障

我建议你:

1.使用以下方法在web3j中或与web3j一起创建帐户:
web3j wallet Create

2.提取私钥或密码和钱包文件

3.使用
凭证。创建()

备选方案1:

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

Credentials credentials = Credentials.create(Wallet.decrypt(password, walletFile));
Credentials credentials = Credentials.create(getEcKeyPair());
Credentials credentials = Credentials.create(privateKey);
备选方案2:

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

Credentials credentials = Credentials.create(Wallet.decrypt(password, walletFile));
Credentials credentials = Credentials.create(getEcKeyPair());
Credentials credentials = Credentials.create(privateKey);
备选方案3:

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

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