# Quick Start

### Requirements

* Connect to fully synced chain's client, such as Orbit Chain, Ethereum, Klaytn, etc... Some helpful instructions below:
  * Ethereum
    * [infura.io](https://infura.io)
    * [Run Geth](https://geth.ethereum.org/docs/)
  * Klaytn
    * [Run Endpoint Node](https://docs.klaytn.com/getting-started/quick-start/launch-an-en)
  * BSC
    * [RPC](https://docs.binance.org/smart-chain/developer/rpc.html)
    * [Run node](https://docs.binance.org/smart-chain/developer/fullnode.html)
  * HECO
    * [RPC](https://docs.hecochain.com/#/en-us/mainnet)
    * [Run node](https://docs.hecochain.com/#/en-us/dev/deploy)
  * MATIC
    * [RPC](https://docs.matic.network/docs/develop/network-details/network/)
    * [Run node](https://docs.matic.network/docs/integrate/full-node-deployment)
* Docker-Compose

### Using Docker

* For aligned environments, we recommend using Docker.
* Please refer to the links when you have problems regarding Docker installation.
  * [docker-engine](https://docs.docker.com/engine/install/), [docker-compose](https://docs.docker.com/compose/install/)

{% tabs %}
{% tab title="Ubuntu" %}

```bash
echo '# docker engine section
sudo apt update && sudo apt dist-upgrade -y && sudo apt upgrade -y &&
sudo apt-get remove -y docker docker-engine docker.io containerd runc
sudo apt-get install -y\
    apt-transport-https\
    ca-certificates\
    curl\
    jq\
    gnupg-agent\
    software-properties-common &&
curl -fsSL https://download.docker.com/linux/ubuntu/gpg > docker.gpg
sudo apt-key add docker.gpg &&
rm docker.gpg &&
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable" &&
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
# docker compose section
sudo apt install docker-compose-plugin -y
sudo chmod +x /usr/local/bin/docker-compose
# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose' > init.sh

bash init.sh
```

{% endtab %}

{% tab title="..." %}

{% endtab %}
{% endtabs %}

### Launch (v1.0.5 \~)

Starting from v1.0.5, `.env` is used instead of `settings.js`. You only need to manage `VALIDATOR_PK`, Expanded Nodes, Kas Credential, `TON_API_KEY` instead of RPC endpoints.

* Download source files [**here**](https://github.com/orbit-chain/bridge-dockerize/releases)
* Put your own configuration in `/composes/<chain>/.env`

{% code title=".example.env" overflow="wrap" lineNumbers="true" %}

```bash
VALIDATOR_PK=

# EXPANDED NODE RPC ex) infura, alchemy, etc...
# Type of value must be an array.
# ex) ["https://mainnet.infura.io/v3/[PROJECT_ID]", "https://eth-mainnet.g.alchemy.com/v2/[PROJECT_ID]"]
AVAX=[]
BSC=[]
CELO=[]
ETH=[]
FANTOM=[]
HARMONY=[]
HECO=[]
KLAYTN=[]
MATIC=[]
XDAI=[]

#KAS CREDENTIAL
KAS_ACCESS_KEY_ID=
KAS_SECRET_ACCESS_KEY=

#TON
TON_API_KEY=
```

{% endcode %}

* (1): VALIDATOR\_PK **(required)**
* (6)\~(15): Expanded Nodes (recommended)
* (18)\~(19): Kas Credential (recommended)
* (22): TON\_API\_KEY **(required for `TON`, `ETH`, `KLAYTN`, `METADIUM`, `POLYGON`, `WEMIX` vault validators)**

#### **\[ How to launch ]**

1. Copy `.env`

```bash
cp .example.env ~/bridge-dockerize/composes/<chain>/.env
```

2. Fill `.env` with `VALIDATOR_PK`, `TON_API_KEY`, etc.
3. Launch node

{% code overflow="wrap" %}

```bash
sudo docker compose -f bridge-dockerize/composes/<chain>/docker-compose.yml up -d --build
```

{% endcode %}

###

### Monitoring Commands

* Check connection status

{% code overflow="wrap" %}

```bash
sudo docker compose -f bridge-dockerize/composes/<chain>/docker-compose.yml exec validator curl http://localhost:8984 | jq '.'
```

{% endcode %}

* Check logs

{% code overflow="wrap" %}

```bash
sudo docker compose -f bridge-dockerize/composes/<chain>/docker-compose.yml logs -f validator
```

{% endcode %}

* Restart instance

{% code overflow="wrap" %}

```bash
sudo docker compose -f bridge-dockerize/composes/<chain>/docker-compose.yml up -d --build --force-recreate
```

{% endcode %}

### Launch (Duplicated)

* Download source files [**here**](https://github.com/orbit-chain/bridge-dockerize/releases)
* Download specific vault's **settings.js** file [**here**](https://github.com/orbit-chain/bridge-launch-governance)
* Place your governance key into **settings.js**

```javascript
VALIDATOR_ACCOUNT : {
    TYPE: "PK",
    DATA: "YOUR_PRIVATE_KEY_HERE",
}
```

* If using [infura](https://infura.io/) for eth node, place your infura \[PROJECT ID] into **settings.js**
* replace file into dockerize vault dir.&#x20;

```
cp settings.js ~/bridge-dockerize/[ethvault/xrpvault/bscvault/iconvault]-validator/
```

* Launch node

```bash
tar xvzf bridge-dockerize-0.4.1.tar.gz
cp settings.js bridge-dockerize/[ethvault/xrpvault/bscvault/iconvault]-validator/
sudo docker-compose -f bridge-dockerize/[ethvault/xrpvault/bscvault/iconvault]-validator/docker-compose.yml up -d --build
```

* Check launch status

```
sudo docker-compose -f bridge-dockerize/[ethvault/xrpvault/bscvault/iconvault]-validator/docker-compose.yml exec validator curl http://localhost:8984 | jq '.'
```

```bash
sudo docker-compose -f bridge-dockerize/[ethvault/xrpvault/bscvault/iconvault]-validator/docker-compose.yml logs -f validator
```
