Як налаштувати Tellor як оракул
Експрес-тест: ваш протокол майже готовий, але йому потрібен оракул, щоб отримати доступ до даних поза ланцюгом... Що ви робите?
(Бажані) попередні вимоги
Ця стаття має на меті зробити доступ до потоку даних оракула якомога простішим і зрозумілішим. Водночас, щоб зосередитися на аспекті оракула, ми припускаємо, що ви володієте певним рівнем навичок програмування.
Припущення:
- ви вмієте працювати з терміналом
- у вас встановлений npm
- ви знаєте, як використовувати npm для керування залежностями
Tellor — це діючий оракул з відкритим кодом, готовий до впровадження. Цей посібник для початківців демонструє, наскільки легко можна почати роботу з Tellor, забезпечивши ваш проєкт повністю децентралізованим і стійким до цензури оракулом.
Огляд
Tellor — це система оракула, у якій сторони можуть запитувати значення точки даних поза ланцюгом (наприклад, BTC/USD), а репортери змагаються за додавання цього значення до банку даних у ланцюзі, доступного для всіх смарт-контрактів Ethereum. Дані, що надходять до цього банку даних, захищені мережею репортерів, які зробили стейкінг. Tellor використовує криптоекономічні механізми стимулювання, винагороджуючи репортерів за чесне подання даних і караючи зловмисників через випуск токена Tellor, Tributes (TRB), та механізм оскарження.
У цьому посібнику ми розглянемо:
- Налаштування початкового набору інструментів, який знадобиться для початку роботи.
- Розгляд простого прикладу.
- Перелік адрес тестових мереж, де наразі можна тестувати Tellor.
UsingTellor
Перше, що вам потрібно зробити, це встановити основні інструменти, необхідні для використання Tellor як вашого оракула. Використовуйте цей пакет (opens in a new tab), щоб встановити контракти користувача Tellor:
npm install usingtellor
Після встановлення це дозволить вашим контрактам успадковувати функції контракту «UsingTellor».
Чудово! Тепер, коли інструменти готові, давайте виконаємо просту вправу, у якій ми отримаємо ціну біткоїна:
Приклад BTC/USD
Успадкуйте контракт UsingTellor, передаючи адресу Tellor як аргумент конструктора:
Ось приклад:
1import "usingtellor/contracts/UsingTellor.sol";23contract PriceContract is UsingTellor {4 uint256 public btcPrice;56 //Цей контракт тепер має доступ до всіх функцій в UsingTellor78constructor(address payable _tellorAddress) UsingTellor(_tellorAddress) public {}910function setBtcPrice() public {11 bytes memory _b = abi.encode("SpotPrice",abi.encode("btc","usd"));12 bytes32 _queryId = keccak256(_b);1314 uint256 _timestamp;15 bytes _value;1617 (_value, _timestamp) = getDataBefore(_queryId, block.timestamp - 15 minutes);1819 btcPrice = abi.decode(_value,(uint256));20 }21}Показати всеПовний перелік адрес контрактів дивіться тут (opens in a new tab).
Для зручності використання репозиторій UsingTellor постачається з версією контракту Tellor Playground (opens in a new tab) для простішої інтеграції. Перелік корисних функцій дивіться тут (opens in a new tab).
Для більш надійної реалізації оракула Tellor, перегляньте повний список доступних функцій тут (opens in a new tab).
Останні оновлення сторінки: 21 жовтня 2025 р.