public CoreStorage(IStorageManager storageManager, Logger logger) { for (var i = 0; i < this.presentBlockTxesLocks.Length; i++) { presentBlockTxesLocks[i] = new object(); } this.logger = logger; this.storageManager = storageManager; this.blockStorage = storageManager.BlockStorage; this.blockTxesStorage = storageManager.BlockTxesStorage; this.cachedHeaders = new ConcurrentDictionary <UInt256, ChainedHeader>(); this.missingHeaders = new ConcurrentSetBuilder <UInt256>(); this.missingBlockTxes = new ConcurrentSetBuilder <UInt256>(); foreach (var chainedHeader in this.blockStorage.ReadChainedHeaders()) { this.cachedHeaders[chainedHeader.Hash] = chainedHeader; } }
public static bool TryAddBlockTransactions(this IBlockTxesStorage storage, UInt256 blockHash, IEnumerable <BlockTx> transactions) { return(storage.TryAddBlockTransactions(blockHash, transactions.Select(x => x.EncodedTx))); }