interface NodeDirectory : AsyncMap<NodeId, NodeInfo>
open suspend fun tick(): Unit
class LocalNodeDirectory : HashMapBackedAsyncMap<NodeId, NodeInfo>, NodeDirectory