Go-Ethereum
使用 Web3j 創建錢包
我生成了一個程式碼來為用乙太坊製作的私有鏈創建錢包。
String password = unlockAccountParameter.getPass(); ECKeyPair keyPair = Keys.createEcKeyPair(); WalletFile wallet = Wallet.createStandard(password, keyPair); System.out.println("Private key: " + keyPair.getPrivateKey().toString(16)); System.out.println("Account: " + wallet.getAddress()); String fileName = WalletUtils.generateNewWalletFile(unlockAccountParameter.getPass(), new File("C:\\Users\\emendez\\Wallet"), true); System.out.println("File name: " + fileName);
那就是給我這個輸出:
私有密鑰:67f7a218d5d595dff19cafca9384b5a6e0693bc085d7c16468b8a8a44e20135a 帳戶:bf29892787a79bb66188f9c44ca9ffd9ccff37aa
文件名:UTC–2018-11-15T12-26-51.672000000Z–252209a58e16be3c43776e38ff4bfaeb70660cfb.json
JSON 文件位於寫入程式碼的路徑中(在真機中)。但是當我去 geth 控制台列出在節點(虛擬機)中創建的帳戶時,我剛剛創建的帳戶不會出現。
所以我認為我不能在他們之間進行交易。
有什麼幫助嗎??
問題可能與您存放錢包的位置有關。
要自動檢測到,錢封包件需要儲存在
keystore
安裝 geth 的文件夾內的一個文件夾中。這些是最常見的路徑:– Mac:~/圖書館/乙太坊
– Linux:~/.ethereum
– Windows:%USERPROFILE%\AppData\Roaming\Ethereum
如果您無法訪問該文件夾,您可以使用以下命令導入您的帳戶:
geth account import --datadir /fileWithOnlyPrivateKey --password /fileWithPasswordStringToEncryptThatKey ./key.prv
您的最終解決方案是在您的程式碼中生成交易,並將已簽名的交易發送到節點(如果您可以保證私鑰安全,這將是最安全的方法),查看 web3 以了解如何做到這一點