Сканер блоков (Blockchain explorer) своими руками: Зачем он нужен?

Сканер блоков (Blockchain explorer) своими руками: Зачем он нужен?

При разработке крипто кошелька вы столкнетесь с рядом проблем, и не являются очевидными. Не будем рассматривать сейчас проблемы, связанные генерацией адресов, подписью транзакций и другими вопросами, которые могут прийти в голову в первую очередь.

Давайте остановимся на простой и тривиальной на первый взгляд задаче - получении списка транзакций, связанных с определенным адресом. На первый взгляд уж этот простенький запрос не должен вызывать вопросов - в конце концов блокчейн ведь содержит именно большую базу данных транзакций, ведь так?


Не совсем. Если Bitcoin и его наследники (Litecoin, DASH, Docgecoin, etc) действительно являются по определению леджером транзакций, то вот Ethereum и производные от него - уже являются леджерами балансов, хотя и транзакции они хранить должны, как минимум в теории. 


Но вот что интересно, даже для Bitcoin адреса вы не сможете штатными средствами получить список транзакций, связанных с определенным адресом полностью, только входы (полученные адресом транзакции). С Ethereum все еще интереснее. Geth (go-ethereum) не позволяет штатными средствами получить транзакции вообще. Если Вам известен хеш транзакции - без проблем, если нет - то все, что вы можете узнать о адресе в блокчейне - это его баланс. 

Конечно это не будет большой проблемой, если все адреса сгенерированы вашим приложением, и ваш бакенд уже отслеживает состояние mempool и сканирует все новые блоки на предмет нужных транзакций - вы наверняка будете аккуратно конспектировать все операции, складывать их в базу данных и иметь к ним доступ в любое время. В случае Etherem и други блокчейнов, где механизм токенов реализован подобно стандарту ERC20 вы еще и получите все транзакции, связанные с вызовами смарт-контрактов (например отправку или получение ERC20 токенов)

Однако почти любое хорошее приложение-кошелек позволяет импортировать ключи и получить доступ к адресам, созданным в другой программе. Да, можно использовать подход, который взяли на вооружение создатели Exodus - просто “сгребать” все средства с импортируемого адреса на тот, что указан в приложении, на чем считать проблему закрытой. 

Но как тогда работает например популярный Metamask? Каким образом ему удается показать все транзакции даже для импортированных адресов? 

Собственно никакой особой магии они не используют. Для эксперимента - попробуйте добавить в MetaMask новую сеть, и внимательно изучите поля, которые нужно заполнить. Среди очевидных данных, таких как URL точки доступа, networkID, названия сети и символа валюты вам предложат заполнить необязательное поле - указать ссылку на blockexplorer. Вся информация получается через API с таких сервисов как infura.io и alchemy.com. Для Bitcoin похожий функционал обеспечивает blockhain.com/blockhain.info, большое количество сетей покрывает сервис blockchair.

Выходит для того, чтобы обеспечить наше приложение информацией достаточно подключится к какому то такому провайдеру и дело в шляпе? С одной стороны да. Однако не всегда такое решение будет лишено недостатков, и иногда эти недостатки могут быть критическими. Давайте пройдемся только по самым очевидным.

Во первых о какой бы то ни было конфиденциальности операций можно забыть сразу. Большая компания будет иметь доступ ко всем данным всех ваших клиентов и не известно с какими целями она эти данные будет использовать. Хорошо, если это будет всего лишь безобидная сборка bigdata для анализа рынка и получения инсайдерской информации при торговле. Но в перспективе такие данные могут стать достоянием скажем так, не совсем чистых на руку людей, Кстати совсем недавно Alchemy заявила, что будет регистрировать IP, с которых произведена транзакция. Уж если они официально заявили, что будут собирать данные о местоположении даже не своих клиентов а клиентов всех сервисов, которые пользуются их API - то можно с высокой степенью предположить, что они это уже активно делают. 

Второй аспект, не менее проблемный в перспективе - зависимость от чужого сервиса никак не может гарантировать, что условия обслуживания не поменяются. Например сервис решит ввести плату за подписку на API - и автор любого приложения, даже бесплатного будет вынужден думать, что с этим делать. Забросить приложение? Сделать его платным? Но напомню, криптокошелек - это хранилище криптовалюты, и пользователи такого приложения могут внезапно потерять доступ к своим сбережениям. А суммы могут быть значительными.

Продолжать этот список можно долго, но вывод будет один - во многих случаях куда рациональнее обеспечить свой бакенд, и развернуть свою инфраструктуру, которая позволит получить доступ к нужным данным.

Что для этого нужно, и как это реализовать - рассмотрим в следующей статье

Читайте также

33012021-01-05

Обзор особенностей проекта Matic Coin

Matic Network обещает обеспечить более простое взаимодействие между пользователями и децентрализованными финансовыми приложениями.

Обучение
56252021-01-12

Что такое арбитраж криптовалют и как на нем заработать?

Цена одного и того же актива на разных биржах может различаться, а значит можно купить его в одном месте и продать в другом с прибылью.

Обучение

Последние статьи из раздела Обучение

Свежее видео на канале

Выбор редакции

658482020-10-30

Топ 10 крипто кошельков в 2020 году

По мере роста популярности криптовалют растет и спрос на качественные и безопасные криптовалютные кошельки.

Кошельки
580592017-12-10

Bitcoin: пирамида или нет?

С января 2009 года, когда был сгенерирован первый генезиз-блок bitcoin-сети, прошло уже девять лет, но до сих пор всякого рода "эксперты" ломают копья в спорах: являются ли криптовалюты финансовой пирамидой или нет. Быстрый рост доходности bitcoin и прибыли тех, кто раньше стал участником этой системы, пугает схожестью с пирамидами 90-х.

Bitcoin
548222018-04-28

on-chain и off-chain управление: за и против

Чтобы понять важность управления блокчейном и дискуссии вокруг этого вопроса, сначала нужно определить что такое управление блокчейном, его роль и цели. Управление блокчейном в сфере криптовалют состоит из двух пунктов: правил протокола (кода) и экономических стимулов, на которых основана сеть.

Blockchain
430992021-05-08

Какие альткоины принесут своим держателям доход в 2021 году?

Мы решили помочь тем, кто хочет заработать на криптовалютах, но не располагает большими средствами, чтобы покупать монеты из первой пятерки рейтинга.

Альткоины
394742018-05-12

Эволюция человека и денег

Развитие биткойна и блокчейна началось приблизительно 70000 лет назад, когда хомо сапиенс превзошли свои биологические лимиты как вид. Это история, которая уходит глубоко корнями в эволюцию человечества.

Это интересно
284892024-02-03

Сканер блоков (Blockchain explorer) своими руками: Зачем он нужен?

При разработке крипто кошелька вы столкнетесь с рядом проблем, и не являются очевидными. Не будем рассматривать сейчас проблемы, связанные генерацией адресов, подписью транзакций и другими вопросами, которые могут прийти в голову в первую очередь.

Обучение, Bitcoin, Ethereum, Технологии