diff --git a/getdata.py b/getdata.py
index 994a71d..6c8809b 100755
--- a/getdata.py
+++ b/getdata.py
@@ -93,9 +93,10 @@ class GetData():
outs_total += tx['vout'][k]['amount']
fee = tx['rct_signatures']['txnFee'] if (tx['version'] & 0xff) > 1 else ins_total - outs_total
extra_size = len(tx['extra'])
+ tx_size = len(res_txs['txs'][j]['as_hex']) / 2
if j > 0:
txs_str += ','
- txs_str += "[%d,%d,%d,%d,%d,%d,%d]" % (unlock_time, ins, outs, ring_size, fee, extra_size, ins_total)
+ txs_str += "[%d,%d,%d,%d,%d,%d,%d,%d]" % (unlock_time, ins, outs, ring_size, fee, extra_size, ins_total, tx_size)
print('[%d,%d,%d,%d,%d,%d,[%s]],' % (timestamp, nonce, difficulty, reward, block_size, blob_size, txs_str))
print(']')
diff --git a/js/tx-per-day.js b/js/tx-per-day.js
index 3bd8c75..47e8b6e 100644
--- a/js/tx-per-day.js
+++ b/js/tx-per-day.js
@@ -13,21 +13,42 @@ function get_chart(chartData, cryptonote_config, offset) {
block_date = block_date_new;
chartData_tpd.push({
"date": block_date,
- "num_txes": 0,
- "tx_size_sum": 0,
+ "tx_sizes": [],
});
}
- var blk_size = chartData[i][4];
- var blk_blob_size = chartData[i][5];
var num_txes = chartData[i][6].length;
- var height = i + (offset === undefined ? 1 : offset.height);
- var miner_tx_size = blk_blob_size - cryptonote_config.get_blockheader_size(height) - num_txes * 32 - 1;
- chartData_tpd[chartData_tpd.length - 1].num_txes += num_txes;
- chartData_tpd[chartData_tpd.length - 1].tx_size_sum += blk_size - miner_tx_size;
+ for (var j = 0; j < num_txes; ++j) {
+ var tx_size = chartData[i][6][j][7]
+ chartData_tpd[chartData_tpd.length - 1].tx_sizes.push(tx_size);
+ }
}
for (var i = 0; i < chartData_tpd.length; ++i) {
- chartData_tpd[i].tx_size = chartData_tpd[i].num_txes === 0 ? 1 : (chartData_tpd[i].tx_size_sum / chartData_tpd[i].num_txes);
- chartData_tpd[i].tx_size_str = formatBytes(chartData_tpd[i].tx_size, 3);
+ var tpd = chartData_tpd[i];
+ tpd.num_txes = tpd.tx_sizes.length;
+ tpd.tx_size_avg = 0;
+ tpd.tx_size_max = 0;
+ tpd.tx_size_min = 100000;
+ tpd.tx_size_var = 0;
+ for (var j = 0; j < tpd.num_txes; ++j) {
+ var tx_size = tpd.tx_sizes[j];
+ tpd.tx_size_avg += tx_size;
+ tpd.tx_size_max = Math.max(tpd.tx_size_max, tx_size);
+ tpd.tx_size_min = Math.min(tpd.tx_size_min, tx_size);
+ }
+ if (tpd.num_txes > 0)
+ tpd.tx_size_avg /= tpd.num_txes;
+ for (var j = 0; j < tpd.num_txes; ++j) {
+ var tx_size = tpd.tx_sizes[j];
+ var d = tx_size - tpd.tx_size_avg;
+ tpd.tx_size_var += d * d;
+ }
+ if (tpd.num_txes > 0)
+ tpd.tx_size_var /= tpd.num_txes;
+ tpd.tx_size_stddev = Math.sqrt(tpd.tx_size_var);
+ tpd.tx_size_avg_str = formatBytes(tpd.tx_size_avg, 3);
+ tpd.tx_size_max_str = formatBytes(tpd.tx_size_max, 3);
+ tpd.tx_size_min_str = formatBytes(tpd.tx_size_min, 3);
+ tpd.tx_size_stddev_str = formatBytes(tpd.tx_size_stddev, 3);
}
var chart = AmCharts.makeChart("chartdiv", {
@@ -77,22 +98,54 @@ function get_chart(chartData, cryptonote_config, offset) {
"cornerRadius": 10,
}
},{
- "id": "g_size",
+ "id": "g_size_avg",
"valueAxis": "va_size",
"lineColor": "#22b681",
"lineThickness": 1,
"showBalloon" : true,
- "balloonText": "Size: [[tx_size_str]]",
+ "balloonText":
+ "Size: [[tx_size_avg_str]]
" +
+ "Max: [[tx_size_max_str]]
" +
+ "Min: [[tx_size_min_str]]
" +
+ "StdDev: [[tx_size_stddev_str]]",
"bullet": "round",
"bulletBorderAlpha": 1,
"bulletColor": "#FFFFFF",
"hideBulletsCount": 50,
"title": "size",
- "valueField": "tx_size",
+ "valueField": "tx_size_avg",
"useLineColorForBulletBorder": true,
"balloon":{
"cornerRadius": 10,
}
+ },{
+ "id": "g_size_max",
+ "valueAxis": "va_size",
+ "type": "step",
+ "lineColor": "#28d79a",
+ "lineAlpha": 0.5,
+ "showBalloon" : false,
+ "bullet": "round",
+ "bulletBorderAlpha": 1,
+ "bulletColor": "#FFFFFF",
+ "hideBulletsCount": 50,
+ "title": "Max",
+ "valueField": "tx_size_max",
+ "useLineColorForBulletBorder": true,
+ },{
+ "id": "g_size_min",
+ "valueAxis": "va_size",
+ "type": "step",
+ "lineColor": "#18815c",
+ "lineAlpha": 0.5,
+ "showBalloon" : false,
+ "bullet": "round",
+ "bulletBorderAlpha": 1,
+ "bulletColor": "#FFFFFF",
+ "hideBulletsCount": 50,
+ "title": "Min",
+ "valueField": "tx_size_min",
+ "useLineColorForBulletBorder": true,
}],
"chartScrollbar": {
"autoGridCount": true,
diff --git a/test_framework/daemon.py b/test_framework/daemon.py
index c007c15..89e45d7 100644
--- a/test_framework/daemon.py
+++ b/test_framework/daemon.py
@@ -83,7 +83,7 @@ class Daemon(object):
gettransactions = {
'txs_hashes': tx_hashes,
'decode_as_json': True,
- 'prune': True
+ 'prune': False
}
return self.rpc.send_request('/gettransactions', gettransactions)