Ethereumj

如何在 ethereumj 中創建帳戶

  • May 25, 2016

如何在 ethereumj 中創建等效的外部帳戶 (personal.newAccount())?我知道我可以使用 jsonrpc api 來做到這一點?但是我閱讀了https://github.com/ethereum/ethereumj/issues/335,它說它可以創建一個帳戶,但它不能,它只是生成地址,但不包括/將其添加到密鑰庫中。如何將其添加到密鑰庫。

首先,您將需要以下 Maven pom.xml 依賴項:

   <dependency>
       <groupId>org.ethereum</groupId>
       <artifactId>ethereumj-core</artifactId>
       <version>1.2.0-RELEASE</version>
       <!--  <type>zip</type>  -->
   </dependency>

這是創建私鑰/帳戶對的程式碼:

import org.ethereum.crypto.ECKey;
import org.spongycastle.util.encoders.Hex;

public class CreateAccount {

   public static void main(String[] args) {
       ECKey key = new ECKey();

       byte[] addr = key.getAddress();
       byte[] priv = key.getPrivKeyBytes();

       String addrBase16 = Hex.toHexString(addr);
       String privBase16 = Hex.toHexString(priv);

       System.out.println("Address     : " + addrBase16);
       System.out.println("Private Key : " + privBase16);
   }
}

執行程式碼兩次會產生以下輸出:

Address     : 82d4b1c01afaf7f25bb21fd0b4b4c4a7eb7120ce
Private Key : 133965f412d1362645cbd963619023585abc8765c7372ed238374acb884b2b3a

Address     : 68ccabefc7f4ae21ce0df1d98e50e099d7fc290f
Private Key : 1caeb7f26cb9f3cc7d9d0dbcdd3cf3cb056dbc011ec9013e8f3b8cdb2f193b32

使用https://www.myetherwallet.com/#view-wallet-info驗證資訊: 在此處輸入圖像描述

在此處輸入圖像描述

請注意,在 EthereumJ 中創建的帳戶都是小寫的,而使用 MyEtherWallet 從私鑰生成的帳戶是混合大小寫的。這是因為 MyEtherWallet 正在使用新的校驗和帳戶。參見又一個很酷的校驗和地址編碼 #55

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