public void ParseDidICatchUp(DidICatchUpRequest request, Peer from) { var catcherUp = new CatcherUpRequest() { EndOfLongestChain = _blockChainService.Info.EndOfLongestChain, Invs = new List <InvitationRequest>() }; foreach (var trans in _minerService.MemPool) { var inv = new InvitationRequest() { DataId = trans.Body.TransactionId, IsBlock = false }; catcherUp.Invs.Add(inv); } if (request.LastKnownEnd != _blockChainService.Info.EndOfLongestChain) { var newBs = _blockChainService.GetNewerBlockInfos(request.LastOnline, request.LastKnownEnd); foreach (var blockInfo in newBs) { var inv = new InvitationRequest() { DataId = blockInfo.Id, IsBlock = true }; catcherUp.Invs.Add(inv); } } Console.WriteLine("Response to didI {0} {1}", catcherUp.EndOfLongestChain, catcherUp.Invs.Count); _server.SendResponse(catcherUp, from); }