JavaBitcoin является полным узлом (без поддержки горнодобывающей промышленности), которая использует либо LevelDB или H2 для базы данных. LevelDB это отображается база данных, а H2 представляет собой базу данных SQL. Обратите внимание, что LevelDB гораздо быстрее, чем любой из баз данных SQL, которые я пробовал (H2, Firebird, PostgreSQL), особенно при удалении строк. Я пошел с H2, потому что это небольшой встроенный менеджер баз данных по сравнению с Firebird или PostgreSQL. Если вы хотите использовать другую базу данных SQL, вам нужно будет изменить некоторые из определений базы данных для обработки различий в определениях типов данных.
Если вы решили использовать базу данных SQL, то лучше сначала загрузить blockchain с использованием базы данных LevelDB, а затем перенести базу данных LevelDB в базу данных H2 (JavaBitcoin будет делать это для вас). Фактические блоки хранятся во внешних файлах в том же формате, как Bitcoin-QT (JavaBitcoin будет импортировать блок цепочку из каталога Bitcoin-QT блоков, если таковой имеется).
Вы можете просмотреть исходный код на GitHub (
https://github.com/ScripterRon/JavaBitcoin). Это требует Java 8, поскольку я использую некоторые из новых функций в последней версии.