میهن بلاکچین
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی
No Result
مشاهده همه‌ی نتایج
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی
No Result
مشاهده همه‌ی نتایج
میهن بلاکچین
No Result
مشاهده همه‌ی نتایج
میهن بلاکچین آموزش کریپتو پدیا

گراف (The Graph) چگونه به برنامه های غیر متمرکز کمک خواهد کرد؟

نگارش:‌ایوب کریمی
12 شهریور 1401 - 14:56
در کریپتو پدیا
زمان مطالعه: 6 دقیقه
0
نحوه ساخت گراف (The Graph)

گراف (The Graph) چیست؟ چگونه یک زیرگراف (Subgraph) درست کنیم و چگونه آن به برنامه غیر متمرکز (dApp) ما کمک خواهد کرد؟

اکثر برنامه های غیر متمرکز اتریوم دو بخش در زیرساخت خود دارند (نسخه ساده):

۱- Front-end (در حال اجرا در مرورگر)

۲- یک نود اتریوم (سطح کاربری به شبکه اتریوم)

وقتی تراکنشی در اتریوم روی می دهد، رویداد هایی را صادر می کند. فرانت اند (Front-end) این رویداد ها را نظاره می کند و بر طبق آن UI (رابط کاربری) را به روز رسانی می کند. برنامه غیر متمرکز می تواند انواع محدودی از سوالات را به نود اتریوم بفرستد تا داده ها را بر روی فرانت اند نمایش دهد.

اما برنامه های غیر متمرکز نمی توانند تنها با تراکنش ها، رویداد ها و آن حداقل سوالات به حیات خود ادامه دهند. برای فراهم آوردن یک تجربه کاربری کامل، یک برنامه غیر متمرکز نیاز دارد که حداقل داده های خود را پردازش کند تا فعالیت یک کاربر خاص را نمایش داده و یک پروفایل کاربری بسازد و همچنین تحلیل ها را نشان دهد و ویژگی های زیادی را فعال سازد. حال چگونه می توانیم همه اینها را انجام دهیم؟

تعدادی از تیم های توسعه برنامه های غیر متمرکز با ساختن راه حل های سفارشی خود در حال انجام این امر هستند. از جمله این راه حل ها برداشتن داده های بلاک چینی، پیگیری رویداد ها، تراکنش ها و ذخیره آنها در پایگاه داده متمرکز سنتی است. اما ما می خواهیم نیاز به اعتماد را در شبکه نسل سوم اینترنت به حداقل برسانیم، صحیح است؟

می توانیم مشکل را به این شیوه خلاصه کنیم: برنامه های غیر متمرکز نیاز به داده های لیست شده برای اجرای پرس و جو ها در مقیاس بزرگ دارند تا تجربه کاربری تمام نمایی را مقدور سازند که در آن کمترین نیاز به اعتماد باشد.

آنچه در این مطلب می‌خوانید

Toggle
  • گراف (The Graph) چیست؟
  • گراف (The Graph) چگونه کار می کند؟ 
  • ساختن یک زیرگراف
  •  Graph Explorer
  • ناحیه زیربنایی
  • فایل های مهم
  • ساخت یک زیرگراف برای برنامه غیر متمرکز خود
  • فرمان های مفید
  • نتیجه گیری
  • معرفی QuickNode

گراف (The Graph) چیست؟

تیم The Graph در حال حل کردن این مشکل با ساختن یک پروتکل غیر متمرکز می باشد که توسط نود های گراف که رویداد های اتریوم را پردازش می کنند و آنها را به عنوان داده های لیست شده ذخیره می کنند، فعال می شود. در این حالت برنامه های غیر متمرکز می توانند از طریق یک پایانه API به پرس و جو بپردازند.

پروتکل گراف در مقوله ای قرار می گیرد که به عنوان راه حل مقیاس پذیری خوانده شده لایه ۲ به آن اشاره می شود. هدف آن فعال کردن برنامه های غیر متمرکز برای پرس و جوی داده های بلاک چینی عمومی به طور کارآمد و بدون نیاز به اعتماد از طریق سرویسی مانند بلاک چین و خود اینترنت است که به عنوان یک صنعت همگانی عمومی عملکرد دارند. این باعث به حداقل رساندن نقش زیرساخت متمرکز شکننده ای می شود که در بسیاری از معماری های برنامه های غیر متمرکز امروزه دیده می شوند.

