markdown structure formatting, rendered pages unchanged

This commit is contained in:
Erin Rivas
2023-08-11 09:44:59 -05:00
parent 5ef50c6768
commit b103539ad4
61 changed files with 583 additions and 322 deletions
+10 -4
View File
@@ -1,16 +1,19 @@
---
sidebar_position: 0
---
# Setting Up
## Pre-Requisites
## Pre-Requisites
There are a few things needed before installing.
There are a few things needed before installing.
While logged in as the 'root' or 'admin' user, we add a 'jackal' user and give them root privileges.
### Enable Firewall Rules
Enabling the firewall is important to ensure your hardware remains secure. The following commands will add rules required for access on both validators and providers:
Enabling the firewall is important to ensure your hardware remains secure. The following commands will add rules
required for access on both validators and providers:
```sh
sudo ufw allow 22
@@ -31,7 +34,8 @@ The only additional port required for a provider is 3333:
sudo ufw allow 3333
```
If you are running a combined validator/provider, you need to allow all of the above ports. After adding ports to the rules list, you will need to start the firewall:
If you are running a combined validator/provider, you need to allow all of the above ports. After adding ports to the
rules list, you will need to start the firewall:
```sh
sudo ufw enable
@@ -73,6 +77,7 @@ sudo su - jackal
```
### Installing required tools
This will install the necessary tools to build the jackal chain source, along with lz4 compression tool and jquery tool.
```sh
@@ -81,6 +86,7 @@ sudo apt install build-essential lz4 jq
```
### Installing Go
Follow more in-depth instructions to install Go v1.19 or higher [here](https://golang.org/doc/install).
On Ububtu you can install it with:
+1 -1
View File
@@ -1,4 +1,4 @@
{
"label": "Nodes & Providers",
"position":11
"position": 11
}
+1
View File
@@ -1,6 +1,7 @@
---
sidebar_position: 1
---
# Hardware
We recommend a minimum hardware requirement of:
+13 -4
View File
@@ -1,12 +1,15 @@
---
sidebar_position: 2
---
# Installing Canined
## Pre-Requisites
## Pre-Requisites
See [Set-up](../1_install.md).
### Firewall Configuration
Configure UFW to only accept traffic on ports we use.
```bash
@@ -20,12 +23,14 @@ ufw enable
:::tip
Perform the next follow steps as your `jackal` user with 'sudo' permissions
Perform the next follow steps as your `jackal` user with 'sudo' permissions
:::
### Creating a Service
You may want the daemon to run without you needing to supervise it. To turn the executable into a service follow these steps.
You may want the daemon to run without you needing to supervise it. To turn the executable into a service follow these
steps.
First create the service file `/etc/systemd/system/canined.service`
@@ -33,7 +38,8 @@ First create the service file `/etc/systemd/system/canined.service`
sudo nano /etc/systemd/system/canined.service
```
Copy and paste the follow into the service file: (you may need to edit it if you've set a custom home directory location)
Copy and paste the follow into the service file: (you may need to edit it if you've set a custom home directory
location)
```conf
[Unit]
@@ -54,6 +60,7 @@ WantedBy=multi-user.target
```
Update systemd and enable the service file.
```sh
sudo systemctl daemon-reload
sudo systemctl enable canined.service
@@ -62,6 +69,7 @@ sudo systemctl enable canined.service
## Building from Source
Replace `<VERSION>` with the current running version.
```sh
git clone https://github.com/JackalLabs/canine-chain.git
cd canine-chain
@@ -72,6 +80,7 @@ make install
```
From there you will be able to use `canined`, ex:
```sh
canined version
```
+7 -4
View File
@@ -1,6 +1,7 @@
---
sidebar_position: 3
---
# Joining Testnet
After installing `canined`. You can join the testnet by following these steps:
@@ -15,9 +16,11 @@ canined init <alias> --chain-id=<chain-id>
:::
Then we want to replace our generated genesis file with the one used to start the network. We also need to set our peers and seeds.
Then we want to replace our generated genesis file with the one used to start the network. We also need to set our peers
and seeds.
For an updated list of peers & seeds, please check [this page](https://github.com/JackalLabs/jackal-chain-assets/blob/main/testnet/seeds.md).
For an updated list of peers & seeds, please
check [this page](https://github.com/JackalLabs/jackal-chain-assets/blob/main/testnet/seeds.md).
```sh
wget -O ~/.canine/config/genesis.json https://raw.githubusercontent.com/JackalLabs/jackal-chain-assets/main/testnet/genesis.json
@@ -26,9 +29,9 @@ export SEEDS="84f520678ef59ea02f942fa6323ec562ca5a3249@45.79.161.178:26656,cecc0
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/" ~/.canine/config/config.toml
```
As a validator, you'll need to set a minimum gas price like so:
```sh
GAS="0.002ujkl"
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"$GAS\"/" $HOME/.canine/config/app.toml
```
```
+17 -8
View File
@@ -1,6 +1,7 @@
---
sidebar_position: 4
---
# Joining Mainnet
:::tip
@@ -26,9 +27,10 @@ GAS="0.002ujkl"
sed -i.bak -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.canine/config/config.toml
```
## Backing up key files
The created `node_key.json` and `priv_validator_key.json` cannot be recovered. These files ***must*** be backed up.
The created `node_key.json` and `priv_validator_key.json` cannot be recovered. These files ***must*** be backed up.
```sh
mkdir ~/key_backup
@@ -36,16 +38,19 @@ cp ~/.canine/config/node_key.json ~/key_backup
cp ~/.canine/config/priv_validator_key.json ~/key_backup
```
You should also keep an offline backup. Using a program like `WinSCP`, you can easily copy these files to your personal desktop for safe storage/backup.
You should also keep an offline backup. Using a program like `WinSCP`, you can easily copy these files to your personal
desktop for safe storage/backup.
## Syncing to Current Height
### Snapshot method
Get a snapshot [here](http://snapshots.autostake.net/jackal-1/).
For the sake of this guide, the snapshot we download is named `jackal.tar.lz4`
If you plan on becoming a validator, before using the `unsafe-reset-all` flag, always besure to back up your `priv_validator_state.json` file.
If you plan on becoming a validator, before using the `unsafe-reset-all` flag, always besure to back up
your `priv_validator_state.json` file.
```sh
canined unsafe-reset-all --keep-addr-book
@@ -55,8 +60,10 @@ lz4 -c -d jackal.tar.lz4 | tar -x -C $HOME/.canine
Then start the chain again.
### State Sync Method
There are a couple of ways to go about doing state sync.
First is the easier route. Visit [Ping.pub](https://ping.pub/jackal/statesync) for Jackals State Sync configuration settings.
First is the easier route. Visit [Ping.pub](https://ping.pub/jackal/statesync) for Jackals State Sync configuration
settings.
Next, copy these settings from Ping.pub to your `config.toml` in the `[statesync]` section.
@@ -100,17 +107,19 @@ chunk_request_timeout = "10s"
chunk_fetchers = "42"
```
State syncing can take up to a few minutes to complete. Watch the logs to ensure it's happening. When a snapshot is found, you will see output in your log that is similar to this:
State syncing can take up to a few minutes to complete. Watch the logs to ensure it's happening. When a snapshot is
found, you will see output in your log that is similar to this:
```sh
1PM INF Discovered new snapshot format=1 hash="S.hF\"\x1d6+\x1eޅ`v@ц" height=1810000 module=statesync
```
It will download, verify, and apply chuncks of blockchain data. When it finishes you will see it catching up to blocks
It will download, verify, and apply chuncks of blockchain data. When it finishes you will see it catching up to blocks
### State Sync Method 2
The follow commandline code will edit your `config.toml` with the proper information for state syncing to the most recent snapshot 3000 blocks and beyond.
The follow commandline code will edit your `config.toml` with the proper information for state syncing to the most
recent snapshot 3000 blocks and beyond.
```sh
STATE_SYNC_RPC=https://rpc.jackalprotocol.com:443
@@ -145,4 +154,4 @@ sudo systemctl start jackal
sudo journalctl -u jackal -f
```
Watch the logs and ensure you are either state syncing correctly, or are syncing up to the current height.
Watch the logs and ensure you are either state syncing correctly, or are syncing up to the current height.
+1 -1
View File
@@ -1,4 +1,4 @@
{
"label": "Full Nodes",
"position":0
"position": 0
}
+18 -6
View File
@@ -1,27 +1,38 @@
---
sidebar_position: 1
---
# Creating Provider
## Disclaimer
This guide assumes you either have access to a full node over a network connection or are using the same machine as the full node.
This guide assumes you either have access to a full node over a network connection or are using the same machine as the
full node.
## Networking
To allow your provider to be used by the Jackal Protocol Dashboard, please ensure you have a reverse proxy system setup and have a registered domain name pointing to your provider. We recommend using [Nginx](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/).
If you have UPNP enabled on your router, your provider will be open to the internet by default at port `3333`. You can find the address it can be connected to by running `canined network ip`.
To allow your provider to be used by the Jackal Protocol Dashboard, please ensure you have a reverse proxy system setup
and have a registered domain name pointing to your provider. We recommend
using [Nginx](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/).
If you have UPNP enabled on your router, your provider will be open to the internet by default at port `3333`. You can
find the address it can be connected to by running `canined network ip`.
## Setting up ZFS Without Mirroring
Setting up ZFS allows us to combine multiple drives together, in this case we are merging two drives. We don't recommend you only merge drives with striping and instead we recommend mirroring. However mirroring is a longer process and different for each configuration. In our case, this machine is only running with 24TB across 2 drives. We are less concerned about a drive failing as that would wipe half our storage anyways.
Setting up ZFS allows us to combine multiple drives together, in this case we are merging two drives. We don't recommend
you only merge drives with striping and instead we recommend mirroring. However mirroring is a longer process and
different for each configuration. In our case, this machine is only running with 24TB across 2 drives. We are less
concerned about a drive failing as that would wipe half our storage anyways.
List all drives with :
```sh
sudo fdisk -l
```
You should end up seeing something like this
```sh
...
@@ -44,7 +55,7 @@ Disk identifier: D2827F71-7F0A-EE4A-BB12-1B2172641DBE
...
```
Note down the Disk paths that you wish to use for your storage provider, in this case it is `/dev/sdb` and `/dev/sda`.
Note down the Disk paths that you wish to use for your storage provider, in this case it is `/dev/sdb` and `/dev/sda`.
We install ZFS and create a new pool as follows:
@@ -56,4 +67,5 @@ sudo zpool create {pool-name} /dev/sda /dev/sdb ...
sudo zpool status
```
This folder will now have the drives mounted at `/{pool-name}`. For more in-depth guides to using zfs, check out [this page](https://zfsonlinux.org/).
This folder will now have the drives mounted at `/{pool-name}`. For more in-depth guides to using zfs, check
out [this page](https://zfsonlinux.org/).
+27 -21
View File
@@ -1,9 +1,11 @@
---
sidebar_position: 2
---
# Setting Up JProvd
## Pre-Requisites
## Pre-Requisites
See [Set-up](../1_install.md).
## Installing
@@ -16,11 +18,13 @@ Check latest version [here](https://github.com/JackalLabs/canine-provider/releas
:::note
'Setting Up' instructions must be followed fully to add necessary golang path info to the current users ~/.profile. If these steps are skipped, 'make install' will not build jprovd--the provider daemon. Please ensure to perform the below steps as the 'jackal' user you previously made.
'Setting Up' instructions must be followed fully to add necessary golang path info to the current users ~/.profile. If
these steps are skipped, 'make install' will not build jprovd--the provider daemon. Please ensure to perform the below
steps as the 'jackal' user you previously made.
:::
Install make and confirm installation.
Install make and confirm installation.
```sh
sudo apt update
@@ -31,7 +35,7 @@ make --version
```
Build jprovd and source the .profile to ensure your shell can find jprovd. Confirm installation.
Build jprovd and source the .profile to ensure your shell can find jprovd. Confirm installation.
```sh
git clone https://github.com/JackalLabs/canine-provider.git
@@ -50,7 +54,7 @@ jprovd version
```
If you used ZFS to make a zpool. Give ownership of the zpool to the jackal user.
If you used ZFS to make a zpool. Give ownership of the zpool to the jackal user.
```sh
@@ -66,32 +70,32 @@ Your keybase identity can be left as `""` if you don't want to link your provide
:::
1. Export the path to your storage pool
1. Export the path to your storage pool
```sh
export PHOME={path-to-pool-from-before}
```
2. Generate your provider's private key
2. Generate your provider's private key
```sh
jprovd client gen-key --home=$PHOME
```
3. Configure the chain-id
3. Configure the chain-id
```sh
jprovd client config chain-id {chain-id} --home=$PHOME
```
4. Configure the rpc node your provider will use to connect to the chain
4. Configure the rpc node your provider will use to connect to the chain
```sh
jprovd client config node {your node} --home=$PHOME
```
Some users may find it easier to complete steps 3 and 4 manually. Instructions for Ubuntu are below:
In your terminal, while inside of the PHOME directory, type 'nautilus'. This will open the nautilus file explorer.
At the top right corner, make sure 'Show Hidden Files' is checked.
Navigate to your '.jackal-storage' folder to access the config folder.
@@ -99,17 +103,19 @@ Open the client.toml file to manually type in the 'chain-id' and 'node'.
Save and close the client.toml file.
Testnet and Mainnet chain-ids can be found here: https://github.com/JackalLabs/jackal-chain-assets.
If you are not running your own tendermint RPC node, Jackal Labs is currently hosting a testnet tendermint RPC node. Endpoint below:
If you are not running your own tendermint RPC node, Jackal Labs is currently hosting a testnet tendermint RPC node.
Endpoint below:
https://testnet-rpc.jackalprotocol.com:443
We will also be hosting a tendermint rpc node for mainnet, which will be made accessible to the public at launch of Jackal Storage.
Before completing step 5 below, your account will need tokens.
Testnet tokens can be obtained at https://testnet-faucet.jackalprotocol.com/
Mainnet tokens can be purchased on https://frontier.osmosis.zone/
We will also be hosting a tendermint rpc node for mainnet, which will be made accessible to the public at launch of
Jackal Storage.
5. Initialize the provider
Before completing step 5 below, your account will need tokens.
Testnet tokens can be obtained at https://testnet-faucet.jackalprotocol.com/
Mainnet tokens can be purchased on https://frontier.osmosis.zone/
5. Initialize the provider
```sh
jprovd init {FQDN} {STORAGE_IN_BYTES} {KEYBASE_IDENTITY} --home=$PHOME
@@ -121,10 +127,10 @@ example:
jprovd init "https://storagep1.chainstrategies.cloud" "9000" "" --home=$PHOME
```
Please note that 'https://' is required to be included in the FQDN or init will throw an error.
Link for TB to Bytes converter: https://www.convertunits.com/from/TB/to/byte
Please note that 'https://' is required to be included in the FQDN or init will throw an error.
Link for TB to Bytes converter: https://www.convertunits.com/from/TB/to/byte
6. Start the provider
6. Start the provider
```sh
jprovd start --home=$PHOME
+1 -1
View File
@@ -1,4 +1,4 @@
{
"label": "Storage Providers",
"position":2
"position": 2
}
@@ -1,4 +1,4 @@
{
"label": "Hardware",
"position":0
"position": 0
}
@@ -1,19 +1,22 @@
---
sidebar_position: 1
---
# DIY Build
For DIY individuals looking to power web3 infrastructure and increase your ROI- here is the recommended system for serious individual storage providers.
| Component|Recommendation| Units |
| ------------- |:-------------| :-----|
| CPU | AMD Ryzen 7 5700G 3.8 GHz 8-Core Processor | 1
| Motherboard | MSI B450 TOMAHAWK MAX II ATX AM4 Motherboard | 1
| Memory | 128 GB (2 x 64 GB) Memory | 1
| Storage | Kingston A400 960 GB 2.5" Solid State Drive | 1
| Storage | Seagate EXOS Enterprise 14 TB 3.5" 7200RPM Internal Hard Drive | 5 |
| Case | Cooler Master N400 ATX Mid Tower Case | 1
| Power Supply | Corsair HX750 Platinum 750 W 80+ Platinum Certified Fully Modular ATX Power Supply | 1
| Case Fan | Noctua S12B redux-700 33.49 CFM 120 mm Fan | 2
| Total Cost Estimate | $2014.08 USD
For DIY individuals looking to power web3 infrastructure and increase your ROI- here is the recommended system for
serious individual storage providers.
| Component | Recommendation | Units |
|---------------------|:------------------------------------------------------------------------------------|:------|
| CPU | AMD Ryzen 7 5700G 3.8 GHz 8-Core Processor | 1
| Motherboard | MSI B450 TOMAHAWK MAX II ATX AM4 Motherboard | 1
| Memory | 128 GB (2 x 64 GB) Memory | 1
| Storage | Kingston A400 960 GB 2.5" Solid State Drive | 1
| Storage | Seagate EXOS Enterprise 14 TB 3.5" 7200RPM Internal Hard Drive | 5 |
| Case | Cooler Master N400 ATX Mid Tower Case | 1
| Power Supply | Corsair HX750 Platinum 750 W 80+ Platinum Certified Fully Modular ATX Power Supply | 1
| Case Fan | Noctua S12B redux-700 33.49 CFM 120 mm Fan | 2
| Total Cost Estimate | $2014.08 USD
+6 -2
View File
@@ -1,12 +1,16 @@
---
sidebar_position: 2
---
# Enterprise Build
For teams looking to build a large storage system of ~2.1 Petabytes of storage, the estimated base price of the box with drives is ~$70,000 USD. This does not account for variable expenses including the regional costs of:
For teams looking to build a large storage system of ~2.1 Petabytes of storage, the estimated base price of the box with
drives is ~$70,000 USD. This does not account for variable expenses including the regional costs of:
- Power
- Internet
- HVAC
- Professionals
- Professionals
Those looking to build an enterprise storage provider, reach out to the team for recommendations and support.
+13 -4
View File
@@ -1,8 +1,8 @@
---
sidebar_position: 1
---
# Creating Validator
# Creating Validator
:::tip
@@ -38,11 +38,14 @@ It is the only way to recover your account if you ever forget your password.
some words forming mnemonic seed will be placed here you have to write them down and keep them safe
```
Besure to back up the seed phrase of your validator wallet. It's also recommened to keep an offline copy along with your key files. Remember, your key files cannot be restored and ***must*** be backed up. See the installation page for instructions.
Besure to back up the seed phrase of your validator wallet. It's also recommened to keep an offline copy along with your
key files. Remember, your key files cannot be restored and ***must*** be backed up. See the installation page for
instructions.
You should also backup your keyring files.
Change `WALLET_NAME` to the name of your wallet.
```sh
mkdir ~/keyring_backup
cp ~/.canine/WALLET_NAME.info ~/keyring_backup
@@ -54,6 +57,7 @@ cp ~/.canine/keyhash ~/keyring_backup
### Configure Gas Prices
As a validator, you'll need to set a minimum gas price like so:
```sh
GAS="0.02ujkl"
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"$GAS\"/" $HOME/.canine/config/app.toml
@@ -61,9 +65,14 @@ sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"$GAS\"/" $HOME/
### Create Your Validator
Before continuing, please note that `commission-max-change` and `commission-max-rate` cannot be changed once you set them. Your `commission-rate` may be changed once per day.
Before continuing, please note that `commission-max-change` and `commission-max-rate` cannot be changed once you set
them. Your `commission-rate` may be changed once per day.
There are a few things you will need to alter in this command. `amount` needs to be changed to what you are starting
your self bond as. `from` needs to be the name of your wallet you created earlier.
The `moniker`, `details`, `identity`, `website`, and `security-contact` should all be filled with the appropiate
information.
There are a few things you will need to alter in this command. `amount` needs to be changed to what you are starting your self bond as. `from` needs to be the name of your wallet you created earlier. The `moniker`, `details`, `identity`, `website`, and `security-contact` should all be filled with the appropiate information.
```sh
canined tx staking create-validator \
--amount 1000000ujkl \
+1 -1
View File
@@ -1,4 +1,4 @@
{
"label": "Validators",
"position":1
"position": 1
}