Як налаштувати Теллор як ваш оракул
Коротке опитування: ваш протокол майже завершено, але йому потрібен оракул для доступу до позамережевих даних... Що ви будете робити?
(Базові) передумови
Ця стаття має на меті зробити доступ до каналу даних оракула якомога простішим і зрозумілішим. З огляду на це, ми робимо такі припущення щодо вашого рівня навичок програмування, щоб зосередитися саме на аспекті оракула.
Припущення:
- ви вмієте працювати в терміналі
- у вас встановлено 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).