чтобы окончательно отбросить/допустить идею с DHT, но не писать мессенджер, можно написать маленький тестовый пример на легком скриптовом языке, где будет эмулирована сеть (в одном процессе приложения, без шифрования сообщений, просто забивать из /dev/urandom) - с узлами, - между ними распределяются DHT данные - рандомно появляются/исчезают узлы протестировать разные атаки/нагрузки и выяснить, насколько устойчивой будет работа мессенджера в таких условиях, хотя бы в теории.