Label: An individual component of a name, such as 'alice' in 'alice.bab'.
Labelhash: The keccak256 hash of an individual label.
Name: A DID identifier such as 'alice.bab'. Names may consist of multiple parts, called labels, separated by dots. The name of JazDID is composed of label and registrar contract address, such as 'alice.ff1ae60287ed0c8a32e6fc6f9afe35ea3a726efc',this design is different from ENS. The advantage is that two identical TLDs can be issued on the same chain. Of course, we will avoid this from happening.
Namehash: The algorithm used to process an name and return a cryptographic hash uniquely identifying that name. Namehash takes a name as input and produces a node.
Node: A cryptographic hash(namehash) uniquely identifying a name.
node = namehash(name).
Registrant: The owner of a name is the entity referenced in the registry's owner field. An owner may transfer ownership, set a resolver or TTL.
Registrar: A registrar is a contract responsible for allocating subdomains. Registrars can be configured at any level, and are pointed to by the owner field of the registry.
Registration: A registration is a registrar's record of a user's ownership of a name. This is distinct from the owner field in the Registry; registrations are maintained in the registrar contract and additionally store information on expiry date, fees paid, etc.
Registry: The registry maintains a mapping from domain name (., .x, .y.x) to owner, resolver, and time-to-live.
Resolver: A resolver is a contract that maps from name to the resource (e.g., cryptocurrency addresses, content hash, etc). Resolvers are pointed to by the resolver field of the registry.