Build JMES Core
JMES Core is the official Golang reference implementation of the JMES node software. Use this guide to install JMES Core and jmesd, the command-line interface and daemon that connects to JMES and enables you to interact with the JMES blockchain.
Get the JMES Core source code
-
Use
git
to retrieve JMES Core, and check out thefeat/winning_grants
branch, which contains the latest stable release. You can find the latest tag on the tags page or via autocomplete in your terminal: typegit checkout v
and press<TAB>
._1git clone -b feat/winning_grants https://github.com/jmesworld/core -
Use
git
to retrieve the jmesworld version of Cosmos SDK, and check out thev0.0.99-alpha.3
tag, which contains the latest stable release. Also, find the path to this folder for use in step 4._1git clone https://github.com/jmesworld/cosmos-sdk.git_2# Switch to your cosmos-sdk folder_2cd cosmos-sdk_2# Checkout the latest tagged version to a local branch_2git checkout tags/v0.0.99-alpha.3 -b latest_3# Note the path to the folder and return to the home directory_3pwd # e.g. /root/cosmos-sdk_3cd .. -
Similarly, use
git
to retrieve the jmesworld version of Tendermint, and check out thev0.99.0-alpha.1
tag, which contains the latest stable release. Also, find the path to this folder for use in step 4._1git clone https://github.com/jmesworld/tendermint.git_2# Switch to your tendermint folder_2cd tendermint_2# Checkout the latest tagged version to a local branch_2git checkout tags/v0.99.0-alpha.3 -b latest_3# Note the path to the folder and return to the home directory_3pwd # e.g. /root/tendermint_3cd .. -
Replace cosmos-sdk and tendermint dependencies in the
replace
section of thego.mod
file. Ensure you replace<PATH TO YOUR local folder>
with those nnoted in Steps 2 & 3 above._5cd core_5_5sed -i 's|github.com/cosmos/cosmos-sdk => github.com/jmesworld/cosmos-sdk v0.46.0-jmes.1| github.com/cosmos/cosmos-sdk => <PATH TO YOUR cosmos-sdk folder>|g' go.mod_5_5#Example: sed -i 's|github.com/cosmos/cosmos-sdk => github.com/jmesworld/cosmos-sdk v0.46.0-jmes.1|github.com/cosmos/cosmos-sdk => /root/cosmos-sdk|g' go.mod_3sed -i 's|github.com/tendermint/tendermint => github.com/jmesworld/tendermint v0.34.21-jmes.1| github.com/tendermint/tendermint => <PATH TO YOUR tendermint folder>|g' go.mod_3_3#sed -i 's|github.com/tendermint/tendermint => github.com/jmesworld/tendermint v0.34.21-jmes.1| github.com/tendermint/tendermint => /root/tendermint|g' go.mod -
Build JMES Core. This will install the JMESd executable to your
GOPATH
environment variable._1make install -
Verify that JMES Core is installed correctly.
_1jmesd version --longExample:
_7name: jmes_7server_name: jmesd_7version: feat/winning_grants-8d8a9c26047d9b834ada5c3c7c6880857b3ee4e1_7commit: 8d8a9c26047d9b834ada5c3c7c6880857b3ee4e1_7build_tags: netgo ledger,_7go: go version go1.20.4 linux/amd64_7# ...followed by a lot of dependenecies
If the jmesd: command not found
error message is returned, confirm that the Go binary path is correctly configured by running the following command:
_1export PATH=$PATH:$(go env GOPATH)/bin