anchor.diff:      Procedure SetBlockChainFile(BlockChainFileName : AnsiString);
       Function HasUpgradedToVersion2 : Boolean; override;
       Procedure CleanupVersion1Data; override;
  +    property LowMemoryUsage : Boolean read FLowMemoryUsage write FLowMemoryUsage;
     End;
   
   implementation
  
positive.code: 
    TFileStorage = Class(TStorage)
    private
      FStorageLock : TPCCriticalSection;
      FBlockChainStream : TFileStream;
      FPendingBufferOperationsStream : TFileStream;
  
negative.code: begin
    Result := '';
    If not ForceDirectories(BaseDataFolder) then exit;
    if TPCSafeBox.MustSafeBoxBeSaved(block) then begin
      // We will store checkpointing
      Result := BaseDataFolder + PathDelim+'checkpoint'+ inttostr((block DIV CT_BankToDiskEveryNBlocks) MOD CT_SafeboxsToStore)+'.safebox';
    end else begin
      Result := BaseDataFolder + PathDelim+'checkpoint_'+inttostr(block)+'.safebox';
    end;
  end;
  
  function TFileStorage.GetBlockHeaderFirstBytePosition(Stream : TStream; Block: Cardinal; CanInitialize : Boolean; var iBlockHeaders : Integer; var BlockHeaderFirstBlock: Cardinal): Boolean;
  