Я просто написал Bitcoin blockchain анализатор в крошечном фрагменте кода. Это реализуется, как только два исходных файлов, один заголовок и один CPP, без каких-либо внешних зависимостей. Этот фрагмент кода не использует выделения памяти, шаблоны, контейнеры, STL, Boost, или что-нибудь более сложное, чем «FOPEN, FREAD, fclose».
Я написал это в основном как инструмент обучения, чтобы я мог понять формат blockchain сам.
Во время написания его я побежал в несколько незначительных вопросов. Во-первых, в том, что иногда blockchain файл данных будет просто запустить из данных, остальная часть файла, содержащего нули. Я не знаю, если это нормально или как ожидается, но я рассматривать его как условие конца-файла.
Друга в том, что некоторые блоки содержат меньше данных, чем указано на длину блока; Это означает, что после того, как все операции чтения в указатель файла не продвинулся так далеко, как «длина блока», который был указан. Я буду считать это нормальным и ожидаемым?
Этот фрагмент кода разбирает мою копию blockchain (9.2gb) примерно через 95 секунд; который я понял, было довольно хорошо; хотя я не знаю, что я должен сравнить.
Обратная связь, исправления, предложения, все приветствуются. пожалуйста добавьте мой фейсбук http://i.gyazo.com/d1a57bc1e81c3b89911df4905ffde876.png
Благодаря,
walliny