Jak skonfigurować Tellor jako swoją wyrocznię
Szybki test: Twój protokół jest już prawie gotowy, ale potrzebuje wyroczni, aby uzyskać dostęp do danych pozałańcuchowych... Co robisz?
(Miękkie) Wymagania wstępne
Ten post ma na celu uczynienie dostępu do danych z wyroczni tak prostym i bezpośrednim, jak to tylko możliwe. Biorąc to pod uwagę, przyjmujemy następujące założenia dotyczące Twojego poziomu umiejętności programistycznych, aby skupić się na aspekcie wyroczni.
Założenia:
- potrafisz poruszać się po terminalu
- masz zainstalowany npm
- wiesz, jak używać npm do zarządzania zależnościami
Tellor to działająca wyrocznia o otwartym kodzie źródłowym (open-source), gotowa do wdrożenia. Ten przewodnik dla początkujących ma na celu pokazanie, z jaką łatwością można rozpocząć pracę z Tellor, zapewniając swojemu projektowi w pełni zdecentralizowaną i odporną na cenzurę wyrocznię.
Przegląd
Tellor to system wyroczni, w którym strony mogą zażądać wartości pozałańcuchowego punktu danych (np. BTC/USD), a raportujący rywalizują o dodanie tej wartości do banku danych onchain, dostępnego dla wszystkich inteligentnych kontraktów Ethereum. Dane wejściowe do tego banku danych są zabezpieczone przez sieć stakujących raportujących. Tellor wykorzystuje kryptoekonomiczne mechanizmy motywacyjne, nagradzając uczciwe przesyłanie danych przez raportujących i karząc złych aktorów poprzez emisję tokena Tellor, Tributes (TRB), oraz mechanizm rozstrzygania sporów.
W tym samouczku omówimy:
- Konfigurację początkowego zestawu narzędzi, którego będziesz potrzebować, aby zacząć pracę.
- Przejście przez prosty przykład.
- Wypisanie adresów w sieci testowej dla sieci, w których możesz obecnie testować Tellor.
UsingTellor
Pierwszą rzeczą, którą będziesz chciał zrobić, jest zainstalowanie podstawowych narzędzi niezbędnych do używania Tellor jako Twojej wyroczni. Użyj tego pakietu (opens in a new tab), aby zainstalować kontrakty użytkownika Tellor (Tellor User Contracts):
npm install usingtellor
Po zainstalowaniu pozwoli to Twoim kontraktom dziedziczyć funkcje z kontraktu 'UsingTellor'.
Świetnie! Teraz, gdy masz już gotowe narzędzia, przejdźmy przez proste ćwiczenie, w którym pobierzemy cenę Bitcoina:
Przykład BTC/USD
Odziedzicz kontrakt UsingTellor, przekazując adres Tellor jako argument konstruktora:
Oto przykład:
import "usingtellor/contracts/UsingTellor.sol";
contract PriceContract is UsingTellor {
uint256 public btcPrice;
//Ten kontrakt ma teraz dostęp do wszystkich funkcji w 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));
}
}
Pełną listę adresów kontraktów znajdziesz tutaj (opens in a new tab).
Dla ułatwienia użytkowania, repozytorium UsingTellor zawiera wersję kontraktu Tellor Playground (opens in a new tab) w celu łatwiejszej integracji. Zobacz tutaj (opens in a new tab), aby uzyskać listę przydatnych funkcji.
Aby uzyskać bardziej solidną implementację wyroczni Tellor, sprawdź pełną listę dostępnych funkcji tutaj (opens in a new tab).