mirror of
https://github.com/monero-project/monero.git
synced 2024-12-22 19:49:30 +00:00
Tweak format, add option for difficulty
Set input, output, ringsize averages to 2 decimal places precision Add option to show min/max/av per-block difficulty
This commit is contained in:
parent
e416f56f31
commit
3aae649738
1 changed files with 36 additions and 11 deletions
|
@ -70,6 +70,7 @@ int main(int argc, char* argv[])
|
||||||
const command_line::arg_descriptor<bool> arg_hours = {"with-hours", "with txns per hour", false};
|
const command_line::arg_descriptor<bool> arg_hours = {"with-hours", "with txns per hour", false};
|
||||||
const command_line::arg_descriptor<bool> arg_emission = {"with-emission", "with coin emission", false};
|
const command_line::arg_descriptor<bool> arg_emission = {"with-emission", "with coin emission", false};
|
||||||
const command_line::arg_descriptor<bool> arg_fees = {"with-fees", "with txn fees", false};
|
const command_line::arg_descriptor<bool> arg_fees = {"with-fees", "with txn fees", false};
|
||||||
|
const command_line::arg_descriptor<bool> arg_diff = {"with-diff", "with difficulty", false};
|
||||||
|
|
||||||
command_line::add_arg(desc_cmd_sett, cryptonote::arg_data_dir);
|
command_line::add_arg(desc_cmd_sett, cryptonote::arg_data_dir);
|
||||||
command_line::add_arg(desc_cmd_sett, cryptonote::arg_testnet_on);
|
command_line::add_arg(desc_cmd_sett, cryptonote::arg_testnet_on);
|
||||||
|
@ -83,6 +84,7 @@ int main(int argc, char* argv[])
|
||||||
command_line::add_arg(desc_cmd_sett, arg_hours);
|
command_line::add_arg(desc_cmd_sett, arg_hours);
|
||||||
command_line::add_arg(desc_cmd_sett, arg_emission);
|
command_line::add_arg(desc_cmd_sett, arg_emission);
|
||||||
command_line::add_arg(desc_cmd_sett, arg_fees);
|
command_line::add_arg(desc_cmd_sett, arg_fees);
|
||||||
|
command_line::add_arg(desc_cmd_sett, arg_diff);
|
||||||
command_line::add_arg(desc_cmd_only, command_line::arg_help);
|
command_line::add_arg(desc_cmd_only, command_line::arg_help);
|
||||||
|
|
||||||
po::options_description desc_options("Allowed options");
|
po::options_description desc_options("Allowed options");
|
||||||
|
@ -126,6 +128,7 @@ int main(int argc, char* argv[])
|
||||||
bool do_hours = command_line::get_arg(vm, arg_hours);
|
bool do_hours = command_line::get_arg(vm, arg_hours);
|
||||||
bool do_emission = command_line::get_arg(vm, arg_emission);
|
bool do_emission = command_line::get_arg(vm, arg_emission);
|
||||||
bool do_fees = command_line::get_arg(vm, arg_fees);
|
bool do_fees = command_line::get_arg(vm, arg_fees);
|
||||||
|
bool do_diff = command_line::get_arg(vm, arg_diff);
|
||||||
|
|
||||||
LOG_PRINT_L0("Initializing source blockchain (BlockchainDB)");
|
LOG_PRINT_L0("Initializing source blockchain (BlockchainDB)");
|
||||||
std::unique_ptr<Blockchain> core_storage;
|
std::unique_ptr<Blockchain> core_storage;
|
||||||
|
@ -187,12 +190,16 @@ plot 'stats.csv' index "DATA" using (timecolumn(1,"%Y-%m-%d")):4 with lines, ''
|
||||||
std::cout << "\tEmission/day\tEmission";
|
std::cout << "\tEmission/day\tEmission";
|
||||||
if (do_fees)
|
if (do_fees)
|
||||||
std::cout << "\tFees/day\tFees";
|
std::cout << "\tFees/day\tFees";
|
||||||
|
if (do_diff)
|
||||||
|
std::cout << "\tDiffMin\tDiffMax\tDiffAvg";
|
||||||
if (do_inputs)
|
if (do_inputs)
|
||||||
std::cout << "\tInMin\tInMax\tInAvg";
|
std::cout << "\tInMin\tInMax\tInAvg";
|
||||||
if (do_outputs)
|
if (do_outputs)
|
||||||
std::cout << "\tOutMin\tOutMax\tOutAvg";
|
std::cout << "\tOutMin\tOutMax\tOutAvg";
|
||||||
if (do_ringsize)
|
if (do_ringsize)
|
||||||
std::cout << "\tRingMin\tRingMax\tRingAvg";
|
std::cout << "\tRingMin\tRingMax\tRingAvg";
|
||||||
|
if (do_inputs || do_outputs || do_ringsize)
|
||||||
|
std::cout << std::setprecision(2) << std::fixed;
|
||||||
if (do_hours) {
|
if (do_hours) {
|
||||||
char buf[8];
|
char buf[8];
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -203,6 +210,9 @@ plot 'stats.csv' index "DATA" using (timecolumn(1,"%Y-%m-%d")):4 with lines, ''
|
||||||
}
|
}
|
||||||
std::cout << ENDL;
|
std::cout << ENDL;
|
||||||
|
|
||||||
|
#define MAX_INOUT 0xffffffff
|
||||||
|
#define MAX_RINGS 0xffffffff
|
||||||
|
|
||||||
struct tm prevtm = {0}, currtm;
|
struct tm prevtm = {0}, currtm;
|
||||||
uint64_t prevsz = 0, currsz = 0;
|
uint64_t prevsz = 0, currsz = 0;
|
||||||
uint64_t prevtxs = 0, currtxs = 0;
|
uint64_t prevtxs = 0, currtxs = 0;
|
||||||
|
@ -210,9 +220,10 @@ plot 'stats.csv' index "DATA" using (timecolumn(1,"%Y-%m-%d")):4 with lines, ''
|
||||||
uint64_t totins = 0, totouts = 0, totrings = 0;
|
uint64_t totins = 0, totouts = 0, totrings = 0;
|
||||||
boost::multiprecision::uint128_t prevemission = 0, prevfees = 0;
|
boost::multiprecision::uint128_t prevemission = 0, prevfees = 0;
|
||||||
boost::multiprecision::uint128_t emission = 0, fees = 0;
|
boost::multiprecision::uint128_t emission = 0, fees = 0;
|
||||||
uint32_t minins = 10, maxins = 0;
|
boost::multiprecision::uint128_t totdiff = 0, mindiff = 0, maxdiff = 0;
|
||||||
uint32_t minouts = 10, maxouts = 0;
|
uint32_t minins = MAX_INOUT, maxins = 0;
|
||||||
uint32_t minrings = 50, maxrings = 0;
|
uint32_t minouts = MAX_INOUT, maxouts = 0;
|
||||||
|
uint32_t minrings = MAX_RINGS, maxrings = 0;
|
||||||
uint32_t io, tottxs = 0;
|
uint32_t io, tottxs = 0;
|
||||||
uint32_t txhr[24] = {0};
|
uint32_t txhr[24] = {0};
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -242,7 +253,6 @@ plot 'stats.csv' index "DATA" using (timecolumn(1,"%Y-%m-%d")):4 with lines, ''
|
||||||
std::cout << timebuf << "\t" << currblks << "\t" << h << "\t" << currtxs << "\t" << prevtxs + currtxs << "\t" << currsz << "\t" << prevsz + currsz;
|
std::cout << timebuf << "\t" << currblks << "\t" << h << "\t" << currtxs << "\t" << prevtxs + currtxs << "\t" << currsz << "\t" << prevsz + currsz;
|
||||||
prevsz += currsz;
|
prevsz += currsz;
|
||||||
currsz = 0;
|
currsz = 0;
|
||||||
currblks = 0;
|
|
||||||
prevtxs += currtxs;
|
prevtxs += currtxs;
|
||||||
currtxs = 0;
|
currtxs = 0;
|
||||||
if (!tottxs)
|
if (!tottxs)
|
||||||
|
@ -257,25 +267,30 @@ plot 'stats.csv' index "DATA" using (timecolumn(1,"%Y-%m-%d")):4 with lines, ''
|
||||||
prevfees += fees;
|
prevfees += fees;
|
||||||
fees = 0;
|
fees = 0;
|
||||||
}
|
}
|
||||||
|
if (do_diff) {
|
||||||
|
std::cout << "\t" << (maxdiff ? mindiff : 0) << "\t" << maxdiff << "\t" << totdiff / currblks;
|
||||||
|
mindiff = 0; maxdiff = 0; totdiff = 0;
|
||||||
|
}
|
||||||
if (do_inputs) {
|
if (do_inputs) {
|
||||||
std::cout << "\t" << (maxins ? minins : 0) << "\t" << maxins << "\t" << totins / tottxs;
|
std::cout << "\t" << (maxins ? minins : 0) << "\t" << maxins << "\t" << totins * 1.0 / tottxs;
|
||||||
minins = 10; maxins = 0; totins = 0;
|
minins = MAX_INOUT; maxins = 0; totins = 0;
|
||||||
}
|
}
|
||||||
if (do_outputs) {
|
if (do_outputs) {
|
||||||
std::cout << "\t" << (maxouts ? minouts : 0) << "\t" << maxouts << "\t" << totouts / tottxs;
|
std::cout << "\t" << (maxouts ? minouts : 0) << "\t" << maxouts << "\t" << totouts * 1.0 / tottxs;
|
||||||
minouts = 10; maxouts = 0; totouts = 0;
|
minouts = MAX_INOUT; maxouts = 0; totouts = 0;
|
||||||
}
|
}
|
||||||
if (do_ringsize) {
|
if (do_ringsize) {
|
||||||
std::cout << "\t" << (maxrings ? minrings : 0) << "\t" << maxrings << "\t" << totrings / tottxs;
|
std::cout << "\t" << (maxrings ? minrings : 0) << "\t" << maxrings << "\t" << totrings * 1.0 / tottxs;
|
||||||
minrings = 50; maxrings = 0; totrings = 0;
|
minrings = MAX_RINGS; maxrings = 0; totrings = 0;
|
||||||
}
|
}
|
||||||
tottxs = 0;
|
|
||||||
if (do_hours) {
|
if (do_hours) {
|
||||||
for (i=0; i<24; i++) {
|
for (i=0; i<24; i++) {
|
||||||
std::cout << "\t" << txhr[i];
|
std::cout << "\t" << txhr[i];
|
||||||
txhr[i] = 0;
|
txhr[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
currblks = 0;
|
||||||
|
tottxs = 0;
|
||||||
std::cout << ENDL;
|
std::cout << ENDL;
|
||||||
}
|
}
|
||||||
skip:
|
skip:
|
||||||
|
@ -335,9 +350,19 @@ skip:
|
||||||
}
|
}
|
||||||
tottxs++;
|
tottxs++;
|
||||||
}
|
}
|
||||||
|
if (do_diff) {
|
||||||
|
difficulty_type diff = db->get_block_difficulty(h);
|
||||||
|
if (!mindiff || diff < mindiff)
|
||||||
|
mindiff = diff;
|
||||||
|
if (diff > maxdiff)
|
||||||
|
maxdiff = diff;
|
||||||
|
totdiff += diff;
|
||||||
|
}
|
||||||
if (do_emission) {
|
if (do_emission) {
|
||||||
coinbase_amount = get_outs_money_amount(blk.miner_tx);
|
coinbase_amount = get_outs_money_amount(blk.miner_tx);
|
||||||
emission += coinbase_amount - tx_fee_amount;
|
emission += coinbase_amount - tx_fee_amount;
|
||||||
|
}
|
||||||
|
if (do_fees) {
|
||||||
fees += tx_fee_amount;
|
fees += tx_fee_amount;
|
||||||
}
|
}
|
||||||
currblks++;
|
currblks++;
|
||||||
|
|
Loading…
Reference in a new issue