From 8773b5cabe20bfc16d3f15f28dc7f564a3613ddb Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:24:01 +0200 Subject: [PATCH 1/8] configure camelcase exception --- backend/.eslintrc.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js index 798bef1e6..b09fc1d59 100644 --- a/backend/.eslintrc.js +++ b/backend/.eslintrc.js @@ -27,7 +27,8 @@ module.exports = { }, }, rules: { - 'no-console': ['error'], + 'no-console': 'error', + camelcase: ['error', { allow: 'FederationClient_*' }], 'no-debugger': 'error', 'prettier/prettier': [ 'error', From 6d405c43c538adb5b5a7ab43d9a558a6b7f83331 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:25:44 +0200 Subject: [PATCH 2/8] rename Client to FederationClient and remove camelcase eslint exceptions --- backend/src/federation/client/Client_1_1.ts | 5 ---- .../client/{Client.ts => FederationClient.ts} | 25 ++++++++----------- ...{Client_1_0.ts => FederationClient_1_0.ts} | 3 +-- .../federation/client/FederationClient_1_1.ts | 3 +++ 4 files changed, 15 insertions(+), 21 deletions(-) delete mode 100644 backend/src/federation/client/Client_1_1.ts rename backend/src/federation/client/{Client.ts => FederationClient.ts} (66%) rename backend/src/federation/client/{Client_1_0.ts => FederationClient_1_0.ts} (96%) create mode 100644 backend/src/federation/client/FederationClient_1_1.ts diff --git a/backend/src/federation/client/Client_1_1.ts b/backend/src/federation/client/Client_1_1.ts deleted file mode 100644 index 8525acc5d..000000000 --- a/backend/src/federation/client/Client_1_1.ts +++ /dev/null @@ -1,5 +0,0 @@ -// eslint-disable-next-line camelcase -import { Client_1_0 } from './Client_1_0' - -// eslint-disable-next-line camelcase -export class Client_1_1 extends Client_1_0 {} diff --git a/backend/src/federation/client/Client.ts b/backend/src/federation/client/FederationClient.ts similarity index 66% rename from backend/src/federation/client/Client.ts rename to backend/src/federation/client/FederationClient.ts index 98f63c127..db1e5e3b2 100644 --- a/backend/src/federation/client/Client.ts +++ b/backend/src/federation/client/FederationClient.ts @@ -2,22 +2,19 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom import { ApiVersionType } from '@/federation/enum/apiVersionType' -// eslint-disable-next-line camelcase -import { Client_1_0 } from './Client_1_0' -// eslint-disable-next-line camelcase -import { Client_1_1 } from './Client_1_1' +import { FederationClient_1_0 } from './FederationClient_1_0' +import { FederationClient_1_1 } from './FederationClient_1_1' -// eslint-disable-next-line camelcase -type FederationClient = Client_1_0 | Client_1_1 +type FederationClientType = FederationClient_1_0 | FederationClient_1_1 interface ClientInstance { id: number // eslint-disable-next-line no-use-before-define - client: FederationClient + client: FederationClientType } // eslint-disable-next-line @typescript-eslint/no-extraneous-class -export class Client { +export class FederationClient { private static instanceArray: ClientInstance[] = [] /** @@ -30,9 +27,9 @@ export class Client { private static createFederationClient = (dbCom: DbFederatedCommunity) => { switch (dbCom.apiVersion) { case ApiVersionType.V1_0: - return new Client_1_0(dbCom) + return new FederationClient_1_0(dbCom) case ApiVersionType.V1_1: - return new Client_1_1(dbCom) + return new FederationClient_1_1(dbCom) default: return null } @@ -44,14 +41,14 @@ export class Client { * This implementation let you subclass the Singleton class while keeping * just one instance of each subclass around. */ - public static getInstance(dbCom: DbFederatedCommunity): FederationClient | null { - const instance = Client.instanceArray.find((instance) => instance.id === dbCom.id) + public static getInstance(dbCom: DbFederatedCommunity): FederationClientType | null { + const instance = FederationClient.instanceArray.find((instance) => instance.id === dbCom.id) if (instance) { return instance.client } - const client = Client.createFederationClient(dbCom) + const client = FederationClient.createFederationClient(dbCom) if (client) { - Client.instanceArray.push({ id: dbCom.id, client } as ClientInstance) + FederationClient.instanceArray.push({ id: dbCom.id, client } as ClientInstance) } return client } diff --git a/backend/src/federation/client/Client_1_0.ts b/backend/src/federation/client/FederationClient_1_0.ts similarity index 96% rename from backend/src/federation/client/Client_1_0.ts rename to backend/src/federation/client/FederationClient_1_0.ts index 0c0d458c8..c8e878ded 100644 --- a/backend/src/federation/client/Client_1_0.ts +++ b/backend/src/federation/client/FederationClient_1_0.ts @@ -4,8 +4,7 @@ import { GraphQLClient } from 'graphql-request' import { getPublicKey } from '@/federation/query/getPublicKey' import { backendLogger as logger } from '@/server/logger' -// eslint-disable-next-line camelcase -export class Client_1_0 { +export class FederationClient_1_0 { dbCom: DbFederatedCommunity endpoint: string client: GraphQLClient diff --git a/backend/src/federation/client/FederationClient_1_1.ts b/backend/src/federation/client/FederationClient_1_1.ts new file mode 100644 index 000000000..27679b423 --- /dev/null +++ b/backend/src/federation/client/FederationClient_1_1.ts @@ -0,0 +1,3 @@ +import { FederationClient_1_0 } from './FederationClient_1_0' + +export class FederationClient_1_1 extends FederationClient_1_0 {} From 9157a57fb350bf68f7e28e3a66c6b71641a785f8 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:27:04 +0200 Subject: [PATCH 3/8] fix rule, use array for allow list --- backend/.eslintrc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js index b09fc1d59..ecb8331d3 100644 --- a/backend/.eslintrc.js +++ b/backend/.eslintrc.js @@ -28,7 +28,7 @@ module.exports = { }, rules: { 'no-console': 'error', - camelcase: ['error', { allow: 'FederationClient_*' }], + camelcase: ['error', { allow: ['FederationClient_*'] }], 'no-debugger': 'error', 'prettier/prettier': [ 'error', From ade05101e21da4cb3c1a9ea5369299cdd1e81b8d Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:30:18 +0200 Subject: [PATCH 4/8] configure camelcase exceptions --- backend/.eslintrc.js | 1 + backend/src/federation/validateCommunities.test.ts | 1 + backend/src/federation/validateCommunities.ts | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js index ecb8331d3..78ac9e41e 100644 --- a/backend/.eslintrc.js +++ b/backend/.eslintrc.js @@ -185,6 +185,7 @@ module.exports = { tsconfigRootDir: __dirname, project: ['./tsconfig.json', '**/tsconfig.json'], // this is to properly reference the referenced project database without requirement of compiling it + // eslint-disable-next-line camelcase EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, }, }, diff --git a/backend/src/federation/validateCommunities.test.ts b/backend/src/federation/validateCommunities.test.ts index 77d0cc2ad..c75408762 100644 --- a/backend/src/federation/validateCommunities.test.ts +++ b/backend/src/federation/validateCommunities.test.ts @@ -70,6 +70,7 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables1) .orUpdate({ + // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) diff --git a/backend/src/federation/validateCommunities.ts b/backend/src/federation/validateCommunities.ts index 4b337eda9..91c85d09b 100644 --- a/backend/src/federation/validateCommunities.ts +++ b/backend/src/federation/validateCommunities.ts @@ -5,7 +5,7 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom import { backendLogger as logger } from '@/server/logger' -import { Client } from './client/Client' +import { FederationClient } from './client/FederationClient' import { ApiVersionType } from './enum/apiVersionType' export function startValidateCommunities(timerInterval: number): void { @@ -37,7 +37,7 @@ export async function validateCommunities(): Promise { continue } try { - const client = Client.getInstance(dbCom) + const client = FederationClient.getInstance(dbCom) const pubKey = await client?.getPublicKey() if (pubKey && pubKey === dbCom.publicKey.toString()) { await DbFederatedCommunity.update({ id: dbCom.id }, { verifiedAt: new Date() }) From 0ce40428649bbbb967b9c7efee71ea5637444c96 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 23 May 2023 11:30:49 +0200 Subject: [PATCH 5/8] more camelcase exceptions --- backend/src/federation/validateCommunities.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/federation/validateCommunities.test.ts b/backend/src/federation/validateCommunities.test.ts index c75408762..cf8624be1 100644 --- a/backend/src/federation/validateCommunities.test.ts +++ b/backend/src/federation/validateCommunities.test.ts @@ -103,6 +103,7 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables2) .orUpdate({ + // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -141,6 +142,7 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables3) .orUpdate({ + // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) From 8e34b8f0ab6b4abda3d7c0e39a7f0fd15f89bd2c Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 24 May 2023 13:46:10 +0200 Subject: [PATCH 6/8] improve tests after dht restart --- dht-node/src/dht_node/index.test.ts | 295 +++++++++++++++------------- dht-node/src/dht_node/index.ts | 10 +- 2 files changed, 166 insertions(+), 139 deletions(-) diff --git a/dht-node/src/dht_node/index.test.ts b/dht-node/src/dht_node/index.test.ts index 04a45c51a..ec172c4f8 100644 --- a/dht-node/src/dht_node/index.test.ts +++ b/dht-node/src/dht_node/index.test.ts @@ -1,12 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import { - CommunityApi, - startDHT, - writeFederatedHomeCommunityEntries, - writeHomeCommunityEntry, -} from './index' +import { startDHT } from './index' import DHT from '@hyperswarm/dht' import CONFIG from '@/config' import { logger } from '@test/testSetup' @@ -121,6 +116,9 @@ describe('federation', () => { const hashSpy = jest.spyOn(DHT, 'hash') const keyPairSpy = jest.spyOn(DHT, 'keyPair') beforeEach(async () => { + CONFIG.FEDERATION_COMMUNITY_URL = 'https://test.gradido.net' + CONFIG.COMMUNITY_NAME = 'Gradido Test Community' + CONFIG.COMMUNITY_DESCRIPTION = 'Community to test the federation' DHT.mockClear() jest.clearAllMocks() await cleanDB() @@ -139,6 +137,64 @@ describe('federation', () => { expect(DHT).toBeCalledWith({ keyPair: keyPairMock }) }) + it('stores the home community in community table ', async () => { + const result = await DbCommunity.find() + expect(result).toEqual([ + expect.objectContaining({ + id: expect.any(Number), + foreign: false, + url: 'https://test.gradido.net/api/', + publicKey: expect.any(Buffer), + communityUuid: expect.any(String), + authenticatedAt: null, + name: 'Gradido Test Community', + description: 'Community to test the federation', + creationDate: expect.any(Date), + createdAt: expect.any(Date), + updatedAt: null, + }), + ]) + expect(validateUUID(result[0].communityUuid ? result[0].communityUuid : '')).toEqual(true) + expect(versionUUID(result[0].communityUuid ? result[0].communityUuid : '')).toEqual(4) + }) + + it('creates 3 entries in table federated_communities', async () => { + const result = await DbFederatedCommunity.find({ order: { id: 'ASC' } }) + await expect(result).toHaveLength(3) + await expect(result).toEqual([ + expect.objectContaining({ + id: expect.any(Number), + foreign: false, + publicKey: expect.any(Buffer), + apiVersion: '1_0', + endPoint: 'https://test.gradido.net/api/', + lastAnnouncedAt: null, + createdAt: expect.any(Date), + updatedAt: null, + }), + expect.objectContaining({ + id: expect.any(Number), + foreign: false, + publicKey: expect.any(Buffer), + apiVersion: '1_1', + endPoint: 'https://test.gradido.net/api/', + lastAnnouncedAt: null, + createdAt: expect.any(Date), + updatedAt: null, + }), + expect.objectContaining({ + id: expect.any(Number), + foreign: false, + publicKey: expect.any(Buffer), + apiVersion: '2_0', + endPoint: 'https://test.gradido.net/api/', + lastAnnouncedAt: null, + createdAt: expect.any(Date), + updatedAt: null, + }), + ]) + }) + describe('DHT node', () => { it('creates a server', () => { expect(nodeCreateServerMock).toBeCalled() @@ -162,131 +218,6 @@ describe('federation', () => { }) }) - describe('home community', () => { - it('one in table communities', async () => { - const result = await DbCommunity.find({ foreign: false }) - expect(result).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - id: expect.any(Number), - foreign: false, - url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - publicKey: expect.any(Buffer), - communityUuid: expect.any(String), - authenticatedAt: null, - name: CONFIG.COMMUNITY_NAME, - description: CONFIG.COMMUNITY_DESCRIPTION, - creationDate: expect.any(Date), - createdAt: expect.any(Date), - updatedAt: null, - }), - ]), - ) - const valUUID = validateUUID( - result[0].communityUuid != null ? result[0].communityUuid : '', - ) - const verUUID = versionUUID( - result[0].communityUuid != null ? result[0].communityUuid : '', - ) - expect(valUUID).toEqual(true) - expect(verUUID).toEqual(4) - }) - it('update the one in table communities', async () => { - const resultBefore = await DbCommunity.find({ foreign: false }) - expect(resultBefore).toHaveLength(1) - const modifiedCom = DbCommunity.create() - modifiedCom.description = 'updated description' - modifiedCom.name = 'update name' - modifiedCom.publicKey = Buffer.from( - '1234567891abcdef7892abcdef7893abcdef7894abcdef7895abcdef7896abcd', - ) - modifiedCom.url = 'updated url' - await DbCommunity.update(modifiedCom, { id: resultBefore[0].id }) - - await writeHomeCommunityEntry(modifiedCom.publicKey.toString()) - const resultAfter = await DbCommunity.find({ foreign: false }) - expect(resultAfter).toHaveLength(1) - expect(resultAfter).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - id: resultBefore[0].id, - foreign: false, - url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - publicKey: modifiedCom.publicKey, - communityUuid: resultBefore[0].communityUuid, - authenticatedAt: null, - name: CONFIG.COMMUNITY_NAME, - description: CONFIG.COMMUNITY_DESCRIPTION, - creationDate: expect.any(Date), - createdAt: expect.any(Date), - updatedAt: expect.any(Date), - }), - ]), - ) - }) - }) - - // skipped because ot timing problems in testframework - describe.skip('federated home community', () => { - it('three in table federated_communities', async () => { - const homeApiVersions: CommunityApi[] = await writeFederatedHomeCommunityEntries( - keyPairMock.publicKey.toString('hex'), - ) - expect(homeApiVersions).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - api: '1_0', - url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - }), - expect.objectContaining({ - api: '1_1', - url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - }), - expect.objectContaining({ - api: '2_0', - url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - }), - ]), - ) - const result = await DbFederatedCommunity.find({ foreign: false }) - expect(result).toHaveLength(3) - expect(result).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - id: expect.any(Number), - foreign: false, - publicKey: expect.any(Buffer), - apiVersion: '1_0', - endPoint: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - lastAnnouncedAt: null, - createdAt: expect.any(Date), - updatedAt: null, - }), - expect.objectContaining({ - id: expect.any(Number), - foreign: false, - publicKey: expect.any(Buffer), - apiVersion: '1_1', - endPoint: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - lastAnnouncedAt: null, - createdAt: expect.any(Date), - updatedAt: null, - }), - expect.objectContaining({ - id: expect.any(Number), - foreign: false, - publicKey: expect.any(Buffer), - apiVersion: '2_0', - endPoint: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - lastAnnouncedAt: null, - createdAt: expect.any(Date), - updatedAt: null, - }), - ]), - ) - }) - }) - describe('server connection event', () => { beforeEach(() => { serverEventMocks.connection({ @@ -918,15 +849,15 @@ describe('federation', () => { JSON.stringify([ { api: '1_0', - url: 'http://localhost/api/', + url: 'https://test.gradido.net/api/', }, { api: '1_1', - url: 'http://localhost/api/', + url: 'https://test.gradido.net/api/', }, { api: '2_0', - url: 'http://localhost/api/', + url: 'https://test.gradido.net/api/', }, ]), ), @@ -936,5 +867,101 @@ describe('federation', () => { }) }) }) + + describe('restart DHT', () => { + let homeCommunity: DbCommunity + let federatedCommunities: DbFederatedCommunity[] + + describe('without changes', () => { + beforeEach(async () => { + DHT.mockClear() + jest.clearAllMocks() + homeCommunity = (await DbCommunity.find())[0] + federatedCommunities = await DbFederatedCommunity.find({ order: { id: 'ASC' } }) + await startDHT(TEST_TOPIC) + }) + + it('does not change home community in community table except updated at column ', async () => { + await expect(DbCommunity.find()).resolves.toEqual([ + { + ...homeCommunity, + updatedAt: expect.any(Date), + }, + ]) + }) + + it('rewrites the 3 entries in table federated_communities', async () => { + const result = await DbFederatedCommunity.find() + await expect(result).toHaveLength(3) + await expect(result).toEqual([ + { + ...federatedCommunities[0], + id: expect.any(Number), + createdAt: expect.any(Date), + }, + { + ...federatedCommunities[1], + id: expect.any(Number), + createdAt: expect.any(Date), + }, + { + ...federatedCommunities[2], + id: expect.any(Number), + createdAt: expect.any(Date), + }, + ]) + }) + }) + + describe('changeing URL, name and description', () => { + beforeEach(async () => { + CONFIG.FEDERATION_COMMUNITY_URL = 'https://test2.gradido.net' + CONFIG.COMMUNITY_NAME = 'Second Gradido Test Community' + CONFIG.COMMUNITY_DESCRIPTION = 'Another Community to test the federation' + DHT.mockClear() + jest.clearAllMocks() + homeCommunity = (await DbCommunity.find())[0] + federatedCommunities = await DbFederatedCommunity.find({ order: { id: 'ASC' } }) + await startDHT(TEST_TOPIC) + }) + + it('updates URL, name, description and updated at columns ', async () => { + await expect(DbCommunity.find()).resolves.toEqual([ + { + ...homeCommunity, + url: 'https://test2.gradido.net/api/', + name: 'Second Gradido Test Community', + description: 'Another Community to test the federation', + updatedAt: expect.any(Date), + }, + ]) + }) + + it('rewrites the 3 entries in table federated_communities with new endpoint', async () => { + const result = await DbFederatedCommunity.find() + await expect(result).toHaveLength(3) + await expect(result).toEqual([ + { + ...federatedCommunities[0], + id: expect.any(Number), + createdAt: expect.any(Date), + endPoint: 'https://test2.gradido.net/api/', + }, + { + ...federatedCommunities[1], + id: expect.any(Number), + createdAt: expect.any(Date), + endPoint: 'https://test2.gradido.net/api/', + }, + { + ...federatedCommunities[2], + id: expect.any(Number), + createdAt: expect.any(Date), + endPoint: 'https://test2.gradido.net/api/', + }, + ]) + }) + }) + }) }) }) diff --git a/dht-node/src/dht_node/index.ts b/dht-node/src/dht_node/index.ts index bd9c95a7e..f74588904 100644 --- a/dht-node/src/dht_node/index.ts +++ b/dht-node/src/dht_node/index.ts @@ -197,16 +197,16 @@ export async function writeFederatedHomeCommunityEntries(pubKey: string): Promis }) try { // first remove privious existing homeCommunity entries - DbFederatedCommunity.createQueryBuilder().delete().where({ foreign: false }).execute() - for (let i = 0; i < homeApiVersions.length; i++) { + await DbFederatedCommunity.createQueryBuilder().delete().where({ foreign: false }).execute() + for (const homeApiVersion of homeApiVersions) { const homeCom = DbFederatedCommunity.create() homeCom.foreign = false - homeCom.apiVersion = homeApiVersions[i].api - homeCom.endPoint = homeApiVersions[i].url + homeCom.apiVersion = homeApiVersion.api + homeCom.endPoint = homeApiVersion.url homeCom.publicKey = Buffer.from(pubKey) await DbFederatedCommunity.insert(homeCom) logger.info( - `federation home-community inserted successfully: ${JSON.stringify(homeApiVersions[i])}`, + `federation home-community inserted successfully: ${JSON.stringify(homeApiVersion)}`, ) } } catch (err) { From 1af6e526bf9629b5d44075a01de0917c2c0c4871 Mon Sep 17 00:00:00 2001 From: Claus-Peter Huebner Date: Wed, 24 May 2023 22:58:39 +0200 Subject: [PATCH 7/8] remove JSON.stringify in logs --- dht-node/src/dht_node/index.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dht-node/src/dht_node/index.ts b/dht-node/src/dht_node/index.ts index bd9c95a7e..86b1b1ae4 100644 --- a/dht-node/src/dht_node/index.ts +++ b/dht-node/src/dht_node/index.ts @@ -205,9 +205,7 @@ export async function writeFederatedHomeCommunityEntries(pubKey: string): Promis homeCom.endPoint = homeApiVersions[i].url homeCom.publicKey = Buffer.from(pubKey) await DbFederatedCommunity.insert(homeCom) - logger.info( - `federation home-community inserted successfully: ${JSON.stringify(homeApiVersions[i])}`, - ) + logger.info(`federation home-community inserted successfully:`, homeApiVersions[i]) } } catch (err) { throw new Error(`Federation: Error writing federated HomeCommunity-Entries: ${err}`) @@ -233,7 +231,7 @@ export async function writeHomeCommunityEntry(pubKey: string): Promise { homeCom.name = CONFIG.COMMUNITY_NAME homeCom.description = CONFIG.COMMUNITY_DESCRIPTION await DbCommunity.save(homeCom) - logger.info(`home-community updated successfully: ${JSON.stringify(homeCom)}`) + logger.info(`home-community updated successfully:`, homeCom) } else { // insert a new homecommunity entry including a new ID and a new but ensured unique UUID homeCom = new DbCommunity() @@ -245,7 +243,7 @@ export async function writeHomeCommunityEntry(pubKey: string): Promise { homeCom.description = CONFIG.COMMUNITY_DESCRIPTION homeCom.creationDate = new Date() await DbCommunity.insert(homeCom) - logger.info(`home-community inserted successfully: ${JSON.stringify(homeCom)}`) + logger.info(`home-community inserted successfully:`, homeCom) } } catch (err) { throw new Error(`Federation: Error writing HomeCommunity-Entry: ${err}`) From 5b9d986c3b6b1851ebd347b17f3d0adfdff016e6 Mon Sep 17 00:00:00 2001 From: Claus-Peter Huebner Date: Wed, 24 May 2023 23:20:15 +0200 Subject: [PATCH 8/8] replace several usages of keyPair.publicKey.toString('hex') --- dht-node/src/dht_node/index.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/dht-node/src/dht_node/index.ts b/dht-node/src/dht_node/index.ts index 9d5d89edd..4fd0bd733 100644 --- a/dht-node/src/dht_node/index.ts +++ b/dht-node/src/dht_node/index.ts @@ -33,13 +33,12 @@ export const startDHT = async (topic: string): Promise => { try { const TOPIC = DHT.hash(Buffer.from(topic)) const keyPair = DHT.keyPair(getSeed()) - logger.info(`keyPairDHT: publicKey=${keyPair.publicKey.toString('hex')}`) + const pubKeyString = keyPair.publicKey.toString('hex') + logger.info(`keyPairDHT: publicKey=${pubKeyString}`) logger.debug(`keyPairDHT: secretKey=${keyPair.secretKey.toString('hex')}`) - await writeHomeCommunityEntry(keyPair.publicKey.toString('hex')) + await writeHomeCommunityEntry(pubKeyString) - const ownApiVersions = await writeFederatedHomeCommunityEntries( - keyPair.publicKey.toString('hex'), - ) + const ownApiVersions = await writeFederatedHomeCommunityEntries(pubKeyString) logger.info(`ApiList: ${JSON.stringify(ownApiVersions)}`) const node = new DHT({ keyPair }) @@ -146,7 +145,7 @@ export const startDHT = async (topic: string): Promise => { data.peers.forEach((peer: any) => { const pubKey = peer.publicKey.toString('hex') if ( - pubKey !== keyPair.publicKey.toString('hex') && + pubKey !== pubKeyString && !successfulRequests.includes(pubKey) && !errorfulRequests.includes(pubKey) && !collectedPubKeys.includes(pubKey)