3. 2017#apricot2017
Motivations
โข Long standing request for a history function
โ Dispute resolution
โ LEA searches
โ Transfers checking for โclear titleโ
โ Research interest (informing the policy development process)
โข Increasing the transparency of registry operations
โ One of a number of activities aimed at improving trust
3
4. 2017#apricot2017
..But doesnโt Whois have history?
โข RIPE Whois history mechanism since 2014
โ Tracks changes of {ADD, UPD, UPDโฆ} to all Whois objects
โ Each change moves the prior state to the head of history for that
object, based on its object-id (an internal key)
โข DEL-ADD events disconnect history from the โheadโ state
โ The DEL/ADD pair even of the same data creates a new object-id
โข The history is against the old object-id, which is now buried inside the system
โ Many changes in Whois are done through sequences of {DEL,ADD}
โข The history is โthereโ but its been disconnected from the head object
4
5. 2017#apricot2017
Approach
โข Expose previous states of the registry as seen through
Whois
โ Reconnect the disconnected history from DEL events
โ Perhaps other information sources in the future (historical data)
โข Provide stable entry points which others can code to
โ Machine consumable APIs and a separate UI which uses it
โข Leverage the investment in RDAP: REST+JSON
โ Data returns directly into first-class data structures in most modern
languages: Python {dict} and Perl %{hash}
5
6. 2017#apricot2017
Approach
โข Design for the cloud
โ Not โbuild it hereโ as much as designing service to deploy anywhere
โ Scalable services which can meet demand without single points of
failure
โ Using โcontainerโ models of deployment (docker/kubernetes)
โข Open development model for increased transparency
โ Use of mechanisms like git, community feedback
โ Fork the code and develop your own
โ Specification heading to standards processes (also in git)
6
7. 2017#apricot2017
API Service
โข The RDAP API service is already deployed:
โ IETF RFC on the standards track
โ Implemented in common with names registries
โ Extensible by design โSo lets define an extension
โข Extension defined for history
โ A set of objects matching a query
โ Each with an applicability date range
7
10. 2017#apricot2017
API Service: highlights
โข History is a sub-space of the existing RDAP API
โ https://rdap.apnic.net/<rdap-query>
โข Gets the head-state of that resource
โ https://rdap.apnic.net/history/<rdap query>
โข Gets the history of that resource
โข IP Records, Domains, ASN, Entities (person, role, IRT)
โ There is not a 1-to-1 mapping to all existing WHOIS objects
โ (The same as for RDAP: no routing objects, no maintainers)
โข This is being explored as future work
10
11. 2017#apricot2017
RDAP Extension
โข Draft text for a standard extension mechanism
โ Will be registered as RDAP extension through IETF process
โ Document in github at https://github.com/apnic-net/rdap-history
โข Adds a โsetโ concept
โ To list the prior states of a given resource
โข Adds an โapplicabilityโ concept
โ To specify the date range between which a given instance applies
โข No constraints on overlaps or continuity of applicability dates are specified
โข Profile of RFC3339 Timestamps specification (ISO8601)
11
12. 2017#apricot2017
UI Experiment
โข Explore mechanisms to show changing data in time
โ Colorized difference between successive versions
โ Usual โdiffโ format markup
โข Explore mechanisms to show changing scope
โ Most specific to Most covering applicable ranges over a given
resource
โ Limit the explosion of potential data from block fragmentations over
time
โข What would you want in a UI to explore this data?
12
17. 2017#apricot2017
Future Plans
โข Move to a non-experimental API
โ Host a stable UI inside APNIC service model
โ Underlying API for RDAP/history is already in service
โ Warning: API may change as standardization progresses
โข Seeking commonality with other RDAP providers
โ Gauge interest in other communities
โ Ensure the draft can work for anyone who wants to implement a
history mechanism
โ Explore an RDAP extension for โraw dataโ
17
18. 2017#apricot2017
Its Alive!
โข Overview, pointers to the UI, code, standards
โ https://apnic.net/whowas
โข User interface
โ https://www.apnic.net/static/whowas-ui/
โข API
โ https://rdap.apnic.net/history/
โข Please play, explore, and give us feedback on both aspects of
this work.
18