Add nodes.status db field to mark nodes as inactive if needed
This commit is contained in:
parent
61e512b8f7
commit
9b974dfbd9
@ -4,7 +4,7 @@ import logger from '../logger';
|
|||||||
import { Common } from './common';
|
import { Common } from './common';
|
||||||
|
|
||||||
class DatabaseMigration {
|
class DatabaseMigration {
|
||||||
private static currentVersion = 35;
|
private static currentVersion = 36;
|
||||||
private queryTimeout = 120000;
|
private queryTimeout = 120000;
|
||||||
private statisticsAddedIndexed = false;
|
private statisticsAddedIndexed = false;
|
||||||
private uniqueLogs: string[] = [];
|
private uniqueLogs: string[] = [];
|
||||||
@ -320,6 +320,10 @@ class DatabaseMigration {
|
|||||||
await this.$executeQuery('DELETE from `lightning_stats` WHERE added > "2021-09-19"');
|
await this.$executeQuery('DELETE from `lightning_stats` WHERE added > "2021-09-19"');
|
||||||
await this.$executeQuery('ALTER TABLE `lightning_stats` ADD CONSTRAINT added_unique UNIQUE (added);');
|
await this.$executeQuery('ALTER TABLE `lightning_stats` ADD CONSTRAINT added_unique UNIQUE (added);');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (databaseSchemaVersion < 36 && isBitcoin == true) {
|
||||||
|
await this.$executeQuery('ALTER TABLE `nodes` ADD status TINYINT NOT NULL DEFAULT "1"');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -111,59 +111,6 @@ class NetworkSyncService {
|
|||||||
setTimeout(() => { this.$runTasks(); }, 1000 * config.LIGHTNING.STATS_REFRESH_INTERVAL);
|
setTimeout(() => { this.$runTasks(); }, 1000 * config.LIGHTNING.STATS_REFRESH_INTERVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the `nodes` table to reflect the current network graph state
|
|
||||||
*/
|
|
||||||
private async $updateNodesList(nodes: ILightningApi.Node[]): Promise<void> {
|
|
||||||
let progress = 0;
|
|
||||||
|
|
||||||
const graphNodesPubkeys: string[] = [];
|
|
||||||
for (const node of nodes) {
|
|
||||||
await nodesApi.$saveNode(node);
|
|
||||||
graphNodesPubkeys.push(node.pub_key);
|
|
||||||
++progress;
|
|
||||||
|
|
||||||
const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer);
|
|
||||||
if (elapsedSeconds > 10) {
|
|
||||||
logger.info(`Updating node ${progress}/${nodes.length}`);
|
|
||||||
this.loggerTimer = new Date().getTime() / 1000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
logger.info(`${progress} nodes updated`);
|
|
||||||
|
|
||||||
// If a channel if not present in the graph, mark it as inactive
|
|
||||||
// nodesApi.$setNodesInactive(graphNodesPubkeys);
|
|
||||||
|
|
||||||
if (config.MAXMIND.ENABLED) {
|
|
||||||
$lookupNodeLocation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the `channels` table to reflect the current network graph state
|
|
||||||
*/
|
|
||||||
private async $updateChannelsList(channels: ILightningApi.Channel[]): Promise<void> {
|
|
||||||
let progress = 0;
|
|
||||||
|
|
||||||
const graphChannelsIds: string[] = [];
|
|
||||||
for (const channel of channels) {
|
|
||||||
await channelsApi.$saveChannel(channel);
|
|
||||||
graphChannelsIds.push(channel.channel_id);
|
|
||||||
++progress;
|
|
||||||
|
|
||||||
const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer);
|
|
||||||
if (elapsedSeconds > 10) {
|
|
||||||
logger.info(`Updating channel ${progress}/${channels.length}`);
|
|
||||||
this.loggerTimer = new Date().getTime() / 1000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info(`${progress} channels updated`);
|
|
||||||
|
|
||||||
// If a channel if not present in the graph, mark it as inactive
|
|
||||||
channelsApi.$setChannelsInactive(graphChannelsIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method look up the creation date of the earliest channel of the node
|
// This method look up the creation date of the earliest channel of the node
|
||||||
// and update the node to that date in order to get the earliest first seen date
|
// and update the node to that date in order to get the earliest first seen date
|
||||||
private async $updateNodeFirstSeen(): Promise<void> {
|
private async $updateNodeFirstSeen(): Promise<void> {
|
||||||
@ -253,11 +200,13 @@ class NetworkSyncService {
|
|||||||
SELECT COUNT(*)
|
SELECT COUNT(*)
|
||||||
FROM nodes
|
FROM nodes
|
||||||
WHERE nodes.public_key = channels.node1_public_key
|
WHERE nodes.public_key = channels.node1_public_key
|
||||||
|
AND nodes.status = 1
|
||||||
) = 0
|
) = 0
|
||||||
OR (
|
OR (
|
||||||
SELECT COUNT(*)
|
SELECT COUNT(*)
|
||||||
FROM nodes
|
FROM nodes
|
||||||
WHERE nodes.public_key = channels.node2_public_key
|
WHERE nodes.public_key = channels.node2_public_key
|
||||||
|
AND nodes.status = 1
|
||||||
) = 0)
|
) = 0)
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user