Web3j

我正在使用 web3j 和 geth。如何創建帶有一些乙太分配的預設帳戶?

  • May 1, 2021
  1. 我需要一個有大量乙太幣分配的預設賬戶。這我需要在 genesis.json 中手動設置
  2. 此後,所有賬戶都需要在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來代替gethDAPP 的開發。ganache預設為 10 個賬戶預分配 100 個乙太幣。

就我而言,我設法使用 web3j 庫從 Android Dapp 創建了按需私有區塊鏈帳戶,特別是使用LoadCredentialsWalletUtils. 程式碼應該是這樣的:(請記住,這是 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
  • 創建您自己的私人定制水龍頭(在此處觀看我的問題執行緒)

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/57332