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) | &ge; 1.18.5 | Go programming language |
    37  | [Protoc](https://developers.google.com/protocol-buffers/) | &ge; 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).