بررسی مفهوم کلاینت ها و نود ها در اتریوم

اصطلاحات "کلاینت اتریوم" (Ethereum client) و "نود اتریوم" (Ethereum node) اغلب به جای یکدیگر استفاده می شوند، اما بین آن ها تفاوت وجود دارد.

در دنیای محاسبات، "کلاینت" به هر نوع نرم افزاری اطلاق می شود که بر روی رایانه شما دانلود می شود و به شما کمک می کند با نوع دیگری از نرم افزار یا خدمات ارائه شده توسط سرور تعامل داشته باشید. به عنوان مثال، Gmail یک سرویس گیرنده نرم افزاری است که به سرور ایمیل متصل می شود و به کاربران امکان ارسال و دریافت ایمیل را می دهد.

کلاینت اتریوم نرم افزاری است که به نود های اتریوم اجازه می دهد تا بلوک های موجود در بلاک چین اتریوم و قراردادهای هوشمند مبتنی بر اتریوم را بخوانند. "نود" بخش در حال اجرا نرم افزار کلاینت است. برای اجرای یک نود، ابتدا باید یک برنامه کلاینت اتریوم را دانلود کنید.

نودهای اتریوم چه هستند؟

"نود" کامپیوتری است که عملکرد خاصی را در شبکه اتریوم انجام می دهد و نرم افزار کلاینت را برای انجام آن اجرا می کند. بسته به نیازهای خاص شما، چه یک برنامه غیرمتمرکز (dapp) یا یک کیف پول، سه نوع مختلف نود وجود دارد که می تواند توسط هر کلاینتی اجرا شود: گره های کامل، گره های نور و گره های آرشیو. هر گره داده‌ها را متفاوت تفسیر می‌کند و روش‌های مختلفی را برای همگام‌سازی ارائه می‌کند - این به این اشاره دارد که گره شما چقدر سریع می‌تواند اطلاعات به‌روز شده را برای تفسیر مشتری شما بازیابی کند.

  • فول نودها پر از داده‌هایی هستند که ذخیره می‌کنند و می‌توانند تمام داده‌های بلاک چین را از شبکه اتریوم توزیع کنند. یک فول نود علاوه بر این در اعتبارسنجی بلوک نیز شرکت می کند. (یعنی تأیید تمام بلوک ها و وضعیت های موجود در شبکه)

مزیت اجرای یک فول نود این است که می تواند به طور مستقیم با هر قرارداد هوشمند در بلاک چین عمومی تعامل داشته باشد. فول نودها همچنین می توانند مستقیماً قراردادهای هوشمند را در بلاک چین عمومی مستقر کنند.

با این حال، استفاده کامل و ذخیره سازی داده ها و همچنین نظارت بر عملکرد قرارداد هوشمند، هزینه دارد. فول نودها می توانند بر سخت افزار و منابع پهنای باند رایانه شما تأثیر بگذارند. بازیابی کامل داده‌ها نیز می‌تواند بسیار زمان‌بر باشد، گاهی اوقات چندین روز برای همگام‌سازی داده‌های شما زمانی که نود برای اولین بار مستقر می‌شود، طول می‌کشد. سپس، نود باید حفظ، ارتقا و آنلاین نگه داشته شود تا نیازی به تکرار فرآیند همگام سازی کامل نباشد.

  • لایت نودها (Light nodes) شبیه فول نودها (full nodes) هستند اما اطلاعات کمتری را مدیریت می کنند. لایت نود اطلاعات زنجیره هدر header chain (اطلاعات اساسی ذخیره شده در یک بلوک مانند مهر زمانی timestamp و هش بلوک قبلی) را ذخیره می کند، اما تنها در صورت درخواست، اطلاعات اضافی را دریافت می کند. آنها می توانند اعتبار داده ها را تأیید کنند اما به طور کامل در اعتبارسنجی بلوک شرکت نمی کنند. لایت نودها تقریباً همیشه در کلاینت های راه دور (remote clients) پیاده سازی می شوند. از آنجایی که این نود ها فرآیندهای ذخیره سازی و نوشتن اطلاعات فشرده تری را انجام نمی دهند، برای دستگاه های کم حافظه مانند گوشی های هوشمند مفید هستند.
  • نودهای بایگانی (Archive nodes) نودهایی هستند که تمام اطلاعاتی را که یک فول نود انجام می‌دهد را ذخیره می‌کنند و یک آرشیو از وضعیت‌های تاریخی بلاک چین ایجاد می‌کنند. نودهای بایگانی حتی پس از پایان همگام سازی مشتری، داده‌های تاریخی را حفظ می‌کنند. از سوی دیگر، گره‌های کامل یا فول نود و سبک (لایت) ، داده‌های بلاک چین تاریخی را «هرس» می‌کنند، به این معنی که می‌توانند دوباره بسازند، اما این اطلاعات را نگه داری نمی‌کنند.

اگرچه آرشیو نودها ممکن است برای کاربر معمولی مفید نباشند، اما در block explorer ها، توسعه دهندگان کیف پول و تجزیه و تحلیل زنجیره‌ای مؤثر و کاربرد دارند.

کلاینت اتریوم چیست؟

کلاینت ها می توانند برای توسعه دهندگان مفید باشند زیرا به آنها اجازه می دهند با استفاده از زبان های برنامه نویسی مختلف با شبکه و سایر گره های شبکه تعامل داشته باشند. بنیاد اتریوم چندین کلاینت مختلف را برای زبان های برنامه نویسی مختلف از جمله Go، Rust، Java و C# نگهداری می کند. توسعه دهندگان همچنین کلاینت های اتریوم را برای پشتیبانی از بیشتر زبان ها ایجاد کرده اند.

