Welcome to the official Go implementation of IoTeX protocol! IoTeX is building the next generation of the decentralized network for IoT powered by scalability- and privacy-centric blockchains. Please refer to IoTeX whitepaper for details.
Components | Version | Description |
---|---|---|
Golang | ≥ 1.11.5 | Go programming language |
Dep | ≥ 0.5.0 | Dependency management tool, required only when you update dependencies |
Protoc | ≥ 3.6.0 | Protocol buffers, required only when you rebuild protobuf messages |
The easiest way to get iotex-core is to use one of release packages which are available for OSX, Linux on the release page. Iotex-core is also distributed via docker image on docker hub.
Download the code by
mkdir -p ~/go/src/github.com/iotexproject
cd ~/go/src/github.com/iotexproject
git clone [email protected]:iotexproject/iotex-core.git
cd iotex-core
Build the project by
make
If the dependency needs to be updated, run
dep ensure [--vendor-only]
Run unit tests only by
make test
Build the docker image by
make docker
Start (or resume) a standalone server to operate on an blockchain by
make run
Restart the server from a clean state by
make reboot
If "make run" fails due to corrupted or missing state database while block database is in normal condition, e.g., failing to get factory's height from underlying DB, please try to recover state database by
make recover
Then, "make run" again.
Note that if your enviroment is in Linux, you need to add the share libraries into $LD_LIBRARY_PATH
by
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GOPATH/src/github.com/iotexproject/iotex-core/crypto/lib
Users could interact with iotex blockchain by
ioctl [command]
Refer to CLI document for more details.
We are glad to have contributors out of the core team; contributions, including (but not limited to) style/bug fixes, implementation of features, proposals of schemes/algorithms, and thorough documentation, are welcomed. Please refer to our contribution guideline for more information. Development guide documentation is here.
This project is licensed under the Apache License 2.0.