diff --git a/backend/src/federation/index.ts b/backend/src/federation/index.ts new file mode 100644 index 000000000..cd9747732 --- /dev/null +++ b/backend/src/federation/index.ts @@ -0,0 +1,12 @@ +import DHT from '@hyperswarm/dht' +import { Connection } from '@dbTools/typeorm' + +const POLLTIME = 20000 +const SUCCESSTIME = 120000 +const ERRORTIME = 240000 +const ANNOUNCETIME = 30000 + +export const startDHT = async (connection: Connection, topic: string): Promise => { + console.log('topic', topic, typeof topic) + // const TOPIC = DHT.hash(Buffer.from(topic)) +} diff --git a/backend/src/server/createServer.ts b/backend/src/server/createServer.ts index 8315fda58..e2ea8ea08 100644 --- a/backend/src/server/createServer.ts +++ b/backend/src/server/createServer.ts @@ -22,6 +22,9 @@ import schema from '@/graphql/schema' import { elopageWebhook } from '@/webhook/elopage' import { Connection } from '@dbTools/typeorm' +// DHT +import { startDHT } from '@/federation/index' + // TODO implement // import queryComplexity, { simpleEstimator, fieldConfigEstimator } from "graphql-query-complexity"; @@ -41,6 +44,12 @@ const createServer = async (context: any = serverContext): Promise => throw new Error('Fatal: Database Version incorrect') } + // start DHT hyperswarm when DHT_TOPIC is set in .env + if (CONFIG.DHT_TOPIC) { + console.log('Starting hyperswarm DHT') + await startDHT(con, CONFIG.DHT_TOPIC) + } + // Express Server const app = express()