Exemplo n.º 1
0
 protected void OnPersistCompleted(Block block)
 {
     lock (_validators)
     {
         _validators.Clear();
     }
     PersistCompleted?.Invoke(this, block);
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 /// <summary>
 /// 当区块被写入到硬盘后调用
 /// </summary>
 /// <param name="block">区块</param>
 protected void OnPersistCompleted(Block block)
 {
     TR.Enter();
     PersistCompleted?.Invoke(this, block);
     TR.Exit();
 }
Exemplo n.º 6
0
 /// <summary>
 /// 当区块被写入到硬盘后调用
 /// </summary>
 /// <param name="block">区块</param>
 protected void OnPersistCompleted(Block block)
 {
     PersistCompleted?.Invoke(this, block);
 }