I can't speak to this specific chart but if you fast sync a Geth node the final result does include the state. So, I assume that this chart does include the state. It only includes the most recent state though.
If you wanted to do this thoroughly, and without relying on Etherscan's ambiguity, you will have to use a full node or Infura to learn information about the accounts and contracts that exist on Ethereum.
First, we have to ask the question: What even are ETH 'accounts'? I can generate a random public/private key pair on my computer and ...
There is some info and calculus here What is the size (bytes) of a simple Ethereum transaction versus a Bitcoin transaction?
that there is around 75 trx per block. I found some other that says there is 150 trx per block. So i guess it is somewhere in that space.
About the block size, there is also info in link above it is 15kb per block.
I don't think you can.
A bad block is (by definition) nonsense that is emitted by a node and subsequently ignored by peers. They're not propagated across the network because they're useless.
If I'm not mistaken, any attempt to do so would create an unacceptable DoS vulnerability because the network could become saturated with chit-chat about noise coming ...
Amberdata.io has a page dedicate to transaction data, including a graph of the average transaction fees:
And for those interested in APIs (as I am) you can even get current average gas prices with their gas predictions endpoint!
Amberdata.io has an API that can do this pretty easily:
curl --request GET \
--url 'https://web3api.io/api/v1/addresses?type=contract' \
--header 'x-api-key: <x-api_key>'