همانطور که وب ۲ برای ایندکس (ثبت و فهرستبندی) داده، به گوگل جهت سازماندهی و در دسترس قرار دادن داده نیاز دارد، وب ۳ هم به پروتکلی نیاز دارد که به جمعکردن دادهها در بلاکچین کمک کند تا کاربران نهایی بتوانند به راحتی دادهها را جستجو کنند. اینجاست که قابلیت ایندکس کردن گراف (Graph) مورد توجه قرار میگیرد. گراف که از آن به عنوان موتور جستجوی فردا یاد میشود، این توانایی را دارد که بر آینده همه شبکههای غیرمتمرکز و ارزهای دیجیتال تأثیر بگذارد.
ایندکس گرفتن از دادههای بلاکچین به معنای واقعی کلمه دشوار است؛ دشوارتر از چیزی که شاید تصورش میکنید. پروتکل Graph آمده است تا این دشواریها را از میان بردارد. گراف یک پروتکل فهرستبرداری غیرمتمرکز است که برای پرسش و پاسخ از دادههای بلاکچین شبکههایی مثل اتریوم و IPFS طراحی شده است. به کمک این شبکه میتوان با ساخت API، دادهها را به سادگی در دسترس دیگران قرار داد.
علاوه بر این، شبکه گراف قصد دارد ساخت برنامههای غیرمتمرکز (dApps) در اتریوم و شبکههای ذخیره سازی را آسان کند که این کار به طور خاص، با استفاده از زبان GraphQL حاصل میشود.در این مطلب به هر آن چیزی که باید درباره ارز دیجیتال گراف و شبکه آن بدانید، میپردازیم.
مفاهیم مورد نیاز برای مطالعه مقاله:
🟢کوئری (Query): کوئری یا همان پرسوجو در پروتکل گراف، درخواست داده از سمت Subgraph است که شرکتکنندگان شبکه (Indexer) به آن پاسخ میدهند.
🟢زیرگراف (Subgraph): یک API سفارشی است که روی دادههای بلاکچین ایجاد میشود و با استفاده از GraphQL میتوان عملیات کوئری روی آن انجام داد. توسعهدهندگان میتوانند سابگرافها را بسازند و روی شبکه غیرمتمرکز گراف مستقر و منتشر کنند.
🟢گراف کیو ال (GraphQL): زبان کوئری برای APIهاست که گراف از این زبان برای کوئری زیرگرافها استفاده میکند.
🟢سرویسهای میزبانیشده (Hosted Service): یک سرویس موقت برای ایجاد و پرسوجو از Subgraphهاست.
🟢ایندکسکنندگان (Indexer): ایندکسکنندگان شرکتکنندگان شبکه هستند که نودها را برای ایندکس گرفتن از دادههای بلاکچینها و خدمترسانی به کوئریهای GraphQL اجرا میکنند.
فهرست محتوا
گراف چیست؟
گراف پروتکلی غیرمتمرکز جهت ایندکس و جستجوی دادهها از بلاکچین اتریوم، زنجیرههای سازگار با EVM و زنجیرههای لایه دوم است. در حال حاضر، گراف از ۳۱ شبکه بلاکچین از جمله فانتوم، کازماس و آربیتروم پشتیبانی میکند. دادهها توسط رابطهای برنامهنویسی اپلیکیشن منبع باز به نام سابگراف (subgraph) استخراج، پردازش و ذخیره میشوند.
سابگرافها، ایندکسهایی برای یک درخواست جستجوی خاص هستند که بخشی از کل دادههای بلاکچین موجود در گراف را تشکیل میدهند. سابگرافها را میتوان انتقال داد تا توسعهدهندگان بتوانند دادهها را با چند کلیک با استفاده از زبان برنامهنویسی گراف (GraphQL) جستجو کنند.
گراف لقب گوگل بلاکچین را به دلیل قوی بودن قابلیت ایندکسینگ آن، گرفته است. اکثر اطلاعات در قراردادهای هوشمند را نمیتوان مستقیماً و بهراحتی از طریق تعامل با قرارداد خواند، حال چه این اطلاعات در برنامههای غیرمتمرکز (DApps)رمزگذاری شده باشند و چه در توکنهای غیرقابل تعویض. یکی از بزرگترین چالشهایی که توسعهدهندگان بلاکچین با آن مواجه هستند، مدت زمان لازم برای بازیابی دادههاست.
توسعهدهندگان در نهایت مجبور به ایجاد سرورهای ایندکسینگ متمرکز برای پاسخگویی به درخواستهای جستجو میشوند که این عمل خلاف چیزی است که وب ۳ برای دستیابی به آن تلاش میکند. گراف هر دو مشکل را با پروتکل ایندکسینگ خود میتواند رفع کند، چون امکان جستجوی دادههای بلاکچین بهصورت غیرمتمرکز، سریع و کارآمد را فراهم میسازد.
پروژه گراف در سال ۲۰۱۸ توسط یانیو تال، جانیس پولمن و براندون رامیرز راهاندازی شد. این سه نفر توانستند در سال ۲۰۲۰ نسخه اولیه این پروژه را بهصورت کامل عرضه کنند. در آن زمان جستجویهای دنیای بلاکچین به حداکثر حالت خود رسیده بود، به همین دلیل استقبال زیادی از این پروژه صورت گرفت. آنها هدف اصلی خود را ایجاد پایگاه داده تغییرناپذیر و معرفی اینترنت نسل سوم به جامعه عنوان کرده بودند.
کوئری دادههای بلاکچین به صورت مستقیم، کار آسانی نیست؛ اما پروتکل گراف این کار را امکانپذیر کرده است. پروژههایی مثل NFT باشگاه قایقرانی میمونهای کسل (Bored Ape Yacht Club یا به اختصار BAYC) و یونی سواپ که قراردادهای هوشمند پیچیدهای دارند، دادههای خود را روی بلاکچین اتریوم ذخیره میکنند. همین مسئله باعث میشود که خواندن هر چیزی (به جز دادههای اصلی) به صورت مستقیم از بلاکچین واقعا دشوار شود.
مثلا در مورد BAYC ما میتوانیم اطلاعات پایهای مثل صاحب یک Ape خاص یا URL آن را به کمک ID به صورت مستقیم از قرارداد هوشمند به دست بیاوریم. اما به موارد پیچیدهتر مثل روابط، جستجو و فیلترهای مهم نمیتوان دسترسی داشت. مثلا اگر قرار باشد دنبال Apeهایی بگردیم که صاحبشان یک آدرس مشخص است و بخواهیم نتیجه را با فیلتر کردن یکی از ویژگیهای میمونهای پروژه محدودتر کنیم، نمیتوانیم به صورت مستقیم از طریق قرارداد هوشمند به این اطلاعات دسترسی پیدا کنیم.
بهترین راه حل این است که هر نقل و انتقالی را که تاکنون انجام شده پردازش کنیم، متادیتاها را به کمک IDهای توکن و هش IPFS بخوانیم و سپس آنها را با هم تجمیع کنیم. همین کارهای حتی به ظاهر ساده هم ممکن است برای یک برنامه غیرمتمرکز چندین روز طول بکشد که با ایدهآل فاصله فراوانی دارد.
پروتکل Graph راهکاری برای این مسئله ارائه داده است. این پروتکل غیرمتمرکز هم از دادهها ایندکس میگیرد و هم پرسش و پاسخ از دادههای بلاکچین را به صورت کارآمد امکانپذیر میکند. در ادامه با ساختار این شبکه و پروتکل گراف بیشتر آشنا میشویم.
گراف چگونه کار میکند؟
در اکوسیستم گراف، شش گروه اصلی فعالیت دارند که با همکاری هم، دادهها را از طریق subgraph دریافت و سازماندهی میکنند. نقشهای موجود در پروتکل گراف عبارتند از:
مصرفکنندگان: دادهها را از طریق موتور جستجو پیدا کرده و هزینهای به ایندکسرها پرداخت میکنند.
ایندکسرها: به عنوان گرههای اپراتور، کار ایندکسینگ و ارائه خدمات جستجو را انجام میدهند و در عوض پاداش ایندکسینگ و کارمزد جستجو دریافت میکنند. آنها قبل از هر چیز باید صد هزار توکن GRT استیک کنند که اگر با اقدامات خود آسیبی به شبکه برسانند، مقداری از موجودی توکنهای آنها کسر میشود.
متصدیان: با استفاده از مرورگر گراف، سابگرافهایی را که باید ایندکس شوند شناسایی و حدود ده درصد از کارمزد جستجو را دریافت میکنند. متصدیان میتوانند یکی از اعضای شبکه، مصرفکنندگان داده یا حتی توسعهدهندگان subgraph باشند که مایل به انتقال سابگراف خود هستند. آنها باید مالیات بر سپرده یک درصدی جهت تصدی بدهند و اگر یک subgraph کمکیفیت را انتخاب کنند، کارمزد کمتری دریافت خواهند کرد. اگر در کار خود موفق نشوند، متحمل پرداخت مالیاتی ۰.۵ تا یک درصدی میشوند.
نمایندگان: آنها توکنهای GRT خود را در ایندکسرها استیک میکنند تا بخشی از کارمزد ایندکس جستجو را دریافت کنند. در هر فعالیتی (نمایندگی) که انجام میدهند، ۰.۵ درصد مالیات پرداخت میکنند.
فیشرمن: کار ایندکسرها را تأیید میکنند. اگر یک ایندکسر اقدام مخربی انجام دهد، فیشرمن نصف توکنهای کسر شده از ایندکسر را دریافت میکند. فیشرمنها برای شروع به کار ابتدا باید حداقل ده هزار توکن GRT گرو بگذارند.
داوران: این وظیفه داوران است که تصمیم بگیرند اقدامات ایندکسر مخرب بوده است یا خیر.
هدف پروتکل گراف چیست؟
هدف شبکه گراف و توکن GRT ساخت نسل بعدی وب ۳ است. پیش از پیدایش Graph، تیمها باید سرورهای ایندکسگذاری شخصی را توسعه میدادند که به مهندسی و منابع سختافزاری بسیاری نیاز دارد. مشکل اینجا بود که این سرورهای اختصاصی ویژگیهای امنیتی مورد نیاز برای غیرمتمرکز بودن را از بین میبردند. پس از سه سال توسعه، پروتکل Graph از هفدهم دسامبر سال ۲۰۲۰ (۲۷ آذر ۱۳۹۹) روی شبکه اصلی اتریوم راه اندازی شد تا رسالت خود را به عنوان یک پروتکل ایندکسینگ انجام دهد.
شبکه Graph چطور کار میکند؟
گراف با استفاده از توصیفات زیرگرافها (که به Subgraph Manifest مشهورند)، میفهمد که باید از کدام دادههای اتریوم ایندکس بگیرد و چطور باید این کار را انجام بدهد. این توصیفات به تعریف این موارد میپردازند:
- قراردادهای هوشمند جالب برای Subgraphها
- رویدادهایی که این قراردادها باید به آن توجه کنند
- تطابق دادههای این رویدادها با دادههایی که پروتکل گراف در دیتابیس خود ذخیره میکند (Mapping یا نگاشت)
زمانی که یک Subgraph Manifest مینویسید، از Graph CLI استفاده میکنید تا تعاریف مورد نظرتان را در IPFS ذخیره کنید. با این کار به کسانی که ایندکس میگیرند میگویید که عمل ایندکس گرفتن از دادهها را برای آن زیرگراف شروع کنند. تصویر زیر نمایی از جزئیات جریان داده را در زمان ایجاد مانیفست زیرگراف و تعامل با تراکنشهای اتریوم نشان میدهد.
این تصویر را میتوان به این صورت تفسیر کرد:
- برنامههای غیرمتمرکز دادههایی را از طریق انجام تراکنش روی قراردادهای هوشمند، به اتریوم اضافه میکنند.
- قرارداد هوشمند یک یا دو رویداد را در حین پردازش تراکنش منتشر میکند.
- نود گراف به صورت مستمر بلاکچین اتریوم را برای دادهها و بلاکهای جدیدی که ممکن است سابگراف شما حاوی آن باشد، اسکن میکند.
- به این ترتیب Graph Nodeها رویدادهای اتریوم را برای زیرگراف شما در این بلاکها پیدا میکنند و عملیات مپینگ را انجام میدهند. مپینگ در واقع ماژولی است که دادههایی را ایجاد یا بهروزرسانی میکند که نودهای گراف در مواجهه با رویدادهای اتریوم اقدام به ذخیره آنها میکنند.
- Dappها نودهای گراف را برای دادههای ایندکسشده از بلاکچین جستجو میکنند. این کار با استفاده از GraphQL Endpoint انجام میشود. گراف نود هم کوئریها را به کوئریهایی برای ذخیره دادههای خود تبدیل میکند. به این ترتیب میتواند این دادهها را بردارد و از ایندکسهای ذخیرهشده استفاده کند. برنامههای غیرمتمرکز این دادهها را از طریق یک رابط کاربری قدرتمند به کاربران نهایی نمایش میدهد. آنها میتوانند از این دادهها برای ایجاد تراکنشهای جدید روی اتریوم استفاده کنند. در پروتکل Graph این چرخه به همین ترتیب تکرار میشود.
در این شبکه علاوه بر Indexerها سه نقش دیگر هم داریم:
- نمایندگان (Delegator): این نمایندگان، توکنهای بومی گراف (GRT) را به ایندکسرها واگذار میکنند تا شبکه را ایمن کنند.
- متصدیان (Curators): بهترین سابگراف را برای ایندکسکنندگان پیدا میکنند.
- توسعهدهندگان (Developers): زیرگرافها میسازند و از آن کوئری میگیرند.
محصولات مهم گراف چه هستند؟
محصولات مهم گراف عبارتند از:
استودیوی subgraph
مکانی برای توسعهدهندگان است که میتوانند سابگرافها را ساخته و ابردادهها را اضافه کنند، سپس سابگرافها را قبل از انتشار رسمی آنها در مرورگر غیرمتمرکز گراف یا سرویس میزبانی شده برای آزمایش قرار دهند.
مرورگر گراف
جایی که همه سابگرافهای قرار داده شده در شبکه گراف با جزئیات مربوط به هر subgraph (از ابرداده گرفته تا آمار شرکتکنندگان) را میتوان مشاهده کرد. از اینجا، متصدیان میتوانند سابگرافی را انتخاب و به ایندکسرها منتقل کنند و توکنهای GRT در آن گرو بگذارند. همه اعضای شبکه میتوانند مشخصات کاربری خود را در مرورگر گراف ببینند که شامل برگههایی برای سابگرافها، ایندکسینگ، نمایندگی و متصدی است. سوابق فعالیتها، پاداشها، کارمزدها و جزئیات مربوطه نشان داده میشود.
سرویس میزبانی شده (Hosted Service)
شبکه گراف فقط از بلاکچین اتریوم پشتیبانی میکند. بلاکچینهای دیگر مانند Avalanche و Celo در حال حاضر توسط Hosted Service پشتیبانی میشوند که قرار است در پایان سه ماهه اول سال ۲۰۲۳ با مهاجرت برنامههای غیرمتمرکز به مرورگر غیرمتمرکز گراف بسته شود.
گردش کار گراف
یا یک subgraph مرتبط برای ذخیره دادههای جستجوشده وجود دارد یا ندارد. اگر وجود نداشته باشد، توسعهدهنده باید آن را در استودیوی دادههای subgraph بسازد. بعد از ایجاد و انتشار یک سابگراف، متصدی آن را تجزیه و تحلیل میکند و اگر پتانسیل قابل توجهی داشته باشد آن را جهت ایندکسینگ در مرورگر گراف، ارسال میکند. گره گراف که بلاکچین اتریوم را دائماً برای یافتن بلاکهای جدید اسکن میکند، subgraph را ایندکس کرده و داده درخواست شده را از طریق نقطه پایانی GraphQL ارائه میدهد. بعد از تکمیل این فرآیند، کاربران میتوانند نتیجه جستجو را در اپلیکیشنهای خود مشاهده کنند. آنها همچنین میتوانند از مرورگر گراف برای جستجوی سابگرافهای موجود و درخواست جستجو با GraphQL استفاده کنند.
توکن گراف (GRT) چیست؟
توکن گراف، یک کوین ERC-20 در بلاکچین اتریوم است که برای تخصیص منابع در سراسر اکوسیستم گراف استفاده میشود. توکنهای گراف به عنوان وسیلهای برای مبادله و دادن پاداش به اعضای شبکه عمل میکنند در حالی که ایندکسرها، متصدیان و نمایندگان از گرو گذاشتن GRT برای مشارکت در بازار استفاده میکنند.
جدا از راحتتر کردن فرآیند سرویس داده در شبکه گراف، این توکن نقشی کلیدی در کمک به اداره شبکه ایفا میکند. دارندگان توکن GRT حق رای دادن و تأیید تغییرات رخ داده در شبکه گراف را دارند. هولدر کوین GRT میتواند هرگونه تغییر پیشنهادی از سوی شورای گراف را که بر آینده شبکه تأثیر میگذارد، رد یا قبول کند.
مزایا و معایب پروتکل گراف
مانند هر شبکه بلاکچین دیگر، گراف هم مزایا و معایب خاص خود را دارد. دانستن موارد زیر برای تصمیمگیری آگاهانه لازم و مهم است.
مزایا
- راحتی: امکان جستجوی یکپارچه همه دادههای بلاکچین با استفاده از سابگرافها را فراهم میکند.
- مقرون به صرفه: در نبود گراف، توسعهدهندگان مجبور بودند تا سرویسهای جستجوی خصوصی بسازند یا به دادههای شخص ثالث متکی باشند که همگی پرهزینه هستند.
- پتانسیل بالا: پتانسیل رشد تصاعدی را دارد چون همچنان پلتفرمها، برنامههای غیرمتمرکز، بلاکچینها و قراردادهای هوشمند بیشتری را جهت ایندکس به مرورگر خود اضافه میکند.
معایب
- پشتیبانی از معدود بلاکچین: از آن جایی که گراف شبکهای نسبتاً تازهکار است، از بلاکچینهای زیادی پشتیبانی نمیکند. هرچند بسیاری از بلاکچینهای اصلی مانند پالیگان از قبل تحت پشتیبانی گراف قرار دارند. گراف تلاش کرده است تا حتی یک بلاکچین غیر EVM به نام Near را پشتیبانی کند که نشاندهنده شبکه در حال رشد آن است.
- کاملاً غیرمتمرکز نیست: از آن جایی که بیشتر سابگرافها توسط سرویس میزبان پشتیبانی میشوند، گراف کاملاً غیرمتمرکز نیست. با این حال، تیم پروژه سخت در تلاش است تا فرآیند ایندکسینگ دادهها را همراه با مرورگر خود که در ژوئیه ۲۰۲۱ راهاندازی شده بود، کاملاً غیرمتمرکز کند.
نقشه راه شبکه Graph
برای اینکه تیمها راحتتر بتوانند همکاریهای متقابل خود را با گراف توسعه دهند، چندین کارگروه تحقیق و توسعه برای تمرکز در حوزههایی مشخص ایجاد شدهاند. گراف یک عنصر اصلی از پشته Web 3 است و این کارگروهها، حوزههای اصلی موردنیاز توسعه دهندگان پروتکل را پوشش میدهند. در گراف پنج کارگروه مجزا وجود دارد که در نقشه راه این شبکه، نقشی پررنگ دارند. این Work Groupها در این حوزهها فعالیت میکنند:
- داده و API
- اجرای Snark
- اقتصاد پروتکل
- عملکرد شبکه و پروتکل
- تجربیات Indexerها
این کارگروهها امکان همکاری گراف با اجزای مختلف پروتکل را فراهم میکنند و باعث میشوند عملکرد مقیاسپذیری کارآمدتر شود. پروتکل گراف موارد متعددی را در نقشه راه خود در نظر دارد که نتیجه آن بهبود عملیات ایندکسینگ و کوئری است. همچنین تمرکز بر بهینهسازی Subgraphها و پروتکلهای مقیاسپذیری لایه دو، خودکارسازی و شبیهسازیهای پروتکل نیز از جمله گامهایی است که در نقشه راه Graph به چشم میخورد. تازهترین تغییرات و پیشرفتهای گراف را میتوانید در بلاگ این پروژه مطالعه کنید.
کیف پولها و صرافیهای مناسب برای رمزارز GRT کدامند؟
کیف پولهای زیادی از توکن GRT پشتیبانی میکنند. برخی از آنها عبارتند از: کیف پول سختافزاری لجر (Ledger)، کیف پول سختافزاری ترزور (Trezor)، کیف پول نرمافزاری تراست (Trust)، کیف پول نرمافزاری اتمیک (Atomic) و غیره.
همچنین صرافیهای بسیاری از ارز دیجیتال گراف پشتیبانی میکنند. برخی از آنها عبارتند از: صرافی متمرکز بایننس (Binance)، صرافی متمرکز کوینبیس (Coinbase)، صرافی غیرمتمرکز یونی سواپ (Uniswap) و غیره.
البته نکتهای که باید به آن توجه کنید، این است که اکثر صرافیهای خارجی به تبعیت از تحریمها علیه کشور ما، کاربران ایرانی را در لیست سیاه خود قرار دادهاند و به ایرانیان خدمات ارائه نمیدهند. با وجود این که بسیاری از معاملهگران ایرانی توانستهاند از طریق روشهایی این محدودیتها را پشت سر بگذارند، اما این کار همواره با ریسک مسدود شدن حساب کاربری و داراییهای آنها همراه است. درنتیجه، معقولانهترین کار، استفاده از صرافیهای داخلی است. صرافی سیمیا امکان خرید و فروش ارز گراف را فراهم کرده و شما میتوانید بدون نگرانی و با چند کلیک ساده، این ارز را خریداری کنید.
آینده رمزارز GRT چگونه است؟
تحلیل ارز گراف نشان میدهد که آینده این رمزارز امیدوارکننده به نظر میرسد. نکته اول این که مشکل بزرگی را حل میکند و بخش اصلی وب ۳ را تشکیل میدهد. دوم، گراف دائماً در حال گسترش است تا پلتفرمها و بلاکچینهای جدیدی را در خود جای دهد. با این که مدت کوتاهی از راهاندازی آن میگذرد، اما بیش از سه میلیون توکن GRT سیگنال شده در بیش از ۲۰۰ سابگراف و ۲.۶ میلیارد توکن GRT استیک شده توسط ایندکسرها وجود دارند. بنابراین میتوان نتیجه گرفت که سرمایهگذاری بلندمدت در آن میتواند سود بالایی داشته باشد.
بهطور خلاصه، گراف دادههای بلاکچین را بهصورت غیرمتمرکز و یکپارچه ایندکس میکند تا کار جستجوی دادهها و بازیابی نتایج راحتتر شود. با رویکرد منحصربهفرد و تأثیر قابل توجه آن بر زیرساخت جهانی دیفای، آیندهای روشن برای آن پیشبینی میشود.
جمعبندی:
استفاده از دادههای بلاکچین به راحتی امکانپذیر نیست. پروتکل گراف برای رفع این مشکل به وجود آمد و از طریق یک زبان کوئری به نام GraphQL به دنبال غیرمتمرکز کردن دسترسی به دادههای بلاکچین است. تا پیش از پیدایش Graph، کوئری و پرسوجو از دادههای پیچیده بلاکچین تنها با استفاده از سرورهای متمرکز ایندکسینگ امکانپذیر بود. اما گراف به عنوان یک پروتکل ایندکسینگ برای اپلیکیشنهای وب سه، عدم تمرکز را در این زمینه پیادهسازی کرده است.
سوالات متداول:
+پروتکل گراف چیست؟
گراف در واقعلایه ایندکسگیری و پرسوجوی اطلاعات وب ۳ است. این شبکه کمک میکند بتوانیم از دادههای بلاکچین ایندکس بگیریم و به نتایج مختلفی از کوئریها دست پیدا کنیم.
+ارز GRT چیست؟
رمزارز بومی پروتکل The Graph است که از استاندارد ERC20 تبعیت میکند و برای پرداخت پاداش و استیکینگ در شبکه گراف از آن استفاده میشود.