Bitcoin-Core

使用 BitCoinJ 創建和託管自己的錢包時同步太低

  • December 16, 2017

我需要使用 BitcoinJ 在我自己的網站上創建和託管錢包。但是,它會不斷下載塊,並且同步似乎需要很長時間。我需要能夠在幾秒鐘內創建一個錢包。

誰能建議我應該怎麼做才能優化同步時間?

ECKey key = new ECKey();
Address addressFromKey = key.toAddress(params);

Wallet wallet = new Wallet(params);
wallet.importKey(key);

File blockFile = new File(“/tmp/bitcoinblocks”);
BlockStore blockStore = new MemoryBlockStore(params);
BlockChain chain = new BlockChain(params,blockStore);
PeerGroup peerGroup = new PeerGroup(params, chain);
peerGroup.addPeerDiscovery(new DnsDiscovery(params));
peerGroup.addWallet(wallet);
peerGroup.start();
peerGroup.downloadedBlockChain(); 

為了加快同步和創建錢包,您可以通過設置檢查點來完成,稍後在呼叫 create wallet 方法時,您可以設置檢查點以加快同步速度。就像我使用 bitcoinj 的 walletKit 方法來創建錢包一樣,例如找到下面的程式碼

WalletAppKit kit = new WalletAppKit(params, new File(walletPath), filePrefix);
kit.setCheckpoints( ReadProperties.class.getClassLoader().getResourceAsStream("checkpoints-bitcoin"));
kit.startAsync();
kit.awaitRunning();

你的比特幣節點只需要下載一次區塊鏈,所以如果你讓它在後台執行,你的網站可以要求它快速生成一個新地址。

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