protected void OnPersistCompleted(Block block) { lock (_validators) { _validators.Clear(); } PersistCompleted?.Invoke(this, block); }
private void OnPersistCompleted(Block block) { block_cache.Remove(block.Hash); MemPool.UpdatePoolForBlockPersisted(block, currentSnapshot); PersistCompleted completed = new PersistCompleted { Block = block }; system.Consensus?.Tell(completed); Distribute(completed); }
private void OnPersistCompleted(Block block) { block_cache.Remove(block.Hash); foreach (Transaction tx in block.Transactions) { mem_pool.TryRemove(tx.Hash, out _); } foreach (Transaction tx in mem_pool.Values) { Self.Tell(tx, ActorRefs.NoSender); } mem_pool.Clear(); PersistCompleted completed = new PersistCompleted { Block = block }; system.Consensus?.Tell(completed); Distribute(completed); }
private void OnPersistCompleted(Block block) { block_cache.Remove(block.Hash); foreach (Transaction tx in block.Transactions) { mem_pool.TryRemove(tx.Hash, out _); } foreach (Transaction tx in mem_pool.Values .OrderByDescending(p => p.NetworkFee / p.Size) .ThenByDescending(p => p.NetworkFee) .ThenByDescending(p => new BigInteger(p.Hash.ToArray()))) { Self.Tell(tx, ActorRefs.NoSender); } mem_pool.Clear(); PersistCompleted completed = new PersistCompleted { Block = block }; system.Consensus?.Tell(completed); Distribute(completed); }
/// <summary> /// 当区块被写入到硬盘后调用 /// </summary> /// <param name="block">区块</param> protected void OnPersistCompleted(Block block) { TR.Enter(); PersistCompleted?.Invoke(this, block); TR.Exit(); }
/// <summary> /// 当区块被写入到硬盘后调用 /// </summary> /// <param name="block">区块</param> protected void OnPersistCompleted(Block block) { PersistCompleted?.Invoke(this, block); }