{"id":42259397,"url":"https://github.com/commercionetwork/chains","last_synced_at":"2026-01-27T05:38:38.215Z","repository":{"id":35001123,"uuid":"191504812","full_name":"commercionetwork/chains","owner":"commercionetwork","description":"Repository containing all the different Commercio.network chains versions","archived":false,"fork":false,"pushed_at":"2025-11-17T06:54:21.000Z","size":87631,"stargazers_count":1,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-17T08:28:33.970Z","etag":null,"topics":["blockchain","chains","mainnet","network-chains"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/commercionetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-06-12T05:40:35.000Z","updated_at":"2025-11-17T06:54:26.000Z","dependencies_parsed_at":"2024-02-05T17:43:54.198Z","dependency_job_id":null,"html_url":"https://github.com/commercionetwork/chains","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/commercionetwork/chains","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercionetwork%2Fchains","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercionetwork%2Fchains/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercionetwork%2Fchains/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercionetwork%2Fchains/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/commercionetwork","download_url":"https://codeload.github.com/commercionetwork/chains/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commercionetwork%2Fchains/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28804376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T03:44:14.111Z","status":"ssl_error","status_checked_at":"2026-01-27T03:43:33.507Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["blockchain","chains","mainnet","network-chains"],"created_at":"2026-01-27T05:38:37.190Z","updated_at":"2026-01-27T05:38:38.195Z","avatar_url":"https://github.com/commercionetwork.png","language":"Shell","readme":"# Commercio.network Chains\nThis repository contains all the data related to the different chains that a Commercio.network validator can connect to.\n\n# Current Chains\n\n## Mainnet: `commercio-3`\n\n## Warning\n\nUse https://quicksync.commercio.network with the dump to start a new node.    \n**Don't start from genesis**\n### Seeds list\n\n8d3ac30a774245019f7b94d7a0713fd8caccaa03@seed-01.commercio.network:26656\n68ccfc9a1574923e344993d49253d8169f592f9e@seed-02.commercio.network:26656\n\n### Persistent Peers list\n\n3f26a7d3269e352574e760d4b08d045aa40ebbf2@persistent-01.commercio.network:26656\n542a55fff599ea07e2b4841febff4a78cf8db2aa@persistent-05.commercio.network:26656\n01f615a56a7ba14d39e4eaf2bfd00a885cc4e629@persistent-03.commercio.network:26656\n15767f4961b501eb67e740aa60c1608bf65679f3@persistent-02.commercio.network:26656\n49fdf20f845573429a695c15729c60f52bb5ab19@84.46.241.230:26656\n\n------------------\n\n### Seeds \n\nseeds = \"8d3ac30a774245019f7b94d7a0713fd8caccaa03@seed-01.commercio.network:26656,68ccfc9a1574923e344993d49253d8169f592f9e@seed-02.commercio.network:26656\"\n### Persistent Peers\n\npersistent_peers = \"3f26a7d3269e352574e760d4b08d045aa40ebbf2@persistent-01.commercio.network:26656,542a55fff599ea07e2b4841febff4a78cf8db2aa@persistent-05.commercio.network:26656,01f615a56a7ba14d39e4eaf2bfd00a885cc4e629@persistent-03.commercio.network:26656,15767f4961b501eb67e740aa60c1608bf65679f3@persistent-02.commercio.network:26656,49fdf20f845573429a695c15729c60f52bb5ab19@84.46.241.230:26656\"\n\n\n## Testnet: `commercio-testnet11k`\n\nUse https://quicksync.commercio.network with the dump to start a new node.    \n**Don't start from genesis**\n### Seeds list\n\na750af543e9e475c17af98cf3166f2a9f260c318@commercio-testnet4k-seed.commercio.network:26656\n\n### Persistent Peers list\n\n263855c2a4f599633a5a86c79823365616a3f5cd@46.101.146.48:26656\n5662530384f67f5b6317a48ec339cbf543a975fb@134.209.88.227:26656\nf64d897a4d73f0324495eee811d4b1d137afef37@commercio-testnet4k-02.commercio.network:26656\nc2af8cd06485a550ea86cbe5774f397bdffa3046@commercio-testnet4k-03.commercio.network:26656\n\n------------------\n\n### Seeds \n\nseeds = \"a750af543e9e475c17af98cf3166f2a9f260c318@commercio-testnet4k-seed.commercio.network:26656\"\n### Persistent Peers\n\npersistent_peers = \"263855c2a4f599633a5a86c79823365616a3f5cd@46.101.146.48:26656,5662530384f67f5b6317a48ec339cbf543a975fb@134.209.88.227:26656,f64d897a4d73f0324495eee811d4b1d137afef37@commercio-testnet4k-02.commercio.network:26656,c2af8cd06485a550ea86cbe5774f397bdffa3046@commercio-testnet4k-03.commercio.network:26656\"\n\n\n----\n\n## Getting Started\n**IMPORTANT BEFORE YOU START**: If you are already a validator you need see section [Update chain](#update-chain) procedure.    \nIf you are thinking of creating a new server instance, use the following procedure.      \n      \nFirst off, you’ll need to setup a server. This guide is written for Digital Ocean, but it is applicable to any other\ncloud provider like Amazon AWS, Google Cloud, Microsoft Azure, Alibaba Cloud or Scaleway.\n\nHere's a friendly Digital Ocean $50 credit Coupon link: https://m.do.co/c/132ef6958ef7.\n\n## 1. Setup chain version 4.1.0\nFor the sake of simplicity, we will assume you have selected the following DigitalOcean configuration.  \nPlease not that this is just an example, but any configuration similar to this one will work perfectly fine.      \n\n| Characteristic | Specification |\n| :------------: | :-----------: |\n| Operative System | Ubuntu 18.04/20.04/22.04 |\n| Number of CPUs | 2 |\n| RAM | 32GB |\n| SSD | 300GB | \n\nAlso, we need to make sure the following requirements are met: \n* Allow incoming connections on port `26656`\n* Have a static IP address\n* Have access to the root user\n\n## 2. Installing requirements\nIn order to update the OS so that you can work properly, execute the following commands:\n\n```shell\napt update \u0026\u0026 sudo apt upgrade -y\napt install unzip\napt install -y git gcc make\nsnap install --classic go\n\nGOPATH=$HOME/go\nPATH=$GOPATH/bin:$PATH\n```\n\n## 3. Chain selection\nBefore installing the node, please select which chain you would like to connect to \n\n```shell\nrm -rf commercio-chains\nmkdir commercio-chains \u0026\u0026 cd commercio-chains\ngit clone https://github.com/commercionetwork/chains.git .\ncd commercio-\u003cchain-version\u003e # eg. cd commercio-testnet1001 \n```\n\n## 4. Install binaries, genesis file and setup configuration\n\nCompile binaries \n\n```shell\ngit init . \ngit remote add origin https://github.com/commercionetwork/commercionetwork.git\ngit pull\ngit checkout tags/$(cat .data | grep -oP 'Release\\s+\\K\\S+')\nmake install\n```\n\nTest if you have the correct binaries version:\n\n```shell\ncommercionetworkd version\n# Should output the same version written inside the .data file\n```\n\nSetup the validator node name. We will use the same name for node as well as the wallet key:\n\n```shell\nexport NODENAME=\"\u003cyour-moniker\u003e\"\nexport CHAINID=commercio-$(cat .data | grep -oP 'Name\\s+\\K\\S+')\ncat \u003c\u003cEOF \u003e\u003e ~/.profile\nexport NODENAME=\"$NODENAME\"\nexport CHAINID=\"$CHAINID\"\nexport GOPATH=\"\\$HOME/go\"\nexport PATH=\"\\$GOPATH/bin:\\$PATH\"\nEOF\n```\n\nInit the `.commercionetwork` folder with the basic configuration\n\n```shell\npkill commercionetworkd\ncommercionetworkd unsafe-reset-all\n\n# If you get a error because .commercionetwork folder is not present don't worry \ncommercionetworkd init $NODENAME\n```\n\nInstall `genesis.json` file\n\n```shell\npkill commercionetworkd\nrm -rf ~/.commercionetwork/config/genesis.json\ncp genesis.json ~/.commercionetwork/config\n```\n\nChange the persistent peers inside `config.toml` file\n\n```shell\nsed -e \"s|persistent_peers = \\\".*\\\"|persistent_peers = \\\"$(cat .data | grep -oP 'Persistent peers\\s+\\K\\S+')\\\"|g\" ~/.commercionetwork/config/config.toml \u003e ~/.commercionetwork/config/config.toml.tmp\nmv ~/.commercionetwork/config/config.toml.tmp  ~/.commercionetwork/config/config.toml\n```\n\nChange the seeds inside the `config.toml` file\n```shell\nsed -e \"s|seeds = \\\".*\\\"|seeds = \\\"$(cat .data | grep -oP 'Seeds\\s+\\K\\S+')\\\"|g\" ~/.commercionetwork/config/config.toml \u003e ~/.commercionetwork/config/config.toml.tmp\nmv ~/.commercionetwork/config/config.toml.tmp  ~/.commercionetwork/config/config.toml\n```\n\n## 5. Configure the service\n\n```shell\ntee /etc/systemd/system/commercionetworkd.service \u003e /dev/null \u003c\u003cEOF  \n[Unit]\nDescription=Commercio Node\nAfter=network-online.target\n\n[Service]\nUser=root\nExecStart=/root/go/bin/commercionetworkd start\nRestart=always\nRestartSec=3\nLimitNOFILE=4096\n\n[Install]\nWantedBy=multi-user.target\nEOF\n```\n\n**Optional**. You can quick sync with the follow procedure:\n```shell\nwget \"https://quicksync.commercio.network/$CHAINID.latest.tgz\" -P ~/.commercionetwork/\n# Check if the checksum matches the one present inside https://quicksync.commercio.network\ncd ~/.commercionetwork/\ntar -zxf $(echo $CHAINID).latest.tgz\n```\n\n\nNow you can start full node. Enable and try to start service\n\n```shell\n# Start the node  \nsystemctl enable commercionetworkd  \nsystemctl start commercionetworkd\n```\n\n\n\nControl if the sync was started. Use `ctrl+c` to interrupt `tail` command\n\n```shell\ntail -100f /var/log/syslog\n# OUTPUT SHOULD BE LIKE BELOW\n#\n# Aug 13 16:30:20 commerciotestnet-node4 commercionetworkd[351]: I[2019-08-13|16:30:20.722] Executed block                               module=state height=1 validTxs=0 invalidTxs=0\n# Aug 13 16:30:20 commerciotestnet-node4 commercionetworkd[351]: I[2019-08-13|16:30:20.728] Committed state                              module=state height=1 txs=0 appHash=9815044185EB222CE9084AA467A156DFE6B4A0B1BAAC6751DE86BB31C83C4B08\n# Aug 13 16:30:20 commerciotestnet-node4 commercionetworkd[351]: I[2019-08-13|16:30:20.745] Executed block                               module=state height=2 validTxs=0 invalidTxs=0\n# Aug 13 16:30:20 commerciotestnet-node4 commercionetworkd[351]: I[2019-08-13|16:30:20.751] Committed state                              module=state height=2 txs=0 appHash=96BFD9C8714A79193A7913E5F091470691B195E1E6F028BC46D6B1423F7508A5\n# Aug 13 16:30:20 commerciotestnet-node4 commercionetworkd[351]: I[2019-08-13|16:30:20.771] Executed block                               module=state height=3 validTxs=0 invalidTxs=0\n```\n\n## 6. Add wallet key, get tokens and create a validator\nInside the testnet we don't use the Ledger. \nHowever, if you wish to do so, please add the `--ledger` flat to any command.\n    \n**WARNING**  \nPlease remember to copy the 24 words seed phrase in a secure place.  \nThey are your memonic and if you loose them you lose all your tokens and the whole access to your validator.  \n\n```shell\ncncli keys add $NODENAME\n# Enter a password that you can remember\n```\n\nCopy your public address. It should have the format `did:com:\u003cdata\u003e`.\n\n```shell\ncncli keys show $NODENAME --address\n```\n    \nFrom now on we will refer to the value of your public address using the `\u003cyour pub addr\u003e` notation.\n\nIn order to receive your tokens, please send your `\u003cyour pub addr\u003e` inside our \n[Telegram group](https://t.me/commercionetworkvipsTelegram) requesting them. \nWe will make sure to send them to you as soon as possible.\n\nOnce you've been confirmed the successful transaction, please check using the following command:\n```shell\ncncli query account \u003cyour pub addr\u003e --chain-id $CHAINID\n# Output should like this\n# ...\n#   - denom: ucommercio\n#    amount: \"52000000000\"\n# ...\n```\n\n\nNow you can create validator. If you want you can fill follow parameters\n* `--details`: add a brief description about your node or your company\n* `--identity`: your [Keybase](https://keybase.io) identity\n* `--website`: a public site of your node or your company\n\n\n```shell\ncncli tx staking create-validator \\\n  --amount=50000000000ucommercio \\\n  --pubkey=$(cnd tendermint show-validator) \\\n  --moniker=\"$NODENAME\" \\\n  --chain-id=\"$CHAINID\" \\\n  --identity=\"\" --website=\"\" --details=\"\" \\\n  --commission-rate=\"0.10\" --commission-max-rate=\"0.20\" \\\n  --commission-max-change-rate=\"0.01\" --min-self-delegation=\"1\" \\\n  --from=\u003cyour pub addr\u003e \\\n  -y\n# Output should like this\n# ...\n# rawlog: '[{\"msg_index\":0,\"success\":true,\"log\":\"\"}]'\n# ...\n```\n\n## 7. Confirm your validator is active\nYour validator is active if the following command returns anything:\n\n```shell\ncncli query staking validators --chain-id $CHAINID | fgrep $(commercionetworkd tendermint show-validator)\n```\nYou should now see your validator inside the [Commercio.network explorer](https://test.explorer.commercio.network)\n\n## Congratulations, you are now a Commercio.network validator 🎉\n\n# Update chain\n**IMPORTANT BEFORE YOU START**: If you are a new validator you need follow [\"Getting Started\"](##getting-started) procedure. __DON'T USE THESE UPDATE PROCEDURES__    \n      \nThis section describe the procedures to update chain from a version to another.    \nEvery update have a specific produre type.   \nFirst type will be used only for testnet chains, while the second will be used to update mainnet chain.  \nEvery chain starting `commercio-testnet3000` contains type procedure adopted.   \nIn     \n\n`https://github.com/commercionetwork/chains/blob/master/commercio-\u003cchain-version\u003e/.data`      \n\nYou should find `Update type`.\n\n\n\n## 1. Update with \"getting started\" procedure\nThis type is similar to the \"getting started\" procedure.   \nYou need to delete or move the `~/.commercionetwork` folder and start as fresh.    \nYou can mantain your wallet that is installed in `~/.commercionetwork` folder or in your `ledger` device, or recreate it with mnemonic.   \nYou can create new wallet if you prefered and use a new account to become a validator.   \n\n```shell\nsystemctl stop commercionetworkd\npkill commercionetworkd #We want be sure that chain process was stopped ;)\n```\n\nDelete `~/.commercionetwork` folder\n\n```shell\nrm -rf ~/.commercionetwork\n```\n\nor move it (if you want keep the old testnet state for your porpouses). \nUse `\u003cprevious-chain-version\u003e` name for copy name for example\n\n```shell\ncp -r ~/.commercionetwork ~/.commercionetwork.\u003cprevious-chain-version\u003e\n```\n\nNow you can start follow \"getting started\" procedure.\n**WARNING**: before go haed with \"getting started\" procedure read follow changes about some steps\n\nIn [`step 1`](##1-Setup) in order to update the OS so that you can work properly, execute the following commands:\n\n```shell\napt update \u0026\u0026 sudo apt upgrade -y\nsnap refresh --classic go # You need to update golang to last version\n```\n\n\n In [`step 4`](##4-install-binaries-genesis-file-and-setup-configuration) you don't need to change the follow rows of your `~/.profile` file\n\n```\nexport GOPATH=\"\\$HOME/go\"\nexport PATH=\"\\$GOPATH/bin:\\$PATH\"\n```\n\nYou need clean up your file from previous chain configurations\n\n```shell\nsed -i \\\n -e '/export NODENAME=.*/d' \\\n -e '/export CHAINID=.*/d' ~/.profile\n```\n\nand add new chain configs\n\n```shell\nexport NODENAME=\"\u003cyour-moniker\u003e\"\nexport CHAINID=commercio-$(cat .data | grep -oP 'Name\\s+\\K\\S+')\n\ncat \u003c\u003cEOF \u003e\u003e ~/.profile\nexport NODENAME=\"$NODENAME\"\nexport CHAINID=\"$CHAINID\"\nEOF\n```\n\n   \n\n## 2. Update with cnd commands **(WIP 🛠)**\nThis procedure will be applied to mainnet chain and to some specific testnet update\n\n### A. Preliminary/Risks **(WIP 🛠)**\nTo this type of procedure will be assigned a height of block, informations about checksum of geneis file and software version and a deadline expressed in UTC format.    \nThere is some risks about double signature: to avoid every sort of risks verify software and hash of `genesis.json` and specific configuration in `config.toml`.\nThe deadline of update must be respected: every validator that will not update just in time will be slashed.\n\n### B. Recovery **(WIP 🛠)**\nIs recommended to take a full data snapshot at the export height before update.   \nThis procedure is quite simple using commands below\n\n```shell\nsystemctl stop cnd\ncp -r ~/.commercionetwork ~/.commercionetwork.[OLD VERSION]\n# Save binaries also\ncp -r /root/go/bin/cnd /root/go/bin/cnd.[OLD VERSION]\ncp -r /root/go/bin/cncli /root/go/bin/cncli.[OLD VERSION]\n```\n### C. Upgrade Procedure **(WIP 🛠)**\n\n```shell\nrm -rf commercio-chains\nmkdir commercio-chains \u0026\u0026 cd commercio-chains\ngit clone https://github.com/commercionetwork/chains.git .\ncd commercio-\u003cchain-version\u003e # eg. cd commercio-testnet1001 \n```\n\nCompile binaries \n\n```shell\ngit init . \ngit remote add origin https://github.com/commercionetwork/commercionetwork.git\ngit pull\ngit checkout tags/$(cat .data | grep -oP 'Release\\s+\\K\\S+')\nmake install\n```\n\nTest if you have the correct binaries version:\n\n```shell\ncnd version\n# Should output the same version written inside the .data file\n```\n\nGet height from update info\n\n```shell\nexport BLOCKHEIGHT=$(cat .data | grep -oP 'Height\\s+\\K\\S+')\n```\n\nExport state from \n\n\n\n\n## 1. Setup version 3.0.0 (WIP)\nFor the sake of simplicity, we will assume you have selected the following DigitalOcean configuration.  \nPlease not that this is just an example, but any configuration similar to this one will work perfectly fine.      \n\n| Characteristic | Specification |\n| :------------: | :-----------: |\n| Operative System | Ubuntu 18.04 |\n| Number of CPUs | 8 |\n| RAM | 32GB |\n| SSD | 200GB | \n\nAlso, we need to make sure the following requirements are met: \n* Allow incoming connections on port `26656`\n* Have a static IP address\n* Have access to the root user\n\n## 2. Installing requirements\nIn order to update the OS so that you can work properly, execute the following commands:\n\n```shell\napt update \u0026\u0026 sudo apt upgrade -y\napt install unzip\napt install -y git gcc make\nsnap install --classic go\n\nGOPATH=$HOME/go\nPATH=$GOPATH/bin:$PATH\n```\n\n## 3. Chain selection\nBefore installing the node, please select which chain you would like to connect to \n\n```shell\nrm -rf commercio-chains\nmkdir commercio-chains \u0026\u0026 cd commercio-chains\ngit clone https://github.com/commercionetwork/chains.git .\ncd commercio-\u003cchain-version\u003e # eg. cd commercio-testnet1001 \n```\n\n## 4. Install binaries, genesis file and setup configuration\n\nCompile binaries \n\n```shell\ngit init . \ngit remote add origin https://github.com/commercionetwork/commercionetwork.git\ngit pull\ngit checkout tags/$(cat .data | grep -oP 'Release\\s+\\K\\S+')\nmake install\n```\n\nTest if you have the correct binaries version:\n\n```shell\ncommercionetworkd version\n# Should output the same version written inside the .data file\n```\n\nSetup the validator node name. We will use the same name for node as well as the wallet key:\n\n```shell\nexport NODENAME=\"\u003cyour-moniker\u003e\"\nexport CHAINID=commercio-$(cat .data | grep -oP 'Name\\s+\\K\\S+')\ncat \u003c\u003cEOF \u003e\u003e ~/.profile\nexport NODENAME=\"$NODENAME\"\nexport CHAINID=\"$CHAINID\"\nexport GOPATH=\"\\$HOME/go\"\nexport PATH=\"\\$GOPATH/bin:\\$PATH\"\nEOF\n```\n\nInit the `.commercionetworkd` folder with the basic configuration\n\n```shell\npkill cnd\ncommercionetworkd unsafe-reset-all\n\n# If you get a error because .commercionetwork folder is not present don't worry \ncnd init $NODENAME\n```\n\nInstall `genesis.json` file\n\n```shell\npkill cnd\nrm -rf ~/.commercionetworkd/config/genesis.json\ncp genesis.json ~/.commercionetworkd/config\n```\n\nChange the persistent peers inside `config.toml` file\n\n```shell\nsed -e \"s|persistent_peers = \\\".*\\\"|persistent_peers = \\\"$(cat .data | grep -oP 'Persistent peers\\s+\\K\\S+')\\\"|g\" ~/.commercionetwork/config/config.toml \u003e ~/.commercionetwork/config/config.toml.tmp\nmv ~/.commercionetwork/config/config.toml.tmp  ~/.commercionetwork/config/config.toml\n```\n\nChange the seeds inside the `config.toml` file\n```shell\nsed -e \"s|seeds = \\\".*\\\"|seeds = \\\"$(cat .data | grep -oP 'Seeds\\s+\\K\\S+')\\\"|g\" ~/.commercionetwork/config/config.toml \u003e ~/.commercionetwork/config/config.toml.tmp\nmv ~/.commercionetwork/config/config.toml.tmp  ~/.commercionetwork/config/config.toml\n```\n\n## 5. Configure the service\n\n```shell\ntee /etc/systemd/system/commercionetworkd.service \u003e /dev/null \u003c\u003cEOF  \n[Unit]\nDescription=Commercio Node\nAfter=network-online.target\n\n[Service]\nUser=root\nExecStart=/root/go/bin/commercionetwork start\nRestart=always\nRestartSec=3\nLimitNOFILE=4096\n\n[Install]\nWantedBy=multi-user.target\nEOF\n```\n\n**Optional**. You can quick sync with the follow procedure:\n```shell\nwget \"https://quicksync.commercio.network/$CHAINID.latest.tgz\" -P ~/.commercionetwork/\n# Check if the checksum matches the one present inside https://quicksync.commercio.network\ncd ~/.commercionetwork/\ntar -zxf $(echo $CHAINID).latest.tgz\n```\n\n\nNow you can start full node. Enable and try to start service\n\n```shell\n# Start the node  \nsystemctl enable commercionetworkd  \nsystemctl start commercionetworkd\n```\n\n\n\nControl if the sync was started. Use `ctrl+c` to interrupt `tail` command\n\n```shell\ntail -100f /var/log/syslog\n# OUTPUT SHOULD BE LIKE BELOW\n#\n# Aug 13 16:30:20 commerciotestnet-node4 cnd[351]: I[2019-08-13|16:30:20.722] Executed block                               module=state height=1 validTxs=0 invalidTxs=0\n# Aug 13 16:30:20 commerciotestnet-node4 cnd[351]: I[2019-08-13|16:30:20.728] Committed state                              module=state height=1 txs=0 appHash=9815044185EB222CE9084AA467A156DFE6B4A0B1BAAC6751DE86BB31C83C4B08\n# Aug 13 16:30:20 commerciotestnet-node4 cnd[351]: I[2019-08-13|16:30:20.745] Executed block                               module=state height=2 validTxs=0 invalidTxs=0\n# Aug 13 16:30:20 commerciotestnet-node4 cnd[351]: I[2019-08-13|16:30:20.751] Committed state                              module=state height=2 txs=0 appHash=96BFD9C8714A79193A7913E5F091470691B195E1E6F028BC46D6B1423F7508A5\n# Aug 13 16:30:20 commerciotestnet-node4 cnd[351]: I[2019-08-13|16:30:20.771] Executed block                               module=state height=3 validTxs=0 invalidTxs=0\n```\n\n## 6. Add wallet key, get tokens and create a validator\nInside the testnet we don't use the Ledger. \nHowever, if you wish to do so, please add the `--ledger` flat to any command.\n    \n**WARNING**  \nPlease remember to copy the 24 words seed phrase in a secure place.  \nThey are your memonic and if you loose them you lose all your tokens and the whole access to your validator.  \n\n```shell\ncncli keys add $NODENAME\n# Enter a password that you can remember\n```\n\nCopy your public address. It should have the format `did:com:\u003cdata\u003e`.\n\n```shell\ncncli keys show $NODENAME --address\n```\n    \nFrom now on we will refer to the value of your public address using the `\u003cyour pub addr\u003e` notation.\n\nIn order to receive your tokens, please send your `\u003cyour pub addr\u003e` inside our \n[Telegram group](https://t.me/commercionetworkvipsTelegram) requesting them. \nWe will make sure to send them to you as soon as possible.\n\nOnce you've been confirmed the successful transaction, please check using the following command:\n```shell\ncncli query account \u003cyour pub addr\u003e --chain-id $CHAINID\n# Output should like this\n# ...\n#   - denom: ucommercio\n#    amount: \"52000000000\"\n# ...\n```\n\n\nNow you can create validator. If you want you can fill follow parameters\n* `--details`: add a brief description about your node or your company\n* `--identity`: your [Keybase](https://keybase.io) identity\n* `--website`: a public site of your node or your company\n\n\n```shell\ncncli tx staking create-validator \\\n  --amount=50000000000ucommercio \\\n  --pubkey=$(cnd tendermint show-validator) \\\n  --moniker=\"$NODENAME\" \\\n  --chain-id=\"$CHAINID\" \\\n  --identity=\"\" --website=\"\" --details=\"\" \\\n  --commission-rate=\"0.10\" --commission-max-rate=\"0.20\" \\\n  --commission-max-change-rate=\"0.01\" --min-self-delegation=\"1\" \\\n  --from=\u003cyour pub addr\u003e \\\n  -y\n# Output should like this\n# ...\n# rawlog: '[{\"msg_index\":0,\"success\":true,\"log\":\"\"}]'\n# ...\n```\n\n## 7. Confirm your validator is active\nYour validator is active if the following command returns anything:\n\n```shell\ncncli query staking validators --chain-id $CHAINID | fgrep $(cnd tendermint show-validator)\n```\nYou should now see your validator inside the [Commercio.network explorer](https://test.explorer.commercio.network)\n\n## Congratulations, you are now a Commercio.network validator 🎉\n\n# Update chain\n**IMPORTANT BEFORE YOU START**: If you are a new validator you need follow [\"Getting Started\"](##getting-started) procedure. __DON'T USE THESE UPDATE PROCEDURES__    \n      \nThis section describe the procedures to update chain from a version to another.    \nEvery update have a specific produre type.   \nFirst type will be used only for testnet chains, while the second will be used to update mainnet chain.  \nEvery chain starting `commercio-testnet3000` contains type procedure adopted.   \nIn     \n\n`https://github.com/commercionetwork/chains/blob/master/commercio-\u003cchain-version\u003e/.data`      \n\nYou should find `Update type`.\n\n\n\n## 1. Update with \"getting started\" procedure\nThis type is similar to the \"getting started\" procedure.   \nYou need to delete or move the `~/.commercionetwork` folder and start as fresh.    \nYou can mantain your wallet that is installed in `~/.commercionetwork` folder or in your `ledger` device, or recreate it with mnemonic.   \nYou can create new wallet if you prefered and use a new account to become a validator.   \n\n```shell\nsystemctl stop cnd\npkill cnd #We want be sure that chain process was stopped ;)\n```\n\nDelete `~/.commercionetwork` folder\n\n```shell\nrm -rf ~/.commercionetwork\n```\n\nor move it (if you want keep the old testnet state for your porpouses). \nUse `\u003cprevious-chain-version\u003e` name for copy name for example\n\n```shell\ncp -r ~/.commercionetwork ~/.commercionetwork.\u003cprevious-chain-version\u003e\n```\n\nNow you can start follow \"getting started\" procedure.\n**WARNING**: before go haed with \"getting started\" procedure read follow changes about some steps\n\nIn [`step 1`](##1-Setup) in order to update the OS so that you can work properly, execute the following commands:\n\n```shell\napt update \u0026\u0026 sudo apt upgrade -y\nsnap refresh --classic go # You need to update golang to last version\n```\n\n\n In [`step 4`](##4-install-binaries-genesis-file-and-setup-configuration) you don't need to change the follow rows of your `~/.profile` file\n\n```\nexport GOPATH=\"\\$HOME/go\"\nexport PATH=\"\\$GOPATH/bin:\\$PATH\"\n```\n\nYou need clean up your file from previous chain configurations\n\n```shell\nsed -i \\\n -e '/export NODENAME=.*/d' \\\n -e '/export CHAINID=.*/d' ~/.profile\n```\n\nand add new chain configs\n\n```shell\nexport NODENAME=\"\u003cyour-moniker\u003e\"\nexport CHAINID=commercio-$(cat .data | grep -oP 'Name\\s+\\K\\S+')\n\ncat \u003c\u003cEOF \u003e\u003e ~/.profile\nexport NODENAME=\"$NODENAME\"\nexport CHAINID=\"$CHAINID\"\nEOF\n```\n\n   \n\n## 2. Update with cnd commands **(WIP 🛠)**\nThis procedure will be applied to mainnet chain and to some specific testnet update\n\n### A. Preliminary/Risks **(WIP 🛠)**\nTo this type of procedure will be assigned a height of block, informations about checksum of geneis file and software version and a deadline expressed in UTC format.    \nThere is some risks about double signature: to avoid every sort of risks verify software and hash of `genesis.json` and specific configuration in `config.toml`.\nThe deadline of update must be respected: every validator that will not update just in time will be slashed.\n\n### B. Recovery **(WIP 🛠)**\nIs recommended to take a full data snapshot at the export height before update.   \nThis procedure is quite simple using commands below\n\n```shell\nsystemctl stop cnd\ncp -r ~/.commercionetwork ~/.commercionetwork.[OLD VERSION]\n# Save binaries also\ncp -r /root/go/bin/cnd /root/go/bin/cnd.[OLD VERSION]\ncp -r /root/go/bin/cncli /root/go/bin/cncli.[OLD VERSION]\n```\n### C. Upgrade Procedure **(WIP 🛠)**\n\n```shell\nrm -rf commercio-chains\nmkdir commercio-chains \u0026\u0026 cd commercio-chains\ngit clone https://github.com/commercionetwork/chains.git .\ncd commercio-\u003cchain-version\u003e # eg. cd commercio-testnet1001 \n```\n\nCompile binaries \n\n```shell\ngit init . \ngit remote add origin https://github.com/commercionetwork/commercionetwork.git\ngit pull\ngit checkout tags/$(cat .data | grep -oP 'Release\\s+\\K\\S+')\nmake install\n```\n\nTest if you have the correct binaries version:\n\n```shell\ncnd version\n# Should output the same version written inside the .data file\n```\n\nGet height from update info\n\n```shell\nexport BLOCKHEIGHT=$(cat .data | grep -oP 'Height\\s+\\K\\S+')\n```\n\nExport state from \n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommercionetwork%2Fchains","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommercionetwork%2Fchains","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommercionetwork%2Fchains/lists"}