Часть 1 из серии публикаций о данных и машинном обучении на данных блокчейна

Если вы новичок в изучении блокчейна, я рекомендую прочитать введение вроде этого: https://www.geeksforgeeks.org/blockchain-technology-introduction/ Мое сообщение предполагает, что читатель имеет базовое представление о том, как работают блокчейны.

gm!

(это «доброе утро» в крипто-кругах)

Каждый день я вижу десятки твитов о блокчейне, NFT, web3, криптографии и т. Д. Многие будут касаться потенциала, технологий и ажиотажа. Другие укажут на мошенничество, отсутствие правил и, в общем, на ажиотаж. Как и многие другие горячие темы, поляризация мнений кажется очевидной. Вы либо полностью участвуете в криптовалютном поезде, либо отклоняете его как мошенничество в духе Звездного реестра.

Почему

Так зачем исследовать данные блокчейна?

Эдвард Деминг сказал:

"На Бога уповаем.

Все остальные должны предоставить данные ».

На мой взгляд, это касается как профессионалов, так и противников криптографии. Чтения о новых технологиях, чьи преимущества включают данные, которые легко доступны и неизменны, было достаточно, чтобы заинтересовать меня, но критики криптовалюты могут быть правы. Давайте углубимся в данные и посмотрим, что мы найдем. Мы начнем с хорошо известного примера NFT или невзаимозаменяемого токена - транзакций для CryptoPunks, которые находятся в блокчейне Ethereum.

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

Где

Поскольку доступ к данным блокчейна является основным предметом обсуждения системы блокчейнов, я был удивлен, обнаружив, что получить csv для подмножества транзакций из блокчейна оказалось не так просто, как я ожидал. *

Можно установить web3.py и напрямую запросить блокчейн, но по состоянию на 18.10.21 при написании этого bitinfocharts.com показывает, что размер блокчейна Ethereum превышает 345 ГБ. Казалось, нет необходимости загружать всю цепочку блоков Ethereum, когда я хотел посмотреть только на небольшое подмножество транзакций, которые произошли с ней.

Вместо этого я исследовал 5 сервисов, которые предоставляют варианты для запроса данных Ethereum. Они есть:

  1. Etherscan.io
  2. Thegraph.com
  3. Дюна Аналитика
  4. Bitquery.io
  5. Флипсайд Крипто

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

  • Не требуется криптокошелек. Подобно тому, как раздражает необходимость вводить номер кредитной карты при подписке на бесплатную пробную версию, мне не было никакого интереса проходить шаги по настройке кошелька. Возможно, когда-нибудь наличие криптовалютного кошелька (или нескольких кошельков) будет таким же повсеместным, как наличие адреса электронной почты. А пока я просто хотел получить доступ к данным.
  • Это должно быть бесплатно. Запись в блокчейн требует затрат, но чтение / просмотр блокчейна бесплатны, и, поскольку я новичок в изучении этого пространства данных, я не хотел накапливать большие расходы, даже не зная, получу ли я данные, которые я хотел.
  • Он должен использовать язык, который знает большинство специалистов по данным, например SQL.
  • Он должен выводить данные в формате CSV или API для дальнейшего использования в задачах машинного обучения.
  • Хотя это и не обязательно, игровая площадка для тестирования и просмотра результатов запросов очень полезна, особенно если вы новичок и не знаете, что делаете (привет!). Подключение к API только для того, чтобы узнать, что ваш набор данных пуст, не вызывает разочарования.

Итак, давайте рассмотрим наши варианты и их соответствие критериям.

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

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

Dune.xyz - потрясающая платформа для аналитики данных блокчейна, со многими общедоступными запросами людей, которые пишут SQL намного лучше, чем я. Результатом запросов Dune могут быть графики или информационные панели, но только платные пользователи могут выводить в CSVS, и никаких API не предлагается.

И Flipside Crypto, и Thegraph.com заслуживают дальнейшего изучения для запроса данных блокчейна.

Thegraph.com требует криптокошелька, если вы обращаетесь к их службе Subgraphs, но если вы обращаетесь к устаревшим данным через их размещенную службу, вам не нужно подключать кошелек. Согласно их документам, хотя размещенная служба в конечном итоге больше не будет поддерживаться, она все еще будет существовать какое-то время. Thegraph на самом деле использует graphql, как bitquery.io, но их примеры запросов сделали их сервис доступным, несмотря на это.

Flipside Crypto требует входа в систему с адресом электронной почты и паролем и настроен для предоставления вознаграждений (обычно в форме крипто-токенов) за выполнение задач аналитики данных блокчейна. Однако меня больше всего впечатлило то, как они позволяют либо загрузить CSV результатов запроса, либо получить доступ к данным результатов через API.

Что

Что мы будем использовать для исследования Flipside Crypto и Thegraph.com? Как упоминалось ранее, мы будем запрашивать блокчейн Ethereum для транзакций продажи CryptoPunks.

CryptoPunks - это портреты размером 24x24 пикселей, которые изначально были предложены Larva Labs бесплатно в июне 2017 года. Единственная стоимость, связанная с ними, заключалась в плате за газ, необходимой для записи транзакции в блокчейн и «востребования» одного из 10 000 панков. В то время плата за газ составляла всего 11 центов.

