public void PruneElements(UInt256 blockHash, IEnumerable <int> txIndices) { int blockId; if (!this.TryGetBlockId(blockHash, out blockId)) { throw new MissingDataException(blockHash); } using (var handle = this.cursorCache.TakeItem()) { var cursor = handle.Item; using (var jetTx = cursor.jetSession.BeginTransaction()) { var pruningCursor = new MerkleTreePruningCursor(blockId, cursor); //var cachedCursor = new CachedMerkleTreePruningCursor(pruningCursor); // prune the transactions foreach (var index in txIndices) { MerkleTree.PruneNode(pruningCursor, index); } jetTx.CommitLazy(); } } }
public void PruneElements(IEnumerable <KeyValuePair <UInt256, IEnumerable <int> > > blockTxIndices) { using (var handle = this.cursorCache.TakeItem()) { var cursor = handle.Item; foreach (var keyPair in blockTxIndices) { var blockHash = keyPair.Key; var txIndices = keyPair.Value; using (var jetTx = cursor.jetSession.BeginTransaction()) { int blockIndex; if (!TryGetBlockIndex(cursor, blockHash, out blockIndex)) { continue; } var pruningCursor = new MerkleTreePruningCursor(blockIndex, cursor); // prune the transactions foreach (var index in txIndices) { var cachedCursor = new CachedMerkleTreePruningCursor <BlockTxNode>(pruningCursor); MerkleTree.PruneNode(cachedCursor, index); } jetTx.CommitLazy(); } } } }
public void PruneElements(IEnumerable<KeyValuePair<UInt256, IEnumerable<int>>> blockTxIndices) { using (var handle = this.cursorCache.TakeItem()) { var cursor = handle.Item; foreach (var keyPair in blockTxIndices) { var blockHash = keyPair.Key; var txIndices = keyPair.Value; using (var jetTx = cursor.jetSession.BeginTransaction()) { int blockIndex; if (!TryGetBlockIndex(cursor, blockHash, out blockIndex)) continue; var pruningCursor = new MerkleTreePruningCursor(blockIndex, cursor); // prune the transactions foreach (var index in txIndices) { var cachedCursor = new CachedMerkleTreePruningCursor<BlockTxNode>(pruningCursor); MerkleTree.PruneNode(cachedCursor, index); } jetTx.CommitLazy(); } } } }