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:
softsimon 2023-03-03 15:34:54 +09:00 committed by GitHub
commit 1ac8e5004f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 2 deletions

View file

@ -62,9 +62,24 @@ class DiskCache {
}
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++) {
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)}`);
}
}
}
}

View file

@ -3,6 +3,7 @@ import logger from '../logger';
import config from '../config';
import PoolsRepository from '../repositories/PoolsRepository';
import { PoolTag } from '../mempool.interfaces';
import diskCache from './disk-cache';
class PoolsParser {
miningPools: any[] = [];
@ -141,6 +142,10 @@ class PoolsParser {
WHERE 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> {
@ -151,6 +156,10 @@ class PoolsParser {
WHERE pool_id = ? AND height >= 130635`,
[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();
}
}