anchor.diff:    CT_INI_IDENT_MINER_MAX_ZERO_FEE_OPERATIONS  = 'RPC_SERVERMINER_MAX_ZERO_FEE_OPERATIONS';
     CT_INI_IDENT_LOWMEMORY = 'LOWMEMORY';
     CT_INI_IDENT_MINPENDINGBLOCKSTODOWNLOADCHECKPOINT = 'MINPENDINGBLOCKSTODOWNLOADCHECKPOINT';
  +  CT_INI_IDENT_PEERCACHE = 'PEERCACHE';
   
   Type
     { TPCDaemonThread }
  
positive.code:         TFileStorage(FNode.Bank.Storage).LowMemoryUsage := FIniFile.ReadBool(CT_INI_SECTION_GLOBAL,CT_INI_IDENT_LOWMEMORY,False);
          // By default daemon will not download checkpoint except if specified on INI file
          TNetData.NetData.MinFutureBlocksToDownloadNewSafebox := FIniFile.ReadInteger(CT_INI_SECTION_GLOBAL,CT_INI_IDENT_MINPENDINGBLOCKSTODOWNLOADCHECKPOINT,0);
          // Reading database
          FNode.InitSafeboxAndOperations(MaxBlockToRead);
          FWalletKeys.SafeBox := FNode.Node.Bank.SafeBox;
  
negative.code: Var _FLog : TLog;
  
  { TPCDaemonThread }
  
  procedure TPCDaemonThread.OnNetDataReceivedHelloMessage(Sender: TObject);
  Var LNsarr : TNodeServerAddressArray;
    i : Integer;
    s : AnsiString;
  begin
    If (TPlatform.GetElapsedMilliseconds(FLastNodesCacheUpdatedTS)<60000) then Exit; // Prevent continuous saving
    FLastNodesCacheUpdatedTS := TPlatform.GetTickCount;
    // Update node servers Peer Cache
    LNsarr := TNetData.NetData.NodeServersAddresses.GetValidNodeServers(true,0);
    s := '';
    for i := low(LNsarr) to High(LNsarr) do begin
      if (s<>'') then s := s+';';
      s := s + LNsarr[i].ip+':'+IntToStr( LNsarr[i].port );
    end;
    FIniFile.WriteString(CT_INI_SECTION_GLOBAL,CT_INI_IDENT_PEERCACHE,s);
    TNode.Node.PeerCache := s;
  end;
  
  procedure TPCDaemonThread.BCExecute;
  var
  