Removing duplicate code for confirmation action which is always run.
This commit is contained in:
parent
b2bafeb432
commit
2e2151df1e
6 changed files with 17 additions and 54 deletions
|
@ -13,10 +13,7 @@ TEST (conflicts, start_stop)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send1);
|
||||
}
|
||||
ASSERT_EQ (1, node1.active.roots.size ());
|
||||
auto root1 (send1->root ());
|
||||
|
@ -38,19 +35,13 @@ TEST (conflicts, add_existing)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send1);
|
||||
}
|
||||
rai::keypair key2;
|
||||
auto send2 (std::make_shared <rai::send_block> (genesis.hash (), key2.pub, 0, rai::test_genesis_key.prv, rai::test_genesis_key.pub, 0));
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send2, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send2);
|
||||
}
|
||||
ASSERT_EQ (1, node1.active.roots.size ());
|
||||
rai::vote vote1 (key2.pub, key2.prv, 0, send2);
|
||||
|
@ -73,20 +64,14 @@ TEST (conflicts, add_two)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send1);
|
||||
}
|
||||
rai::keypair key2;
|
||||
auto send2 (std::make_shared <rai::send_block> (send1->hash (), key2.pub, 0, rai::test_genesis_key.prv, rai::test_genesis_key.pub, 0));
|
||||
ASSERT_EQ (rai::process_result::progress, node1.process (*send2).code);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send2, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send2);
|
||||
}
|
||||
ASSERT_EQ (2, node1.active.roots.size ());
|
||||
}
|
||||
|
|
|
@ -729,10 +729,7 @@ TEST (votes, add_one)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send1);
|
||||
}
|
||||
auto votes1 (node1.active.roots.find (send1->root ())->election);
|
||||
ASSERT_EQ (1, votes1->votes.rep_votes.size ());
|
||||
|
@ -764,10 +761,7 @@ TEST (votes, add_two)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send1);
|
||||
}
|
||||
auto votes1 (node1.active.roots.find (send1->root ())->election);
|
||||
rai::vote vote1 (rai::test_genesis_key.pub, rai::test_genesis_key.prv, 1, send1);
|
||||
|
@ -801,10 +795,7 @@ TEST (votes, add_existing)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send1);
|
||||
}
|
||||
auto votes1 (node1.active.roots.find (send1->root ())->election);
|
||||
rai::vote vote1 (rai::test_genesis_key.pub, rai::test_genesis_key.prv, 1, send1);
|
||||
|
@ -836,10 +827,7 @@ TEST (votes, add_old)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, send1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, send1);
|
||||
}
|
||||
auto votes1 (node1.active.roots.find (send1->root ())->election);
|
||||
rai::vote vote1 (rai::test_genesis_key.pub, rai::test_genesis_key.prv, 2, send1);
|
||||
|
|
|
@ -262,10 +262,7 @@ TEST (receivable_processor, confirm_insufficient_pos)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, block1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, block1);
|
||||
}
|
||||
rai::keypair key1;
|
||||
rai::vote vote (key1.pub, key1.prv, 0, block1);
|
||||
|
@ -283,10 +280,7 @@ TEST (receivable_processor, confirm_sufficient_pos)
|
|||
auto node_l (system.nodes [0]);
|
||||
{
|
||||
rai::transaction transaction (node1.store.environment, nullptr, true);
|
||||
node1.active.start (transaction, block1, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node1.active.start (transaction, block1);
|
||||
}
|
||||
rai::vote vote (rai::test_genesis_key.pub, rai::test_genesis_key.prv, 0, block1);
|
||||
rai::confirm_ack con1 (vote);
|
||||
|
|
|
@ -587,10 +587,7 @@ void rai::bulk_pull_client::received_block (boost::system::error_code const & ec
|
|||
{
|
||||
auto node_l (connection.node);
|
||||
std::shared_ptr <rai::block> block (node_l->ledger.forked_block (transaction_a, *block_a));
|
||||
node_l->active.start (transaction_a, block, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
node_l->active.start (transaction_a, block);
|
||||
connection.node->network.broadcast_confirm_req (block_a);
|
||||
connection.node->network.broadcast_confirm_req (block);
|
||||
BOOST_LOG (connection.node->log) << boost::str (boost::format ("Fork received in bootstrap between: %1% and %2% root %3%") % block_a->hash ().to_string () % block->hash ().to_string () % block_a->root ().to_string ());
|
||||
|
|
|
@ -1365,10 +1365,7 @@ void rai::node::process_receive_republish (std::shared_ptr <rai::block> incoming
|
|||
case rai::process_result::progress:
|
||||
{
|
||||
auto node_l (shared_from_this ());
|
||||
active.start (transaction_a, block_a, [node_l] (std::shared_ptr <rai::block> block_a)
|
||||
{
|
||||
node_l->process_confirmed (block_a);
|
||||
});
|
||||
active.start (transaction_a, block_a);
|
||||
completed.push_back (std::make_tuple (result_a, block_a));
|
||||
break;
|
||||
}
|
||||
|
@ -2564,9 +2561,11 @@ void rai::election::confirm_once (MDB_txn * transaction_a)
|
|||
}
|
||||
}
|
||||
auto winner_l (last_winner);
|
||||
auto node_l (node.shared ());
|
||||
auto confirmation_action_l (confirmation_action);
|
||||
node.background ([winner_l, confirmation_action_l] ()
|
||||
node.background ([winner_l, confirmation_action_l, node_l] ()
|
||||
{
|
||||
node_l->process_confirmed (winner_l);
|
||||
confirmation_action_l (winner_l);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ public:
|
|||
active_transactions (rai::node &);
|
||||
// Start an election for a block
|
||||
// Call action with confirmed block, may be different than what we started with
|
||||
void start (MDB_txn *, std::shared_ptr <rai::block>, std::function <void (std::shared_ptr <rai::block>)> const &);
|
||||
void start (MDB_txn *, std::shared_ptr <rai::block>, std::function <void (std::shared_ptr <rai::block>)> const & = [] (std::shared_ptr <rai::block>) {});
|
||||
void vote (rai::vote const &);
|
||||
// Is the root of this block in the roots container
|
||||
bool active (rai::block const &);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue