Doing the impossible: decentralised fuzzy search on a DHT