我正在编写一些读取区块链中 DAT 文件的代码,并且我尝试使用 bitcoinj,因为它看起来相当简单。但是,我似乎无法让它真正读取 DAT 文件中的块。我尝试了许多不同的版本,但没有取得重大进展。
我觉得这应该相当简单,我只是在这里遗漏了一些简单的东西。需要明确的是,我不是要写入区块链,只是读取 DAT 文件。
谢谢!
这是一个代码片段。
NetworkParameters np = new MainNetParams();
Context c = new Context( np );
Context.getOrCreate(MainNetParams.get());
List<File> blockChainFiles = new ArrayList<>();
blockChainFiles.add( new File( "blk00000.dat" ) );
BlockFileLoader bfl = new BlockFileLoader(np, blockChainFiles);
int blockNum = 0;
// Iterate over the blocks in the dataset.
for (Block block : bfl) {
...
此代码产生以下错误:
Exception in thread "main" java.lang.IllegalStateException: Context does not match implicit network params: org.bitcoinj.params.MainNetParams@9d1d82f2 vs org.bitcoinj.params.MainNetParams@9d1d82f2
at org.bitcoinj.core.Context.getOrCreate(Context.java:147)
at testBitcoin.main(testBitcoin.java:20)