Chainlink Connect to API. Часть 1
Сначала немного истории, почему эта часть обучения вызвала некоторую проблему у меня.
Я смотрел несколько обучающих видео по этой теме, и информация в них оказалась слегка устаревшей. В них показана навигация по документации chainlink, их маркет для узлов и выполнения задач, примеры кода - все это уже переделано и обновлено. И все соотнести с новыми примерами было прям задачей для меня.
Как это все работает на chainlink?
Сейчас есть два способа работы с API:
1) Создать свой
external adapter (далее Внешний Адаптер), куда определить нужное вам API. И уже оттуда получать информацию в свой смарт контракт;
2)
Использовать доступные Адаптеры на узлах Chainlink, которые, при подключении вашего контракта, могут выдать информацию, на которую они преднастроены. Другими словами, вам нужно узнать узел, понять, что он отдает и нужно ли это, и тогда подключать его.
К слову сказать, раньше там был поиск по, так называемым, шаблонам работ на различных узлах. Вы могли в своем контракте прописать любую ссылку API стороннего ресурса и отправить ее на выполнение запроса на понравившейся узел. Так... это сложно звучит... Попробую схематически объяснить.
У вас есть смарт контракт, и вы хотите получать в него текущий курс биткойна. Далее вам нужно найти сторонний ресурс, например, биржу обмена валют, у которого на сайте есть API.
Грубо говоря, API это, чаще всего, обычный json файл с необходимой информацией, который можно посмотреть по ссылке. Вот
пример по ссылке.
Как было раньше:
Вы заходите на
маркет chainlink, выбираете узел, в своем контракте указываете параметры этого узла (токен, оракул и тип работы), вставляете ссылку и деплоите. После этого, вы можете вызвать функцию в своем контракте и получить данные с API ссылки.
Как сейчас:
Первый вариант.
Лавочку прикрыли. На маркете теперь есть официальные узлы, которые могут предоставить вам данные с API, которые уже установлены в них. Доступные узлы и информацию
можно посмотреть тут.
Если хотите найти другой узел для выполнения вашего API, chainlink говорит, что можно зайти на их
Дискорд канал и попросить кого-нибудь из сообщества сделать это.
Я зашел на этот канал, но выглядит он как-то глухо. Не, люди там есть, но в основном просто висят вопросы или новости.
Второй вариант.
Вы пишите свой адаптер, где указываете API ссылку и информацию, которую хотите получить. Далее, вам нужно развернуть и настроить свой узел на chainlink для обработки этого адаптера. И уже там появится вся необходимая информация для контракта, типа jobId, oracle, tokenId и т.д.
Мы разберем код и контракта для отправки запроса и пример создания адаптера. Но уходить в разработку узла и его настройку я просто не хочу. Тут уже нужны знания не сколько разработчика смарт контрактов, сколько каких-то инженерных, и копаться в этом пока не вижу смысла. Но видео по этой теме скину, на случай, если сами захотите разобраться.
#chainlink #api #adapter