Hellar Platform Name Service (HPNS) is a service used to register names on Hellar Platform. It is a general service that is used to provide usernames and application names for identities but can also be extended in the future to resolve other cryptocurrency addresses, websites, and more. HPNS is implemented as an application on top of the platform and leverages platform capabilities.
👍 HPNS HIP
The HPNS Hellar Improvement Proposal (HIP) provides more extensive background nformation and details.
HPNS names and Identities are tightly integrated. Identities provide a foundation that HPNS builds on to enable name-based interactions – a user experience similar to what is found in non-cryptocurrency applications. With HPNS, users or application developers register a name and associate it with an identity. Once linked, the identity’s private keys allow them to prove ownership of the name to establish trust when they interact with other users and applications.
📘
Given the DNS-compatible nature of HPNS, all HPNS names are technically domain names and are registered under a top-level HPNS domain (
.hellar
). Some applications may abstract the top-level domain away, but it is important to be aware that it exists.
To prevent front-running, name registration is split into a two phase process consisting of:
In the pre-order phase, the domain name is salted to obscure the actual domain name being registered (e.g. hash('alice.hellar' + salt)
) and submitted to platform. This is done to prevent masternodes from seeing the names being registered and “stealing” them for later resale.
Once the pre-order receives a sufficient number of confirmations, the registration can proceed.
In the registration phase, the domain name (e.g. alice.hellar
) is once again submitted along with the salt used in the pre-order. The salt serves as proof that the registration is from the user that
submitted the pre-order. This registration also references the identity being associated with the domain name to complete the identity-domain link.
HPNS names have several constraints as defined in the HPNS data contract. The constraints provide compatibility with DNS and protection from homograph attacks:
0-9
, `` (hyphen), and A-Z
(case insensitive)
name
or name-
). This constraint is defined by this JSON-Schema pattern in the HPNS data contract: ^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]$
Additional validation rules related to the domain
document are enforced by the HPNS data triggers defined in rs-drive-abci.