Présentation des résolveurs dans l'écosystème NKN

Note de l’éditeur : cet article est plus orienté vers les développeurs, lisez ici pour des informations générales sur le service universel de communication de NKN.

Les personnes posent souvent des questions sur ce que NKN peut faire en dehors de la blockchain NKN, par exemple :

Pouvons-nous utiliser NKN pour permettre la communication en temps réel entre deux adresses Ethereum ?

Pouvons-nous utiliser NKN pour faire la communication entre différentes adresses blockchain, comme Ethereum à Bitcoin ?

Pouvons-nous utiliser NKN pour communiquer entre des adresses web2 (par exemple, domaine, adresse e-mail) et des adresses web3 (par exemple, adresse Ethereum, ENS) ?

Maintenant la réponse est OUI.

L’adresse NKN ne suffit pas

NKN est la couche réseau pour la communication décentralisée, où le rôle des adresses NKN est similaire aux adresses IP dans TCP/IP. Lors de l’envoi d’un message NKN, il est nécessaire de connaître l’adresse NKN du destinataire. Bien que les adresses NKN présentent des avantages par rapport aux adresses IP, comme l’indépendance de la géolocalisation et le cryptage de bout en bout, elles ont une chose en commun : ce sont deux adresses conviviales pour les machines dont la plupart des gens ne se souviennent pas, ne les reconnaissent pas, ou même ne les connaissent pas. Dans de nombreux scénarios, les utilisateurs ne veulent pas utiliser les adresses NKN directement pour recevoir des messages. Quelques exemples courants :

Un utilisateur a déjà une adresse Ethereum bien connue, et veut l’utiliser comme son identité.

Un utilisateur a enregistré un ENS et souhaite l’utiliser en public pour que son adresse reste lisible.

Pour les rendre possibles, nous avons besoin d’un protocole qui peut utiliser des adresses non NKN pour recevoir des messages NKN.

Résolveurs

Un résolveur est essentiellement un plug-in dans le SDK NKN qui peut résoudre une adresse non NKN en une adresse NKN. L’adresse qu’il résout peut être n’importe quoi d’une adresse Ethereum à un sous-domaine ou une adresse e-mail, tant qu’il y a une source de données qui contient les informations sur la carte. La source de données peut être décentralisée comme un contrat intelligent, ou centralisée comme une base de données, à condition que les utilisateurs suivent le même protocole. Les utilisateurs qui contrôlent les adresses à résoudre doivent stocker leurs adresses NKN dans la source de données en tant que processus de configuration unique.

Quelques résolveurs que nous avons mis en œuvre :

eth-resolver-go mappe une adresse compatible Ethereum ou ENS à une adresse NKN par le biais d’un contrat intelligent

dns-resolver-go mappe un (sous)domaine comme foo.com ou une adresse e-mail comme [email protected] à une adresse NKN via un enregistrement TXT DNS

Les développeurs peuvent choisir les résolveurs à utiliser lors de l’utilisation de NKN SDK. Ils peuvent également écrire leurs propres résolveurs tant qu’ils suivent notre protocole https://docs.nkn.org/docs/nkn-sdk-resolver.

Un exemple de développeur

Supposons qu’un développeur ait créé une application qui permet aux utilisateurs de discuter entre eux en utilisant leur adresse NKN. Maintenant, il veut prendre en charge les adresses Ethereum/ENS et les adresses e-mail aussi afin que les utilisateurs puissent utiliser leurs adresses existantes comme 0x... et [email protected] pour discuter. Il doit apporter les changements suivants :

Demandez aux utilisateurs qui souhaitent utiliser une adresse Ethereum/ENS de configurer la carte d’adresse via le contrat intelligent. Cela pourrait être fait en quelques clics pour les utilisateurs de Metamask à https://ethnkn.nkn.org/

Demandez aux utilisateurs qui souhaitent utiliser un sous-domaine ou une adresse de messagerie de configurer le mappage d’adresses en ajoutant un enregistrement TXT DNS suivant le format dans https://github.com/nknorg/dns-resolver-go

Lors de la création d’un multiclient NKN, passez ethResolver et dnsResolver en tant que résolveurs dans la configuration, par exemple https://github.com/nknorg/eth-resolver-go

C’est tout ce qu’il a besoin de faire pour que cela fonctionne. Désormais, les utilisateurs peuvent envoyer et recevoir des messages à l’aide de leurs adresses Ethereum/ENS existantes telles que 0x... et des adresses de sous-domaine/e-mail telles que [email protected].