有没有办法使用 bitcoinj 通过块号(高度)获取块?

Is there a way to get block through the block number(height) using bitcoinj?

我查了api文档,只能找到通过block hash获取block的方法

有没有办法使用bitcoinj通过块号(高度)获取块?

每个区块链节点上都没有记录区块高度(个数)。 bitcoinj 并不是一个全节点,所以我认为他们似乎没有提供 API 或函数来按高度获取块。

但是,如果你想通过bitconj获得高度,你可以先下载并安装BitCoin Core并等待区块链中的所有块下载,然后迭代块文件(blk00001.dat , blk00002.dat, ... blkxxxxx.dat) 比特币核心保存他们的区块(默认在 ~/.bitcoin/blocks/)由 BlockFileLoader class bitcoinj 提供。

据我测试,BlockFileLoader的迭代过程很费磁盘和时间,你应该确保块在区块链中以正确的顺序排列,所以我建议将带有高度信息的区块链保留到一些更好的索引存储或设备中,例如 MySQL 或 MongoDB.