Если бы я хотел впечатать данные блокчейна в базу данных с целью выполнения сложных или просто отличных от запросов на основе RPC, как бы я это сделал? Должен ли я выбрать реляционную базу данных или NoSQL? В конце концов база данных будет заполнена сотнями миллионов записей, какие базы данных будут хорошо работать (быстро реагировать) на эти гигантские числа?
Если вы соглашаетесь на реляционную БД, вы можете попробовать BitcoinDatabaseGenerator.
https://github.com/ladimolnar/BitcoinDatabaseGenerator/releases
Исходники и вики: https://github.com/ladimolnar/BitcoinDatabaseGenerator
Вам может потребоваться несколько часов (у меня это занимает 90 минут, но это зависит от вашего оборудования и конфигурации), чтобы передать файлы блокчейна в БД.
Если вы это сделаете, взгляните на представления, которые уже определены в БД, некоторые из них могут быть вам полезны.
Это, вероятно, зависит от типа запросов, которые вы хотите сделать, и данных, которые вы хотите получить из базы данных.
Лично у меня есть хороший опыт использования графовой базы данных для обхода цепочки блоков (например, Neo4j). Однако выбранная вами графовая модель будет влиять на эффективность определенных типов запросов.
Я обнаружил, что блокчейн достаточно управляем по размеру, даже если вы суммируете отдельные транзакции в каждом блоке по всем блокам.
если вы хотите попробовать быстро поиграться с блокчейном, то скачайте дамп резервной копии postgreSQL отсюда http://dumps.webbtc.com/bitcoin/ — даже если postgeSQL не то, что вы ищете, вы сможете быстро восстановить формировать эти данные с помощью простого SQL и массово загружать их в neo4j или любую другую БД за считанные минуты
Фил Паффорд