این فهرست ها (زیرگراف ها) در حال حاضر توسط تیم گراف (The Graph) میزبانی می شوند اما در آینده این فهرست ها بر روی یک شبکه کاملا غیر متمرکز از نود های گراف به حیات خود ادامه خواهند داد.

گراف (The Graph) چگونه کار می کند؟ 

The Graph

اجازه دهید عمیق تر وارد بحث شویم و درک کنیم که در واقع چگونه گراف (The Graph) کار می کند:

  • برنامه های غیر متمرکز از طریق قرارداد های هوشمند خود تراکنش هایی اتریومی را ایجاد می کنند که رویداد ها را بیرون می دهند.
  • نود های گراف (Graph Nodes) هر بلاک اتریوم را در جستجوی رویداد ها اسکن می کنند.
  • نود های گراف رویداد هایی را برای زیرگراف شما در بلاک های اتریوم پیدا می کنند و به مدیریت سطح کاربری mapping handlers که شما فراهم کرده اید، می پردازند. در این طرح بندی تصمیم گرفته می شود که چگونه داده ها در نود های گراف ذخیره و به روز شوند.
  • برنامه غیر متمرکز شما می تواند به پرس و جو در مورد این داده ها از طریق GraphQL APIs بپردازد که برای فراهم آوردن داده های لیست شده توسط نود های گراف ترجمه می شوند.
  • پس منتظر چه هستید، اجازه دهید یک زیرگراف بسازیم.

ساختن یک زیرگراف

اجازه دهید از یک نمونه قرارداد هوشمند با پروژه Truffle استفاده کنیم و یک زیرگراف بسازیم.

 Graph Explorer

با استفاده از Graph Explorer می توانید به جستجوی زیرگراف هایی دیگر بپردازید که توسط جامعه ساخته شده اند. ما می توانیم همچنین با استفاده از Graph Explorer UI به تفحص در مورد زیرگراف ها بپردازیم.

لازم است که یک اکانت در Graph Explorer باز کنیم و یک Access Token تهیه کنیم که در حال گسترش زیرگراف ها  بر روی نود های گراف مورد استفاده قرار می گیرد (میزبانی شده توسط تیم The Graph). پس اجازه دهید یک اکانت در Graph Explorer ایجاد کنیم.

یک زیرگراف با استفاده از Graph Explorer UI با نام Example ایجاد کنید.

حال لازم است که Graph-CLI را در سیستم خود نصب کنیم (من از Ubuntu 16.10 استفاده می کنم):

sudo yarn global add @graphprotocol/graph-cli

اجازه دهید یک زیرگراف نمونه با استفاده از فرمان پایین ایجاد کنیم:

graph init buddies2705/example-subgraph example-subgraph
// Command Syntax graph init <GITHUB_USER>/<SUBGRAPH_NAME> <DIRECTORY>// Here Direcotry is optional, if you don't pass it it will create a directory with SUBGRAPH_NAME 

اجازه دهید dependency را نصب کنیم و طرح بندی ها را ایجاد کنیم:

//Install Dependencies yarn//Generate Mappingsyarn codegen

حال Auth را با استفاده از Access Token ایجاد می کنیم (ما می توانیم به Access Token از داشبورد Graph Explorer دسترسی پیدا کنیم):

graph auth https://api.thegraph.com/deploy/<ACCESS_TOKEN>

حال می توانیم به نصب زیرگراف خود بر روی Graph Explorer با استفاده از فرمان زیر بپردازیم:

graph deploy     --debug     --node https://api.thegraph.com/deploy/     --ipfs https://api.thegraph.com/ipfs/     buddies2705/example
//You can see we are using buddies/example where "buddies2705" is my //github username and "example" is our subgraph name create using //Graph explorer UI.

حال Graph Explorer را باز کنید و زیرگراف خود را ببینید. شما می توانید به جستجوی زیرگراف خود با استفاده از Graph Explorer UI بپردازید. شما همچنین می توانید پایانه هایی را ببینید تا از لحاظ برنامه نویسی با زیرگراف خود تعامل داشته باشید.

