{"id":13562259,"url":"https://github.com/KiFoundation/ki-tools","last_synced_at":"2025-04-03T18:33:11.872Z","repository":{"id":38122694,"uuid":"243006022","full_name":"KiFoundation/ki-tools","owner":"KiFoundation","description":"Tools for the Kichain","archived":false,"fork":false,"pushed_at":"2024-07-01T00:01:19.000Z","size":15300,"stargazers_count":14,"open_issues_count":3,"forks_count":12,"subscribers_count":5,"default_branch":"5.0.x","last_synced_at":"2024-11-04T14:44:36.224Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KiFoundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-25T13:27:07.000Z","updated_at":"2024-10-24T13:56:48.000Z","dependencies_parsed_at":"2024-01-14T03:45:40.814Z","dependency_job_id":"86085b15-7391-499f-8c73-aea9a59d7eed","html_url":"https://github.com/KiFoundation/ki-tools","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiFoundation%2Fki-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiFoundation%2Fki-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiFoundation%2Fki-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KiFoundation%2Fki-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KiFoundation","download_url":"https://codeload.github.com/KiFoundation/ki-tools/tar.gz/refs/heads/5.0.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247056984,"owners_count":20876491,"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":"2024-08-01T13:01:06.435Z","updated_at":"2025-04-03T18:33:06.855Z","avatar_url":"https://github.com/KiFoundation.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cp align=\"right\"\u003e\n    \u003cimg width=150px src=\"https://wallet-testnet.blockchain.ki/static/img/icons/ki-chain.png\" /\u003e\n\u003c/p\u003e\n\n# Ki Tools\n\nThis repository hosts `kid`, the implementation of the kichain protocol, based on Cosmos-SDK.\n\n## Quick Start\n\n### Install Golang (linux)\n\nTo install Go, visit the Go download page and copy the link of the latest Go release for Linux systems, download and unzip the archive file as follows:\n\n```bash\nwget https://dl.google.com/go/go1.18.linux-amd64.tar.gz\nsudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz\n```\n\nFinally, export the Go paths like so:\n\n```bash\nmkdir -p $HOME/go/bin\nPATH=$PATH:/usr/local/go/bin\necho \"export PATH=$PATH:$(go env GOPATH)/bin\" \u003e\u003e ~/.bash_profile\nsource ~/.bash_profile\n```\n\nTo test the Go installation,  use the `version` command to check the downloaded version as follows :\n\n```bash\ngo version\n```\n\nThis should output :\n\n```bash\ngo version go1.18 linux/amd64\n```\n\n### Build kid (linux)\n\nStart by cloning this repository. If you are here, you most likely have git installed already, otherwise just run:\n\n```bash\nsudo apt install git\n```\n\nAnd now you can clone the repository as follows:\n\n```bash\ngit clone https://github.com/KiFoundation/ki-tools.git\n```\n\nIf your are starting with a clean ubuntu install you might need to install the `build-essential` package:\n\n```bash\nsudo apt update\nsudo apt install build-essential\n```\n\nFinally, navigate to the repository folder and install the tools as follows:\n\n```bash\ncd ki-tools\nmake install\n```\n\nTo test the installation, check the downloaded version as follows:\n\n```bash\nkid version --long\n```\n\n### Building for testnet\n\nTestnet token name (tki) is different from mainnet (xki). Testnet binaries need to support this difference.\nTo build a testnet binary, run as follows:\n\n```bash\ncd ki-tools\nmake build-testnet\n```\n\nYou can also build a static testnet binary as explained in the following section.\n\n### Build a static kid binary\n\n#### **Why building static binaries ?**\n\nStatic binaries hermetically contain libraries that they are using. Dynamic binaries rely on libraries located elsewhere on the system, the binary only containing the address of the library.\nThere are multiple pro and cons of **static vs dynamic**.\n\nFor `kid`, we provide a set a tool to build static binaries, as we want to ensure that:\n\n* Binaries and dependencies are consistent accross the validators set.\n* Build result is reproducible and can be verified by every user.\n\nUsing static, verified, binaries ensures that all nodes mainteners are running the same version of dependencies, the `cosmwasm` particulary.\nYou can see this as a protection against unexpected consensus failures due to binary dependency mismatch.\n\nStatic binaries integrity can be checked by comparing sha256sum.\n\n#### **Requirements**\n\nTo build a static binary, we rely on `Docker` and `alpine` docker images.\n\n##### **Install docker**\n\nTo install docker, follow [the official procedure for your platform](https://docs.docker.com/get-docker/)\n\n##### **Install Qemu (Optional)**\n\nIf you want to build `kid` to run on a platform different from your build platform, you will need to install `Qemu`:\n\nFor linux users:\n\n```bash\nsudo apt-get install qemu binfmt-support qemu-user-static \ndocker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nFor macOS users, `Qemu` should already be installed and configured when installing `Docker Desktop`.\n\n##### **Build**\n\n```bash\ncd ki-tools\n```\n\nBuild an `amd64` static binary\n\n```bash\nmake build-reproducible-amd64           # For mainnet\nmake build-testnet-reproducible-amd64   # For testnet\n```\n\nBuild an `arm64` static binary\n\n```bash\nmake build-reproducible-arm64           # For mainnet\nmake build-testnet-reproducible-arm64   # For testnet\n```\n\n**Note:** arm64 compatiblity is proposed but not guaranteed. We recommend users to run on amd64 platforms.\n\nBuilt binaries can then be found in the **build** folder\n\n```bash\n$ tree build\nbuild\n├── Mainnet\n│   └── linux\n│       ├── amd64\n│       │   └── kid\n│       └── arm64\n│           └── kid\n└── Testnet\n    └── linux\n        ├── amd64\n        │   └── kid\n        └── arm64\n            └── kid\n```\n\n## Disclaimer\n\nThe `ki-tools` is a modified clone of the `gaia` project. More about the latter can be found [here](https://github.com/cosmos/gaia).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKiFoundation%2Fki-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKiFoundation%2Fki-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKiFoundation%2Fki-tools/lists"}