I'm wondering whether anyone has already made a contract and corresponding off-chain service which, once every 30 minutes or so, triggers the contract to record all the block hashes which have gone by since the last time it was called. Seems like it would be useful for a variety of purposes, and cost about $5/day to run, if you only kept the last week or so of hashes and overwrote the stale ones.
Is there a smart contract recording all block hashes on in the ethereum blockchain, as they come in?
A smart contract doesn't see the network state. It has no knowledge about anything besides the information which is given to it in transactions. Furthermore it can't do anything "on its own" but performs operations only when a transaction triggers them.
So such a service has to be off-chain. There are various services out there which offer (at least) related services but I'm not sure whether they offer exactly what you're looking for. Check for example https://etherscan.io/ and https://www.etherchain.org/
There's nothing stopping a contract from storing state when it's triggered, though, and the most recent 256 block hashes are available through the
blockhashfunction. When I said "...corresponding off-chain service which, once every 30 minutes or so, records all the block hashes which have gone by...", I meant there should be an off-chain service which triggers the contract to store the hashes. Mar 25, 2019 at 4:18
I have edited the question to hopefully make that clearer. Thanks for the feedback. Mar 25, 2019 at 4:19