في نظام blockchain، تلعب آلة أوراكل دورًا حيويًا كجزء من البنية التحتية، حيث توفر المعلومات الخارجية للعقود الذكية على السلسلة. كجسر يربط العقود الذكية والعالم الخارجي للـ blockchain، تتمثل الوظيفة الرئيسية لآلة أوراكل في تزويد العقود الذكية بالبيانات.
على سبيل المثال، لنفترض أننا أنشأنا عقدًا ذكيًا على شبكة إيثيريوم يحتاج إلى الحصول على بيانات حجم تداول النفط الخام في يوم معين. نظرًا لأن العقد الذكي نفسه لا يمكنه الحصول مباشرة على هذه البيانات الواقعية خارج السلسلة، فسيكون من الضروري استخدام آلة أوراكل لتحقيق ذلك. في هذه الحالة، سيقوم العقد الذكي بكتابة حجم تداول النفط الخام للتاريخ المطلوب في سجل الأحداث. بعد ذلك، سيتم تشغيل عملية خارج السلسلة لمراقبة واشتراك في سجل الأحداث هذا. عند اكتشاف طلب في المعاملات، ستقوم هذه العملية من خلال تقديم معاملة على السلسلة، باستدعاء الطرق ذات الصلة في العقد، بتحميل معلومات حجم تداول النفط الخام للتاريخ المحدد إلى العقد الذكي.
! Chainlink (الجزء 1) من سلسلة Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
نظرة عامة على Chainlink
في مجال آلات أوراكل blockchain، تستحوذ Chainlink على أكبر حصة في السوق. Chainlink هو مشروع أوراكل لامركزي، والغرض الرئيسي منه هو تقديم بيانات العالم الحقيقي إلى blockchain بطريقة آمنة وموثوقة. استنادًا إلى المبادئ الأساسية لأوراكل، قامت Chainlink بإنشاء نظام بيئي حلقي جيد من خلال الحوافز الاقتصادية حول رمز LINK. تحتاج آلات أوراكل Chainlink إلى تحفيزها من خلال تحويل رموز LINK، وLINK هو عقد ERC677 على شبكة Ethereum. تتميز وظائف أوراكل التي تكتمل برمز LINK ERC677 بنمط الطلب/الاستجابة.
! Chainlink (الجزء 1) من سلسلة Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
آلية transferAndCall لرموز ERC677
عند تصميم إطار آلة أوراكل، كان الاعتبار الرئيسي لـ Chainlink هو كيفية دفع المستخدمين للرسوم للآلة أوراكل التي تقدم الخدمة. نظرًا لأن رموز ERC20 القياسية لا تلبي احتياجات الدفع مقابل تقديم الخدمة، اقترحت Chainlink معيار ERC677 المناسب لسيناريو خدمات الآلة أوراكل.
تضيف ERC677 طريقة transferAndCall على أساس معيار ERC20. تجمع هذه الطريقة بين الدفع وطلب الخدمة، مما يلبي احتياجات سيناريوهات أعمال آلة أوراكل. عند قيام المستخدم بإجراء تحويل transferAndCall، بالإضافة إلى تحويل ERC20، سيتم التحقق مما إذا كانت عنوان الاستلام هو عنوان عقد، وإذا كان الأمر كذلك، سيتم استدعاء طريقة onTokenTransfer لهذا العنوان.
من المهم أن نلاحظ أنه قبل طلب خدمة آلة أوراكل، يحتاج المستخدم أولاً إلى تحديد ما إذا كانت هذه الآلة موثوقة، لأن الآلة تحتاج إلى تحصيل رسوم مسبقة قبل تقديم الخدمة.
! Chainlink الجزء 1 من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
معالجة طلبات آلة أوراكل على السلسلة
عندما يستخدم مستهلكو آلة أوراكل طريقة transferAndCall لدفع الرسوم وطلب الخدمات، فإن طريقة onTokenTransfer في عقد الآلة الأوراكل ستقوم أولاً بمجموعة من الفحوصات الأمنية. تشمل هذه الفحوصات التحقق مما إذا كانت التحويلة من رمز LINK، وتحديد ما إذا كانت طول البيانات يتجاوز الحد، والتحقق من صحة محدد الوظيفة، وما إلى ذلك.
بعد اجتياز جميع فحوصات الأمان، سيتم استدعاء طريقة oracleRequest لعقد oracle عبر deleGatecall. ستولد هذه الطريقة requestId فريدة، وتحدد وقت انتهاء الصلاحية، وتخزن المعلومات ذات الصلة في خريطة commitments. أخيرًا، ستصدر حدث OracleRequest، والذي يحتوي على بيانات الطلب، بتنسيق تشفير CBOR (تمثيل كائن ثنائي مضغوط).
! Chainlink (الجزء 1) من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
استجابة العقدة خارج السلسلة
بعد أن يستمع العقد الخارجي لحدث OracleRequest، سيقوم بتحليل المعلومات المحددة للطلب، ومن ثم استدعاء واجهة برمجة التطبيقات للحصول على البيانات المطلوبة. بعد ذلك، سيقوم العقد باستدعاء طريقة fulfillOracleRequest لعقد الأوراكل، لتقديم البيانات على السلسلة.
تقوم طريقة fulfillOracleRequest أولاً بإجراء سلسلة من الفحوصات، بما في ذلك التحقق من صلاحيات المتصل، والتحقق من صلاحية الطلب، وما إلى ذلك. بعد اجتياز الفحص، تسجل المبلغ القابل للسحب، وتزيل هذا الطلب من خريطة الالتزامات، وتستدعي دالة رد الاتصال لعقد المتصل.
! Chainlink الجزء 1 من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
مثال آلة أوراكل للأسعار
كمثال على طريقة requestEthereumPrice في عقد TestnetConsumer المقدم من Chainlink، فإن هذه الطريقة تنفذ وظيفة الحصول على سعر تداول ETH/USD من واجهة برمجة التطبيقات المحددة. إنها تطلق الطلب عن طريق استدعاء طريقة sendChainlinkRequestTo، مما يؤدي إلى تنشيط طريقة onTokenTransfer في عقد الأوراكل.
بعد أن يحصل العقد الخارجي على معلومات الطلب، سيقوم باستدعاء API للحصول على بيانات الأسعار، ثم سيقوم بتقديم البيانات إلى السلسلة باستخدام طريقة fulfillOracleRequest. في النهاية، ستتم إعادة البيانات إلى عقد المستهلك من خلال دالة الاسترجاع.
بالنسبة للمطورين، إذا كانوا يحتاجون فقط إلى استخدام أسعار الأزواج الموجودة، يمكنهم استخدام خدمة Price Feed المقدمة من Chainlink مباشرة (أي AggregatorProxy). كل زوج تداول لديه خدمة Price Feed منفصلة، توفر العديد من طرق الاستعلام، بما في ذلك الحصول على دقة السعر، ووصف زوج التداول، وبيانات السعر الأخيرة، وغيرها.
في معظم سيناريوهات التطبيق، قد يحتاج العقد فقط إلى قراءة السعر الأخير، أي استدعاء طريقة latestRoundData. عادةً ما يتم توحيد دقة أسعار أزواج التداول التي يتم تسعيرها بالدولار الأمريكي إلى 8 أرقام عشرية، مما يبسط مشكلة معالجة دقة الرموز المختلفة.
! Chainlink (الجزء 1) من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 7
أعجبني
7
4
مشاركة
تعليق
0/400
SerumSquirter
· 07-23 08:30
بيانات الأسعار ليست رخيصة حقًا
شاهد النسخة الأصليةرد0
ShitcoinConnoisseur
· 07-21 00:45
link هو حبي الحقيقي، حسنًا؟
شاهد النسخة الأصليةرد0
MercilessHalal
· 07-21 00:30
link必ارتفع 等着جني المال
شاهد النسخة الأصليةرد0
DeFiDoctor
· 07-21 00:27
تهديد الفيروسات على البيانات الخارجية كبير، يُنصح بإجراء فحوصات دورية للعقدة
تحليل تقنية آلة أوراكل Chainlink: جسر يربط البلوكتشين بالعالم الحقيقي
تحليل تقنية آلة أوراكل: على سبيل المثال Chainlink
في نظام blockchain، تلعب آلة أوراكل دورًا حيويًا كجزء من البنية التحتية، حيث توفر المعلومات الخارجية للعقود الذكية على السلسلة. كجسر يربط العقود الذكية والعالم الخارجي للـ blockchain، تتمثل الوظيفة الرئيسية لآلة أوراكل في تزويد العقود الذكية بالبيانات.
على سبيل المثال، لنفترض أننا أنشأنا عقدًا ذكيًا على شبكة إيثيريوم يحتاج إلى الحصول على بيانات حجم تداول النفط الخام في يوم معين. نظرًا لأن العقد الذكي نفسه لا يمكنه الحصول مباشرة على هذه البيانات الواقعية خارج السلسلة، فسيكون من الضروري استخدام آلة أوراكل لتحقيق ذلك. في هذه الحالة، سيقوم العقد الذكي بكتابة حجم تداول النفط الخام للتاريخ المطلوب في سجل الأحداث. بعد ذلك، سيتم تشغيل عملية خارج السلسلة لمراقبة واشتراك في سجل الأحداث هذا. عند اكتشاف طلب في المعاملات، ستقوم هذه العملية من خلال تقديم معاملة على السلسلة، باستدعاء الطرق ذات الصلة في العقد، بتحميل معلومات حجم تداول النفط الخام للتاريخ المحدد إلى العقد الذكي.
! Chainlink (الجزء 1) من سلسلة Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
نظرة عامة على Chainlink
في مجال آلات أوراكل blockchain، تستحوذ Chainlink على أكبر حصة في السوق. Chainlink هو مشروع أوراكل لامركزي، والغرض الرئيسي منه هو تقديم بيانات العالم الحقيقي إلى blockchain بطريقة آمنة وموثوقة. استنادًا إلى المبادئ الأساسية لأوراكل، قامت Chainlink بإنشاء نظام بيئي حلقي جيد من خلال الحوافز الاقتصادية حول رمز LINK. تحتاج آلات أوراكل Chainlink إلى تحفيزها من خلال تحويل رموز LINK، وLINK هو عقد ERC677 على شبكة Ethereum. تتميز وظائف أوراكل التي تكتمل برمز LINK ERC677 بنمط الطلب/الاستجابة.
! Chainlink (الجزء 1) من سلسلة Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
آلية transferAndCall لرموز ERC677
عند تصميم إطار آلة أوراكل، كان الاعتبار الرئيسي لـ Chainlink هو كيفية دفع المستخدمين للرسوم للآلة أوراكل التي تقدم الخدمة. نظرًا لأن رموز ERC20 القياسية لا تلبي احتياجات الدفع مقابل تقديم الخدمة، اقترحت Chainlink معيار ERC677 المناسب لسيناريو خدمات الآلة أوراكل.
تضيف ERC677 طريقة transferAndCall على أساس معيار ERC20. تجمع هذه الطريقة بين الدفع وطلب الخدمة، مما يلبي احتياجات سيناريوهات أعمال آلة أوراكل. عند قيام المستخدم بإجراء تحويل transferAndCall، بالإضافة إلى تحويل ERC20، سيتم التحقق مما إذا كانت عنوان الاستلام هو عنوان عقد، وإذا كان الأمر كذلك، سيتم استدعاء طريقة onTokenTransfer لهذا العنوان.
من المهم أن نلاحظ أنه قبل طلب خدمة آلة أوراكل، يحتاج المستخدم أولاً إلى تحديد ما إذا كانت هذه الآلة موثوقة، لأن الآلة تحتاج إلى تحصيل رسوم مسبقة قبل تقديم الخدمة.
! Chainlink الجزء 1 من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
معالجة طلبات آلة أوراكل على السلسلة
عندما يستخدم مستهلكو آلة أوراكل طريقة transferAndCall لدفع الرسوم وطلب الخدمات، فإن طريقة onTokenTransfer في عقد الآلة الأوراكل ستقوم أولاً بمجموعة من الفحوصات الأمنية. تشمل هذه الفحوصات التحقق مما إذا كانت التحويلة من رمز LINK، وتحديد ما إذا كانت طول البيانات يتجاوز الحد، والتحقق من صحة محدد الوظيفة، وما إلى ذلك.
بعد اجتياز جميع فحوصات الأمان، سيتم استدعاء طريقة oracleRequest لعقد oracle عبر deleGatecall. ستولد هذه الطريقة requestId فريدة، وتحدد وقت انتهاء الصلاحية، وتخزن المعلومات ذات الصلة في خريطة commitments. أخيرًا، ستصدر حدث OracleRequest، والذي يحتوي على بيانات الطلب، بتنسيق تشفير CBOR (تمثيل كائن ثنائي مضغوط).
! Chainlink (الجزء 1) من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
استجابة العقدة خارج السلسلة
بعد أن يستمع العقد الخارجي لحدث OracleRequest، سيقوم بتحليل المعلومات المحددة للطلب، ومن ثم استدعاء واجهة برمجة التطبيقات للحصول على البيانات المطلوبة. بعد ذلك، سيقوم العقد باستدعاء طريقة fulfillOracleRequest لعقد الأوراكل، لتقديم البيانات على السلسلة.
تقوم طريقة fulfillOracleRequest أولاً بإجراء سلسلة من الفحوصات، بما في ذلك التحقق من صلاحيات المتصل، والتحقق من صلاحية الطلب، وما إلى ذلك. بعد اجتياز الفحص، تسجل المبلغ القابل للسحب، وتزيل هذا الطلب من خريطة الالتزامات، وتستدعي دالة رد الاتصال لعقد المتصل.
! Chainlink الجزء 1 من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
مثال آلة أوراكل للأسعار
كمثال على طريقة requestEthereumPrice في عقد TestnetConsumer المقدم من Chainlink، فإن هذه الطريقة تنفذ وظيفة الحصول على سعر تداول ETH/USD من واجهة برمجة التطبيقات المحددة. إنها تطلق الطلب عن طريق استدعاء طريقة sendChainlinkRequestTo، مما يؤدي إلى تنشيط طريقة onTokenTransfer في عقد الأوراكل.
بعد أن يحصل العقد الخارجي على معلومات الطلب، سيقوم باستدعاء API للحصول على بيانات الأسعار، ثم سيقوم بتقديم البيانات إلى السلسلة باستخدام طريقة fulfillOracleRequest. في النهاية، ستتم إعادة البيانات إلى عقد المستهلك من خلال دالة الاسترجاع.
بالنسبة للمطورين، إذا كانوا يحتاجون فقط إلى استخدام أسعار الأزواج الموجودة، يمكنهم استخدام خدمة Price Feed المقدمة من Chainlink مباشرة (أي AggregatorProxy). كل زوج تداول لديه خدمة Price Feed منفصلة، توفر العديد من طرق الاستعلام، بما في ذلك الحصول على دقة السعر، ووصف زوج التداول، وبيانات السعر الأخيرة، وغيرها.
في معظم سيناريوهات التطبيق، قد يحتاج العقد فقط إلى قراءة السعر الأخير، أي استدعاء طريقة latestRoundData. عادةً ما يتم توحيد دقة أسعار أزواج التداول التي يتم تسعيرها بالدولار الأمريكي إلى 8 أرقام عشرية، مما يبسط مشكلة معالجة دقة الرموز المختلفة.
! Chainlink (الجزء 1) من سلسلة Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(