Building Blockchain in Go. Part 2: Proof-of-Work