شبکه پرتال
آخرین ویرایش: @sipbikardi(opens in a new tab), ۱۲ مهر ۱۴۰۳
اتریوم شبکه ای متشکل از رایانه هایی است که نرم افزار کاربر اتریوم را اجرا می کنند. هر یک از این کامپیوترها "گره" نامیده می شوند. نرم افزار کاربر به یک گره اجازه می دهد تا داده ها را در شبکه اتریوم ارسال و دریافت کند و داده ها را بر اساس قوانین پروتکل اتریوم تأیید می کند. گره ها داده های تاریخی زیادی را در فضای ذخیره سازی دیسک خود نگه می دارند و زمانی که بسته های جدیدی از اطلاعات را که به نام بلوک ها شناخته می شوند از سایر گره های شبکه دریافت می کنند، به آن اضافه می کنند. این برای بررسی اینکه یک گره همیشه اطلاعاتی مطابق با بقیه شبکه دارد ضروری است. این بدان معناست که اجرای یک گره می تواند به فضای دیسک زیادی نیاز داشته باشد. برخی از عملیات گره ها می توانند به مقدار زیادی RAM نیز نیاز داشته باشند.
برای دور زدن این مشکل ذخیره سازی دیسک، گره های "سبک" توسعه یافته اند که به جای ذخیره کردن همه آنها، اطلاعات را از گره های کامل درخواست می کنند. با این حال، این بدان معنی است که گره سبک به طور مستقل اطلاعات را تأیید نمی کند و در عوض به گره دیگری اعتماد دارد. همچنین به این معنی است که گره های کامل باید کار اضافی را برای خدمت به آن گره های سبک انجام دهند.
شبکه پورتال یک طراحی شبکه جدید برای اتریوم است که هدف آن حل مشکل در دسترس بودن داده برای گره های "سبک" بدون نیاز به اعتماد یا اعمال فشار اضافی بر گره های کامل، با اشتراک گذاری داده های لازم در قطعات کوچک در سراسر شبکه است.
جزئیات بیشتر گره ها و کاربرها
چرا به شبکه پورتال نیاز داریم
گره های اتریوم کپی کامل یا جزئی خود از بلاک چین اتریوم را ذخیره می کنند. این کپی محلی، برای اعتبارسنجی تراکنش ها و اطمینان از اینکه گره از زنجیره صحیح پیروی می کند استفاده می شود. این دادههای ذخیرهشده محلی، به گرهها اجازه میدهند تا بدون نیاز به اعتماد به هیچ نهاد دیگری، بهطور مستقل تأیید کنند که دادههای ورودی معتبر و صحیح هستند.
این کپی محلی از بلاک چین و داده های مربوط به وضعیت و دریافت، فضای زیادی را در هارد دیسک گره اشغال می کند. به عنوان مثال، یک هارد دیسک 2 ترابایتی برای اجرای یک گره با استفاده از Geth(opens in a new tab) جفت شده با یک کلاینت اجماع توصیه می شود. با استفاده از Snap Sync، که فقط داده های زنجیره ای از مجموعه نسبتاً جدید بلوک ها را ذخیره می کند، Geth معمولاً حدود 650 گیگابایت فضای دیسک را اشغال می کند اما در حدود 14 گیگابایت در هفته رشد می کند (شما می توانید گره را به صورت دوره ای به 650 گیگابایت کاهش دهید).
این بدان معناست که اجرای گرهها میتواند گران باشد، زیرا مقدار زیادی از فضای دیسک باید به اتریوم اختصاص داده شود. چندین راه حل برای این مشکل در نقشه راه اتریوم وجود دارد، از جمله انقضای تاریخچه، انقضای وضعیت و بی حالت بودن. با این حال، احتمالاً چندین سال تا اجرایی شدن فاصله دارد. همچنین گره های سبک وجود دارند که کپی خود را از داده های زنجیره ای ذخیره نمی کنند، آنها داده های مورد نیاز خود را از گره های کامل درخواست می کنند. با این حال، این بدان معناست که گرههای سبک باید به گرههای کامل اعتماد کنند تا دادههای صادقانه ارائه کنند و همچنین بر گرههای کاملی که باید دادههای مورد نیاز گرههای سبک را ارائه دهند، استرس وارد میکند.
هدف شبکه پورتال ارائه روشی جایگزین برای گره های سبک برای دریافت داده های خود است که نیازی به اعتماد یا اضافه کردن قابل توجه به کاری که باید توسط گره های کامل انجام شود ندارد. روشی که این کار انجام خواهد شد، معرفی روشی جدید برای گرههای اتریوم برای به اشتراک گذاری داده ها در سراسر شبکه است.
شبکه پورتال چگونه کار می کند؟
گره های اتریوم پروتکل های سختگیرانه ای دارند که نحوه ارتباط آنها با یکدیگر را مشخص می کند. کاربرهای اجرا با استفاده از مجموعهای از پروتکلهای فرعی به نام DevP2P ارتباط برقرار میکنند، در حالی که کاربرهای اجماع از پشته متفاوتی از پروتکلهای فرعی به نام libP2P استفاده میکنند. اینها انواع داده هایی را که می توانند بین گره ها ارسال شوند، تعریف می کنند.
گرهها همچنین میتوانند دادههای خاصی را از طریق JSON-RPC API ارائه دهند، به این ترتیب برنامهها و کیف پولها اطلاعات را با گرههای اتریوم مبادله میکنند. با این حال، هیچ یک از اینها پروتکل های ایده آلی برای ارائه داده به کاربرهای سبک نیستند.
کاربرهای سبک در حال حاضر نمی توانند قطعات خاصی از داده های زنجیره ای را از طریق DevP2P یا libP2p درخواست کنند زیرا این پروتکل ها فقط برای فعال کردن همگام سازی زنجیره ای و شایعه پراکنی بلوک ها و تراکنش ها طراحی شده اند. کاربرهای سبک نمیخواهند این اطلاعات را دانلود کنند زیرا این کار باعث میشود که آنها "سبک" بودن را متوقف کنند.
JSON-RPC API یک انتخاب ایدهآل برای درخواست دادههای کاربر سبک نیست، زیرا بر اتصال به یک گره کامل خاص یا ارائهدهنده RPC متمرکز است که میتواند به دادهها سرویس دهد. این بدان معناست که کاربر سبک باید به صداقت آن گره/ارائهدهنده خاص اعتماد کند، و همچنین گره کامل ممکن است مجبور باشد بسیاری از درخواستهای بسیاری از مشتریان سبک را رسیدگی کند و به پهنای باند مورد نیاز آنها بیفزاید.
هدف شبکه پورتال این است که در کل طراحی، به طور خاص برای سبکی، خارج از محدودیت های طراحی مشتریان موجود اتریوم، تجدید نظر کند.
ایده اصلی شبکه پورتال این است که با فعال کردن اطلاعات مورد نیاز مشتریان سبک، مانند دادههای تاریخی و هویت سر فعلی زنجیره، بهترین بیتها از پشته شبکه فعلی را دریافت کند که از طریق یک شبکه غیرمتمرکز همتا به همتا به سبک DevP2P با استفاده از DHT(opens in a new tab) (شبیه Bittorrent) ارائه خواهند شد.
ایده این است که بخشهای کوچکی از کل دادههای تاریخی اتریوم و برخی مسئولیتهای گره خاص به هر گره اضافه شود. سپس، درخواستها با جستجوی گرههایی که دادههای خاص درخواست شده را ذخیره میکنند، و با بازیابی آنها از آنها ارائه میشوند.
این مدل معمولی گرههای نوری را وارونه میکند که یک گره را پیدا میکنند و از آنها درخواست میکنند تا حجم زیادی از داده را فیلتر و ارائه کنند. در عوض، آنها به سرعت شبکه بزرگی از گرهها را فیلتر میکنند که هر کدام حجم کمی از دادهها را مدیریت میکنند.
هدف این است که به شبکه غیرمتمرکز مشتریان پورتال سبک وزن اجازه دهیم تا:
- سر زنجیره را دنبال کند
- داده های زنجیره ای اخیر و گذشته را همگام کند
- اطلاعات وضعیت را بازیابی کند
- تراکنش ها را پخش کند
- تراکنش ها را با استفاده از EVM اجرا کند
مزایای این طراحی شبکه عبارتند از:
- کاهش وابستگی به ارائه دهندگان متمرکز
- کاهش استفاده از پهنای باند اینترنت
- همگام سازی حداقل یا صفر
- قابل دسترسی برای دستگاه های دارای محدودیت منابع (<1 گیگابایت رم، <100 مگابایت فضای دیسک، 1 CPU)
نمودار زیر عملکردهای کاربرهای موجود را نشان میدهد که میتواند توسط شبکه پورتال ارائه شود و کاربران را قادر میسازد تا به این عملکردها در دستگاههای با منابع بسیار کم دسترسی داشته باشند.
تنوع مشتری به طور پیش فرض
توسعه دهندگان شبکه پورتال همچنین طراحی را برای ساختن سه مشتری مجزای شبکه پورتال از روز اول انتخاب کردند.
کاربران شبکه پورتال عبارتند از:
- Trin(opens in a new tab): نوشته شده در Rust
- Fluffy(opens in a new tab): نوشته شده به زبان Nim
- فوق سبک(opens in a new tab): نوشته شده در تایپ اسکریپت
- Shisui(opens in a new tab): نوشته شده در Go
داشتن چندین پیادهسازی کاربر مستقل، انعطافپذیری و عدم تمرکز شبکه اتریوم را افزایش میدهد.
اگر یک کاربر مشکلات یا آسیب پذیری هایی را تجربه کند، سایر کاربرها می توانند به آرامی به کار خود ادامه دهند و از یک نقطه شکست جلوگیری کنند. علاوه بر این، پیادهسازیهای متنوع مشتری، نوآوری و رقابت را تقویت میکند، باعث پیشرفتها و کاهش خطرات تککِشتی در اکوسیستم میشود.