كيفية إعداد تيلور كأوراكل خاص بك
اختبار سريع: البروتوكول الخاص بك على وشك الانتهاء، ولكنه يحتاج إلى أوراكل للوصول إلى بيانات خارج السلسلة... ماذا تفعل؟
متطلبات أساسية (بسيطة)
يهدف هذا المنشور إلى جعل الوصول إلى موجز أوراكل بسيطًا ومباشرًا قدر الإمكان. ومع ذلك، فإننا نفترض ما يلي حول مستوى مهارتك في البرمجة للتركيز على جانب الأوراكل.
الافتراضات:
- يمكنك التنقل في الوحدة الطرفية
- لديك npm مثبتًا
- أنت تعرف كيفية استخدام npm لإدارة التبعيات
تيلور هو أوراكل حي ومفتوح المصدر جاهز للتنفيذ. دليل المبتدئين هذا موجود هنا لعرض مدى سهولة البدء والعمل مع تيلور، مما يوفر لمشروعك أوراكل لامركزي بالكامل ومقاوم للرقابة.
نظرة عامة
تيلور هو نظام أوراكل حيث يمكن للأطراف طلب قيمة نقطة بيانات خارج السلسلة (على سبيل المثال، BTC/USD) ويتنافس المراسلون لإضافة هذه القيمة إلى بنك بيانات على السلسلة، يمكن الوصول إليه بواسطة جميع عقود إيثيريوم الذكية. يتم تأمين المدخلات إلى بنك البيانات هذا بواسطة شبكة من المراسلين الذين يمتلكون حصة تخزين. يستخدم تيلور آليات حوافز الكريبتو الاقتصادية، حيث يكافئ عمليات إرسال البيانات الصادقة من قبل المراسلين ويعاقب الجهات الفاعلة السيئة من خلال الإصدار للرمز المميز الخاص بتيلور، Tributes (TRB)، وآلية النزاع.
في هذا البرنامج التعليمي سنستعرض:
- إعداد مجموعة الأدوات الأولية التي ستحتاجها للبدء والعمل.
- استعراض مثال بسيط.
- سرد عناوين شبكة اختبار للشبكات التي يمكنك حاليًا اختبار تيلور عليها.
UsingTellor
أول شيء ستحتاج إلى القيام به هو تثبيت الأدوات الأساسية اللازمة لاستخدام تيلور كأوراكل خاص بك. استخدم هذه الحزمة (opens in a new tab) لتثبيت عقود مستخدم تيلور:
npm install usingtellor
بمجرد التثبيت، سيسمح هذا لعقودك بوراثة الوظائف من العقد 'UsingTellor'.
رائع! الآن بعد أن أصبحت الأدوات جاهزة، دعنا نمر بتمرين بسيط حيث نسترجع سعر بيتكوين:
مثال BTC/USD
قم بوراثة العقد UsingTellor، مع تمرير عنوان تيلور كوسيطة مُنشئ:
إليك مثال:
import "usingtellor/contracts/UsingTellor.sol";
contract PriceContract is UsingTellor {
uint256 public btcPrice;
//يتمتع هذا العقد الآن بإمكانية الوصول إلى جميع الدوال في UsingTellor
constructor(address payable _tellorAddress) UsingTellor(_tellorAddress) public {}
function setBtcPrice() public {
bytes memory _b = abi.encode("SpotPrice",abi.encode("btc","usd"));
bytes32 _queryId = keccak256(_b);
uint256 _timestamp;
bytes _value;
(_value, _timestamp) = getDataBefore(_queryId, block.timestamp - 15 minutes);
btcPrice = abi.decode(_value,(uint256));
}
}
للحصول على قائمة كاملة بعناوين العقود، راجع هنا (opens in a new tab).
لسهولة الاستخدام، يأتي مستودع UsingTellor مع إصدار من عقد Tellor Playground (opens in a new tab) لتسهيل الدمج. انظر هنا (opens in a new tab) للحصول على قائمة بالوظائف المفيدة.
للحصول على تنفيذ أكثر قوة لأوراكل تيلور، تحقق من القائمة الكاملة للوظائف المتاحة هنا (opens in a new tab).