The Graph

ناحیه زیربنایی

حال به بررسی عمیق تری می پردازیم تا درک کنیم که در ناحیه زیربنایی چه چیزی اتفاق افتاده است. ما یک پروژه Truffle با یک قرارداد Gravity.sol داشتیم که به طور ساده یک Gravatar را بر روی اتریوم ایجاد می کند. این قرارداد دو واقعه را صادر می کند:

NewGravatar وقتی یک Gravatar جدید ایجاد می شود.

UpdatedGravatar وقتی یک Gravatar موجود به روز رسانی می شود.

event NewGravatar(uint id, address owner, string displayName, string imageUrl);event UpdatedGravatar(uint id, address owner, string displayName, string imageUrl);

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

سال گذشته چه تعداد Gravatar ایجاد شده بودند؟

به طور متوسط هر روز چه تعداد Gravatar به روز رسانی می شود؟

۱۰ تصویر برجسته که همه Gravatar های ما را میزبانی می کنند، چه هستند؟

رایج ترین نام ها برای Gravatar ها چه هستند؟

بعضی از این پرسش ها لازم است که بر روی داده های کامل قرارداد از زمان نصب قرارداد اجرا شود و این از تفحص های عادی نسل سوم اینترنت ممکن نیست و داده های فهرست شده مورد نیاز هستند.

با استفاده از The Graph می توانید طرح هایی برای فهرست کردن این داده ها ایجاد کنید که در Data Store به حیات خود ادامه می دهند (در حال حاضر Postgres). حال ببینیم که چگونه این طرح ها ایجاد می شوند:

فایل های مهم

اجازه دهید اول نگاهی به subgraph.yaml بیاندازیم که همه طراحی ها را تعریف می کند:

اجازه دهید نگاهی به فیلد های مهم این فایل بیاندازیم:

dataSources: DataSources همه قرارداد های هوشمندی را که شما می خواهید پیگیری می کند (در مورد ما تنها یک قرارداد است).

همه فیلد های دیگر واضح هستند، پس اجازه دهید نگاهی به فیلدeventHandlers  بیاندازیم که طراحی های ما را تعریف می کند:

eventHandles: در این فیلد، ما طراحی هایمان را تعریف می کنیم. ما رویداد ها و عملکرد هایی را اضافه می کنیم که آن رویداد ها را مدیریت می کنند. به عنوان مثال ما در حال handleNewGravatar  تعریف برای رویداد  NewGravatar هستیم.

File: این فیلد فایل طراحی ما را خواهد داشت که شامل عملکرد های event handler می باشد که در مورد ما mapping.ts است.

 mapping.ts در جایی است که شما به پیاده سازی event handler ها می پردازید، این event handler ها هر زمانی که رویداد های Gravatar ما صادر شوند، اجرا خواهند شد و موجودیت ها را ایجاد کرده و آنها را انبارش می کنند.

می توانید ببینید که ما در حال وارد کردن دو فایل Gravity.ts وSchema.ts هستیم که هر دو فایل وقتی که ما yarn codegen را اجرا کنیم، ایجاد می شوند. این فایل ها محتوی type ها هستند که کار کردن با قرارداد ها، رویداد ها و موجودیت ها را آسان می کنند. ما همچنین یک schema.graphql داریم که شامل موجودیت ها خواهد بود.

type Gravatar @entity {
id: ID!
owner: Bytes!
displayName: String!
imageUrl: String!
}

فایل schema.ts ما با استفاده از اینschema.graphql  ایجاد می شود و فایل Gravity.ts ما بر اساس قرارداد هوشمندGravity.sol  ایجاد می شود.

اینها تعداد زیادی مفاهیم GraphQL هستند. می توان یک زیرگراف اصلی را با درک حداقلی از GraphQL ساخت.

ساخت یک زیرگراف برای برنامه غیر متمرکز خود

اگر شما در حال مدیریت یک برنامه غیر متمرکز هستید، احتمالا با این مشکل Data مواجه شده اید.

برای ساختن یک زیرگراف سفارشی برای برنامه غیر متمرکز خود ، لازم است که مراحل زیر را دنبال کنید:

