anchor.diff:      FNetConnections : TPCThreadList;
       FNodeServersAddresses : TOrderedServerAddressListTS;
       FLastRequestId : Cardinal;
  +    FOnProcessReservedAreaMessage: TProcessReservedAreaMessage;
       FRegisteredRequests : TPCThreadList;
       FIsDiscoveringServers : Boolean;
       FIsGettingNewBlockChainFromClient : Boolean;
  
positive.code:     If Not Assigned(FTcpIpClient) then exit;
      if Not Client.Connected then exit;
      iDebugStep := 110;
      tc := GetTickCount;
      If TPCThread.TryProtectEnterCriticalSection(Self,MaxWaitTime,FNetLock) then begin
        Try
          iDebugStep := 120;
  
negative.code:           (Client as TBufferedNetTcpIpClient).ReadBufferUnlock;
          end;
        end;
      until (Result) Or ((TPlatform.GetTickCount > (tc+MaxWaitMiliseconds)) And (last_bytes_read=0));
    finally
      Try
        if (Connected) then begin
          if (Not Result) And (FClientBufferRead.Size>0) And (Not IsValidHeaderButNeedMoreData) then begin
            deletedBytes := FClientBufferRead.Size;
            TLog.NewLog(lterror,ClassName,Format('Deleting %d bytes from TcpClient buffer of %s after max %d miliseconds. Elapsed: %d',
              [deletedBytes, Client.ClientRemoteAddr,MaxWaitMiliseconds,TPlatform.GetTickCount-tc]));
            FClientBufferRead.Size:=0;
            DisconnectInvalidClient(false,'Invalid data received in buffer ('+inttostr(deletedBytes)+' bytes)');
          end else if (IsValidHeaderButNeedMoreData) then begin
            TLog.NewLog(ltDebug,ClassName,Format('Not enough data received - Received %d bytes from TcpClient buffer of %s after max %d miliseconds. Elapsed: %d - HeaderData: %s',
              [FClientBufferRead.Size, Client.ClientRemoteAddr,MaxWaitMiliseconds,TPlatform.GetTickCount-tc,TNetData.HeaderDataToText(HeaderData)]));
          end;
        end;
      Finally
  