This article looks into the theoretical problems and challenges of distributed consensus and corresponding consensus algorithms.
This article goes over the basics of blockchain and shows how you can create a blockchain and everything that goes with it using JavaScript.