Blockchain engine for icon foundation.
Loopchain is a high-performance Blockchain Consensus & Network engine of ICON project.
In order to run a loopchain node, you need to install ICON Service that runs a smart contract and interacts with loopchain engine, and ICON RPC Server that processes HTTP requests from clients.
For details, refer to the guide below.
Loopchain development and execution requires following environments.
Python 3.7.x
We recommend to create an isolated Python 3 virtual environment with virtualenv.
$ virtualenv -p python3 venv
$ source venv/bin/activate
NOTE: Now we support 3.7.x only. Please upgrade python version to 3.7.x
RabbitMQ 3.7+
Loopchain requires RabbitMQ.
For the reliable installation, please visit: Downloading and Installing RabbitMQ
Reward Calculator
Reward calculator is a daemon which calculates I-Score of ICONists to support IISS.
Please visit Reward calculator github repository to install it.
Other Dependencies
MacOS
$ brew install automake pkg-config libtool leveldb openssl
Ubuntu
$ sudo apt update
$ sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev automake libtool lsof
NOTE: If you are using ubuntu 18.04, you need to install additional library libsecp256k1-dev
CentOS
$ sudo yum update
$ sudo yum install -y git zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel \
xz xz-devel libffi-devel gcc gcc-c++ automake libtool lsof
Check all requirements properly installed
$ make requirements
If you don't see any error logs and you have started rabbitmq server, you may move on to next step.
Proceed installation
$ make all
This command is for setting up:
setup.py
.loopchain.proto
NOTE: Password must be at least 8 characters long including alphabet, number, and special character. Please be careful not to forget the password since you will need it to run the Citizen Node.
Run Citizen
Clear RabbitMQ processes & pycache & build
$ make clean
Delete log / delete DB
$ make clean-log clean-db
NOTE: For more command options,
$ make help