github.com/iotexproject/iotex-core@v1.14.1-rc1/README.md (about) 1 # iotex-core 2 3 Official Golang implementation of the IoTeX protocol. 4 5 [![Join the forum](https://img.shields.io/badge/Discuss-IoTeX%20Community-blue)](https://community.iotex.io/c/research-development/protocol) 6 [![Go version](https://img.shields.io/badge/go-1.18.5-blue.svg)](https://github.com/moovweb/gvm) 7 [![Go Report Card](https://goreportcard.com/badge/github.com/iotexproject/iotex-core)](https://goreportcard.com/report/github.com/iotexproject/iotex-core) 8 [![Coverage](https://codecov.io/gh/iotexproject/iotex-core/branch/master/graph/badge.svg)](https://codecov.io/gh/iotexproject/iotex-core) 9 [![Godoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/iotexproject/iotex-core) 10 [![Releases](https://img.shields.io/github/release/iotexproject/iotex-core/all.svg?style=flat-square)](https://github.com/iotexproject/iotex-core/releases) 11 [![LICENSE](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) 12 13 <a href="https://iotex.io/"><img src="logo/IoTeX.png" height="200px"/></a> 14 15 16 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](https://iotex.io/research/) for details. 17 18 <a href="https://iotex.io/devdiscord" target="_blank"> 19 <img src="https://github.com/iotexproject/halogrants/blob/880eea4af074b082a75608c7376bd7a8eaa1ac21/img/btn-discord.svg" height="36px"> 20 </a> 21 22 #### New to IoTeX? 23 24 Please visit https://iotex.io official website or [IoTeX onboard pack](https://onboard.iotex.io/) to learn more about IoTeX network. 25 26 #### Run a delegate? 27 28 Please visit [IoTeX Delegate Manual](https://github.com/iotexproject/iotex-bootstrap) for detailed setup process. 29 30 ## Building the source code 31 32 ### Minimum requirements 33 34 | Components | Version | Description | 35 |----------|-------------|-------------| 36 | [Golang](https://golang.org) | ≥ 1.18.5 | Go programming language | 37 | [Protoc](https://developers.google.com/protocol-buffers/) | ≥ 3.6.0 | Protocol buffers, required only when you rebuild protobuf messages | 38 39 ### Compile 40 41 Download the code to your desired local location (doesn't have to be under `$GOPATH/src`) 42 ``` 43 git clone git@github.com:iotexproject/iotex-core.git 44 cd iotex-core 45 ``` 46 47 If you put the project code under your `$GOPATH\src`, you will need to set up an environment variable 48 ``` 49 export GO111MODULE=on 50 set GO111MODULE=on (for windows) 51 ``` 52 53 Build the project for general purpose (server, ioctl) by 54 55 ``` 56 make 57 ``` 58 59 Build the project for broader purpose (server, ioctl, injector...) by 60 ``` 61 make all 62 ``` 63 64 If the dependency needs to be updated, run 65 66 ``` 67 go get -u 68 go mod tidy 69 ``` 70 If you want to learn more advanced usage about `go mod`, you can find out [here](https://github.com/golang/go/wiki/Modules). 71 72 Run unit tests only by 73 74 ``` 75 make test 76 ``` 77 78 Build the docker image by 79 80 ``` 81 make docker 82 ``` 83 84 ### Run iotex-core 85 86 Start (or resume) a standalone server to operate on a blockchain by 87 88 ``` 89 make run 90 ``` 91 92 Restart the server from a clean state by 93 94 ``` 95 make reboot 96 ``` 97 98 If "make run" fails due to corrupted or missing state database while block database is in normal condition, e.g., 99 failing to get factory's height from underlying DB, please try to recover state database by 100 101 ``` 102 make recover 103 ``` 104 105 Then, "make run" again. 106 107 ### Use CLI 108 109 Users could interact with iotex blockchain by 110 111 ``` 112 ioctl [command] 113 ``` 114 115 Refer to [CLI document](https://docs.iotex.io/developer/ioctl/install.html) for more details. 116 117 ## Contact 118 119 - Mailing list: [iotex-dev](iotex-dev@iotex.io) 120 - Dev Forum: [forum](https://community.iotex.io/c/research-development/protocol) 121 - Bugs: [issues](https://github.com/iotexproject/iotex-core/issues) 122 123 ## Contribution 124 We are glad to have contributors out of the core team; contributions, including (but not limited to) style/bug fixes, 125 implementation of features, proposals of schemes/algorithms, and thorough documentation, are welcomed. Please refer to 126 our [contribution guideline](CONTRIBUTING.md) for more 127 information. Development guide documentation is [here](https://github.com/iotexproject/iotex-core/wiki/Developers%27-Guide). 128 129 For any major protocol level changes, we use [IIP](https://github.com/iotexproject/iips) to track the proposal, decision 130 and etc. 131 132 ## Contributors 133 134 Thank you for considering contributing to the IoTeX framework! 135 136 <a href="https://github.com/iotexproject/iotex-core/graphs/contributors"> 137 <img src="https://contrib.rocks/image?repo=iotexproject/iotex-core" /> 138 </a> 139 140 ## License 141 This project is licensed under the [Apache License 2.0](LICENSE).