В этой статье мы разберем транзакции биткоина и научимся очень быстро парсить RawTX из сети блокчейн в папку Google Drive все это поможет нам лучше понять, как работает транзакции биткоина и каково все её содержимое в сети блокчейн.
Для начала нам нужно знать, что все транзакции биткоина хранятся в [txid].

txid - это идентификатор транзакции, хранящиеся в блокчейне биткоина, RawTX хранится в форме двойного хеширования.

Это означает, что RawTX дважды прошла через алгоритм SHA256, чтобы получить хэш транзакции, который мы видим в блокчейне.

Например, транзакция с таким хешем: d76641afb4d0cc648a2f74db09f86ea264498341c49434a933ba8eef9352ab6f

Транзакции в блокчейне биткоина хранится в форме двойного хеширования:

SHA256(SHA256(0100000001f2068914e2fea859cacd8df990daf4008f11296b3cb953794051147a265d850a000000008b483045022043784344e1e0cb498c1d73b4cee970fb0f9adf38b7891d0b1310fdb9cbc23929022100a734f4e97a05bd169a9f0eb296fc841fa57f8753db09869f8f6f8cc1232616d4014104d6597d465408e6e11264c116dd98b539740e802dc756d7eb88741696e20dfe7d3588695d2e7ad23cbf0aa056d42afada63036d66a1d9b97070dd6bc0c87ceb0dffffffff0100b864d9450000001976a9142df31a60b02cce392822c9a87198753578ef7de888ac00000000) = d76641afb4d0cc648a2f74db09f86ea264498341c49434a933ba8eef9352ab6f

Чтобы получить RawTX нам просто нужно ввести идентификатор транзакции [txid],

https://blockchain.info/rawtx/[txid]?format=hex

далее мы получим сведения в HEX формате это и есть наш заветный RawTX.

https://blockchain.info/rawtx/d76641afb4d0cc648a2f74db09f86ea264498341c49434a933ba8eef9352ab6f?format=hex

но как мы знаем в одном Биткоин Адресе могут быть очень много транзакции [txid] и это является основной проблемой на поиск которой уходит много времени, нагружает наш ПК и занимает много места на диске.

Чтобы решить эту проблему достаточно воспользоваться API сайта https://chain.so/api/

И так, мы указываем один Биткоин Адрес в bash-скрипт: getrawtx.sh «address» и дальше извлекаем весь предыдущий выходной хэш — все входы ссылаются на выход (UTXO)

UTXO - это (неизрасходованный выход транзакции) который будет потрачен на новом входе. Хэш-значение этого UTXO сохраняется в обратном порядке.

В результате весь неизрасходованный выход транзакции будет сохранен в файле: «RawTX.json»

Чтобы получить RawTX из Биткоин Адреса воспользуемся Bash-скриптом: getrawtx.sh

Parsing Blockchain in Google Drive
Parsing Blockchain in Google Drive

Как же парсить в папку Google Drive?

Для этого можно воспользоваться Терминалом для Google Colab [TerminalGoogleColab]

Ранее я записывал видеоинструкцию: «TERMINAL в Google Colab создаем все удобства для работ в GITHUB»

Давайте разберем в детали работу Bash-скрипта: getrawtx.sh

Bash-скрипт: getrawtx.sh
Bash-скрипт: getrawtx.sh

./getrawtx.sh 12ib7dApVFvg82TXKycWBNpN8kFyiAN1dr

Биткоин Адрес которую мы указываем для команды утилиты wget

все содержимое сохраняется в файл: index.json
все содержимое сохраняется в файл: index.json

https://chain.so/api/v2/get_tx_spent/BTC/12ib7dApVFvg82TXKycWBNpN8kFyiAN1dr

Утилита grep  сохраняет все идентификаторы транзакции "txid"  в один общий файл index2.json
Утилита grep сохраняет все идентификаторы транзакции "txid" в один общий файл index2.json
все содержимое сохраняется в файл: index2.json
все содержимое сохраняется в файл: index2.json
Удаляем index.json
Удаляем index.json
С помощью утилиты sed убираем префикс  "txid" и кавычки запятые
С помощью утилиты sed убираем префикс "txid" и кавычки запятые
Итоговый результат  в файле: index2.json
Итоговый результат в файле: index2.json
Создаем Python-скрипт используя утилиты echo
Создаем Python-скрипт используя утилиты echo
Запускаем Python-скрипт fileopen.py
Запускаем Python-скрипт fileopen.py
После запуска Python-скрипта fileopen.py создается Bash-скрипт rawscript.sh
После запуска Python-скрипта fileopen.py создается Bash-скрипт rawscript.sh
Удаляем index2.json
Удаляем index2.json
Получаем права для Bash-скрипта rawscript.sh и успешно запускаем!
Получаем права для Bash-скрипта rawscript.sh и успешно запускаем!
Удаляем скрипты fileopen.py // rawscript.sh
Удаляем скрипты fileopen.py // rawscript.sh
Все транзакции сохранились в файле: «RawTX.json»
Все транзакции сохранились в файле: «RawTX.json»

Какое преимущество получаем мы в итоге:

  • парсинг RawTX работает быстро и все сохраняется в один файл в папке Google Drive

  • в отличие от команды getrawtransaction «txid», в консоли Bitcoin Сore нам не нужно вводить «txid» достаточно ввести только Биткоин Адрес getrawtx.sh «address»

  • bash-скрипт: getrawtx.sh через API сайта https://chain.so/api/ находит неизрасходованный выход транзакции (UTXO)

Исходный код: https://github.com/demining/CryptoDeepTools/tree/main/01BlockchainGoogleDrive

Telegram: https://t.me/cryptodeeptech


Комментарии (3)


  1. teemour
    29.06.2022 18:33

    что такое `Биткоин Адрес` ? Где вы взяли такое понятие?


    1. cryptodeeptech Автор
      29.06.2022 18:56

      1. splix
        29.06.2022 22:30

        Может быть, но как вы используете этот термин выглядит странно. Например фраза "в одном Биткоин Адресе могут быть очень много транзакции" совсем непонятна.