explaingit

openblockchains/awesome-blockchains

3,779RubyAudience · developerComplexity · 2/5Setup · easy

TLDR

A curated learning guide that explains how blockchains actually work under the hood, with runnable code examples in Python, Ruby, JavaScript, Java, and Go, plus tutorials, books, and a plain-English FAQ.

Mindmap

mindmap
  root((awesome-blockchains))
    Core Concepts
      Hash chaining
      Merkle trees
      Distributed database
    DIY Code Examples
      Python
      Ruby
      JavaScript
      Java and Go
    Resources
      Tutorials
      Books
      Articles
    Related Topics
      Git as blockchain
      Crypto hash libraries
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a minimal blockchain from scratch in your preferred language using the included tutorial code examples

USE CASE 2

Understand how hash chaining, Merkle trees, and tamper detection work through plain-English explanations and runnable code

USE CASE 3

Find curated books and articles on blockchain fundamentals without getting drawn into cryptocurrency speculation

USE CASE 4

Explore the relationship between Git commit history and blockchain design using the project's Git-as-blockchain notes

Tech stack

RubyPythonJavaScriptJavaGo

Getting it running

Difficulty · easy Time to first run · 30min

Each language example requires that language's runtime installed locally, no external dependencies or network access needed.

In plain English

This repository is a curated collection of blockchain learning materials, tutorials, and working code examples aimed at developers who want to understand how blockchains actually work rather than just hype around them. It takes a skeptical but educational tone, comparing blockchain speculation to the Dutch tulip mania of the 1600s while still treating the underlying technology as worth understanding. The project includes a frequently asked questions section that explains core concepts plainly. A blockchain is described as a distributed database made of linked records, where each record contains a timestamp, the previous record's cryptographic fingerprint (hash), and the new data, so altering any past record would break the chain of fingerprints and be detectable. The FAQ also explains hash functions, Merkle trees (a data structure that lets you verify large sets of data efficiently using hashes), and the relationship between blockchains and Git: the project notes that every Git branch is technically a blockchain, since commits chain together using the same hash-linking approach. The centerpiece is a set of DIY blockchain implementations in several programming languages: Python, Ruby, JavaScript, Java, and Go. Each section links to tutorials and source code showing how to build a minimal blockchain from scratch, typically in under a few hundred lines. These are meant as learning exercises, not production software. The Ruby examples in this repository itself demonstrate building blocks with transaction data and chaining them together. Beyond code, the collection links to blockchain-related articles, recommended books, and lightweight crypto hash libraries that can be added to other projects. There is also a section on using Git as a content-addressable store and on public blockchain datasets for research. The repository is maintained by the Open Blockchains organization and accepts contributions. It does not promote any specific cryptocurrency or investment. The full list of resources is longer than what was shown.

Copy-paste prompts

Prompt 1
Using the awesome-blockchains Python example as a reference, help me build a minimal blockchain in Python that chains blocks with SHA-256 hashes and verifies chain integrity
Prompt 2
Walk me through the Merkle tree explanation in openblockchains/awesome-blockchains, what is it, why is it useful, and show me a simple implementation in Python
Prompt 3
Based on the awesome-blockchains FAQ, explain in plain English how adding a new block to a blockchain prevents anyone from altering past records
Prompt 4
Help me write a Ruby blockchain from scratch following the style of the Ruby examples in openblockchains/awesome-blockchains, with at least three chained blocks containing transaction data
Open on GitHub → Explain another repo

← openblockchains on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.