While crypto-currencies are having bad time financially these days, it obviously has inspired and spun up a lot of applications. Blockchain and proof-of-work are fundamental concepts for the buzz that surrounds crypto-currency. While I see many people discussing the applications and possibilities, the serious lack of understanding among common developers prompted me to do a "Blockchain for dummies" implementation. So here it is:

Here are the goals I've tried to achieve:

I wanted to implement it in most popular language, so I selected Javascript.

Wanted to show clear separation between proof-of-work and actual chain itself.

For proof-of-work I selected floating numbers and hex string matching. Rather than having random string generation or something complicated it allows a simpler implementation that won't irritate your eyes but still shows the difficulty you can achieve.

For blockchain I stored everything in memory again for simplicity.

No comments! If code can't explain itself I would call it useless.

Use everything builtin (no external packages), because you don't need anything else!

I would be more than happy to improve it based upon feedback. Let me know what you think!