I2P has its own internal DHT network. Bote piggybacks on it to relay messages between Bote nodes. You can even configure it so you can address random online nodes and ask them to hold a message for another node to relay (online or offline) to obscure message timing
DHT can be used for almost anything as a generic key value store, even if the typical use is just peer finding