我正在使用 web3j 和 geth。如何創建帶有一些乙太分配的預設帳戶?
- 我需要一個有大量乙太幣分配的預設賬戶。這我需要在 genesis.json 中手動設置
- 此後,所有賬戶都需要在java中動態創建,並且還應該給他們一些預設的資金。
我使用 web3j 進行了嘗試,但它創建了自己的 genesis block 。我怎樣才能在那個 genesis 中進行我的預設設置?
另外,不確定是在這裡使用智能合約還是 web3j ?
在這裡編輯
如何在專用網路中啟動 geth 和 web3j?
我的應用程序需要創建預設帳戶,並為其分配一些預設的乙太幣。我這樣做了
一種。“獲取新帳戶”命令
灣。用這個新創建的帳戶更新了 genesis.json 並為其分配了一些餘額
C。然後執行初始化命令“geth –datadir ./datadir init genesis.json”
一切正常。所以,現在我有一些預設乙太幣的主帳戶。
現在,以後我應該能夠動態地創建新帳戶了。並將一些預設資金從上述步驟中創建的主賬戶轉移到這些賬戶。
我嘗試使用 web3j - java API,“geth –rpcapi personal,db,eth,net,web3 –rpc –testnet” 但這應該指向現有的 genesis.json 和 keystore 。它正在創建新的 genesis.json 。我怎樣才能做到這一點?
本教程涵蓋了使用 web3j Java 框架在私有乙太坊節點中開發您的第一個智能合約所需的完整步驟。
您也可以使用
ganache
來代替geth
DAPP 的開發。ganache
預設為 10 個賬戶預分配 100 個乙太幣。
就我而言,我設法使用 web3j 庫從 Android Dapp 創建了按需私有區塊鏈帳戶,特別是使用
LoadCredentials
和WalletUtils
. 程式碼應該是這樣的:(請記住,這是 Kotlin (Android) 程式碼,既不是 Java 也不是 Geth 命令,您應該注意它的等價物)val password = "whatever_you_want" var fileName = "" val walletPath = filesDir.absolutePath var walletDir = File(walletPath) fileName = WalletUtils.generateLightNewWalletFile(password, walletDir) walletDir = File("$walletPath/$fileName") var credentials: Credentials = WalletUtils.loadCredentials(password, walletDir)
有了這個,你剛剛在你的區塊鏈中創建了一個錢包賬戶。將乙太幣提供給它的問題更複雜,但這裡有一些選擇:
- 從您的初始主賬戶手動轉賬,預存大量乙太幣。(與 Geth 或 Java 正常事務,即
Transfer.sendFunds()
:)- 使用像 Ropsten / Rinkeby 這樣的測試網並呼叫faucet
- 創建您自己的私人定制水龍頭(在此處觀看我的問題執行緒)
希望能幫助到你。