Learn Blockchain In C++

Blockchain is platform and language agnostic. That means, you can use any popular programming language to create a blockchain. Some of the popular blockchains are developed using C++, Java, JavaScript, Go, Python, C#, Ruby, Solidity, and PHP.

You can create your blockchain using JavaScript but only some portions of it. A blockchain is a combination of several technologies including cryptography, distributed ledger technology, P2P network programming, database storage and sharing, network communication and notifications, backend services, UI components and so on. So building a complete blockchain product may require more than just one language.

Here is a list of resources that you may use to learn blockchain development in C++.

Blockchain Tutorial

Build a Blockchain with C++

In this video, you’ll learn how to create a block, create a blockchain, add blocks to a blockchain, and how to implement Proof of Work.

Simple Blockchain in C++

https://github.com/tko22/simple-blockchain

My implementation of a blockchain in C++ I created for fun :) Follows some Bitcoin design principles including a peer-to-peer network, SHA-256 to hash headers and blocks, merkle trees, and "mining"(more on that below).

Requirements

Uses C++14, OpenSSL library, Simple-Web-Server, and a JSON library

Includes a Command line interface that allows you to view blockchains at different indices and add new blocks. You can do that 20 times until it automatically quits but you can change that. Control-c to quit.

Developing Blockchain Software
 
This talk will explain what public blockchain systems like Bitcoin and Ripple are, the unique challenges of developing software for them, and how C++ helps to meet these challenges.
 
Security issues are paramount. Blockchain systems are open source, have large attack surfaces, and can cause significant financial damage if they have exploitable defects. Performance and scalability are also major concerns.
 
C++ provides a unique balance that helps meet these challenges. The language's design makes it possible to catch bugs at compile time, write modular code that can be tested, develop flexible data structures and manage resources. Yet, where performance is critical, it does not obscure what your code is making the computer actually do.
 
The primary purpose of the talk is to explain what blockchains are, increase understanding of the unusual challenges developers of blockchain software experience, and to demonstrate why C++ is a good choice to address them.