From 47705c2f125ed6b9afbfecbab5c244d956900f98 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Thu, 22 Dec 2022 08:28:58 -0500 Subject: [PATCH] *Add a publicly accessible bootstrap node *Setup our bootstrap to start with our node first, and add in the default bootstrap servers --- src/modules/swarm.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/modules/swarm.ts b/src/modules/swarm.ts index 1f44840..f6a6a09 100644 --- a/src/modules/swarm.ts +++ b/src/modules/swarm.ts @@ -11,6 +11,7 @@ import sodium from "sodium-universal"; import b4a from "b4a"; import log from "../log.js"; import { getKeyPair } from "../lib/seed.js"; +import { AddressInfo } from "net"; const LUMEWEB = b4a.from("lumeweb"); export const LUMEWEB_TOPIC_HASH = b4a.allocUnsafe(32); @@ -22,8 +23,17 @@ let node: Hyperswarm; export async function start() { const keyPair = getKeyPair(); + const bootstrap = DHT.bootstrapper(49737, "0.0.0.0"); + await bootstrap.ready(); - node = new Hyperswarm({ keyPair, dht: new DHT({ keyPair }) }); + const address = bootstrap.address() as AddressInfo; + node = new Hyperswarm({ + keyPair, + dht: new DHT({ keyPair }), + bootstrap: [{ host: address.address, port: address.port }].concat( + require("@hyperswarm/dht/lib/constants").BOOTSTRAP_NODES + ), + }); // @ts-ignore await node.dht.ready();