waku-org / js-waku

JavaScript implementation of Waku v2
https://js.waku.org
Apache License 2.0
166 stars 42 forks source link

feat: dev-ex focused API to enable/disable discovery #1891

Open danisharora099 opened 6 months ago

danisharora099 commented 6 months ago

This is a change request

Problem

Similar to work on https://github.com/waku-org/js-waku/pull/1871, developers currently rely on importing discovery packages and passing it to libp2p.peerDiscovery like:

import {wakuPeerExchange, wakuDnsDiscovery} from '@waku/sdk';

createLightNode({
   libp2p: {
       peerDiscovery: [wakuPeerExchange(), wakuDnsDiscovery()...]
      }
   })

Proposed Solutions

Provide an API like:

createLightNode({
      discovery: {
          peerExchange: true,
          dnsDiscovery: true,
          bootstrap: peers,
          local-cache: true,
      }
   })

Notes