# 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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bridge-docs.orbitchain.io/validator-guide/quick-start.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
