1
0
mirror of https://github.com/google/nomulus synced 2026-01-06 21:47:31 +00:00
Files
nomulus/README.md
mcilwain 6c610d49fe Shorten and edit README file
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=134412992
2016-10-03 15:44:52 -04:00

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.