I want to get all the data from blocks as they get updated on my local node. Abe offers very poor performance, and fast-dat-parser creates other .dat files and doesn't have enough documentation for me to understand how to get data like block size, age, hash difficulty, Transactions and transaction fees. Is there an alternative tool, or at least a detailed documentation that would allow me to write a parser for content of .dat files?
Trying to read and parse the .dat files while bitcoind is running is likely a good way to have tons of errors due to partially written data. Instead of trying to read the .dat files, you can use bitcoind itself to notify you of new blocks and to use the RPC interface to decode and fetch the block information for you. You can start bitcoind with
<cmd> is a command that bitcoind will run every time a new block is accepted. You can read
bitcoind -help for more information about what
-blocknotify does. The command that is run can then be a script which calls the RPC interface and fetches the block data that you need by using the
getblock RPC command.