# Как разрабатывать приложения с использованием Blockscout: основы **Published by:** [Denis Skripnik](https://paragraph.com/@denis_skripnik/) **Published on:** 2024-03-31 **URL:** https://paragraph.com/@denis_skripnik/kak-razrabatyvat-prilozheniya-s-ispolzovaniem-blockscout-osnovy ## Content Как разрабатывать приложения с использованием Blockscouthttps://t.me/blind_devВводныеЯзык - Javascript (node.js)На примере Optimism.Ищем блок-эксплорер в нужном блокчейнеИдём на https://blockscout.com/"Use the Explorer":"View all":И выбираете (можно в том числе отфильтровать). Я выберу Optimism, нажав по "Blockscout explorer":Смотрим в адресную строку. И после слеша добавляем api-docs. Должно получиться что-то типа https://optimism.blockscout.com/api-docsСуществует и вариант 2: нажимаем на главной официального сайта "Visit the docs" и разворачиваем "API":Тут даже больше вариантов, например, GraphQL:Но мы будем работать с REST API:Тут дан пример Ethereum...Работа с REST API Blockscout OptimismПереходим: https://optimism.blockscout.com/api-docsИ выбираем интересное нам. Например, хотим получать текущий блок в сети... Тогда открываем "get ​/blocks":"Try it out":Можете заполнить поле типа, но я оставлю пустым, и кликну по "Execute":Есть и вывод в удобном формате:В "Request URL" можете скопировать Url. У меня это https://optimism.blockscout.com/api/v2/blocks?type=block%20%7C%20uncle%20%7C%20reorg:Обратите на height внимание - это номер блока... Допустим, также хочу узнать транзакции по блоку. Жму "get ​/blocks​/{block_number_or_hash}​/transactions":Вставляю и "Execute":Содержимое:Request URL https://optimism.blockscout.com/api/v2/blocks/118150735/transactionsПишем кодВ папке с проектом как всегда npm init, заполняем данными и npm i axiosДалее создаём, открываем js файл и заполняем кодом. Я ниже напишу его с комментариями, чтоб было понятно, а пока вот скрин:Код: // Подключаем axios const axios = require('axios'); // Основная функция: main async function main() { // вызываем url с блоком:const res = await axios.get('https://optimism.blockscout.com/api/v2/blocks?type=block%20%7C%20uncle%20%7C%20reorg');// Получаем массив и первый его элемент: const block = res.data.items[0]; // Если такого элемента нет, завершаем функцию, не возвращая ничего. if (typeof block === 'undefined') return; // Выводим на экран номер и хеш блока: console.log(`Block number: ${block.height}, hash: ${block.hash}`); // Получаем транзакции по блоку const page = await axios.get(`https://optimism.blockscout.com/api/v2/blocks/${block.height}/transactions\`); // Получаем список транзакций const txs = page.data.items; // Переводим в строку и выводим: console.log(txs); } // закрываем код функции.setInterval(main, 3000); // вызываем функцию раз в 3 секунды.Можно было бы делать цикл по блокам с проверками и так далее, но решил вам показать упрощённый вариант, который смогут понять многие, ну или хотя бы который не будет напрягать... Пример отображения результатов:ВсёС вами был незрячий программист и автор обзоров. Подписывайтесь на https://t.me/blind_dev - здесь новости по моим разработкам и новые статьи. Благодарю за внимание, и прошу распространять обзор. Также буду рад донатам в виде минтов… ## Publication Information - [Denis Skripnik](https://paragraph.com/@denis_skripnik/): Publication homepage - [All Posts](https://paragraph.com/@denis_skripnik/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@denis_skripnik): Subscribe to updates ## Optional - [Collect as NFT](https://paragraph.com/@denis_skripnik/kak-razrabatyvat-prilozheniya-s-ispolzovaniem-blockscout-osnovy): Support the author by collecting this post - [View Collectors](https://paragraph.com/@denis_skripnik/kak-razrabatyvat-prilozheniya-s-ispolzovaniem-blockscout-osnovy/collectors): See who has collected this post