نصب Graph-CLI و دیگر وابستگی ها (dependencies)

ایجاد یک subgraph.yaml

ایجاد یک svhema.graphql

ایجاد فایل های طرحواره

ایجاد یک فایل Mapping با event handler ها

فرمان های مفید

Graph-CLI فرمان های مفیدی را به معرض نمایش می گذارد که می توانید آنها را زیر package.json فایل کنید.

ما یک FOMO3d subgraph اصلی ساخته ایم، آن را بررسی کنید.

نتیجه گیری

بهترین ویژگیی که مردم هنوز نمی دانند این است که زیرساخت شبکه اینترنت نسل سوم برنامه های اینترنتی خودمختار را فعال می کند که می توانند بدون هیچ نوع تعمیر و نگهداری برای آینده ای قابل پیش بینی حفظ شوند.

نسل سوم شبکه اینترنت: بسازید، نصب کنید و نیازی به تعمیر و نگهداری نیست.

تمرکززدایی و به حداقل رساندن نیاز به اعتماد مشکل دشواری برای حل کردن است. تیم The Graph در تلاش برای انجام آن است و می خواهند بخش مهمی از زیرساخت برنامه غیر متمرکز را بسازند. اگر شما در حال ساختن یک برنامه غیر متمرکز مقیاس پذیر هستید، باید پروتکل The Graph را مورد توجه قرار دهید.

معرفی QuickNode

QuickNode در حال ساختن زیرساختی برای پشتیبانی از آینده شبکه اینترنت نسل سوم است. ما از ۲۰۱۷ با صد ها توسعه دهنده و شرکت کار کرده ایم و به ارتقای برنامه های غیر متمرکز و فراهم کردن نود های اتریوم با عملکرد بالا کمک کرده ایم. ما در چند ماه گذشته بر روی چیز جالبی کار کرده ایم و به زودی آن را راه اندازی خواهیم کرد.

 

تگ: اتریوم
اشتراک‌گذاریتوئیت

نوشته‌های مشابه

تحلیل تکنیکال بیت کوین و اتریوم
تحلیل تکنیکال

تحلیل تکنیکال قیمت بیت کوین (BTC) و اتریوم (ETH)؛ ۲۵ شهریور ۱۴۰۴

25 شهریور 1404 - 09:00
79
فیچر فرصت‌های سرمایه گذاری
تحلیل بازار

موج جدید سرمایه‌گذاری در ارزهای دیجیتال: بیت‌کوین، اتریوم و سولانا در مرکز توجه

24 شهریور 1404 - 23:00
162
ethereum
اخبار اتریوم

اتریوم در آستانه یک «سوپر سایکل» قرار دارد! پیش‌بینی تام لی از آینده بازار را بخوانید

24 شهریور 1404 - 21:30
1084
فیچر تحلیل اتر و بیت
اخبار اتریوم

چرا نسبت ETH/BTC با وجود رشد انفجاری اتریوم از سطح کلیدی ۰.۰۵ عبور نکرد؟

24 شهریور 1404 - 15:00
123
تحلیل تکنیکال قیمت بیت کوین (BTC) و اتریوم (ETH)؛ ۴ اسفند ۱۴۰۳
تحلیل تکنیکال

تحلیل تکنیکال قیمت بیت کوین (BTC) و اتریوم (ETH)؛ ۲۴ شهریور ۱۴۰۴

24 شهریور 1404 - 09:00
248
اتریوم ethereum-roadmap-3-events-major-milestones-shapella
اخبار اتریوم

اتریوم به دنبال آینده‌ای امن‌تر؛ نقشه راه جدید شبکه منتشر شد

23 شهریور 1404 - 17:00
93
اشتراک
اطلاع از
0 دیدگاه
جدید ترین
قدیمی ترین محبوب ترین
Inline Feedbacks
View all comments

آموزش

لیست کوین بیس
مقالات عمومی

راهنمای جامع لیست شدن دارایی‌های دیجیتال در صرافی کوین‌بیس

24 شهریور 1404 - 22:00
51
استیبل کوین USDH چیست؟ نخستین استیبل کوین بومی هایپرلیکویید
کریپتو پدیا

