سلام. ENS مخفف Ethereum Name Service هست و یه سرویس غیرمتمرکز و نامگذاری قابل توسعه بر بستر بلاکچینه. بیاید این موضوع رو ساده تر کنیم. فرض کنید در شبکه ی اتریوم میخوایم تراکنشی رو انجام بدیم و باید ادرس فرستنده رو وارد کنیم. اگه یه قابلیتی وجود داشت که به جای این آدرس طولانی، میتونستیم فقط یک اسم رو وارد کنیم چطور؟ مثلا به جای آدرس گیرنده مینوشتیم Mohsen.eth. این همون کاریه که سرویس ENS داره انجام میده. یعنی میاد این اسامی به اصطلاح Human-Readable رو MAP یا نگاشت میکنه به Machine-Readable و کار ما رو آسون تر میکنه. البته این فقط مربوط به آدرس اتریوم نیست و میتونه شامل آدرس کریپتوکارنسی های دیگه، هش محتوا و متادیتا شه. ENS مشابه DNS در اینترنته (DNS سرویسیه که به ما اجازه میده برای مشاهده یک وبسایت، به جای IP ADDRESS از یک اسم استفاده کنیم و DNS در پشت پرده اون اسم رو به IP ADDRESS تبدیل میکنه) اما به دلیل اینکه در بستر بلاکچین اتریوم قرارداره، معماریش متفاوته. ENS هم مثل DNS از مدل نقطه گذاری سلسله مراتبی برای نامگذاری استفاده میکنه و در اتریوم می تونیم از دامنه های سطح بالای(TLD or Top-Level Domain) .test و .eth برای اسامی مورد دلخواهمون استفاده کنیم. یکی از امکانات خوب ENS اینه که به خاطر ماهیت سلسله مراتبی که که داره میشه زیردامنه(Sub-Domain) براش تعریف کنیم و به دلخواه پیکربندیش کنیم. مثلا زیردامنه pay.mohsen.eth رو از دامنه ی Mohsen.eth ایجاد کنیم.
برای اینکه ENS اختصاصی خودتون رو داشته باشید میتونید به این سایت(https://app.ens.domains) وارد شید و نام دلخواه خودتون رو انتخاب کنید. بعضی از نام ها از قبل انتخاب و خریداری شدن. میتونید نام های در دسترس رو با پرداختی سالیانه حدود 5 دلار برای خودتون خریداری کنید.
معماری ENS
معماری ENS به این صورته که از دو بخش اصلی تشکیل شده: Registry و Resolver
بریم سراغ بخش Registry: این بخش تشکیل شده از یه قرارداد هوشمند(Smart Contract) که حاوی همه ی Domainها و Subdomainها هست و 3 بخش مهم اطلاعاتی از هر کدوم رو نگه میداره:
- صاحب Domain
- Resolver برای Domain
- حافظه کش برای ثبت رکوردهای دامنه
مالک Domain میتونه یک حساب خارجی (حساب کاربر) و یا یه قرارداد هوشمند باشه و سه تا کار میتونه انجام بده: 1. میتونه برای Domain، Resolver و TTL تنظیم کنه. 2. میتونه مالکیت دامنه رو به یک شخص دیگه ای منتقل کنه 3. میتونه مالکیت Subdomainها رو تغییر بده.
قسمت رجیستری ENS خیلی سر راست و سادس فقط باید عملیات Mapping از نام به Resolver مورد نظر انجام بشه… اینی که گفتم یعنی چی و Resolver چیه؟ در واقع این Resolver ها هستن که مسئولیت پروسه ی تبدیل نام به آدرس رو بر عهده دارن. در ادامه روال این کارو براتون توضیح میدم:
در ابتدا کاربر یه اسم مثل Mohsen.eth رو میفرسته برای بخش Registry و میگه آقای Registry به من بگو Resolver این اسم کیه؟ Registry هم آدرس Resovler رو میده به کاربر. این بار Mohsen.eth مستقیما برای Resolver ارسال میشه و در نتیجه Resolver هم آدرس رو به کاربر برمیگردونه.
نتیجه گیری: ENS سرویس خیلی خوبیه که کار رو برای کاربران خیلی راحت کرده و پتانسیل این رو داره که به سرویس DNS دنیای WEB3 تبدیل شه.
منبع: https://docs.ens.domains