Skip to content

the-minimal-blockchain/tmb-specification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

The Minimal Blockchain Specification

Motivation

I hope a blockchain system does not depend on a linked-like data structure.

I hope a blockchain system does not depend on some consensus algorithm.

I hope a blockchain system does not depend on smart contracts.

I hope a blockchain system does not depend on token rewards.

I want to implement a minimal blockchain that is valuable by its simplicity, cleanliness code. It will have as few third-party modules as possible.

And it can be implemented by different programming languages, all implementation will follow the following design.

Identity

Nodes have no identities because all data are shared.

Network

The network departs into two parts.

One is block data communication network, that contains a node's dial or some message interactive, implement by TCP-likes protocol, it can be scaling with TLS or other cryptographic cases easy.

Another one is the user-side API network, implement by HTTP-likes protocol that could accept user's operation.

Consensus

The consensus mechanism will implemented based on:

Storage

The JSON format block data file named [blockNumber].json will be stored in a local folder.

Block data defined as:

{
    prev: string,
    height: number
    payload: [{
        key: string,
        key1: string
    },
    {
        key2: string
    }]
}

Documents

Reference the documents part in the-minimal-blockchain/tmb-golang.

FAQ

Why this project?

If you want to start at blockchain technology but are too difficult to start it with Bitcoin or Ethereum, you will need the simplest project that contains key parts of the blockchain.

Is this project stupid?

Maybe... Yes, it seems no actual value. I know some similar projects same as "minimal blockchain" don't get much focus, just like this project. I also understand the value of writing some articles is larger than the value of coding. But I want to do something, deposit I need to spend so much time on it.

What progress now?

It is in progress. Due to the above question's reason, I would not complete it quickly, because I have no any reward on it. I just push its progress slowly when I have time and mood.

About

The Minimal Blockchain Specification

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published