После своего неблагоприятного начала популярность крипто-панков резко возросла в конце 2020 и 2021 годов. Сейчас цены на панки колеблются от 30 тысяч до 10 миллионов долларов. (Https://techcrunch.com/2021/04/08/the-cult-of-cryptopunks)

Насколько я понимаю, CryptoPunks, похоже, являются OG NFT, которые проложили путь для CryptoKitties, BoredApeYachtClubs и многих других NFT, которые последовали за ними.

Как

Теперь, когда мы знаем, на что смотрим, почему и где это найти, как получить доступ к данным?

Флипсайд Крипто

  1. Войдите в свою учетную запись на app.flipsidecrypto.com, затем нажмите кнопку «Новый» в правом верхнем углу экрана, а затем нажмите «Новый запрос».
  2. В левой части экрана есть раскрывающееся меню, которое позволяет вам выбирать из блокчейнов, доступных для запроса на Flipside.
  3. Нажмите на Ethereum, чтобы увидеть таблицы, которые вы можете запросить в этой цепочке блоков.
  4. Щелкните небольшую таблицу avi рядом с одним из имен таблиц, чтобы получить список столбцов в этой таблице.
  5. Введите свой SQL-запрос в среднее окно.
  6. Нажмите «Выполнить» и сразу же получите ответ о том, сработал ваш запрос или нет!

Для начала я рекомендую попробовать простой запрос, чтобы лучше понять, что это за поля и по каким критериям вы можете выполнять фильтрацию. Вот пример того, как я выбрал 3 столбца (имя_контракта, адрес_контракта и отметка времени_блока) из таблицы ethereum.events_emitted, ограничив мои результаты до 10:

Contract_address - это ссылка на расположение 42-значного шестнадцатеричного адреса фактического контракта токена, который управляет логикой токенов. Для Cryptopunks адрес контракта - «0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB». Этот адрес не изменится, и на него будут ссылаться каждый раз, когда происходит транзакция CryptoPunks. Адреса контрактов можно найти с помощью Etherscan.io для поиска NFT или токена по имени или путем поиска токена в Google.

Примечание Flipside Crypto - в то время как адреса контрактов нигде не чувствительны к регистру, на Flipside все адреса контрактов находятся в нижнем регистре. Убедитесь, что вы либо изменили адреса контрактов, которые вы копируете / вставляете, либо заключили их в SQL-команду lower (), чтобы спастись от разочарования, связанного с пустым набором данных результата!

Теперь давайте займемся поиском транзакций продажи CryptoPunks. ВСЕ транзакции (включая предложенные ставки, отозванные ставки, переводы и т. Д.) Записываются в блокчейн, но меня интересуют только покупки, поэтому я отфильтровал по имени события «PunkBought».

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

Мой SQL-запрос для Flipside Crypto:

select *
from ethereum.events_emitted
WHERE contract_address = lower('0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB')
  AND event_name = 'PunkBought'
  AND TX_SUCCEEDED = 'TRUE'
LIMIT 100000

Когда были отображены мои результаты, я нажал кнопку «API», убедился, что он содержит данные, которые я ожидал, затем скопировал и вставил URL-адрес API для использования в моем коде, который мы увидим после следующего раздела.

Thegraph.com

Используя этот URL: https://thegraph.com/hosted-service/subgraph/itsjerryokolo/cryptopunks?query=Example%20query, мы можем увидеть пример того, как запрашивать определенные транзакции блокчейна, связанные с CryptoPunks.

  1. На правой панели находится список схем, доступных в этом подграфе.
  2. Щелкните схему «Продажа», чтобы просмотреть столбцы, доступные в этой таблице.
  3. Используя пример запроса на левой панели в качестве руководства, перепишите запрос, чтобы просмотреть всю доступную информацию в схеме продажи (см. Запрос ниже).
  4. Затем нажмите фиолетовую кнопку «play» на средней панели, и ваши результаты появятся на этой средней панели. Примечание. Thegraph ограничивает количество возвращаемых результатов 1000, поэтому этот набор данных будет неполным, и нам придется либо загрузить несколько его версий, либо найти другой способ получить доступ к большему количеству данных с Thegraph.com.
{sales(first: 1000){
    id
    to {
      id
    }
    amount
    from {
      id
    }
    nft {
      id
    }
    timestamp
    type
    contract {
      id
    }}}

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

Теперь, когда у нас есть рабочие запросы для обоих сервисов, давайте подключимся к ним с помощью записной книжки Google Colab и перенесем данные в фреймы данных для исследовательского анализа и, в конечном итоге, для обнаружения аномалий. (Осторожно, спойлеры!)

Использование Flipside Crypto:

Используя Thegraph.com:

Это все для части 1. Во второй части исследуются сами данные транзакции CryptoPunks. Увидимся позже!

gn.

* ПРИМЕЧАНИЕ. Доступны некоторые уже существующие csv данных Cryptopunks, в том числе тот, который был добавлен, когда я исследовал этот пост: https://www.kaggle.com/tunguz/cryptopunks

Вы также можете найти данные транзакций криптопанков до 30.12.2020 в этом наборе данных, предоставленном Omni Analytics для их Learning Data Science на блокчейне Ethereum: https://github.com/Omni-Analytics-Group/eth- курс по науке о данных

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