mplattner / BlockSci

A high-performance tool for blockchain science and exploration
https://arxiv.org/pdf/1709.02489.pdf
GNU General Public License v3.0
4 stars 0 forks source link

Live updates #4

Open brockelmore opened 5 years ago

brockelmore commented 5 years ago

Hi Martin,

I am trying to run Blocksci in a live configuration. Seeing how you are handling the forks makes me wonder if we could use that system to have a totally live updating version of blocksci (meaning no need to worry about reorgs) by effectively creating a "tip fork". Meaning, handle last 6 blocks as a fork so that you can theoretically just remove the fork in case of reorg.

The Blocksci team has been limited in their response. Maybe I am wrong for worrying about reorgs still, but the documentation still says you need to worry about them. Let me know if you have any insights! I don't know C++ so I can't reliably assist or modify code myself (golang kinda guy).

Thanks, Brock

mplattner commented 5 years ago

Hi Brock,

my plan is to extend BlockSci to support (permanent) hard-forks, not temporary forks that are resolved by the Bitcoin network itself. The current design of my extension will not directly support temporary (short-lived) forks. I assume this would require another approach, among other reasons because there is significant overhead needed for hard-forks (eg. an additional config file per fork), which is impractical for regularly occurring temporary forks.

Worrying about chain reorgs depends on what analysis you want to do. In my opinion reorgs do not matter for most analyses. If you want to look at reorgs specifically (history, frequency etc.) or you have a real-time data requirement, they are obviously of interest.

However, at the moment I have no plans to implement recording and loading of chain reorgs and will concentrate on support for permanent hard-forks first.

Best, Martin