Merge pull request #3148 from mempool/nymkappa/bugfix/wipe-cache-reindexing
When we re-index blocks due to mining pools change, wipe the nodejs backend cache
This commit is contained in:
commit
1ac8e5004f
@ -62,9 +62,24 @@ class DiskCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
wipeCache() {
|
wipeCache() {
|
||||||
fs.unlinkSync(DiskCache.FILE_NAME);
|
logger.notice(`Wipping nodejs backend cache/cache*.json files`);
|
||||||
|
try {
|
||||||
|
fs.unlinkSync(DiskCache.FILE_NAME);
|
||||||
|
} catch (e: any) {
|
||||||
|
if (e?.code !== 'ENOENT') {
|
||||||
|
logger.err(`Cannot wipe cache file ${DiskCache.FILE_NAME}. Exception ${JSON.stringify(e)}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||||
fs.unlinkSync(DiskCache.FILE_NAMES.replace('{number}', i.toString()));
|
const filename = DiskCache.FILE_NAMES.replace('{number}', i.toString());
|
||||||
|
try {
|
||||||
|
fs.unlinkSync(filename);
|
||||||
|
} catch (e: any) {
|
||||||
|
if (e?.code !== 'ENOENT') {
|
||||||
|
logger.err(`Cannot wipe cache file ${filename}. Exception ${JSON.stringify(e)}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ import logger from '../logger';
|
|||||||
import config from '../config';
|
import config from '../config';
|
||||||
import PoolsRepository from '../repositories/PoolsRepository';
|
import PoolsRepository from '../repositories/PoolsRepository';
|
||||||
import { PoolTag } from '../mempool.interfaces';
|
import { PoolTag } from '../mempool.interfaces';
|
||||||
|
import diskCache from './disk-cache';
|
||||||
|
|
||||||
class PoolsParser {
|
class PoolsParser {
|
||||||
miningPools: any[] = [];
|
miningPools: any[] = [];
|
||||||
@ -141,6 +142,10 @@ class PoolsParser {
|
|||||||
WHERE pool_id = ?`,
|
WHERE pool_id = ?`,
|
||||||
[pool.id]
|
[pool.id]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// We also need to wipe the backend cache to make sure we don't serve blocks with
|
||||||
|
// the wrong mining pool (usually happen with unknown blocks)
|
||||||
|
diskCache.wipeCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async $deleteUnknownBlocks(): Promise<void> {
|
private async $deleteUnknownBlocks(): Promise<void> {
|
||||||
@ -151,6 +156,10 @@ class PoolsParser {
|
|||||||
WHERE pool_id = ? AND height >= 130635`,
|
WHERE pool_id = ? AND height >= 130635`,
|
||||||
[unknownPool[0].id]
|
[unknownPool[0].id]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// We also need to wipe the backend cache to make sure we don't serve blocks with
|
||||||
|
// the wrong mining pool (usually happen with unknown blocks)
|
||||||
|
diskCache.wipeCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user