You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository hosts `ki-tools`, a set of tools that allow to deploy and run Kichain nodes.
7
6
7
+
This repository hosts `kid`, the implementation of the kichain protocol, based on Cosmos-SDK.
8
8
9
9
## Quick Start
10
10
11
-
### Install Golang
11
+
### Install Golang (linux)
12
+
12
13
To 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:
If your are starting with a clean ubuntu install you might need to install the `build-essential` package:
53
56
54
-
```
57
+
```bash
55
58
sudo apt update
56
59
sudo apt install build-essential
57
60
```
58
61
59
62
Finally, navigate to the repository folder and install the tools as follows:
60
63
61
-
```
64
+
```bash
62
65
cd ki-tools
63
66
make install
64
67
```
65
68
66
-
To test the installation, check the downloaded version as follows :
67
-
```
69
+
To test the installation, check the downloaded version as follows:
70
+
71
+
```bash
68
72
kid version --long
69
73
```
70
74
75
+
### Building for testnet
76
+
77
+
Testnet token name (tki) is different from mainnet (xki). Testnet binaries need to support this difference.
78
+
To build a testnet binary, run as follows:
79
+
80
+
```bash
81
+
cd ki-tools
82
+
make build-testnet
83
+
```
84
+
85
+
You can also build a static testnet binary as explained in the following section.
86
+
87
+
### Build a static kid binary
88
+
89
+
#### **Why building static binaries ?**
90
+
91
+
Static 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.
92
+
There are multiple pro and cons of **static vs dynamic**.
93
+
94
+
For `kid`, we provide a set a tool to build static binaries, as we want to ensure that:
95
+
96
+
* Binaries and dependencies are consistent accross the validators set.
97
+
* Build result is reproducible and can be verified by every user.
98
+
99
+
Using static, verified, binaries ensures that all nodes mainteners are running the same version of dependencies, the `cosmwasm` particulary.
100
+
You can see this as a protection against unexpected consensus failures due to binary dependency mismatch.
101
+
102
+
Static binaries integrity can be checked by comparing sha256sum.
103
+
104
+
#### **Requirements**
105
+
106
+
To build a static binary, we rely on `Docker` and `alpine` docker images.
107
+
108
+
##### **Install docker**
109
+
110
+
To install docker, follow [the official procedure for your platform](https://docs.docker.com/get-docker/)
111
+
112
+
##### **Install Qemu (Optional)**
113
+
114
+
If you want to build `kid` to run on a platform different from your build platform, you will need to install `Qemu`:
0 commit comments