Example #1
0
        // Request missing walletstate chunks from network
        private void requestWalletChunks()
        {
            lock (missingWsChunks)
            {
                int count = 0;
                foreach (int c in missingWsChunks)
                {
                    bool request_sent = ProtocolMessage.getWalletStateChunkNeighbor(syncNeighbor, c);
                    if (request_sent == false)
                    {
                        Logging.warn(String.Format("Failed to request wallet chunk from {0}. Restarting WalletState synchronization.", syncNeighbor));
                        startWalletStateSync();
                        return;
                    }

                    count += 1;
                    if (count > maxBlockRequests)
                    {
                        break;
                    }
                }
                if (count > 0)
                {
                    Logging.info(String.Format("{0} WalletState chunks are missing before WalletState is synchronized...", missingWsChunks.Count));
                }
                Thread.Sleep(2000);
            }
        }