Bitcoin-Core
使用 BitCoinJ 創建和託管自己的錢包時同步太低
我需要使用 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();
你的比特幣節點只需要下載一次區塊鏈,所以如果你讓它在後台執行,你的網站可以要求它快速生成一個新地址。