diff --git a/backend/src/api/backend-info.ts b/backend/src/api/backend-info.ts index d4500a837..c9a82def4 100644 --- a/backend/src/api/backend-info.ts +++ b/backend/src/api/backend-info.ts @@ -3,9 +3,12 @@ import path from 'path'; import os from 'os'; import { IBackendInfo } from '../mempool.interfaces'; import config from '../config'; +import bitcoinClient from './bitcoin/bitcoin-client'; +import logger from '../logger'; class BackendInfo { private backendInfo: IBackendInfo; + private timer; constructor() { // This file is created by ./fetch-version.ts during building @@ -26,7 +29,22 @@ class BackendInfo { gitCommit: versionInfo.gitCommit, lightning: config.LIGHTNING.ENABLED, backend: config.MEMPOOL.BACKEND, + coreVersion: '?', }; + + this.timer = setInterval(async () => { + await this.$updateCoreVersion(); + }, 10 * 60 * 1000); // every 10 minutes + this.$updateCoreVersion(); // starting immediately + } + + private async $updateCoreVersion(): Promise { + try { + const networkInfo = await bitcoinClient.getNetworkInfo(); + this.backendInfo.coreVersion = networkInfo.subversion; + } catch (e) { + logger.err(`Exception in $updateCoreVersion. Reason: ${(e instanceof Error ? e.message : e)}`); + } } public getBackendInfo(): IBackendInfo {