استیبل کوین USDH چیست؟ نخستین استیبل کوین بومی هایپرلیکویید

23 شهریور 1404 - 22:00
80
لینیا
کریپتو پدیا

بلاکچین لینیا (Linea) چیست؟ کالبدشکافی فنی یک zkEVM پیشرو

22 شهریور 1404 - 22:00
137
زیون
کریپتو پدیا

زیون (XION) چیست؟ طلوع عصر نامرئی بلاکچین و پذیرش انبوه در وب ۳

21 شهریور 1404 - 22:00
155
فیچر هوش مصنوعی گروک
مقالات عمومی

چطور از هوش مصنوعی گروک (Grok) برای ترید استفاده کنیم؟

21 شهریور 1404 - 20:00
1388
اسرار ناگفته
مقالات عمومی

اسرار ناگفته ساخت محصولات کریپتویی برای مصرف‌کننده: آنچه کسی به شما نگفته است

21 شهریور 1404 - 16:00
144

پیشنهاد سردبیر

تاخیر برداشت در اکسکوینو

بررسی مشکلات تاخیر برداشت ریالی و رمزارزی در صرافی اکسکوینو؛ دلایل، پیامدها و راهکارها

5 مرداد 1404 - 17:00
5772

کلاهبرداری با کیف پول چند امضایی چیست و چگونه از آن در امان بمانیم؟

حمله انتقال صفر (Zero-Transfer)؛ راهنمای کامل شناسایی و مقابله با تهدید کیف پول‌های رمزارزی

تاثیر تصویب قانون GENIUS بر ریسک فریز و مسدود شدن دارایی‌های تتر ایرانی‌ها؛ چه باید کرد؟

اشتباه ۶۰ هزار دلاری کاربر بیت کوین در پرداخت کارمزد؛ مراقب باشید این اشتباه را تکرار نکنید!

تسلیم یا کاپیتولاسیون (Capitulation) در کریپتو چیست؟ نشانه ترس یا فرصتی برای ورود به بازار؟

  • خانه
  • قیمت ارز
  • صرافی ها
  • ماشین حساب
No Result
مشاهده همه‌ی نتایج
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی

© 2025 - تمامی حقوق مادی و معنوی این وبسایت نزد میهن بلاکچین محفوظ است

سرویس‌ها
لیست قیمت ارزهای دیجیتال مقایسه قیمت صرافی‌ها مقایسه ویژگی صرافی‌ها ماشین حساب ارزهای دیجیتال مقایسه رمزارز‌ها
خبر و آموزش
اخبار آموزش ویدیو پیشنهاد سردبیر
میهن بلاکچین
درباره ما ارتباط با ما تبلیغات و همکاری تجاری قوانین و مقررات سیاست های حریم خصوصی فرصت های شغلی
تگ‌های پربازدید
قانون گذاری سرمایه‌ گذاری افراد معروف صرافی ارز دیجیتال دوج‌کوین بیت‌کوین استیبل کوین رمزارز در ایران پیش بینی بازار تکنولوژی بلاک چین اتریوم ‌کاردانو شیبا هک و کلاهبرداری
سرویس‌ها
لیست قیمت ارزهای دیجیتال مقایسه قیمت صرافی‌ها مقایسه ویژگی صرافی‌ها ماشین حساب ارزهای دیجیتال مقایسه رمزارز‌ها
خبر و آموزش
اخبار آموزش ویدیو پیشنهاد سردبیر
میهن بلاکچین
درباره ما ارتباط با ما تبلیغات و همکاری تجاری قوانین و مقررات سیاست های حریم خصوصی فرصت های شغلی
تگ‌های پربازدید
قانون گذاری سرمایه‌ گذاری افراد معروف صرافی ارز دیجیتال دوج‌کوین بیت‌کوین استیبل کوین رمزارز در ایران پیش بینی بازار تکنولوژی بلاک چین اتریوم ‌کاردانو شیبا هک و کلاهبرداری
میهن بلاکچین دست در دست، بی‌نهایت برای میهن

© 2025 - تمامی حقوق مادی و معنوی این وبسایت نزد میهن بلاکچین محفوظ است.