Блокчейн делает данные общедоступными для всех, однако доступ к ним может быть несколько затруднен.
В этом блоге я расскажу, как делать API-запросы к блокчейну на примере Avalanche.
Большая часть функций API Avalanche требует от вас доступа к разрешениям каждого узла или запуска собственного узла, который в настоящее время имеет стартовый взнос в размере 2 000 AVAX или $126 000.
Для разработчиков, желающих получить доступ к данным Avalanches on-chain без необходимости создания собственного узла, команда Avalanche предоставляет публичную конечную точку для выполнения api-запросов.
Для этой демонстрации мы запросим последний блок из цепочки C Avalanche.
Поскольку C-Chain является экземпляром виртуальной машины Ethereum Virtual Machine powered, вы можете запрашивать практически ту же информацию, что и с помощью GETH в Ethereum:
Давайте начнем
Чтобы упростить задачу, мы сначала запросим последний блокчейн curl. Используя первую ссылку выше, мы видим, что можем запросить информацию из C-цепочки, используя
.
Просматривая eth execution-apis по второй ссылке, мы можем использовать eth_getBlockByNumber
для получения данных о последнем блоке.
Сложив все это вместе, мы получим следующий запрос curl:
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method":"eth_getBlockByNumber",
"params":["latest", false]
}' -H 'content-type:application/json;' https://api.avax.network/ext/bc/C/rpc
Если вы откроете терминал, вставите и введете эту команду, вы должны получить ответ, похожий на этот:
Поздравляем! Вы только что сделали запрос к блокчейну Avalanche.
Запрос Avalanche с помощью HTTP Postman
Если вы предпочитаете http-запросы, мы можем сделать тот же запрос с помощью postman:
Вставьте ссылку и тело запроса в Postman, как на скриншоте выше, затем нажмите Send.
Вы получите ответ, выглядящий следующим образом:
Как и раньше, мы можем увидеть стоимость последнего блока, высоту, хэши транзакций и многое другое.
Мы также можем использовать Axios
await axios.post(postUrl, {
"jsonrpc": "2.0",
"id": 1,
"method": "eth_getBlockByNumber",
"params": ["latest", false]
})
.then((res: any) => {
console.log("AVAX BLOCK DATA: ", res.data.result)
})
.catch((err: any) => {
console.log("err: ", err.response)
return err
})
Как только вы освоитесь, запрос цепочек Avalanche и Ethereum будет довольно простым, а использование общедоступных API позволит нам сэкономить много ресурсов.