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.
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.
Build iotex-core from code
Download the code to your desired local location (doesn’t have to be under $GOPATH/src)
git clone firstname.lastname@example.org:iotexproject/iotex-core.git
If you put the project code under your $GOPATH\src, you will need to set up an environment variable
set GO111MODULE=on (for windows)
Build the project for general purpose (server, ioctl) by
Build the project for broader purpose (server, ioctl, injector…) by
If the dependency needs to be updated, run
go get -u
go mod tidy
If you want learn more advanced usage about go mod, you can find out here.
Run unit tests only by
Build the docker image by
Start (or resume) a standalone server to operate on an blockchain by
Restart the server from a clean state by
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
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.
For any major protocol level changes, we use IIP to track the proposal, decision
This project is licensed under the Apache License 2.0.