Syncing with Bitcoin Core (bitcoind) is efficient and secure so that is the recommended way to obtain the blk*.dat
files. The blk*.dat
format is specific to Bitcoin Core, so you can't use other implementations (like btcd) to do so.
If you only want to collect the data without verifying the blocks for validity, you can set the -assumevalid=<hex>
argument to a recent block so that the entire chain up until that point is assumed to be valid (as the name suggests).
What's more, you can use the -blocksonly
parameter to ignore transactions from peers that aren't in blocks, so your node will focus only on the blocks themselves.