diff --git a/examples/canvas/src/handlers.ts b/examples/canvas/src/handlers.ts index 68e787e2..5376959a 100644 --- a/examples/canvas/src/handlers.ts +++ b/examples/canvas/src/handlers.ts @@ -4,6 +4,7 @@ import { ICanvas } from "./objects/canvas"; // TODO: this should be superseded by wasm and main ts-topology library export const handleCanvasMessages = (canvas: ICanvas, e: any) => { if (e.detail.msg.topic === "_peer-discovery._p2p._pubsub") return; + if (e.detail.msg.topic === "topology::object::announcements") return; const input = uint8ArrayToString(e.detail.msg.data); const message = JSON.parse(input); switch (message["type"]) { diff --git a/packages/network/package.json b/packages/network/package.json index 31048b22..09188989 100644 --- a/packages/network/package.json +++ b/packages/network/package.json @@ -37,6 +37,7 @@ "@libp2p/autonat": "^1.0.0", "@libp2p/bootstrap": "^10.1.0", "@libp2p/circuit-relay-v2": "^1.0.24", + "@libp2p/dcutr": "^1.1.0", "@libp2p/identify": "^2.0.2", "@libp2p/interface-pubsub": "^4.0.1", "@libp2p/pubsub-peer-discovery": "^10.0.2", diff --git a/packages/network/src/node.ts b/packages/network/src/node.ts index fb9b4b8b..00212bb7 100644 --- a/packages/network/src/node.ts +++ b/packages/network/src/node.ts @@ -50,7 +50,8 @@ export class TopologyNetworkNode { }, peerDiscovery: [ pubsubPeerDiscovery({ - interval: 5_000, + interval: 10_000, + // topics: ["topology::discovery"], }), bootstrap({ list: [ @@ -69,7 +70,7 @@ export class TopologyNetworkNode { streamMuxers: [yamux()], transports: [ circuitRelayTransport({ - discoverRelays: 1, + discoverRelays: 0, }), webRTC({ rtcConfiguration: { @@ -105,6 +106,8 @@ export class TopologyNetworkNode { multiaddr(`/p2p/${message.detail.propagationSource.toString()}`), ]); }); + this._node.addEventListener("peer:connect", (e) => console.log(e)); + this._node.addEventListener("connection:open", (e) => console.log(e)); console.log( "topology::network::start: Successfuly started topology network w/ peer_id", @@ -196,7 +199,9 @@ export class TopologyNetworkNode { async sendMessage(peerId: string, protocols: string[], message: string) { try { const connection = await this._node?.dial([multiaddr(`/p2p/${peerId}`)]); - const stream = await connection?.newStream(protocols); + const stream = await connection?.newStream(protocols, { + runOnTransientConnection: true, + }); stringToStream(stream, message); console.log( @@ -218,7 +223,9 @@ export class TopologyNetworkNode { const peerId = peers[Math.floor(Math.random() * peers.length)]; const connection = await this._node?.dial(peerId); - const stream: Stream = (await connection?.newStream(protocols)) as Stream; + const stream: Stream = (await connection?.newStream(protocols, { + runOnTransientConnection: true, + })) as Stream; stringToStream(stream, message); console.log( diff --git a/packages/network/src/relay.ts b/packages/network/src/relay.ts index f0715ebf..539feea4 100644 --- a/packages/network/src/relay.ts +++ b/packages/network/src/relay.ts @@ -23,13 +23,16 @@ export const createRelayNode = async () => { listen: ["/ip4/0.0.0.0/tcp/50000/ws", "/ip4/0.0.0.0/tcp/50001"], }, connectionEncryption: [noise()], - peerDiscovery: [pubsubPeerDiscovery()], + peerDiscovery: [ + pubsubPeerDiscovery({ + interval: 10_000, + // topics: ["topology::discovery"], + }), + ], services: { autonat: autoNAT(), identify: identify(), - pubsub: gossipsub({ - runOnTransientConnection: true, - }), + pubsub: gossipsub(), relay: circuitRelayServer(), }, streamMuxers: [yamux()],