Creates a new NodeConfig with the given parameters.
If id is not provided, an ID based on the hashCode will be used.
The id is not guaranteed to be unique, and should be used only for
logging and identification purposes.
The name is a human-readable name for the node.
The capabilities is a set of NodeCapability enum values that
define the maximum capabilities of the node.
By default, the node is a participant node.
The uId is a unique identifier for the node
Note: this should generally not be set manually, and should be
generated automatically, the argument is there to allow mirroring
of existing /found nodes, and maintain their uId.