Merge pull request #4154 from mempool/mononaut/record-purge-rates
Record purging rate in statistics
This commit is contained in:
commit
413941f5ac
@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository';
|
|||||||
import { RowDataPacket } from 'mysql2';
|
import { RowDataPacket } from 'mysql2';
|
||||||
|
|
||||||
class DatabaseMigration {
|
class DatabaseMigration {
|
||||||
private static currentVersion = 65;
|
private static currentVersion = 66;
|
||||||
private queryTimeout = 3600_000;
|
private queryTimeout = 3600_000;
|
||||||
private statisticsAddedIndexed = false;
|
private statisticsAddedIndexed = false;
|
||||||
private uniqueLogs: string[] = [];
|
private uniqueLogs: string[] = [];
|
||||||
@ -553,6 +553,11 @@ class DatabaseMigration {
|
|||||||
await this.$executeQuery('ALTER TABLE `blocks_audits` ADD accelerated_txs JSON DEFAULT "[]"');
|
await this.$executeQuery('ALTER TABLE `blocks_audits` ADD accelerated_txs JSON DEFAULT "[]"');
|
||||||
await this.updateToSchemaVersion(65);
|
await this.updateToSchemaVersion(65);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (databaseSchemaVersion < 66) {
|
||||||
|
await this.$executeQuery('ALTER TABLE `statistics` ADD min_fee FLOAT UNSIGNED DEFAULT NULL');
|
||||||
|
await this.updateToSchemaVersion(66);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15,6 +15,7 @@ class StatisticsApi {
|
|||||||
mempool_byte_weight,
|
mempool_byte_weight,
|
||||||
fee_data,
|
fee_data,
|
||||||
total_fee,
|
total_fee,
|
||||||
|
min_fee,
|
||||||
vsize_1,
|
vsize_1,
|
||||||
vsize_2,
|
vsize_2,
|
||||||
vsize_3,
|
vsize_3,
|
||||||
@ -54,7 +55,7 @@ class StatisticsApi {
|
|||||||
vsize_1800,
|
vsize_1800,
|
||||||
vsize_2000
|
vsize_2000
|
||||||
)
|
)
|
||||||
VALUES (NOW(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
VALUES (NOW(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)`;
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)`;
|
||||||
const [result]: any = await DB.query(query);
|
const [result]: any = await DB.query(query);
|
||||||
return result.insertId;
|
return result.insertId;
|
||||||
@ -73,6 +74,7 @@ class StatisticsApi {
|
|||||||
mempool_byte_weight,
|
mempool_byte_weight,
|
||||||
fee_data,
|
fee_data,
|
||||||
total_fee,
|
total_fee,
|
||||||
|
min_fee,
|
||||||
vsize_1,
|
vsize_1,
|
||||||
vsize_2,
|
vsize_2,
|
||||||
vsize_3,
|
vsize_3,
|
||||||
@ -112,7 +114,7 @@ class StatisticsApi {
|
|||||||
vsize_1800,
|
vsize_1800,
|
||||||
vsize_2000
|
vsize_2000
|
||||||
)
|
)
|
||||||
VALUES (${statistics.added}, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
VALUES (${statistics.added}, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
||||||
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
|
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
|
||||||
|
|
||||||
const params: (string | number)[] = [
|
const params: (string | number)[] = [
|
||||||
@ -122,6 +124,7 @@ class StatisticsApi {
|
|||||||
statistics.mempool_byte_weight,
|
statistics.mempool_byte_weight,
|
||||||
statistics.fee_data,
|
statistics.fee_data,
|
||||||
statistics.total_fee,
|
statistics.total_fee,
|
||||||
|
statistics.min_fee,
|
||||||
statistics.vsize_1,
|
statistics.vsize_1,
|
||||||
statistics.vsize_2,
|
statistics.vsize_2,
|
||||||
statistics.vsize_3,
|
statistics.vsize_3,
|
||||||
@ -173,6 +176,7 @@ class StatisticsApi {
|
|||||||
UNIX_TIMESTAMP(added) as added,
|
UNIX_TIMESTAMP(added) as added,
|
||||||
CAST(avg(unconfirmed_transactions) as DOUBLE) as unconfirmed_transactions,
|
CAST(avg(unconfirmed_transactions) as DOUBLE) as unconfirmed_transactions,
|
||||||
CAST(avg(vbytes_per_second) as DOUBLE) as vbytes_per_second,
|
CAST(avg(vbytes_per_second) as DOUBLE) as vbytes_per_second,
|
||||||
|
CAST(avg(min_fee) as DOUBLE) as min_fee,
|
||||||
CAST(avg(vsize_1) as DOUBLE) as vsize_1,
|
CAST(avg(vsize_1) as DOUBLE) as vsize_1,
|
||||||
CAST(avg(vsize_2) as DOUBLE) as vsize_2,
|
CAST(avg(vsize_2) as DOUBLE) as vsize_2,
|
||||||
CAST(avg(vsize_3) as DOUBLE) as vsize_3,
|
CAST(avg(vsize_3) as DOUBLE) as vsize_3,
|
||||||
@ -222,6 +226,7 @@ class StatisticsApi {
|
|||||||
UNIX_TIMESTAMP(added) as added,
|
UNIX_TIMESTAMP(added) as added,
|
||||||
CAST(avg(unconfirmed_transactions) as DOUBLE) as unconfirmed_transactions,
|
CAST(avg(unconfirmed_transactions) as DOUBLE) as unconfirmed_transactions,
|
||||||
CAST(avg(vbytes_per_second) as DOUBLE) as vbytes_per_second,
|
CAST(avg(vbytes_per_second) as DOUBLE) as vbytes_per_second,
|
||||||
|
CAST(avg(min_fee) as DOUBLE) as min_fee,
|
||||||
vsize_1,
|
vsize_1,
|
||||||
vsize_2,
|
vsize_2,
|
||||||
vsize_3,
|
vsize_3,
|
||||||
@ -407,6 +412,7 @@ class StatisticsApi {
|
|||||||
vbytes_per_second: s.vbytes_per_second,
|
vbytes_per_second: s.vbytes_per_second,
|
||||||
mempool_byte_weight: s.mempool_byte_weight,
|
mempool_byte_weight: s.mempool_byte_weight,
|
||||||
total_fee: s.total_fee,
|
total_fee: s.total_fee,
|
||||||
|
min_fee: s.min_fee,
|
||||||
vsizes: [
|
vsizes: [
|
||||||
s.vsize_1,
|
s.vsize_1,
|
||||||
s.vsize_2,
|
s.vsize_2,
|
||||||
|
@ -89,6 +89,9 @@ class Statistics {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// get minFee and convert to sats/vb
|
||||||
|
const minFee = memPool.getMempoolInfo().mempoolminfee * 100000;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const insertId = await statisticsApi.$create({
|
const insertId = await statisticsApi.$create({
|
||||||
added: 'NOW()',
|
added: 'NOW()',
|
||||||
@ -98,6 +101,7 @@ class Statistics {
|
|||||||
mempool_byte_weight: totalWeight,
|
mempool_byte_weight: totalWeight,
|
||||||
total_fee: totalFee,
|
total_fee: totalFee,
|
||||||
fee_data: '',
|
fee_data: '',
|
||||||
|
min_fee: minFee,
|
||||||
vsize_1: weightVsizeFees['1'] || 0,
|
vsize_1: weightVsizeFees['1'] || 0,
|
||||||
vsize_2: weightVsizeFees['2'] || 0,
|
vsize_2: weightVsizeFees['2'] || 0,
|
||||||
vsize_3: weightVsizeFees['3'] || 0,
|
vsize_3: weightVsizeFees['3'] || 0,
|
||||||
|
@ -300,6 +300,7 @@ export interface Statistic {
|
|||||||
total_fee: number;
|
total_fee: number;
|
||||||
mempool_byte_weight: number;
|
mempool_byte_weight: number;
|
||||||
fee_data: string;
|
fee_data: string;
|
||||||
|
min_fee: number;
|
||||||
|
|
||||||
vsize_1: number;
|
vsize_1: number;
|
||||||
vsize_2: number;
|
vsize_2: number;
|
||||||
@ -346,6 +347,7 @@ export interface OptimizedStatistic {
|
|||||||
vbytes_per_second: number;
|
vbytes_per_second: number;
|
||||||
total_fee: number;
|
total_fee: number;
|
||||||
mempool_byte_weight: number;
|
mempool_byte_weight: number;
|
||||||
|
min_fee: number;
|
||||||
vsizes: number[];
|
vsizes: number[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user