Skip to content

Official implementation of IoTeX blockchain protocol in Go. An ultra-efficient EVM blockchain offering 1000 TPS with instant 1-block finality. Perfect for DeFi, DePIN tokenomics, Identities, and any trusted logic requiring Web3 composability

License

Notifications You must be signed in to change notification settings

iotexproject/iotex-core

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ac563c4 · May 13, 2024
Apr 16, 2024
May 4, 2024
May 4, 2024
May 13, 2024
Apr 22, 2024
Apr 1, 2024
Mar 11, 2024
Mar 11, 2024
Mar 29, 2024
Mar 11, 2024
Jan 16, 2023
Apr 16, 2024
Mar 15, 2024
Mar 28, 2024
Dec 14, 2022
Mar 14, 2024
Jan 5, 2023
Apr 11, 2024
Feb 25, 2019
Apr 10, 2024
Jan 24, 2024
Jan 30, 2024
Jan 30, 2024
Apr 7, 2024
Mar 14, 2024
Apr 24, 2024
Apr 10, 2023
Mar 22, 2024
Mar 5, 2022
May 27, 2022
Jan 24, 2024
Apr 17, 2023
Mar 5, 2019
Mar 28, 2024
Sep 5, 2018
Mar 28, 2024
Jan 16, 2023
Sep 30, 2022
Apr 24, 2024
Apr 24, 2024
Mar 19, 2024
Nov 23, 2023
Apr 15, 2019
Dec 30, 2022
Sep 30, 2022
Mar 23, 2019

Repository files navigation

iotex-core

Official Golang implementation of the IoTeX protocol.

Join the forum Go version Go Report Card Coverage Godoc Releases LICENSE

Welcome to the official Go implementation of IoTeX protocol! IoTeX is building the next generation of the decentralized blockchain protocol for powering real-world information marketplace in a decentralized-yet-scalable way. Refer to IoTeX whitepaper for details.

New to IoTeX?

Please visit https://iotex.io official website or IoTeX onboard pack to learn more about IoTeX network.

Run a delegate?

Please visit IoTeX Delegate Manual for detailed setup process.

Building the source code

Minimum requirements

Components Version Description
Golang ≥ 1.18.5 Go programming language
Protoc ≥ 3.6.0 Protocol buffers, required only when you rebuild protobuf messages

Compile

Download the code to your desired local location (doesn't have to be under $GOPATH/src)

git clone git@github.com:iotexproject/iotex-core.git
cd iotex-core

If you put the project code under your $GOPATH\src, you will need to set up an environment variable

export GO111MODULE=on
set GO111MODULE=on (for windows)

Build the project for general purpose (server, ioctl) by

make

Build the project for broader purpose (server, ioctl, injector...) by

make all 

If the dependency needs to be updated, run

go get -u
go mod tidy

If you want to learn more advanced usage about go mod, you can find out here.

Run unit tests only by

make test

Build the docker image by

make docker

Run iotex-core

Start (or resume) a standalone server to operate on a 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.

Use CLI

Users could interact with iotex blockchain by

ioctl [command]

Refer to CLI document for more details.

Contact

Contribution

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 and etc.

Contributors

Thank you for considering contributing to the IoTeX framework!

License

This project is licensed under the Apache License 2.0.

About

Official implementation of IoTeX blockchain protocol in Go. An ultra-efficient EVM blockchain offering 1000 TPS with instant 1-block finality. Perfect for DeFi, DePIN tokenomics, Identities, and any trusted logic requiring Web3 composability

Topics

Resources

License

Stars

Watchers

Forks

Languages