Giter Site home page Giter Site logo

bbc1's Introduction

Core system of BBc-1 (Beyond Blockchain One)

This project is a Python-based reference implementation of BBc-1, a trustable system of record keeping beyond blockchains.

The design paper (white paper) and the analysis paper are available here and here. BBc-1 is inspired from blockchain technologies like Bitcoin, Ethereum, Hyperledger projects, and so on. BBc-1 is a simple but reliable distributed ledger system in contrast with huge and complicated existing blockchain platforms. The heart of BBc-1 is the transaction data structure and the relationship among transactions, which forms a graph topology. A transaction should be signed by the players who are the stake holders of the deal. BBc-1 achieves data integrity and data transparency by the topology of transaction relationship and signatures on transactions. Simply put, BBc-1 does not have blocks, and therefore, requires neither mining nor native cryptocurrency. BBc-1 can be applied to both private/enterprise use and public use. BBc-1 has a concept of domain for determining a region of data management. Any networking implementation (like Kademlia for P2P topology management) can be applied for each domain. Although there are many TODOs in BBc-1, this reference implementation includes most of the concept of BBc-1 and would work in private/enterprise systems. When sophisticated P2P algorithms are ready, BBc-1 will be able to support public use cases.

Every directory includes README.md. Please read it for the details. Furthermore, directory docs/ includes documents and slide decks (PDF) that explain the design of the BBc-1 and its implementation.

Environment

  • Python

    • Python 3.6.0 or later
  • tools (for macOS by Homebrew)

    • libtool
    • automake
    • geth and solidity are required if Ethereum ledger subsystem is to be used

Quick start

From source code in github

  1. Install tools (libtool, automake)
  2. Install python and pip
  3. Clone this project
  4. Install dependencies by the following command.
    pip install -r requirements.txt
    
  5. Start bbc_core.py on a terminal
    cd core
    python bbc_core.py
    
  6. Start a sample app in another terminal
    cd examples
    python file_proof.py arg1 arg2..
    

Use pip

  1. Install tools (libtool, automake)
  2. Install python and pip
  3. Install BBc1 by pip
    pip install bbc1
    

Use docker (See README.md in docker/)

  1. Install docker on your host
  2. Clone this project
  3. Build docker image If you want source codes in your container,
    cd docker
    ./docker-bbc1.sh gitbuild
    
    or, if you just want to use BBc-1,
    cd docker
    ./docker-bbc1.sh pipbuild
    
  4. Run a docker container
    ./docker-bbc1.sh start
    
  5. Log in to the container
    ./docker-bbc1.sh shell
    
    or
    ssh -p 10022 root@localhost
    
    The initial password is "bbc1".

working directory

The working directory of BBc-1 on the docker container is mounted on docker/data/.bbc1/. You will find a config file, ledger DB and file storage directory in the working directory.

Files/Directories

  • core/
    • core functions of BBc-1
  • app/
    • SDK for applications using BBc-1
  • common/
    • libraries and utilities for both core and app
  • utils/
    • BBc-1 system configuration utilities
  • examples/
    • sample applications on BBc-1
  • docker/
    • docker environments
  • tests/
    • test codes for pytest
  • docs/
    • docs about BBc-1 and its reference implementation
  • somewhere/.bbc1/
    • default working directory name of bbc_core.py
  • requirements.txt
    • for pip install
  • setup.py
  • MANIFEST.in
    • for creatign python modules

bbc1's People

Contributors

quvox avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.