I also noticed the difference in numbers with Etherscan. It’s difficult to review their graphs because it’s not open source. For my side everything is open source and the data itself is open so if you find any errors let me know.
Yes since the transactions are executed on all the nodes, you can’t define transaction execution time. The miner who assembles a block, sets the timestamp in the block’s header. This timestamp is normally considered the timestamp of all the transactions in the block.
You could add block timestamp to the transaction dictionary here https://github.com/blockchain-etl/ethereum-etl/blob/develop/ethereumetl/jobs/export_blocks_job.py#L87.
I ended up joining transactions with blocks in BigQuery.
You need to use the full sequence. It’s in the spreadsheet:
echo '0000000101010101001011000000000100000000001100000001111000000001010000000010000000000111000000100110000000100100000000110000000010111101111101100000001101000000011101000010110000000010000000000100010000001001000000000000010110000000000001010100000010110010' | shasum --01 --algorithm 256