پروتکل گراف چیست؟ آشنایی با شبکه Graph و توکن GRT
ایندکس گرفتن از دادههای بلاکچین به معنای واقعی کلمه دشوار است؛ دشوارتر از چیزی که شاید تصورش میکنید. پروتکل Graph آمده است تا این دشواریها را از میان بردارد. گراف یک پروتکل فهرستبرداری غیرمتمرکز است که برای پرسش و پاسخ از دادههای بلاکچین شبکههایی مثل اتریوم و IPFS طراحی شده است. به کمک این شبکه میتوان با ساخت API، دادهها را به سادگی در دسترس دیگران قرار داد. علاوه بر این، شبکه گراف قصد دارد ساخت برنامههای غیرمتمرکز (dApps) در اتریوم و شبکههای ذخیره سازی را آسان کند که این کار به طور خاص، با استفاده از زبان GraphQL حاصل میشود. شاید این توضیحات در ابتدا کمی پیچیده به نظر برسد. به همین خاطر است که در این مقاله میهن بلاکچین، میخواهیم با جزئیات بیشتری توضیح بدهیم که پروتکل گراف چیست و چطور میتواند به اهداف خود برسد. همچنین نگاهی به مکانیزم گراف، نقشه راه، تیم توسعهدهنده آن و همچنین توکن GRT خواهیم انداخت تا بهتر با این شبکه آشنا شویم.
مفاهیم مورد نیاز برای مطالعه مقاله: 🟢کوئری (Query): کوئری یا همان پرسوجو در پروتکل گراف، درخواست داده از سمت Subgraph است که شرکتکنندگان شبکه (Indexer) به آن پاسخ میدهند. 🟢زیرگراف (Subgraph): یک API سفارشی است که روی دادههای بلاکچین ایجاد میشود و با استفاده از GraphQL میتوان عملیات کوئری روی آن انجام داد. توسعهدهندگان میتوانند سابگرافها را بسازند و روی شبکه غیرمتمرکز گراف مستقر و منتشر کنند. 🟢گراف کیو ال (GraphQL): زبان کوئری برای APIهاست که گراف از این زبان برای کوئری زیرگرافها استفاده میکند. 🟢سرویسهای میزبانیشده (Hosted Service): یک سرویس موقت برای ایجاد و پرسوجو از Subgraphهاست. 🟢ایندکسکنندگان (Indexer): ایندکسکنندگان شرکتکنندگان شبکه هستند که نودها را برای ایندکس گرفتن از دادههای بلاکچینها و خدمترسانی به کوئریهای GraphQL اجرا میکنند. |
پروتکل گراف چیست؟
کوئری دادههای بلاکچین به صورت مستقیم، کار آسانی نیست؛ اما پروتکل گراف این کار را امکانپذیر کرده است. پروژههایی مثل NFT باشگاه قایقرانی میمونهای کسل (Bored Ape Yacht Club یا به اختصار BAYC) و یونی سواپ که قراردادهای هوشمند پیچیدهای دارند، دادههای خود را روی بلاکچین اتریوم ذخیره میکنند. همین مسئله باعث میشود که خواندن هر چیزی (به جز دادههای اصلی) به صورت مستقیم از بلاکچین واقعا دشوار شود.
مثلا در مورد BAYC ما میتوانیم اطلاعات پایهای مثل صاحب یک Ape خاص یا URL آن را به کمک ID به صورت مستقیم از قرارداد هوشمند به دست بیاوریم. اما به موارد پیچیدهتر مثل روابط، جستجو و فیلترهای مهم نمیتوان دسترسی داشت. مثلا اگر قرار باشد دنبال Apeهایی بگردیم که صاحبشان یک آدرس مشخص است و بخواهیم نتیجه را با فیلتر کردن یکی از ویژگیهای میمونهای پروژه محدودتر کنیم، نمیتوانیم به صورت مستقیم از طریق قرارداد هوشمند به این اطلاعات دسترسی پیدا کنیم. بهترین راه حل این است که هر نقل و انتقالی را که تاکنون انجام شده پردازش کنیم، متادیتاها را به کمک IDهای توکن و هش IPFS بخوانیم و سپس آنها را با هم تجمیع کنیم. همین کارهای حتی به ظاهر ساده هم ممکن است برای یک برنامه غیرمتمرکز چندین روز طول بکشد که با ایدهآل فاصله فراوانی دارد.
پروتکل Graph راهکاری برای این مسئله ارائه داده است. این پروتکل غیرمتمرکز هم از دادهها ایندکس میگیرد و هم پرسش و پاسخ از دادههای بلاکچین را به صورت کارآمد امکانپذیر میکند. در ادامه با ساختار این شبکه و پروتکل گراف بیشتر آشنا میشویم.
هدف پروتکل گراف چیست؟
هدف شبکه گراف و توکن GRT ساخت نسل بعدی وب ۳ است. پیش از پیدایش Graph، تیمها باید سرورهای ایندکسگذاری شخصی را توسعه میدادند که به مهندسی و منابع سختافزاری بسیاری نیاز دارد. مشکل اینجا بود که این سرورهای اختصاصی ویژگیهای امنیتی مورد نیاز برای غیرمتمرکز بودن را از بین میبردند. پس از سه سال توسعه، پروتکل Graph از هفدهم دسامبر سال ۲۰۲۰ (۲۷ آذر ۱۳۹۹) روی شبکه اصلی اتریوم راه اندازی شد تا رسالت خود را به عنوان یک پروتکل ایندکسینگ انجام دهد.
شبکه Graph چطور کار میکند؟
گراف با استفاده از توصیفات زیرگرافها (که به Subgraph Manifest مشهورند)، میفهمد که باید از کدام دادههای اتریوم ایندکس بگیرد و چطور باید این کار را انجام بدهد. این توصیفات به تعریف این موارد میپردازند:
- قراردادهای هوشمند جالب برای Subgraphها
- رویدادهایی که این قراردادها باید به آن توجه کنند
- تطابق دادههای این رویدادها با دادههایی که پروتکل گراف در دیتابیس خود ذخیره میکند (Mapping یا نگاشت)
زمانی که یک Subgraph Manifest مینویسید، از Graph CLI استفاده میکنید تا تعاریف مورد نظرتان را در IPFS ذخیره کنید. با این کار به کسانی که ایندکس میگیرند میگویید که عمل ایندکس گرفتن از دادهها را برای آن زیرگراف شروع کنند. تصویر زیر نمایی از جزئیات جریان داده را در زمان ایجاد مانیفست زیرگراف و تعامل با تراکنشهای اتریوم نشان میدهد.
این تصویر را میتوان به این صورت تفسیر کرد:
- برنامههای غیرمتمرکز دادههایی را از طریق انجام تراکنش روی قراردادهای هوشمند، به اتریوم اضافه میکنند.
- قرارداد هوشمند یک یا دو رویداد را در حین پردازش تراکنش منتشر میکند.
- نود گراف به صورت مستمر بلاکچین اتریوم را برای دادهها و بلاکهای جدیدی که ممکن است سابگراف شما حاوی آن باشد، اسکن میکند.
- به این ترتیب Graph Nodeها رویدادهای اتریوم را برای زیرگراف شما در این بلاکها پیدا میکنند و عملیات مپینگ را انجام میدهند. مپینگ در واقع ماژولی است که دادههایی را ایجاد یا بهروزرسانی میکند که نودهای گراف در مواجهه با رویدادهای اتریوم اقدام به ذخیره آنها میکنند.
- Dappها نودهای گراف را برای دادههای ایندکسشده از بلاکچین جستجو میکنند. این کار با استفاده از GraphQL Endpoint انجام میشود. گراف نود هم کوئریها را به کوئریهایی برای ذخیره دادههای خود تبدیل میکند. به این ترتیب میتواند این دادهها را بردارد و از ایندکسهای ذخیرهشده استفاده کند. برنامههای غیرمتمرکز این دادهها را از طریق یک رابط کاربری قدرتمند به کاربران نهایی نمایش میدهد. آنها میتوانند از این دادهها برای ایجاد تراکنشهای جدید روی اتریوم استفاده کنند. در پروتکل Graph این چرخه به همین ترتیب تکرار میشود.
در این شبکه علاوه بر Indexerها سه نقش دیگر هم داریم:
- نمایندگان (Delegator): این نمایندگان، توکنهای بومی گراف (GRT) را به ایندکسرها واگذار میکنند تا شبکه را ایمن کنند.
- متصدیان (Curators): بهترین سابگراف را برای ایندکسکنندگان پیدا میکنند.
- توسعهدهندگان (Developers): زیرگرافها میسازند و از آن کوئری میگیرند.
آشنایی با محصولات و سرویسهای شبکه گراف
گراف چندین محصول و سرویس دارد که میتوان آنها را به این شکل معرفی کرد:
- مرورگر گراف (Graph Explorer): این مرورگر برای جستجو در زیرگرافها و تعامل با پروتکل مورد استفاده قرار میگیرد.
- استودیوی زیرگراف (Subgraph Studio): در این محیط با اتصال کیف پولتان، میتوانید اقدام به ساخت زیرگراف کنید و به کمک Graph CLI آن را پیادهسازی کنید.
- Hosted Service: این سرویس رایگان برای ایندکسینگ نودهای گراف استفاده میشود. توسعهدهندگان میتوانند ایندکسگیری از Subgraph چندین شبکه را روی این سرویس پیادهسازی کنند. به این ترتیب کوئری گرفتن از طریق GraphQL امکانپذیر میشود.
معرفی ارز دیجیتال GRT
ارز بومی شبکه گراف با نام توکن GRT شناخته میشود که جزو توکنهای ERC-20 است. از این توکن میتوان برای مبادله ارزش و توزیع پاداش میان شرکتکنندگان جامعه استفاده کرد. این توکن روی شبکههای سولانا، آوالانچ، آربیتروم و نیر هم وجود دارد. توکنهای GRT توسط نمایندگان به ایندکسکنندگان واگذار میشود. دلیگیتورها هم در ازای این کار، به دو طریق میتوانند GRT به دست آورند؛ یعنی هم درصدی از کارمزدهای تمام کوئریها به آنها میرسد و هم پاداشهای ایندکسینگ را از ایندکسکنندگان دریافت میکنند.
هر Indexer مشخص میکند که به طور جداگانه میخواهد چه میزانی را به دلیگیتورها اختصاص بدهد. این مسئله موجب ایجاد رقابت میان ایندکسکنندگان میشود تا هر کدام برای جذب دلیگیتورها تلاش کنند. معمولا بیشتر ایندکسکنندگان چیزی بین ۹ تا ۱۲ درصد سالانه پیشنهاد میدهند.
به گزارش میهن بلاکچین و در زمان بهروزرسانی این مطلب در تاریخ ۱۵ اسفند ۱۴۰۱، قیمت توکن GRT در محدوده ۰.۱۴ دلار قرار دارد. ارزش کل بازار ارز GRT برابر با ۱,۲۳۱,۳۰۲,۳۹۹ دلار است و حجم معاملات این توکن در ۲۴ ساعت گذشته تقریبا برابر با ۴۸ میلیون دلار بوده است. عرضه در گردش جی آر تی برابر با ۸,۸۳۱,۹۹۰,۱۱۲.۰۷ توکن و عرضه کل آن ۱۰ میلیارد است. بیشترین و کمترین قیمت توکن GRT به ترتیب برابر با ۲.۸۴ و ۰.۰۵ دلار بوده است که این مبالغ در تاریخهای ۲۴ بهمن ۱۳۹۹ و ۱ آذر ۱۴۰۱ ثبت شده است.
نقشه راه شبکه Graph
برای اینکه تیمها راحتتر بتوانند همکاریهای متقابل خود را با گراف توسعه دهند، چندین کارگروه تحقیق و توسعه برای تمرکز در حوزههایی مشخص ایجاد شدهاند. گراف یک عنصر اصلی از پشته Web 3 است و این کارگروهها، حوزههای اصلی موردنیاز توسعه دهندگان پروتکل را پوشش میدهند. در گراف پنج کارگروه مجزا وجود دارد که در نقشه راه این شبکه، نقشی پررنگ دارند. این Work Groupها در این حوزهها فعالیت میکنند:
- داده و API
- اجرای Snark
- اقتصاد پروتکل
- عملکرد شبکه و پروتکل
- تجربیات Indexerها
این کارگروهها امکان همکاری گراف با اجزای مختلف پروتکل را فراهم میکنند و باعث میشوند عملکرد مقیاسپذیری کارآمدتر شود. پروتکل گراف موارد متعددی را در نقشه راه خود در نظر دارد که نتیجه آن بهبود عملیات ایندکسینگ و کوئری است. همچنین تمرکز بر بهینهسازی Subgraphها و پروتکلهای مقیاسپذیری لایه دو، خودکارسازی و شبیهسازیهای پروتکل نیز از جمله گامهایی است که در نقشه راه Graph به چشم میخورد. تازهترین تغییرات و پیشرفتهای گراف را میتوانید در بلاگ این پروژه مطالعه کنید.
همکاریهای The Graph
شبکه گراف به تازگی در فوریه ۲۰۲۳ (اسفند ۱۴۰۱)، همکاری خود را با کوین بیس آغاز کرده است. این همکاری به منظور دسترسی آسان به دادههای عمومی برای توسعهدهندگان است که از طریق پشتیبانی از زیرگرافها روی Base اتفاق میافتد. بیس یک راهکار لایه دو جدید است که کوین بیس آن را طراحی کرده است. همکاری میان گراف و کوین بیس به منظور راهاندازی شبکه تستی Base است.
همچنین تعدادی از بهترین پروژهها مثل مساری، اسنپ شات، سوشی و لیدو از گراف در محصولات خود استفاده میکنند. پروتکل گراف از شبکههای اتریوم، Gnosis Chain، سلو، آوالانچ و آربیتروم پشتیبانی میکند. همچنین در بخش Hosted Serviceها میتوان نامهایی مانند نیر، پالیگان، BNB ،POA، فانتوم، فیوز، آپتیمیزم، مون ریور، آئورورا، مون بیم، شبکه بوبا، هارمونی و ZKsync را مشاهده کرد.
معرفی تیم توسعهدهنده گراف
در بررسی تیم پروژه Graph به نامهای مختلفی برمیخوریم که از این میان سه نفر به عنوان افراد شاخصتر این پروژه هستند. در این بخش کمی با این سه نفر آشنا میشویم:
- یانیو تال (Yaniv Tal): تال در پروتکل گراف، سرپرست پروژه است. تال در TapSavvy هم نقش مدیر ارشد اجرایی پروژه را به عهده دارد. Tal دو سرمایهگذاری در Secret Double Octopus هم انجام داده است.
- برندن رامیرز (Brandon Ramirez): او سرپرست تحقیق و ریسرچ در گراف است که به عنوان همبنیانگذار، محقق و سرپرست محصول در شرکت Edge & Node است.
- جانیس پلمن (Jannis Pohlmann): پلمن سرپرست بخش تکنولوژی است و به عنوان همبنیانگذار و سرپرست مهندسان در شرکت Edge & Node فعالیت دارد.
صرافیها و کیف پولهای GRT
برای خرید توکن GRT میتوانید از چند صرافی متمرکز مانند بایننس، کوین بیس، کوکوین، کراکن و بیت فینکس اقدام کنید. همچنین صرافیهای غیرمتمرکز یونی سواپ، سوشی سواپ و بنکور از جمله صرافیهایی هستند که میتوانید رمزارز بومی پروتکل گراف را از آنجا خریداری کنید.
برای نگهداری این توکن هم میتوانید از کیف پولهای مطرحی مانند تراست ولت، متامسک، اتمیک ولت و کوین بیس استفاده کنید. اگر تمایل به استفاده از کیف پول سختافزاری دارید، لجر میتواند گزینهای مناسب برای نگهداری توکن GRT باشد.
سوالات متداول (FAQ)
- پروتکل گراف چیست؟
گراف در واقع لایه ایندکسگیری و پرسوجوی اطلاعات وب ۳ است. این شبکه کمک میکند بتوانیم از دادههای بلاکچین ایندکس بگیریم و به نتایج مختلفی از کوئریها دست پیدا کنیم. - ارز GRT چیست؟
رمزارز بومی پروتکل The Graph است که از استاندارد ERC20 تبعیت میکند و برای پرداخت پاداش و استیکینگ در شبکه گراف از آن استفاده میشود.
جمعبندی
استفاده از دادههای بلاکچین به راحتی امکانپذیر نیست. پروتکل گراف برای رفع این مشکل به وجود آمد و از طریق یک زبان کوئری به نام GraphQL به دنبال غیرمتمرکز کردن دسترسی به دادههای بلاکچین است. تا پیش از پیدایش Graph، کوئری و پرسوجو از دادههای پیچیده بلاکچین تنها با استفاده از سرورهای متمرکز ایندکسینگ امکانپذیر بود. اما گراف به عنوان یک پروتکل ایندکسینگ برای اپلیکیشنهای وب سه، عدم تمرکز را در این زمینه پیادهسازی کرده است. نظر شما در مورد ساختار پروتکل گراف چیست؟ آیا به نظرتان چنین خدماتی تمرکز دنیای فعلی را کمرنگتر خواهد کرد و ما را گامی دیگر به هدف آرمانی عدم تمرکز نزدیک میکند؟