yogh-io/bitcoin-transaction-explorer

Implement more elaborate contextual information / education mode

JornC opened this issue · 7 comments

JornC commented

While this block explorer is an excellent tool to assist with learning how the blockchain works down below, it isn't particularly helpful if you're trying to use it for that purpose.

Many field names, for example, are entirely meaningless if you haven't a clue of any of the terminologies used in the bitcoin space - it would be desirable if this block explorer could provide clear and simple contextual information about what a user might be looking at.

For example: the way a block's target value is calculated; the meaning of the scriptSig and scriptPubKey; the description of opcodes; why mining works the way it works; data format of a block's timestamp or other fields; endian-ness of serialized or unserialized values.

The list goes on.

An 'education mode' would be nice to help with this.

These features could be built on top of the existing contextual popup thing.

+1

I love how you currently color code, it'd be cool to make a guess on what data is being pushed. (pubkey, signature, etc)

JornC commented

it'd be cool to make a guess on what data is being pushed.

Yeah. I've been struggling with how to deal with showing derivable transaction heuristics like that (and also other things like OP_RETURN commitments, colored coins, counterparty, RBF flag, P2PKH/P2SH/P2PK output types, P2SH RedeemScript transaction types, transaction standard-ness, etc. etc.)

Originally, I didn't want this block explorer to have any knowledge about those kind of things; things the 'blockchain' doesn't strictly know about. For example, it's safe to say the data pushed onto the stack before an OP_CHECKSIG operation will be the pubkey, and the data pushed before that will be the signature, but to the blockchain - it's all just pushdata.

Then again, in a way, this principle has already been violated, considering the explorer now supports address balance lookup - which is an 'application' on top of the Blockchain rather than some inherent concept, if you will. So I guess I'm more open to showing this, now.

However, I'd still like to 'border off' these heuristics so the core information shown by the explorer will not be polluted by things that might be unrelated or wrong (heuristics are, in the end, guesses - after all) - or otherwise make the heuristic being a guess explicit.

As I hacked together a how does mining work presentation with a 1kH/s JS "miner", I'm actually quite excited to find this project.

I would love to see this turn into a visualization for different skill levels where the exact arrangement of the Merkel tree and how the difficulty is calculated gets explained but also the "bitcoin mining is complicated math" demystified a bit like I tried it with "this is an age-old hash function. miners hash fast".

This block explorer has real potential to become one of the best Bitcoin education tools out there.

This issue is open ended and needs to either

  • get
  • a
  • checkable list

or be split into concise tasks.

I'd like to do a bounty here but it looks open ended.

7yl4r commented

Some simple hovertext or popovers could go a long way here.