Giter Site home page Giter Site logo

om3go / xuperchain Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xuperchain/xuperchain

0.0 0.0 0.0 18.07 MB

A highly flexible blockchain architecture with great transaction performance.

Home Page: https://xuper.baidu.com/

License: Apache License 2.0

Shell 5.55% Go 93.80% Makefile 0.55% Dockerfile 0.11%

xuperchain's Introduction

XuperChain

Build Status Go Report Card GolangCI License Release

中文 | English


What is XuperChain

XuperChain, the first open source project of XuperChain Lab, introduces an underlying solution to build the super alliance network, based on the dynamic kernel of xupercore. You can use xuperchain as a blockchain infrastructure to build a compliant blockchain network.

XuperChain is the underlying solution for union networks with following highlight features:

  • Dynamic kernel

    • Based on the dynamic kernel technology, the free extension kernel components without kernel code intrusion and lightweight extension customized kernel engine are implemented to meet the needs of blockchain implementation for various scenarios.
    • It provides a comprehensive and high-performance implementation of standard kernel components.
    • Comprehensively reduce the cost of blockchain research and development, and open a new era of one click chain development.
  • High Performance

    • Creative XuperModel technology makes contract execution and verification run parallel.
    • TDPoS ensures quick consensus in a large scale network.
    • WASM VM using AOT technology.
  • Solid Security

    • Contract account protected by multiple private keys ensures assets safety.
    • Flexible authorization system supports weight threshold, AK sets and could be easily extended.
  • High Scalability

    • Robust P2P network supports a large scale network with thousands of nodes.
    • Branch management on ledger makes automatic convergence consistency and supports global deployment.
  • Multi-Language Support: Support pluggable multi-language contract VM using XuperBridge technology.

  • Flexibility: Modular and pluggable design provides high flexibility for users to build their blockchain solutions for various business scenarios.

Quick start

Requirements

  • OS Support: Linux and Mac OS
  • Go 1.14.x or later
  • GCC 4.8.x or later
  • Git

Build

Clone the repository

git clone https://github.com/xuperchain/xuperchain

Note:

master branch contains the latest features but might be unstable.

For production use, please check out the latest release.

Enter the xuperchain folder and build the code:

cd xuperchain
make

Note that if you are using Go 1.11 or later, go modules are used to download 3rd-party dependencies by default. You can also disable go modules and use the prepared dependencies under vendor folder.

Run test:

make test

Run

Run single node blockchain

There is an output folder if build successfully. Enter the output folder, create a default chain & start blockchains:

cd ./output
sh control.sh start

By doing this, a blockchain named "xuper" is created, you can find the data of this blockchain at ./data/blockchain/xuper/.

By default, the xuper chain will produce a block every 3 seconds, try the following command to see the trunkHeight of chain and make sure it's growing.

./bin/xchain-cli status

Run multi nodes blockchain

Generate multi nodes. Before running the following command, make sure you have run make to make the code.

make testnet

Enter the testnet directory, and then start three nodes separately (make sure the port is not used)

cd ./testnet/node1
sh ./control.sh start
cd ../node2
sh ./control.sh start
cd ../node3
sh ./control.sh start

Observe the status of each node

./bin/xchain-cli status -H :37101
./bin/xchain-cli status -H :37102
./bin/xchain-cli status -H :37103

Documentation

We have new documentation of Chinese version at XuperChain Chinese Docs, the English version is coming soon.

How to Contribute

We encourage you to contribute to XuperChain.

Please review the Contribution guidelines for information on how to get started contributing to the project.

License

XuperChain is under the Apache License, Version 2.0.

Contact

For business cooperation, please email:[email protected] (Note with source: GitHub)。

If you are interested in the open source technology and application of XuperChain, welcome to add 百度超级链·小助手 in WeChat, join the Baidu Super Chain Developer Community by replying 技术论坛进群, and have in-depth exchanges with Baidu senior engineers!

WeChat QR code is as follows: 496bd829f51cda8f4c8027daf0e6b543

xuperchain's People

Contributors

af913337456 avatar aucusaga avatar chenfengjin avatar chunhui01 avatar duanbing avatar fxsjy avatar godeamon avatar haoyuathz avatar hawkjing avatar hello2mao avatar hongyanwang avatar icexin avatar kenianshi avatar limeng120 avatar m3ngyang avatar michellez avatar ownluke avatar preminem avatar qizheng09 avatar rcvisual avatar superlitian avatar toworld avatar tri-stone avatar wangchao0222 avatar wellzm avatar wenjingli729 avatar xiangzepro avatar xuperadmin avatar yucaowang avatar zhugelianglongming 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.