From 72d376b59579d8b26050bb987cf4c1798829b279 Mon Sep 17 00:00:00 2001 From: cryptocode Date: Wed, 9 Jan 2019 23:24:01 +0100 Subject: [PATCH] Use builder in CLI debug commands (#1553) * Use builder in CLI debug commands * Fix sign call --- nano/nano_node/entry.cpp | 94 +++++++++++++++++++++++++++++++++++----- 1 file changed, 83 insertions(+), 11 deletions(-) diff --git a/nano/nano_node/entry.cpp b/nano/nano_node/entry.cpp index 6b4d0980d..220923cea 100644 --- a/nano/nano_node/entry.cpp +++ b/nano/nano_node/entry.cpp @@ -380,6 +380,7 @@ int main (int argc, char * const * argv) { if (nano::nano_network == nano::nano_networks::nano_test_network) { + nano::block_builder builder; size_t num_accounts (100000); size_t num_interations (5); // 100,000 * 5 * 2 = 1,000,000 blocks size_t max_blocks (2 * num_accounts * num_interations + num_accounts * 2); // 1,000,000 + 2* 100,000 = 1,200,000 blocks @@ -402,10 +403,30 @@ int main (int argc, char * const * argv) for (auto i (0); i != num_accounts; ++i) { genesis_balance = genesis_balance - 1000000000; - auto send (std::make_shared (nano::test_genesis_key.pub, genesis_latest, nano::test_genesis_key.pub, genesis_balance, keys[i].pub, nano::test_genesis_key.prv, nano::test_genesis_key.pub, work.generate (genesis_latest))); + + auto send = builder.state () + .account (nano::test_genesis_key.pub) + .previous (genesis_latest) + .representative (nano::test_genesis_key.pub) + .balance (genesis_balance) + .link (keys[i].pub) + .sign (keys[i].prv, keys[i].pub) + .work (work.generate (genesis_latest)) + .build (); + genesis_latest = send->hash (); blocks.push_back (std::move (send)); - auto open (std::make_shared (keys[i].pub, 0, keys[i].pub, balances[i], genesis_latest, keys[i].prv, keys[i].pub, work.generate (keys[i].pub))); + + auto open = builder.state () + .account (keys[i].pub) + .previous (0) + .representative (keys[i].pub) + .balance (balances[i]) + .link (genesis_latest) + .sign (nano::test_genesis_key.prv, nano::test_genesis_key.pub) + .work (work.generate (keys[i].pub)) + .build (); + frontiers[i] = open->hash (); blocks.push_back (std::move (open)); } @@ -416,12 +437,32 @@ int main (int argc, char * const * argv) size_t other (num_accounts - j - 1); // Sending to other account --balances[j]; - auto send (std::make_shared (keys[j].pub, frontiers[j], keys[j].pub, balances[j], keys[other].pub, keys[j].prv, keys[j].pub, work.generate (frontiers[j]))); + + auto send = builder.state () + .account (keys[j].pub) + .previous (frontiers[j]) + .representative (keys[j].pub) + .balance (balances[j]) + .link (keys[other].pub) + .sign (keys[j].prv, keys[j].pub) + .work (work.generate (frontiers[j])) + .build (); + frontiers[j] = send->hash (); blocks.push_back (std::move (send)); // Receiving ++balances[other]; - auto receive (std::make_shared (keys[other].pub, frontiers[other], keys[other].pub, balances[other], frontiers[j], keys[other].prv, keys[other].pub, work.generate (frontiers[other]))); + + auto receive = builder.state () + .account (keys[other].pub) + .previous (frontiers[other]) + .representative (keys[other].pub) + .balance (balances[other]) + .link (frontiers[j]) + .sign (keys[other].prv, keys[other].pub) + .work (work.generate (frontiers[other])) + .build (); + frontiers[other] = receive->hash (); blocks.push_back (std::move (receive)); } @@ -456,6 +497,7 @@ int main (int argc, char * const * argv) { if (nano::nano_network == nano::nano_networks::nano_test_network) { + nano::block_builder builder; size_t num_elections (40000); size_t num_representatives (25); size_t max_votes (num_elections * num_representatives); // 40,000 * 25 = 1,000,000 votes @@ -476,11 +518,31 @@ int main (int argc, char * const * argv) { auto transaction (node->store.tx_begin_write ()); genesis_balance = genesis_balance - balance; - nano::state_block send (nano::test_genesis_key.pub, genesis_latest, nano::test_genesis_key.pub, genesis_balance, keys[i].pub, nano::test_genesis_key.prv, nano::test_genesis_key.pub, work.generate (genesis_latest)); - genesis_latest = send.hash (); - node->ledger.process (transaction, send); - nano::state_block open (keys[i].pub, 0, keys[i].pub, balance, genesis_latest, keys[i].prv, keys[i].pub, work.generate (keys[i].pub)); - node->ledger.process (transaction, open); + + auto send = builder.state () + .account (nano::test_genesis_key.pub) + .previous (genesis_latest) + .representative (nano::test_genesis_key.pub) + .balance (genesis_balance) + .link (keys[i].pub) + .sign (nano::test_genesis_key.prv, nano::test_genesis_key.pub) + .work (work.generate (genesis_latest)) + .build (); + + genesis_latest = send->hash (); + node->ledger.process (transaction, *send); + + auto open = builder.state () + .account (keys[i].pub) + .previous (0) + .representative (keys[i].pub) + .balance (balance) + .link (genesis_latest) + .sign (keys[i].prv, keys[i].pub) + .work (work.generate (keys[i].pub)) + .build (); + + node->ledger.process (transaction, *open); } // Generating blocks std::deque> blocks; @@ -488,9 +550,19 @@ int main (int argc, char * const * argv) { genesis_balance = genesis_balance - 1; nano::keypair destination; - auto send (std::make_shared (nano::test_genesis_key.pub, genesis_latest, nano::test_genesis_key.pub, genesis_balance, destination.pub, nano::test_genesis_key.prv, nano::test_genesis_key.pub, work.generate (genesis_latest))); + + auto send = builder.state () + .account (nano::test_genesis_key.pub) + .previous (genesis_latest) + .representative (nano::test_genesis_key.pub) + .balance (genesis_balance) + .link (destination.pub) + .sign (nano::test_genesis_key.prv, nano::test_genesis_key.pub) + .work (work.generate (genesis_latest)) + .build (); + genesis_latest = send->hash (); - blocks.push_back (send); + blocks.push_back (std::move (send)); } // Generating votes std::deque> votes;