Full node
Every node has all capabilities. Whether it acts as a server in the DHT is decided automatically by whether it can be reached from outside: if reachable it takes the role, and if not it acts only as a client so it does not slow down other people's queries.
