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.
- 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
The above diagram is a high-level overview of the system architecture used by Hyperchain.
Find more detail in the documentation.
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
govendoer build
You can run go build
as well.
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
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
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
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.
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.
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: support@hyperchain.cn
The hyperchain is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the LICENSE
file.