Beispiel #1
0
        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)));
 }