وب سایتت رو متمرکز زدایی کن(IPFS+ENS)
هنگامی که وبسایت خود را در هاست قرار میدهید نیازی به یک VPS اختصاصی دارید مانند Digital Ocean, Linode, Google, or Amazon پس از راه اندازی سرور خود میتوانید یک دامنه رادر GoogleDomains یا NameCheap راه اندازی کنید. آخرین مرحله ویرایش سوابق DNSشما برای نشان دادن دامنه به سمت سرور است. اکنون می توانید با رفتن به نام دامنه خود به وب سایت خود دسترسی پیدا کنید.با این حال نیز بازهم مشکلی وجود دارد. VPSشما میزبانی سایت شما و سرویس نام دامنه را کنترل می کند و شما در پی حفظ و کنترل دامنه ی خود هستید اما اگر VPS شما پایین بیاید یا شرکتی که از آن استفاده می کنید ناگهان در لیست سیاه کشور شما قرار گیرد چه اتفاقی می افتد؟اگر ICANNدامنه شما را از شما بگیرد چه می شود؟ یا سرویس نام دامنه شما خاموش شود؟
در حالی که این موارد بسیار بعید به نظر می رسد مهم باشند و شما را به فکر بیندازند که اگر دیگر نتوانید وب سایت خود را میزبانی کنید یا دامنه شما از بین برود ، چه می کنید؟
IPFS (InterPlanetary File System) : سیستم پرونده بین سیاره ای
ENS (Ethereum Name Service): سرویس نام Ethereum
CDN (Content Delivery Network): شبکه تحویل محتوا
با استفاده از IPFS (سیستم فایل بین سیاره ای) و ENS (سرویس نام Ethereum) می توانید وب سایت خود را به صورت کاملا غیرمتمرکز میزبانی و سرویس دهید.
IPFS به این صورت توصیف شده است:
پروتکل هایپر مدیا نظیر به نظیر است كه برای سریعتر ، ایمن تر و آزادتر کردن وب طراحی شده است.
شما می توانید IPFS را مانند HTTP یا مانند CDN (شبکه تحویل محتوا) بدانید. این روشی برای جستجوی منابع است ، مگر اینکه منابع در چند مرکز داده بزرگ تحت کنترل گوگل ، آمازون و غیره میزبانی شوند.در این روش پرونده ها غیرمتمرکز هستند و در گره های مختلفی که توسط هر کسی در سراسر جهان اداره می شوند ، میزبانی می شوند. HTTP منابع را بر اساس URL جستجو می کند ، اما IPFS از هش(hash) برای جستجوی منابع در شبکه خود استفاده می کند.
در ادامه یک نمونه از هش IPFS را نشان میدهیم
QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv
و می توان از طریق درگاهی مانند Cloudfare به عنوان مثال
Cloudflare-ipfs.com/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvcX9Ba8nUH4uVv
به آن دسترسی پیدا کرد.
این هش به پرونده های شروع برای میزبانی IPFS Node خود اشاره می کند. میتوانید در تصویر زیر مشاهده کنید که فقط پیوندهای پرونده های دیگر را نشان می دهد.
اما یک هش IPFS همچنین می تواند به وب سایتی مانند tornado.cash (مخلوط کن رمزنگاری) اشاره کند که به تازگی در IPFS مستقر شده است.
می توانید از طریق درگاه ipfs.io به آن دسترسی پیدا کنید.
https://ipfs.io/ipfs/QmRvFZwyoJeMDCcdSiK15m7Vn2n1BFnz14WNwVxrhizzX5/
توجه داشته باشید که این درگاه در ایران فیلتر است
به طور خلاصه ، IPFS چند مزیت عمده را فراهم می کند:
برای استقرار در IPFS کافیست اولین گره(NODE) را شروع کنید. برای این کار ابتدا IPFS go را دانلود و سپس دستور زیر در ترمینال اجرا کنید.
ipfs daemon
سپس باید خروجی زیر را مشاهده کنید
Initializing daemon...
go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/darwin
Golang version: go1.12.7
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.1.7/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip4/192.168.1.7/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
اکنون آماده پین کردن سایت خود هستید
ipfs add index.html
added QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu index.html 6 B / 6 B [=========================================================] 100.00%
برای اطمینان از اینکه سایت شما در شبکه باقی مانده است ، می توانید آن را در گره محلی خود پین کنید
ipfs pin add QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuupinned
QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu recursively
اکنون می توانید از طریق دروازه خود به هش خروجی بروید و سایت خود را مشاهده کنید https://ipfs.io/ipfs/QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu
پین کردن در گره خودتان بسیار خوب است ، اما اگر گره شما خراب شود یا پرونده (های) میزبان شما حذف شود و پرونده ها هنوز از طریق شبکه پخش نشوند ، چه اتفاقی می افتد! یک قاعده خوب این است که سایت خود را به سه گره IPFS اضافه و پین کنید. شما می توانید این کار را با ایجاد خوشه IPFS خود یا با استفاده از یک سرویس پینینگ معروف که قبلاً گره ها را تنظیم کرده است ، انجام دهید. مانند Pinata یا Temporal.
برای این مثال ، ما از Pinata استفاده خواهیم کرد. ابتدا به pinata.cloud بروید ، ثبت نام کنید و به تب Upload بروید.
فایل تک یا پوشه خود را برای چندین پرونده بارگذاری کنید. همچنین می توانید هش را از زمانی که پرونده خود را به گره محلی خود اضافه و پین می کنید پین کنید تا اطمینان حاصل شود که در شبکه گسترش می یابد. اگر در حال ایجاد یک برنامه وب با فریمورکی مانند React یا Gatsby هستید ، می توانید پوشه build یا public خود را در Pinata بارگذاری کنید.
از IPFS-Deploy برای استقرار سایتهای خود در IPFS در یک خط استفاده کنید.
اکنون سایت ما در شبکه IPFS مقاوم در برابر سانسور غیر متمرکز میزبانی شده است اما نمیتوانیم با حفظ کردن آدرس درگاه به راحتی وارد درگاه ipfs.io/ipfs/QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu شویم و این کار بسیار سخت است ، ما به یک نام دامنه نیاز داریم.
ثبت نام دامنه ENS
روشی امن و غیرمتمرکز برای آدرس دهی به منابع درون و خارج از بلاکچین با استفاده از نام های ساده و قابل خواندن توسط انسان:
به جای ثبت نام دامنه در سایتی مانند Google Domains ،ENS یک سازمان غیرانتفاعی است. دامنه هایی را ارائه می دهد که غیرقابل تغییر هستند و در بلاک چین Ethereum ثبت شده اند. هدف اصلی دامنه های .eth این بود که آدرس رمز ارز را برای انسان قابل خواندن کند. با این حال ، ENS پشتیبانی از اتصال دامنه شما به یک هش IPFS را اضافه کرد بنابراین هنگام ورود دامنه .eth به مرورگر شما آن را به IP وب سایت خود در IPFS تبدیل خواهد کرد.
به عنوان مثال،دامنه .eth من kohorst است. اگر آن دامنه را در کیف پول رمزنگاری خود تایپ کنید (اگر دارای ENS Resolver باشد) به آدرس ETH من تبدیل می شود. از همه مهمتر ، اگر kohorst.eth/ را در مرورگر خود تایپ کنید (اگر دارای یک ENS Resolver مانند Brave باشد ، در غیر اینصورت می توانید kohorst.eth.link را تایپ کنید و Resolve خواهد شد) وب سایت شخصی من (میزبان در IPFS) Resolve می شود(به مسیر وبسایت تبدیل میشود)!
اولین قدم خرید دامنه ENS است. به app.ens.domains بروید و نام دامنه خود را جستجو کنید.
نکته:برای خرید دامنه ENS به Ether و مرورگر / افزونه سازگار با Web3 نیاز خواهید داشت. من شخصاً از Metamask استفاده می کنم و این آموزش را برای شروع کار توصیه می کنم.
می خواهید دامنه را برای چند سال خریداری کنید و مراحل خرید را دنبال کنید. پس از علامت گذاری و تأیید معامله خود ، باید منتظر بمانید تا معامله در بلاک چین Etheruem تأیید شود. پس از انجام معامله ، می توانید بر روی دامنه خود کلیک کنید تا آن را مدیریت کنید.
چیزی شبیه به تصویر زیر خواهد بود:
موارد زیادی وجود دارد که می توانید آدرس ETH خود را به همراه سایر ارزهای رمزپایه مانند BTC یا LTC ، ایمیل ، Github یا حتی نام کاربری Twitterبه دامنه ENSخود اضافه کنید. از همه مهمتر شما می توانید هش IPFS خود را اضافه کنید.
روی دکمه افزودن کلیک کنید و در بخش Content، هش IPFS وب سایت خود را اضافه کنید
?
برای محتوای نوشته شده در بلاکچین ، باید هزینه بنزین را پرداخت کنید و پس از تأیید معامله ، می توانید به سایت yourdomain.eth.linkبروید و وب سایت IPFS خود را مشاهده کنید!
IPFS و سرویس های منظم نام دامنه
هیچ Etherندارید یا نمی خواهید دامنه شما به .eth ختم شود؟ می توانید DNS سنتی خود را به هش IPFSخود نشان دهید تا بتوانید دامنه .com خود را حفظ کنید. در آدرس زیر شما میتوانید اطلاعات بیشتری راجع به آن بخوانید.
https://docs.ipfs.io/guides/concepts/dnslink
در Google Domains در DNSشما باید یک رکورد A و AAAAثبت کنید که به آدرس IP یک درگاه IPFSاشاره دارد. با استفاده از nslookup می توانید سوابق IPv4 و IPv6را برای یک درگاه IPFS جستجو کنید (لیست خوبی از دروازه های عملکردی در اینجا موجود است).
من از دروازه ipfs.ioاستفاده می کنم سوابق آن به شرح زیر است:
A 209.94.90.1
AAAA 2602:fea2:2::1
این موارد را در DNSخود ثبت کنید و سپس یک رکورد TXT با مقدار پیوند dns مانند متن زير ايجاد كنيد
"dnslink=/ipfs/<HASH>"
اکنون دامنه شما به وب سایت IPFSشما اشاره خواهد کرد.