Giter Club home page Giter Club logo

hyperchain's Introduction

Hypechain

API Reference Gitter

Hyperchain is a foundation consortium blockchain platform that meets the needs of industrial applications. Hyperchain integrates high-performance and reliable consensus algorithm and is compatible with the open source community's smart contract development language and execution environment.

Hyperchain provides a high-quality platform for underlying blockchain support and a convenient and reliable all-in-one solution for decentralized applications such as digital asset clearing, trusted data deposit, de-intermediation trade and so on that address the needs of enterprises and industry alliances.

Key Features of Hyperchain

  • Consensus on block coherence based on RBFT(Robust Byzantine Fault Tolerance)
  • Limit the entry of blockchain node base on certificate authority
  • Multilevel Encryption Mechanism Based on Cryptography
  • Partition consensus based on Namespace
  • Multi-language support smart contract execution engine HyperVM
    • Solidity
    • Java
  • Blockchain data management
    • Data visualization
    • Data archive
    • Smart contract life cycle management

Architecture

The above diagram is a high-level overview of the system architecture used by Hyperchain.

Find more detail in the english documentation and chinese version.

Quick Start

Building from Source

Create Your Clone Clone the repository to a directory of your GOPATH source path:

mkdir -p $GOPATH/src/github.com/hyperchain
cd $GOPATH/src/github.com/hyperchain
git clone https://github.com/hyperchain/hyperchain

Building Please make sure you've installed Go tool properly, if you don't have it already, please see Instructions.

To build Hyperchain:

cd $GOPATH/src/github.com/hyperchain/hyperchain
govendor build

You can run go build as well.

Start up Hyperchain

Since a Hyperchain cluster needs at least 4 nodes to establish a BFT system, we recommend starting up Hyperchain nodes in these modes:

  • Local Mode - Local 4 Nodes
  • Distributed Mode - Distributed 4 Nodes

Local Mode - Local 4 Nodes

We've provided a script named local.sh which starts all Hyperchain nodes locally.

cd $GOPATH/src/github.com/hyperchain/hyperchain/scripts
./local.sh

You'll see these information if all Hyperchain nodes start up properly.

$./local.sh
...
...
start up node 1 ... done
start up node 2 ... done
start up node 3 ... done
start up node 4 ... done

Distributed Mode - Distribute 4 Nodes

Enable Password Less Since server.sh script prompts for a password when executing ssh operations, we recommend generating SSH keys on the deploy node and distribute the public key to each Hyperchain node.

1 . Generate the SSH keys, and leave the passphrase empty:

ssh-keygen

Generating public/private key pair.
Enter file in which to save the key (/home/hyperchain/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hyperchain/.ssh/id_rsa.
Your public key has been saved in /home/hyperchain/.ssh/id_rsa.pub.

2 . Copy the key to each Hyperchain node, replacing {username} with the user name you created.

ssh-copy-id {username}@node1
ssh-copy-id {username}@node2
ssh-copy-id {username}@node3
ssh-copy-id {username}@node4

Distribute Hyperchain We've provided a script named server.sh which distributes Hyperchain to all nodes and starts up them separately.

1 . Put servers' IP addresses into a file named serverlist.txt which under hyperchain/scripts directory.

For instance:

cat $GOPATH/src/github.com/hyperchain/hyperchain/scripts/serverlist.txt
172.16.1.101
172.16.1.102
172.16.1.103
172.16.1.104

2 . Start up Hyperchain with server.sh script.

cd $GOPATH/src/github.com/hyperchain/hyperchain/scripts
./server.sh

You'll see these information if all Hyperchain nodes start up properly.

$./server.sh
...
...
start up node 1 ... done
start up node 2 ... done
start up node 3 ... done
start up node 4 ... done

Documentation

We used readTheDoc to manage our project documentation, which contains the system architecture design, the introduction of key modules, system configuration, user manuals, project developement roadmap and other details.

If you are interested in the above, please click on the documentation link to browse.

Note that we now provide documentation in both English and Chinese.

Contribution

Thank you for considering to help out with the source code! No matter it's a system bug report, a new feature purposal, or code contributing, we're all huge welcome.

Please check the contributing guide for the full details.

Community

Troubleshooting and Getting Help

Contacting Technical Support:

Before you contact our technical support staff, have the following information available.

  • Your name, title, company name, phone number, and email address
  • Operating system and version number
  • Product name and release version
  • Problem description

Hours: 9:00 AM to 5:00 PM PST (Monday-Friday, except Holidays)

Phone: 0571-81180102, 0571-81180103

Email: [email protected]

LICENSE

The hyperchain is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the LICENSE file.

hyperchain's People

Contributors

duanhaohyperchain avatar duanhaozju avatar grokcoder avatar hafeidejiangyou avatar kjzz avatar mxxim avatar nink avatar rjl493456442 avatar schwansee avatar sylvialei avatar

Watchers

 avatar  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.