Bootstrapping via list of rendezvous nodes allows the network to grow only via manual adding new addresses obtained from external sources. Bootstrapping via DHT is a new (not implemented yet) Dscuss feature, which is proposed in order provide more convenient and more natural way of growing the network.

There is a well-known protocol BEP-5, which is used in BitTorrent networks. It allows peers to find addresses of other peers seeding particular torrent. The target torrents are identified via 20-byte hashes. BEP-32 is an evolution of BEP 5, which adds support of IPv6.

The BEP-5 (or BEP-32) may be utilized in Dscuss with one exception: 20-byte hashes will identify topics rather than the torrents. I.e. if user A is subscribed to some topic T1 (for example, devel,gnu,p2p ), he/she should advertise the subscription in DHT in order to make it visible for other peers. However, user B subscribed to more general topics Tg (for example, devel,gnu ) will not find topic T1 in DHT. In order to make topics of the user A visible for other users, subscribed to more general topics (like the user B), user A should also advertise subscriptions to all parent topics. In other words, a user subscribed to the topic devel,gnu,p2p should advertise his/her network address for the following topics:


The total number of topics the address should be advertised in equals to 2^n-1 , where n is the number of tags in the topic.

Here is a free and simple implementation of BEP-32: libdht, which looks quite suitable for Dscuss. Also there are quite a few other DHT implementations, for example OpenDHT.