Как хранить данные блокчейна

Если бы я хотел впечатать данные блокчейна в базу данных с целью выполнения сложных или просто отличных от запросов на основе RPC, как бы я это сделал? Должен ли я выбрать реляционную базу данных или NoSQL? В конце концов база данных будет заполнена сотнями миллионов записей, какие базы данных будут хорошо работать (быстро реагировать) на эти гигантские числа?

Вы когда-нибудь начинали это?

Ответы (3)

Если вы соглашаетесь на реляционную БД, вы можете попробовать BitcoinDatabaseGenerator.
https://github.com/ladimolnar/BitcoinDatabaseGenerator/releases
Исходники и вики: https://github.com/ladimolnar/BitcoinDatabaseGenerator

Вам может потребоваться несколько часов (у меня это занимает 90 минут, но это зависит от вашего оборудования и конфигурации), чтобы передать файлы блокчейна в БД.

Если вы это сделаете, взгляните на представления, которые уже определены в БД, некоторые из них могут быть вам полезны.

Работает ли BitcoinDatabaseGenerator с Bitcoin Cash?

Это, вероятно, зависит от типа запросов, которые вы хотите сделать, и данных, которые вы хотите получить из базы данных.

Лично у меня есть хороший опыт использования графовой базы данных для обхода цепочки блоков (например, Neo4j). Однако выбранная вами графовая модель будет влиять на эффективность определенных типов запросов.

Запросы будут ориентированы на транзакции и адреса, в основном ориентированы на адреса, т. е. получить все транзакции с платежом, превышающим X для этого адреса за последние 6 месяцев. Вы думаете, я должен пойти на граф БД?
Преимущество баз данных графов заключается в том, что вы можете эффективно перемещаться по графу транзакций, в основном для отслеживания биткойнов от транзакции к транзакции. В вашем случае традиционная реляционная база данных может быть более эффективной.
Как вы загружали данные? (У вас есть код для этого?)

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

если вы хотите попробовать быстро поиграться с блокчейном, то скачайте дамп резервной копии postgreSQL отсюда http://dumps.webbtc.com/bitcoin/ — даже если postgeSQL не то, что вы ищете, вы сможете быстро восстановить формировать эти данные с помощью простого SQL и массово загружать их в neo4j или любую другую БД за считанные минуты

К сожалению , dumps.webbtc.com/bitcoin больше не обновляется.