{"id":26983601,"url":"https://github.com/exoralayer/chain","last_synced_at":"2025-04-03T17:04:40.832Z","repository":{"id":37330987,"uuid":"281920794","full_name":"exoralayer/chain","owner":"exoralayer","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-30T13:35:35.000Z","size":35620,"stargazers_count":33,"open_issues_count":26,"forks_count":14,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T11:25:49.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exoralayer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["lcnem","KimuraYu45z"]}},"created_at":"2020-07-23T10:25:33.000Z","updated_at":"2024-08-12T19:25:37.000Z","dependencies_parsed_at":"2023-10-11T15:52:31.468Z","dependency_job_id":"c50bd8f4-8ddd-4615-a6f7-3a4be088af72","html_url":"https://github.com/exoralayer/chain","commit_stats":null,"previous_names":["lcnem/xjpy","lcnem/jpyx","gluon-zone/chain","ununifi/chain","exoralayer/chain"],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoralayer%2Fchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoralayer%2Fchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoralayer%2Fchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoralayer%2Fchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exoralayer","download_url":"https://codeload.github.com/exoralayer/chain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247043337,"owners_count":20874086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-03T17:02:17.867Z","updated_at":"2025-04-03T17:04:40.824Z","avatar_url":"https://github.com/exoralayer.png","language":"Go","funding_links":["https://github.com/sponsors/lcnem","https://github.com/sponsors/KimuraYu45z"],"categories":["Go"],"sub_categories":[],"readme":"# UnUniFi\n\n## Install\n\n### Environment setup\n\nInstall the necessary libraries for the build.\n\n```bash\ncd $HOME\nsudo apt update -y; sudo apt upgrade -y\nsudo apt install -y jq git build-essential\n```\n\nInstall Go. Use the 20.x series version.\n\n```bash\n$ wget https://go.dev/dl/go1.20.linux-amd64.tar.gz\n$ sudo rm -rf /usr/local/go \u0026\u0026 sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz\n$ vim ~/.bashrc\nexport PATH=$PATH:/usr/local/go/bin:$HOME/go/bin\n$ source ~/.bashrc\n$ go version\ngo version go1.20 linux/amd64\n```\n\nClone the UnUniFi blockchain repository, check out the given branch, and build it with `make install` to build binaries.\n\n```bash\ngit clone https://github.com/UnUniFi/chain chain_repo\ncd chain_repo\ngit checkout v3.2.0\ngit pull\nmake install\n```\n\nCheck the binary version.\n\n```bash\nununifid version\n```\n\n### Start node for debugging\n\nInitialize node\n\n```bash\nununifid init [your-moniker] --chain-id [chain-id]\n```\n\n- `your-moniker` is like a nickname of your node.\n- `chain-id` is the id of the blockchain network. (ex. In the current mainnet beta, the chain-id is `ununifi-beta-v1`.)\n\nDownload correct genesis.json\n\n```bash\nrm ~/.ununifi/config/genesis.json\ncurl -L https://raw.githubusercontent.com/UnUniFi/network/main/launch/[chain-id]/genesis.json -o ~/.ununifi/config/genesis.json\n```\n\nIf you necessary, Edit config files.\n\n- `~/.ununifi/config/app.toml`\n  - `minimum-gas-prices` ... [https://docs.cosmos.network/v0.45/modules/auth/01_concepts.html#gas-fees](https://docs.cosmos.network/v0.45/modules/auth/01_concepts.html#gas-fees)\n  - `pruning`\n  - Enable defines if the API server should be enabled. `enable = true`\n  - EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk). `enabled-unsafe-cors = true`\n- `.ununifi/config/config.toml` ex. in the case of chain-id=\"ununifi-beta-v1\", the possible settings are as follows.\n  - `persistent-peers = \"fa38d2a851de43d34d9602956cd907eb3942ae89@a.ununifi.cauchye.net:26656,404ea79bd31b1734caacced7a057d78ae5b60348@b.ununifi.cauchye.net:26656,1357ac5cd92b215b05253b25d78cf485dd899d55@[2600:1f1c:534:8f02:7bf:6b31:3702:2265]:26656,25006d6b85daeac2234bcb94dafaa73861b43ee3@[2600:1f1c:534:8f02:a407:b1c6:e8f5:94b]:26656,caf792ed396dd7e737574a030ae8eabe19ecdf5c@[2600:1f1c:534:8f02:b0a4:dbf6:e50b:d64e]:26656,796c62bb2af411c140cf24ddc409dff76d9d61cf@[2600:1f1c:534:8f02:ca0e:14e9:8e60:989e]:26656,cea8d05b6e01188cf6481c55b7d1bc2f31de0eed@[2600:1f1c:534:8f02:ba43:1f69:e23a:df6b]:26656\"`\n\nStart node.\n\n```bash\nununifid start\n```\n\n## Keep your node stable\n\nIf you wanna keep your node stable, we recommend to use Cosmovisor.\n\n[https://docs.cosmos.network/master/run-node/cosmovisor.html](https://docs.cosmos.network/master/run-node/cosmovisor.html)\n\n### Setup\n\nSet the following environment variables.\nSome environment variables must be set to appropriate values for each node and each network.\n\n`~/.profile`\n\n```bash\nexport CHAIN_REPO=https://github.com/UnUniFi/chain\nexport CHAIN_REPO_BRANCHE=main\nexport TARGET=ununifid\nexport TARGET_HOME=.ununifi\n\n# This value will be different for each node.\nexport MONIKER=\u003cyour-moniker\u003e\nexport DL_CHAIN_BIN=\n\n# This value is example of mainnet.\nexport CHAIN_ID=ununifi-beta-v1\n\n# This value is example of mainnet.\nexport GENESIS_FILE_URL=https://raw.githubusercontent.com/UnUniFi/network/main/launch/ununifi-beta-v1/genesis.json\nexport SETUP_NODE_CONFIG_ENV=TRUE\nexport SETUP_NODE_ENV=TRUE\nexport SETUP_NODE_MASTER=TRUE\nexport DAEMON_NAME=ununifid\n\n# This value will be different for each node.\nexport DAEMON_HOME=/home/\u003cyour-user\u003e/.ununifi\nexport DAEMON_ALLOW_DOWNLOAD_BINARIES=true\nexport DAEMON_LOG_BUFFER_SIZE=512\nexport DAEMON_RESTART_AFTER_UPGRADE=true\nexport UNSAFE_SKIP_BACKUP=true\n```\n\n### Install Cosmovisor\n\n```bash\ncd $HOME\ngo install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0\nmkdir -p $DAEMON_HOME/cosmovisor\nmkdir -p $DAEMON_HOME/cosmovisor/genesis\nmkdir -p $DAEMON_HOME/cosmovisor/genesis/bin\nmkdir -p $DAEMON_HOME/cosmovisor/upgrades\ncp ~/go/bin/$DAEMON_NAME $DAEMON_HOME/cosmovisor/genesis/bin\n```\n\n### Register daemon service\n\nCreate service file.\n\n`/lib/systemd/system/cosmovisor.service`\n\n```shell\n[Unit]\nDescription=Cosmovisor daemon\nAfter=network-online.target\n[Service]\nEnvironment=\"DAEMON_NAME=ununifid\"\nEnvironment=\"DAEMON_HOME=/home/\u003cyour-user\u003e/.ununifi\"\nEnvironment=\"DAEMON_RESTART_AFTER_UPGRADE=true\"\nEnvironment=\"DAEMON_ALLOW_DOWNLOAD_BINARIES=true\"\nEnvironment=\"DAEMON_LOG_BUFFER_SIZE=512\"\nEnvironment=\"UNSAFE_SKIP_BACKUP=true\"\nUser=\u003cyour-user\u003e\nExecStart=/home/\u003cyour-user\u003e/go/bin/cosmovisor start\nRestart=always\nRestartSec=3\nLimitNOFILE=infinity\nLimitNPROC=infinity\n[Install]\nWantedBy=multi-user.target\n```\n\nSet systemctl\n\n```bash\nsudo systemctl daemon-reload\nsudo systemctl restart systemd-journald\nsudo systemctl enable cosmovisor\n```\n\n### Start node with cosmovisor\n\nStart node.\n\n```bash\nsudo systemctl start cosmovisor\n```\n\nYou can check your node status with the following command.\n\n```bash\n$ sudo systemctl status cosmovisor\n\n# Log sample\n● cosmovisor.service - Cosmovisor daemon\n      Loaded: loaded (/lib/systemd/system/cosmovisor.service; enabled; vendor preset: enabled)\n      Active: active (running) since Mon 2022-05-16 17:57:24 +08; 46s ago\n    Main PID: 232015 (cosmovisor)\n      Tasks: 29 (limit: 36046)\n      Memory: 123.3M\n      CGroup: /system.slice/cosmovisor.service\n              ├─232015 /home/ununifi/go/bin/cosmovisor start\n              └─232029 /home/ununifi/.ununifi/cosmovisor/genesis/bin/ununifid start\n\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Completed ABCI Handshake - Tendermint and App are synced appHash= appHeight=0 module=consensus\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Version info block=11 p2p=8 tendermint_version=v0.34.16\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF This node is not a validator addr=83FD137D6541F5198D7107FE6B75ACDDBCC72329 module=consensus pubKey=B8tjjYkW51s6bFqDNRIhJdZJsTR68Ez\u003e\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF P2P Node ID ID=729318b4ee913b1d56a1fe22b93860aa01bff82a file=/home/ununifi/.ununifi/config/node_key.json module=p2p\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Adding persistent peers addrs=[\"fa38d2a851de43d34d9602956cd907eb3942ae89@a.ununifi.cauchye.net:26656\",\"404ea79bd31b1734caacced7a05\u003e\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Adding unconditional peer ids ids=[] module=p2p\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Add our address to book addr={\"id\":\"729318b4ee913b1d56a1fe22b93860aa01bff82a\",\"ip\":\"0.0.0.0\",\"port\":26656} book=/home/ununifi/.unu\u003e\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Starting Node service impl=Node\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Genesis time is in the future. Sleeping until then... genTime=2022-05-17T03:00:00Z\nMay 16 17:57:26 cosmovisor[232029]: 5:57PM INF Starting pprof server laddr=localhost:6060\n```\n\n## License\n\nCopyright © UnUniFi development team. All rights reserved.\n\nLicensed under the [Apache v2 License](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexoralayer%2Fchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexoralayer%2Fchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexoralayer%2Fchain/lists"}