Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

On-chain Domain Resolution #187

Merged
merged 4 commits into from
Jun 25, 2021
Merged

On-chain Domain Resolution #187

merged 4 commits into from
Jun 25, 2021

Conversation

sunmilee
Copy link
Contributor

On-chain domain resolution of human readable VASP domain names into an on-chain address. Used by DIP-10 Diem ID protocol.

#182

@sunmilee sunmilee mentioned this pull request Jun 15, 2021
@sunmilee sunmilee requested a review from davidiw June 15, 2021 10:04
dips/dip-182.md Outdated Show resolved Hide resolved
dips/dip-182.md Outdated Show resolved Hide resolved
dips/dip-182.md Outdated Show resolved Hide resolved
Copy link
Contributor

@aching aching left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

dips/dip-182.md Outdated Show resolved Hide resolved
dips/dip-182.md Outdated Show resolved Hide resolved
# On-chain data

## Domain Format
A VASP domain name is a unique string that is mapped to a VASP. Specification:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any recommendations on how a VASP should pick a domain name? For example, should company ABC that already has abc.com use that as a domain name? Or perhaps just abc?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is appropriate scope within a DIP.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fine to say this is something the Diem Association will provide rules on, however, I think some guidance somewhere is important. Where will that guidance exist?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe on VASP onboarding guide? I agree it shouldn't be on this DIP

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there were some hiccups on the guide that are being worked on. There is some content in the operators-runbook repo.

dips/dip-182.md Outdated
A VASP domain name is a unique string that is mapped to a VASP. Specification:
* Case insensitive
* Valid regular expression: `^[a-zA-Z0-9][a-zA-Z0-9.]*$`
* Maximum length: 63 characters (64 including `@`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit confused. What is the '@'? This is the first and only reference of it in the proposal.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haha, legacy cruft 😭

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it ok if we just keep it 63 characters? @ is from diem ID. People might be confused why it's 63 vs 64

dips/dip-182.md Outdated
* Only TC account can create and publish a `DiemIdDomains` resource
* Only TC account can add, remove or update a `DiemIdDomain` within `DiemIdDomains` resource
* `DiemIDDomains` resource will be created in an empty state as part of creating a `ParentVASP` account resource, and existing `ParentVASP` accounts without `DiemIDDomains` will have the resource instantiated by the DiemRoot account
* In order to register a DiemID domain, a VASP needs to submit a request to Diem Association. After approval, Diem Association will use TreasuryCompliance account to issue an on-chain transaction to register a DiemID Domain
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the Association responsible for ensuring the uniqueness of all VASP domain names at any given time? Across all history? Will domain name re-used be supported, say after a delay, similar to ICANN?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is the appropriate doc to describe processes like that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where will we have that information? If folks are to use this feature they will need to know these types of things.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair to some of your points. I agree it is relevant to say that all names are to be unique and that is the responsibility of the TC maintainers to ensure uniqueness.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a sentence here about DA ensuring uniqueness. Didn't mention anything about re-use, not sure about that one.

Copy link
Contributor

@davidiw davidiw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the one hand, I agree that there are a lot of processes and perhaps it may be worthwhile calling out in an appendix. Though I do have concerns about mixing DA process with technical solutions. Perhaps there should be a secondary DIP on processes if we deem it appropriate.

# On-chain data

## Domain Format
A VASP domain name is a unique string that is mapped to a VASP. Specification:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is appropriate scope within a DIP.

dips/dip-182.md Outdated
A VASP domain name is a unique string that is mapped to a VASP. Specification:
* Case insensitive
* Valid regular expression: `^[a-zA-Z0-9][a-zA-Z0-9.]*$`
* Maximum length: 63 characters (64 including `@`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haha, legacy cruft 😭

dips/dip-182.md Outdated Show resolved Hide resolved
dips/dip-182.md Outdated
* Only TC account can create and publish a `DiemIdDomains` resource
* Only TC account can add, remove or update a `DiemIdDomain` within `DiemIdDomains` resource
* `DiemIDDomains` resource will be created in an empty state as part of creating a `ParentVASP` account resource, and existing `ParentVASP` accounts without `DiemIDDomains` will have the resource instantiated by the DiemRoot account
* In order to register a DiemID domain, a VASP needs to submit a request to Diem Association. After approval, Diem Association will use TreasuryCompliance account to issue an on-chain transaction to register a DiemID Domain
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is the appropriate doc to describe processes like that.

* Only TC account can create and publish a `VaspDomains` resource
* Only TC account can add, remove or update a `VaspDomain` within `VaspDomains` resource
* `VaspDomains` resource will be created in an empty state as part of creating a `ParentVASP` account resource, and existing `ParentVASP` accounts without `VaspDomains` will have the resource instantiated by the DiemRoot account
* In order to register a VASP domain, a VASP needs to submit a request to Diem Association. After approval, Diem Association will use TC account to issue an on-chain transaction to register a VaspDomain. Diem Association will ensure uniqueness of domain names across all VASPs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the number of VASPs is not too large, it should be fine for the Diem Association to handle registration, expiration, uniqueness, re-use, and other characteristics. Before this DIP can move to Accepted, I think we will need to have commitment from the Diem Association that these responsibilities can be taken on.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Who do we need to talk to ? @aching @davidiw

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be pretty quick conversation with @pdhamdhere .

Copy link
Contributor

@davidiw davidiw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/land

# On-chain data

## Domain Format
A VASP domain name is a unique string that is mapped to a VASP. Specification:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there were some hiccups on the guide that are being worked on. There is some content in the operators-runbook repo.

* Only TC account can create and publish a `VaspDomains` resource
* Only TC account can add, remove or update a `VaspDomain` within `VaspDomains` resource
* `VaspDomains` resource will be created in an empty state as part of creating a `ParentVASP` account resource, and existing `ParentVASP` accounts without `VaspDomains` will have the resource instantiated by the DiemRoot account
* In order to register a VASP domain, a VASP needs to submit a request to Diem Association. After approval, Diem Association will use TC account to issue an on-chain transaction to register a VaspDomain. Diem Association will ensure uniqueness of domain names across all VASPs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be pretty quick conversation with @pdhamdhere .

@davidiw davidiw merged commit 114ebd4 into diem:main Jun 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants