mirror of
https://github.com/google/nomulus
synced 2026-01-07 05:56:49 +00:00
108 lines
5.6 KiB
Markdown
108 lines
5.6 KiB
Markdown
# Domain Registry
|
|
|
|
## Overview
|
|
|
|
Domain Registry is an open source, scalable, cloud-based service for operating
|
|
[top-level domains](https://en.wikipedia.org/wiki/Top-level_domain) (TLDs). It
|
|
is the authoritative source for the TLDs that it runs, meaning that it is
|
|
responsible for tracking domain name ownership and handling registrations,
|
|
renewals, availability checks, and WHOIS requests. End-user registrants (i.e.
|
|
people or companies that want to register a domain name) use an intermediate
|
|
domain name registrar acting on their behalf to interact with the registry.
|
|
|
|
Domain Registry runs on [Google App
|
|
Engine](https://cloud.google.com/appengine/docs/about-the-standard-environment)
|
|
and is written primarily in Java. It is the software that [Google
|
|
Registry](https://www.registry.google/) uses to operate TLDs such as .GOOGLE,
|
|
.HOW, .SOY, and .みんな. It can run any number of TLDs in a single shared registry
|
|
system using full horizontal scaling. Its source code is publicly available in
|
|
this repository under the [Apache 2.0 free and open source
|
|
license](https://www.apache.org/licenses/LICENSE-2.0).
|
|
|
|
## Getting started
|
|
|
|
The following resources provide information on getting the code and setting up a
|
|
running system:
|
|
|
|
* [Install
|
|
guide](https://github.com/google/domain-registry/blob/master/docs/install.md)
|
|
* Frequently asked questions
|
|
* [Other docs](https://github.com/google/domain-registry/tree/master/docs)
|
|
* Javadocs
|
|
* [Domain registry user
|
|
group](https://groups.google.com/forum/#!forum/domain-registry-users), for
|
|
any other questions
|
|
|
|
If you are thinking about running a production registry service using our
|
|
platform, please drop by the user group and introduce yourself and your use
|
|
case. To report issues or make contributions, use GitHub issues and pull
|
|
requests.
|
|
|
|
## Capabilities
|
|
|
|
Domain Registry has the following capabilities:
|
|
|
|
* **[Extensible Provisioning Protocol
|
|
(EPP)](https://en.wikipedia.org/wiki/Extensible_Provisioning_Protocol)**: An
|
|
XML protocol that is the standard format for communication between
|
|
registrars and registries. It includes operations for registering, renewing,
|
|
checking, updating, and transferring domain names.
|
|
* **[DNS](https://en.wikipedia.org/wiki/Domain_Name_System) interface**: The
|
|
registry provides a pluggable interface that can be implemented to handle
|
|
different DNS providers. It includes a sample implementation using Google
|
|
Cloud DNS.
|
|
* **[WHOIS](https://en.wikipedia.org/wiki/WHOIS)**: A text-based protocol that
|
|
returns ownership and contact information on registered domain names.
|
|
* **[Registration Data Access Protocol
|
|
(RDAP)](https://en.wikipedia.org/wiki/Registration_Data_Access_Protocol)**:
|
|
A JSON API that returns structured, machine-readable information about
|
|
domain name ownership. It is essentially a newer version of WHOIS.
|
|
* **[Registry Data Escrow (RDE)](https://icannwiki.com/Data_Escrow)**: A daily
|
|
export of all ownership information for a TLD to a third party escrow
|
|
provider to allow take-over by another registry operator in the event of
|
|
serious failure. This is required by ICANN for all new gTLDs.
|
|
* **Premium pricing**: Communicates prices for premium domain names (i.e.
|
|
those that are highly desirable) and supports configurable premium
|
|
registration and renewal prices. An extensible interface allows fully
|
|
programmatic pricing.
|
|
* **Billing history**: A full history of all billable events is recorded,
|
|
suitable for ingestion into an invoicing system.
|
|
* **Registration periods**: Qualified Launch Partner, Sunrise, Landrush, and
|
|
General Availability periods of the standard gTLD lifecycle are all
|
|
supported.
|
|
* **Brand protection for trademark holders (via
|
|
[TMCH](https://newgtlds.icann.org/en/about/trademark-clearinghouse/faqs))**:
|
|
Allows rights-holders to protect their brands by blocking registration of
|
|
domains using their trademark. This is required by ICANN for all new gTLDs.
|
|
* **Registrar support console**: A self-service web console that registrars
|
|
can use to manage their accounts in the registry system.
|
|
* **Reporting**: Support for required external reporting (such as [ICANN
|
|
monthly registry
|
|
reports](https://www.icann.org/resources/pages/registry-reports),
|
|
[CZDS](https://czds.icann.org), Billing and Registration Activity) as well
|
|
as internal reporting using [BigQuery](https://cloud.google.com/bigquery/).
|
|
* **Administrative tool**: Performs the full range of administrative tasks
|
|
needed to manage a running registry system, including creating and
|
|
configuring new TLDs.
|
|
|
|
## Known issues
|
|
|
|
Here are some additional things you will likely need or want that are not
|
|
provided out of the box:
|
|
|
|
* A DNS system. An interface for DNS operations is provided so you can write
|
|
an implementation for your chosen provider, along with a sample
|
|
implementation that uses [Google Cloud DNS](https://cloud.google.com/dns/).
|
|
If you are using Google Cloud DNS you may need to understand its
|
|
capabilities and provide your own
|
|
multi-[AS](https://en.wikipedia.org/wiki/Autonomous_system_\(Internet\))
|
|
solution.
|
|
* An invoicing/payments system in order to charge registrars for domain name
|
|
registrations and accept payments.
|
|
* System status and uptime monitoring.
|
|
* A proxy to forward traffic on EPP and WHOIS ports to App Engine via HTTPS,
|
|
since App Engine Standard only serves HTTP/S traffic. The proxy must support
|
|
IPv4 and IPv6 access to comply with ICANN's requirements for gTLDs. There
|
|
are plans to eliminate the need for a proxy by migrating to [App Engine
|
|
Flexible](https://cloud.google.com/appengine/docs/flexible/) in the future.
|