anchor.diff:      Class Function LoadSafeBoxStreamHeader(Stream : TStream; var sbHeader : TPCSafeBoxHeader) : Boolean;
       Class Function SaveSafeBoxStreamHeader(Stream : TStream; protocol : Word; OffsetStartBlock, OffsetEndBlock, CurrentSafeBoxBlocksCount : Cardinal) : Boolean;
       Class Function MustSafeBoxBeSaved(BlocksCount : Cardinal) : Boolean;
  -    Procedure SaveSafeBoxBlockToAStream(Stream : TStream; nBlock : Cardinal);
  +    Procedure SaveSafeBoxBlockToAStream(DestStream : TStream; nBlock : Cardinal);
       Procedure SaveSafeBoxToAStream(Stream : TStream; FromBlock, ToBlock : Cardinal);
       class Function CopySafeBoxStream(Source,Dest : TStream; FromBlock, ToBlock : Cardinal; var errors : AnsiString) : Boolean;
       class Function ConcatSafeBoxStream(Source1, Source2, Dest : TStream; var errors : AnsiString) : Boolean;
  
positive.code:   StartThreadSafe;
    try
      // If No buffer to hash is because it's firts block... so use Genesis: CT_Genesis_Magic_String_For_Old_Block_Hash
      if (FBufferBlocksHash='') then Result := TCrypto.DoSha256(CT_Genesis_Magic_String_For_Old_Block_Hash)
      else Result := TCrypto.DoSha256(FBufferBlocksHash);
    finally
      EndThreadSave;
    end;
  
negative.code:       Raise Exception.Create(Format('%s Integrity on block hash (i)=%d for block number:%d',[title, i,bl_my.blockchainInfo.block]));
      end;
    end;
    auxH := TBytesBuffer.Create(1024);
    Try
      maxBlock := sb.BlocksCount;
      auxH.SetLength(sb.BlocksCount*32);
      for i:=0 to sb.BlocksCount-1 do begin
        bl_my := sb.Block(i);
        for j:=Low(bl_my.accounts) to High(bl_my.accounts) do begin
          If maxBlock < (bl_my.accounts[j].updated_block) then begin
            Raise Exception.Create(Format('%s Integrity on (i)=%d for block account:%d updated on %d > maxBlock %d',[title, i,bl_my.accounts[j].account,bl_my.accounts[j].updated_block,maxBlock]));
          end;
        end;
        auxH.Replace(i*32,bl_my.block_hash[1],Length(bl_my.block_hash));
      end;
      if (sb.FBufferBlocksHash.Compare(auxH)<>0) then begin
        Raise Exception.Create(Format('%s Integrity different Buffer Block Hash',[title]));
      end;
    Finally
      auxH.Free;
    End;
  end;
  
  
  