رایج‌ترین کاربردهای کلاینت اتریوم شامل رابط‌های تراکنش و استخراج است، اما موارد استفاده از آن می‌تواند بسیار فراتر از تعاملات اولیه بلاک چین باشد.

بنیاد اتریوم کلاینت های زیر را پشتیبانی می کند:

اینها به توسعه دهندگان گزینه هایی برای اجرای پروژه های مبتنی بر اتریوم خود می دهد. اگر زبان مورد نظر شما به طور رسمی توسط بنیاد اتریوم پشتیبانی نمی‌شود، تعداد زیادی از کلاینت اتریوم برای ارائه، پشتیبانی از زبان دیگر نیز وجود دارند.

دلیل امکان پذیر بودن همه این کلاینت های مختلف این است که اتریوم با یک مشخصات رسمی (به عنوان مثال "کاغذ زرد" "Yellow Paper") تعریف شده است. مشخصات رسمی که اتریوم را تشکیل می دهد، بلاک چین را از بیت کوین متمایز می کند. در جایی که اتریوم رفتارهای استانداردی را برای همه کلاینت های اتریوم تعریف می کند، بیت کوین Core چنین تعاریفی ندارد. با ارائه اسناد منسجم و زبان واضح، مشخصات اتریوم به بلاک چین اجازه می دهد تا پیاده سازی نرم افزاری مستقل، اما قابل همکاری، یک کلاینت اتریوم را فراهم کند.

انواع کلاینت اتریوم

  • فول کلاینت

فول کلاینت کل بلاک چین اتریوم را ذخیره می کنند. فرآیندی که می‌تواند چندین روز طول بکشد تا همگام‌سازی شود و به فضای دیسک زیادی نیاز دارد - طبق آخرین آمار، دقیقاً بیش از 1 ترابایت. کلاینت‌های کامل به نودهای متصل اجازه می‌دهند تا تمام وظایف موجود در شبکه، از جمله استخراج، اعتبارسنجی تراکنش‌ها و هدر بلوک و اجرای قراردادهای هوشمند را انجام دهند.

  • لایت کلاینت

کلاینت های اتریوم ممکن است به طور کامل یا جزئی پیاده سازی شوند. نمای کلی بالا توضیحی درباره نحوه عملکرد یک کلاینت «کامل» می دهد، با این حال مهم است بدانید که همیشه نیازی به اجرای یک کلاینت کامل ندارید. به طور معمول، زمانی که ذخیره سازی و سرعت داده ها مورد بحث است، توسعه دهندگان تصمیم می گیرند از آنچه "کلینت های سبک" یا "لایت کلاینت" نامیده می شود استفاده کنند.

دامنه عملکرد یک کلاینت سبک در راستای اهداف اتریوم تنظیم شده است. به عنوان مثال، کلاینت های سبک اغلب برای کلیدهای خصوصی و مدیریت آدرس اتریوم در کیف پول استفاده می شوند. علاوه بر این، آنها تمایل دارند تا تعاملات قراردادهای هوشمند و پخش تراکنش ها را مدیریت کنند. کاربردهای دیگر برای کلاینت های راه دور شامل نمونه های web3 در اشیاء جاوا اسکریپت، مرورگرهای dapp و بازیابی داده های نرخ مبادله است.

  • کلاینت از راه دور یا ریموت کلاینت
  • نوع سومی از کلاینت به نام ریموت کلاینت وجود دارد که شبیه لایت کلاینت است. تفاوت اصلی این است که یک ریموت کلاینت کپی خودش از بلاک چین را ذخیره نمی کند و تراکنش ها یا هدرهای بلوک را تایید نمی کند. در عوض، ریموت کلاینت به طور کامل به یک کلاینت کامل یا سبک تکیه می کنند تا دسترسی آنها به شبکه بلاک چین اتریوم را فراهم کند. این نوع کلاینت ها عمدتاً به عنوان کیف پول برای ارسال و دریافت تراکنش ها استفاده می شوند.

تفاوت نود ها و کلاینت ها

نود ها و کلاینت ها در کنار یکدیگر کار می کنند و هر دو اصطلاح اغلب به جای هم استفاده می شوند. با این حال، هر دو به منظور دسترسی به شبکه اتریوم به طور جداگانه عمل می کنند.

نود ها و کلاینت ها را در نظر بگیرید که مانند کامپیوتری که به اینترنت دسترسی دارد کار می کنند: نود یک سیستم عامل است، مانند ویندوز یا iOS، و کلاینت خود کامپیوتر است. کلاینت رایانه به کاربر امکان دسترسی به سیستم عامل نود را می دهد که به نوبه خود به شما امکان دسترسی به اینترنت را می دهد. رایانه های مختلف می توانند به شما امکان دسترسی به یک سیستم عامل را بدهند و سیستم عامل های مختلف به شما امکان دسترسی به یک اینترنت را می دهند.

متامسک MetaMask

متامسک از سایر کیف پول های مبتنی بر مرورگر منحصر به فرد و خاص تر است زیرا یک نمونه وب 3 را در خواننده جاوا اسکریپت مرورگر اعمال می کند و دسترسی به شبکه اصلی اتریوم و سایر شبکه های آزمایشی را نیز فراهم می کند، از جمله Ropsten testnet، Kovan testnet و نمونه محلی یک نود RPC. حتی با وجود عملکرد منحصر به فرد خود، MetaMask همچنان یک ریموت کلاینت را درست مانند سایر کیف پول های مرورگر اجرا می کند. ریموت کلاینت امکان ذخیره سازی کیف پول، پخش تراکنش ها و تزریق جاوا اسکریپت web3 را فراهم می کند.