Wallet

Bitcoinj:多個錢包

  • March 12, 2017

在我的 Java 應用程序中,我現在需要處理多個比特幣錢包(HD 錢包?)。這意味著發送和接收 BTC。不幸的是,比特幣對我來說很新,所以有一些問題:

是否可以使用 BitcoinJ 來做到這一點?它在數百個(或更多)錢包中表現良好嗎?如果沒有,還有什麼替代方案?

關於工作流程:當然,私鑰將保留在使用者端,因此應用程序本身無法讀取。如果沒有錢包的私鑰,是否仍然可以引發諸如“收到錢”之類的事件?

我也有同樣的疑問。我在圖書館 bitcoinj 做了一點研究,我認為可以同時使用多個錢包。我建議您首先使用單個錢包,以便您可以了解它是如何工作的庫。我舉個例子:

public class MainClass {
   private static final File BLOCKCHAIN_FILE = new File("block.dat");
   private static final NetworkParameters NET_PARAMS = MainNetParams.get();

   public static void main(String[] args) throws Exception {

       List<Wallet> wallets = getWallets();
       BlockStore blockStore = new SPVBlockStore(NET_PARAMS, BLOCKCHAIN_FILE);
       BlockChain blockChain = new BlockChain(NET_PARAMS, wallets, blockStore);
       PeerGroup peerGroup = new PeerGroup(NET_PARAMS, blockChain);

       for (Wallet w : wallets) {
           peerGroup.addWallet(w);
       }

       //Starting peerGroup;
       peerGroup.startAsync();

       //Start download blockchain
       peerGroup.downloadBlockChain();
   }

   public static List<Wallet> getWallets() throws UnreadableWalletException {

       List<Wallet> wallets = new ArrayList<>();
       for (int i = 0; i < 5; i++) {
           Wallet w = Wallet.loadFromFile(new File("wallet_" + i + ".dat"), null);
           wallets.add(w);
       }

       return wallets;
   }
}

引用自:https://bitcoin.stackexchange.com/questions/41019