پروتکل شبکه گراف چیست؟
کسانی که بازار کریپتو را دنبال میکنند ممکن است که نام شبکه گراف را شنیده باشند. Graph یک پروتکل کوئری غیرمتمرکز است که برای بلاک چینها طراحی شده است. توسط این پروتکل توسعهدهندگان قادر هستند اپلیکیشنهای غیرمتمرکز (dApps) خود را به سادگی روی پروتکل IPFS توسط ابزار GraphQL انجام دهند. این پروتکل در ابتدا برای بلاکچین اتریوم توسعه داده شد.
اما بدون این موتور جستجو بهطور مثال اگر بخواهید بفهمید که مالک یک یا تعدادی خاص از موجودیتها که در یک فاصله زمانی مشخص ایجاد شدهاند چه کسانی هستند، مجبور هستید تمام وقایع ایجاد موجودیت از این نوع را در بلاکچین اتریوم پردازش کنید که بسیار زمانبر خواهد بود؛ با استفاده از گراف این کار به سادگی و به سرعت امکانپذیر است.
هدف شبکه گراف و توکن بومی آن GRT ساخت نسل بعدی وب ۳ غیرمتمرکز است که امکان انحصار آن وجود نداشته باشد. پروتکل Graph از هفدهم دسامبر سال ۲۰۲۰ در شبکه اصلی اتریوم راه اندازی شد. از زمان راه اندازی، توکن GRT محبوبیت قابل توجهی پیدا کرده و در لیست ۵۰ ارز برتر بازار قرار گرفته است.
توکن GRT چیست؟
توکن گراف یا GRT، توکن بومی این شبکه با استاندارد ERC-۲۰ است که میتواند به عنوان وسیلهای برای مبادله ارزش و پاداش توزیع شده برای شرکتکنندگان جامعه که به عنوان شاخصسازها ، متصدیان و نمایندگان فعالیت میکنند، باشد. پیش بینی میشود حدود ۱۲.۵ درصد از کل توکن GRT در زمان راه اندازی در گردش باشد. این رقم اختصاصی از توکنهای با قابلیت استیک شدن اما قفل شده در شبکه است.
در کنار راه اندازی موفقیت آمیز شبکه اصلی، توکن GRT از ۱۷ دسامبر سال ۲۰۲۰ سریعاً در بزرگترین صرافیهای جهان لیست شد.
دنیای غیرمتمرکز (Decentralization) در شبکه Graph
شبکه Graph یک لایه میانی بین بلاکچین های مختلف و برنامههای غیرمتمرکز (dApps) است. هنگام ایجاد برنامههای غیرمتمرکز، باید راهی برای برقراری ارتباط ایمن دادههای بین بلاکچین و کاربرد آسان آن از سمت کاربر وجود داشته باشد، به علاوه وب قراردادهای هوشمندی که ساختار برنامهها را شکل میدهند.
پروتکل گراف با سازماندهی دادههای قرارداد هوشمند در اتریوم، ایجاد برنامههای غیرمتمرکز را برای توسعه دهندگان آسان کرده است. این پروتکل موجب صرفه جویی مقدار زیادی فضای ذخیرهسازی برای توسعهدهندگان میشود و همچنین باعث ایجاد دادههای کارآمد و قابل اعتماد از بلاکچین میکند.
شبکه گراف اولین شاخصهای غیرمتمرکز را برای توسعهدهندگان برنامههای غیرمتمرکز در بلاکچین اتریوم ایجاد کرده است که subgraphs نامیده میشوند. گراف به توسعهدهندگان این امکان را میدهد تا از این ابزارهای ابتکاری شاخصسازی غیرمتمرکز، برای دسترسی به دادههای سازمان یافته در اتریوم استفاده کنند. این پروتکل روند سازماندهی دادههای قرارداد هوشمند را بهبود میبخشد تا توسعهدهندگان بتوانند بر روی Front-end و سایر جنبه های اصلی یک برنامه تمرکز کنند.
قبل از وجود پروتکل گراف، توسعهدهندگان باید از شاخصهای اختصاصی استفاده میکردند که ماهیت غیرمتمرکز بودن را از بین میبرد. علاوه بر این، اغلب به منابع سختافزاری و مهندسی قابل توجهی نیز نیاز داشتند. گراف با دسترسی به پروژههای بزرگ کریپتو از جمله Uniswap ، Synthetix و CoinGecko که هم اکنون از سرویس گراف استفاده میکنند، دسترسی آسان به زیرشاخههای API منبع باز را به توسعهدهندگان میدهد.
تیم اصلی شبکه گراف
تیم اولیه این پروژه شامل Yaniv Tal (مدیر پروژه)، Brandon Ramirez (سرپرست تحقیق) و Jannis Pohlmann (مدیر تکنولوژی) است. یانیو تال، بنیانگذار و مدیر عامل شرکت The Graph است که به همراه تیم خود، یک پروتکل شاخصسازی ایجاد کردهاند که هدف آن سهولت در دسترسی به دادههای بلاکچین است.
تال و بنیانگذاران این شبکه، شخصاً دیده بودند که ایجاد برنامههای جدید در بلاکچین اتریوم چقدر دشوار است. با توجه به این نکته، آنها دریافتند که در واقع هیچ نرم افزاری، برای شاخصسازی غیرمستقیم و کوئری برای بلاکچین وجود ندارد. مشکل آن زمان این بود که توسعه دهندگان باید روش خود را برای جمع آوری دادهها و تبدیل آنها از منابع مختلف ارائه دهند. ماموریت این پلتفرم ، که Tal و تیمش توسعه دادهاند ، کمک به ایجاد برنامههایی است که نیازی به سرور ندارند و وب ۳ را برای همه قابل دسترسی میکند.
نحوه عکلکرد شبکه Graph
برای شاخصسازی دادههای مبتنی بر اتریوم، گراف از “مانیفست subgraph” استفاده میکند. این کار اشاره دارد به توصیف subgraph که شامل دادههای مربوط به قراردادهای هوشمند، رویدادهای بلاکچین و و روش کار در نقشه برداری از دادههای روادید با یکدیگر، قبل از اینکه همه آنها در پایگاه داده سیستمعامل نگهداری شوند.
جریان داده ها از تراکنشها، مانیفست subgraph و پایگاه داده از ساختار خاصی پیروی میکند. همه این موارد با برنامههای غیرمتمرکز که با کمک قراردادهای هوشمند، دادههایی را به بلاکچین اتریوم اضافه میکنند، آغاز میشود. سپس نود گراف وارد میشود که کل پایگاه داده بلاکچین را اسکن میکند ، دادههای جدیدی را جمع آوری میکند و آنهایی را که مربوط به کوئری کاربران هستند را فیلتر میکند. برای سادهسازی شاخصسازی، هر اطلاعاتی را که به کوئری زیرشاخهها پاسخ دهد، شناسایی میکند.
GraphQL پیوندی است بین دادههای بلاکچین و برنامهای که کاربر میخواهد آن را ارائه دهد. اما بازهم، از طریق نود گراف است که کاربران میتوانند کوئریها را به سیستمعامل تحویل دهند. پس از کل فرآیند، کاربران میتوانند به نتایج کوئریهای خود از برنامههایشان نگاه کنند.
اساساً چرخه جستجوی داده و شاخصسازی در سیستم عامل به این ترتیب است. کاربران میتوانند برای اسکن از طریق subgraphها که از قبل در پلتفرم هستند به مرورگر گراف مراجعه کنند. هر یک از این subgraphها دارای زمین مخصوص به خود هستند که کاربران میتوانند از طریق GraphQL درخواستهای خود را در آن انجام دهند.
GraphQL چیست؟
قبل از شروع به کار گراف، تیمهای توسعه چاره ای جز استفاده از سرورهای شاخصسازی متمرکز نداشتند. اینکار باعث میشد که قبل از افشای دادهها از طریق API، دادهها از بلاکچین اتریوم خارج شوند و در یک پایگاه داده متمرکز ذخیره شوند. و این فرآیند آسیب پذیریهای مربوط به خطاها یا رفتارهای مخرب با مدیریت دادهها را نشان میدهد. به همین دلیل است که گراف، GraphQL را ایجاد کرده است.
اکنون، توسعه دهندگان نگران دریافت اطلاعات نادرست نیستند، زیرا همه این موارد به صورت زنجیره ای قابل تأیید است. GraphQL یک شاخص جهانی غیرمتمرکز از داده های جهان است. زیرمجموعهها و شاخصسازان درون پروتکل گراف از GraphQL برای درخواست کوئری استفاده میکنند
GraphQL ایجاد شده توسط فیسبوک، یک زبان جستجوی منبع باز و زبان تعریف رابط (IDL) است. GraphQL به عنوان یک زبان کوئری قدرتمند برای حل عدم انعطافپذیری و ناکارآمدی APIهای سنتی ایجاد شده است. نکته قابل توجه اینکه، GraphQL میتواند تمام دادههای مورد نیاز یک برنامه را در یک کوئری واحد بیان کند. و صرف نظر از مقدار داده موردنیاز، فقط به یک تماس به شبکه نیاز است.
نقشهای کلیدی در پلتفرم گراف
کل اکوسیستم این پلتفرم از موارد زیر تشکیل شده است :
مصرفکنندگان (Consumers) : کاربرانی هستند که برای جستجوی خود به شاخصسازان پول پرداخت میکنند. البته مصرفکنندگان میتوانند سرویسهای وب یا هر نرم افزار دیگری باشد که با شبکه گراف مرتبط است.
شاخصسازها (Indexers) : آنها در واقع نودهایی هستند که عملکرد شاخصسازی پلتفرم را حفظ میکنند.
متصدیان (Curators) : با استفاده از GRT، متصدیان اطلاعاتی را که برای شاخص پلتفرم ارزشمند است را برای زیرمجموعهها شناسایی میکنند.
نمایندگان (Delegators) : اینها سایر استیکرهایی هستند که GRT خود را به شاخصسازهای موجود میدهند و بخشی از پاداشهای اداره شده توسط نودها را کسب میکنند.
ماهیگیران (Fishermen) : آنها بررسی میکنند که آیا پاسخ شبکه به کوئری دقیق است یا خیر.
داوران (Arbitrators) : آنها تصمیم میگیرند که آیا شاخصساز مخرب است یا خیر.
نقشه راه پروتکل گراف
در نقشه راهی که سازندگان این پروتکل برای خود ترسیم کردهاند دو موضوع اصلی را مد نظر قرار دادهاند: ۱- اولویتها ۲- سرعت
اولویتها شامل نقشه راه، چشمانداز و جمعآوری اطلاعات است. سرعت هم بیانگر میزان بهبودها و قابلیتهای اضافهشده به پروتکل در واحد زمانی مشخص است. نقشه راهِ توسعه و مراحل برجسته پروژه شامل این موارد است:
متن باز (Open source)
اولین نسخه نرمافزار فقط یک ایندکسر تنها روی اتریوم و IPFS است. یک نود به شبکه اتریوم ملحق میشود تا وقایع (event) شبکه را پردازش کرده، اسکریپتهای اعمالشده توسط کاربر برای تبدیل دیتا را اجرا و ایندکس کرده و آنها را در اختیار ماژول GraphQL قرار دهد. اسکریپتها بر روی یک ماشین مجازی مبتنی بر استک (WASM) اجرا میشوند که دارای سرعت پردازش بسیار بالا و دقت و صحت نتایج است.
توسعهدهندگان با استفاده از این مکانیزم API خود را بر روی پروتکل گراف توسعه داده و از بسیاری از مشکلات فعلی (مانند block reorg و push updates) رهایی مییابند..
وایتپیپر
نسخه اولیهای در مارس ۲۰۱۸ برای وایتپیپر نوشته شده اما تیم توسعهدهنده در حال کار و بهبود آن است. بعد از رونمایی و آغاز به کار پروژه، وایتپیپر نیز منتشر میشود و در دسترس همه خواهد بود.
قابلیت میزبانی از سرویس ها (Hosted Service)
اگرچه هر پروژهای میتواند نود خود را داشته باشد اما سازندگان گراف معتقدند که با فراهم کردن این خدمت برای تیمها میتوانند مشکلات توسعه ابزارهایشان را بر روی پروتکل گراف کم کنند.
شبکه غیرمتمرکز
وجود شبکه غیرمتمرکز به افراد امکان میدهد تا نود خود را در شبکه راهاندازی کرده و در عملیات ایندکسکردن و صحتسنجی و پردازش کوئری در شبکه مشارکت کنند. با راه افتادن کسبوکارها روی این شبکه، امکان کسب منفعت برای مشارکتکنندگان نیز فراهم میشود.
گراف بر روی چه شبکههایی پشتیبانی میشود؟
پشتیبانی نود گراف بر روی هر زنجیره سازگار با اتریوم (مبتنی بر JSON RPC API) انجام میشود. همچنین ماژول hosted service روی شبکههای زیر پشتیبانی میشود:
Ethereum mainnet
Kovan
Rinkeby
Ropsten
Goerli
PoA-Core
xDAI
Sokol