Use builder in CLI debug commands (#1553)
* Use builder in CLI debug commands * Fix sign call
This commit is contained in:
parent
a174a0d7b6
commit
72d376b595
1 changed files with 83 additions and 11 deletions
|
|
@ -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::state_block> (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<nano::state_block> (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<nano::state_block> (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<nano::state_block> (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<std::shared_ptr<nano::block>> 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::state_block> (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<std::shared_ptr<nano::vote>> votes;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue