private void StartBlockChainDownloadFromPeer(Peer peer)
{
lock (this)
{
peer.BlocksDownloaded += (sender, e) => _downloadListener.OnBlocksDownloaded((Peer) sender, e.Block, e.BlocksLeft);
peer.ChainDownloadStarted += (sender, e) => _downloadListener.OnChainDownloadStarted((Peer) sender, e.BlocksLeft);
try
{
peer.StartBlockChainDownload();
}
catch (IOException e)
{
_log.Error("failed to start block chain download from " + peer, e);
return;
}
_downloadPeer = peer;
}
}