示例#1
0
        public async Task IterationCleanup()
        {
            await _transactionPoolService.CleanByTransactionIdsAsync(_transactions.Select(t => t.GetHash()).ToList());

            await _transactionPoolService.UpdateTransactionPoolByBestChainAsync(_chain.BestChainHash,
                                                                                _chain.BestChainHeight);

            await _transactionManager.RemoveTransactionsAsync(_transactions.Select(t => t.GetHash()).ToList());
        }
示例#2
0
        public async Task IterationCleanup()
        {
            await _blockStateSets.RemoveAsync(_block.GetHash().ToStorageKey());

            var transactionIds = _transactions.Select(t => t.GetHash()).ToList();
            await _transactionManager.RemoveTransactionsAsync(transactionIds);

            await RemoveTransactionResultsAsync(transactionIds, _block.GetHash());

            await _transactionPoolService.CleanByTransactionIdsAsync(_transactions.Select(t => t.GetHash()).ToList());

            await _transactionPoolService.UpdateTransactionPoolByBestChainAsync(_chain.BestChainHash,
                                                                                _chain.BestChainHeight);
        }
示例#3
0
        public async Task IterationCleanup()
        {
            await _transactionPoolService.CleanByTransactionIdsAsync(_block.TransactionIds);

            await _transactionPoolService.UpdateTransactionPoolByBestChainAsync(_chain.BestChainHash,
                                                                                _chain.BestChainHeight);

            await _transactionManager.RemoveTransactionsAsync(_block.Body.TransactionIds);

            await _chainManager.RemoveChainBlockLinkAsync(_block.GetHash());

            await _blockManager.RemoveBlockAsync(_block.GetHash());

            await _chains.SetAsync(_chain.Id.ToStorageKey(), _chain);
        }
        public async Task GlobalCleanup()
        {
            foreach (var block in _blocks)
            {
                await _transactionPoolService.CleanByTransactionIdsAsync(block.TransactionIds);

                await _transactionManager.RemoveTransactionsAsync(block.Body.TransactionIds);
                await RemoveTransactionResultsAsync(block.Body.TransactionIds, block.GetHash());

                await _chainManager.RemoveChainBlockLinkAsync(block.GetHash());

                await _blockManager.RemoveBlockAsync(block.GetHash());
            }

            await _transactionPoolService.UpdateTransactionPoolByBestChainAsync(_chain.BestChainHash,
                                                                                _chain.BestChainHeight);

            await _chains.SetAsync(_chain.Id.ToStorageKey(), _chain);
        }
示例#5
0
 public async Task HandleEventAsync(BlockAcceptedEvent eventData)
 {
     await _transactionPoolService.CleanByTransactionIdsAsync(eventData.Block.TransactionIds);
 }