We present a new distributed algorithm for the resource discovery problem introduced by Harchol-Balter, Leighton, and Levin in PODC'99.The resource discovery problem consists of a synchronous network with n machines in which at any timestep any machine v can PUSH or PULL a message to/from any other machine u whose (IP) address is known to v. Messages can contain addresses which then change the "topology". The goal of a distributed resource discovery problem is to enable all machines to learn the addresses of all other machines as fast as possible while keeping the number of messages sent low.We present a randomized distributed algorithm that achieves this goal in O(log D log log n) rounds using O(n) messages, where D is the strong diameter of the initial topology. Up to the log log n factor, our round complexity is best possible given the trivial Ω(log D) lower bound. For many typical networks with D = o(n), our running time is a drastic improvement over prior O(log n) round algorithms. In particular, for networks with polylogarithmic diameter an O(log 2 log n) running time and thus an almost exponential speedup is obtained.