All Projects → tinychain → Tinychain

tinychain / Tinychain

Licence: mit
[WIP] A tiny blockchain supporting free transactions and state transition experimentally.

Labels

Projects that are alternatives of or similar to Tinychain

Rqlite
The lightweight, distributed relational database built on SQLite
Stars: ✭ 9,147 (+6990.7%)
Mutual labels:  consensus
Library
Collection of papers in the field of distributed systems, game theory, cryptography, cryptoeconomics, zero knowledge
Stars: ✭ 100 (-22.48%)
Mutual labels:  consensus
X0
Xzero HTTP Application Server
Stars: ✭ 111 (-13.95%)
Mutual labels:  consensus
Cita
A high performance blockchain kernel for enterprise users.
Stars: ✭ 1,155 (+795.35%)
Mutual labels:  consensus
Tikv
Distributed transactional key-value database, originally created to complement TiDB
Stars: ✭ 10,403 (+7964.34%)
Mutual labels:  consensus
Etcd
Distributed reliable key-value store for the most critical data of a distributed system
Stars: ✭ 38,238 (+29541.86%)
Mutual labels:  consensus
Consensus Yaraft
consensus-yaraft is a library for distributed, strong consistent, highly replicated log storage. It's based on yaraft, which is an implementation of the Raft protocol.
Stars: ✭ 30 (-76.74%)
Mutual labels:  consensus
Vrf.js
A pure Javascript Implementation of Verifiable Random Functions
Stars: ✭ 124 (-3.88%)
Mutual labels:  consensus
Zookeeper
Apache ZooKeeper
Stars: ✭ 10,061 (+7699.22%)
Mutual labels:  consensus
Trepang
Trepang is an implementation of Raft Algorithm in Go
Stars: ✭ 111 (-13.95%)
Mutual labels:  consensus
Skinny
The Skinny Distributed Lock Service
Stars: ✭ 70 (-45.74%)
Mutual labels:  consensus
Go Lachesis
aBFT consensus for permission-less networks
Stars: ✭ 88 (-31.78%)
Mutual labels:  consensus
Ouroboros Network
An implementation of the Ouroboros family of consensus algorithms, with its networking support
Stars: ✭ 108 (-16.28%)
Mutual labels:  consensus
Scp zh
恒星共识协议中文翻译
Stars: ✭ 59 (-54.26%)
Mutual labels:  consensus
Bifrost
Pure rust building block for distributed systems
Stars: ✭ 118 (-8.53%)
Mutual labels:  consensus
Chainspace Prototype
Chainspace is a distributed ledger platform for high-integrity and transparent processing of transactions within a decentralized system.
Stars: ✭ 41 (-68.22%)
Mutual labels:  consensus
Wpaxos
A production-grade java implementation of paxos consensus algorithm
Stars: ✭ 104 (-19.38%)
Mutual labels:  consensus
Private Tor Network
Run an isolated instance of a tor network in Docker containers
Stars: ✭ 125 (-3.1%)
Mutual labels:  consensus
Zatt
Python implementation of the Raft algorithm for distributed consensus
Stars: ✭ 119 (-7.75%)
Mutual labels:  consensus
Yaraft
Yet Another RAFT implementation
Stars: ✭ 109 (-15.5%)
Mutual labels:  consensus

Tinychain

This project is working in progress. A tiny blockchain

Features

Consensus

In consensus module, we design and implements different consensus algorithm, and make them pluggable.

please read document

Network

We use go-libp2p to implements network layer, including:

  • peers discovering
  • peers communication
    • blocks transferring
    • transactions transferring
    • consensus information transferring

Cryptography

We decide to use Ed25519 cryptographic algorithm to identify peers and produce signature.

Ed25519 is a public-key signature system with several attractive features:

  • Fast single-signature verification
  • Even faster batch verification
  • Very fast signing
  • Fast key generation
  • High security level
  • Collision resilience
  • so on...

Smart Contract

Virtual machine

The VM module is designed as pluggable modules.

At step 1, we will support EVM. And in the future version, we'll implement the below virtual machine step by step:

Contract language

At this EVM version, developers are coding with solidity, which is widely used to develop Dapps.

After implementing the virtual machine based on WebAssembly, you can use any languages to write contracts.

Database

LevelDB

Merkle tree

In tinychain, we use Bucket tree to induce transactions and world state.

Bucket tree is a variant merkle tree with several features that are different from the common merkle tree:

  1. fix height of tree when initialize and will not be changed by the amount of transactions.
  2. low-cost to recompute the root hash when add or remove a kv pair to/from tree.
  3. customizable capacity and aggreation.

Event Hub

Eventhub in tinychain is extended from TypeMux and feed in Ethereum. We combine them and re-implement a new event hub to achieve a better performance and readability, and make the processing flow clearer.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].