查了api文档,只能找到一个通过block hash来获取block的方法。
有没有办法使用bitcoinj通过块号(高度)获得块?
区块高度(数量)不会记录在每个区块链节点上。bitcoinj 并不是一个完整的节点,所以我认为他们似乎没有提供 API 或函数来按高度获取块。
但是,如果您无论如何想要通过bitconj获得高度,您可以首先下载并安装BitCoin Core并等待区块链中的所有块下载,然后迭代块文件(blk00001.dat,blk00002.dat,... blkxxxxx.dat)比特币核心通过bitcoinj提供的BlockFileLoader类保存他们的区块(默认在~/.bitcoin/blocks/中)。
正如我测试过的,BlockFileLoader的迭代过程是磁盘和耗时的,你应该确保块在区块链中的顺序正确,所以我建议将具有高度信息的区块链保留到一些更好的索引存储或设备中,例如 MySQL 或 MongoDB。