# Agora Testnet

## 도커엔진 설치

아고라 노드를 실행하기 위해서는 도커엔진을 먼저 설치하고 실행 하고 있어야 합니다. \
도커엔진의 설치방법은 [이 곳](https://docs.docker.com/engine/install/)을 참조해 주세요\
<https://docs.docker.com/engine/install/>

## 리눅스 및 맥 사용자용

### Testnet 설치 (리눅스 및 맥 사용자용)

자세한 내용은 [이 곳](https://github.com/bosagora/agora-chain/blob/v0.x.x/README-kr.md#%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%B0%8F-%EB%A7%A5-%EC%82%AC%EC%9A%A9%EC%9E%90%EC%9A%A9)을 참조해주세요.

```shell
mkdir agora-chain
cd agora-chain
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bosagora/agora-chain/v0.x.x/agora.sh)"
./agora.sh network testnet
```

#### Linux 또는 macOS 사용자 업그레이드 &#x20;

```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/bosagora/agora-chain/v0.x.x/upgrade.sh)"
```

#### 실행 계층 (리눅스 및 맥 사용자용)

* 실행 계층의 블록데이타를 초기화

  ```
  ./agora.sh el-node init
  ```
* 실행 계층의 클라이언트 실행

  ```
  ./agora.sh el-node run
  ```

#### 합의 계층 (리눅스 및 맥 사용자용)

* 합의 계층의 클라이언트 실행

  ```
  ./agora.sh cl-node run
  ```

\
전송 테스트를 원하는 경우 테스트넷 수도꼭지 [https://faucet.bosagora.org/request/boa/](https://faucet.bosagora.org/request/boa/Your's)\<Your testnet account> 에서 1 tBOA를 얻을 수 있습니다.

#### 아고라 검증자 (Agora-cl-validator)

이 단계는 선택 사항이지만 아고라 블록체인 보안에 참여하고, 투표권을 갖고, 보상을 받으려면 필수적이다.

그러나 이 섹션에서는 Agora Testnet BOA를 사용하고 있으므로 보상은 실질적인 가치가 없습니다. 테스트넷에서 실제 BOA를 사용하지 말고 40,000 tBOA를 요청합니다. 제목에 "검증자"가 포함된 이메일을 <agora-chain@bosagora.io>로 보내거나, 이것이 실패할 경우 <https://t.me/bosagora_korea>의 텔레그램으로 요청 하십시오.

#### 개인 키 생성 및 디파짓 데이터 및 디파짓 스테이킹 준비

테스트넷 스테이킹 바로가기: <https://testnet-agora-staking.bosagora.org>

#### 검증자의 계정 (리눅스 및 맥 사용자용)

* 니모닉을 가지고 있지 않을 때 검증자키를 생성하기

  ```
  ./agora.sh deposit-cli new-mnemonic
  ```
* 니모닉을 가지고 있을 때 검증자키를 생성하기

  ```
  ./agora.sh deposit-cli existing-mnemonic
  ```
* 검증자 키를 월렛에 추가하기

  ```
  ./agora.sh validator import <your key stores folder>
  ```

  또는

  ```
  ./agora.sh validator accounts import <your key stores folder>
  ```

  `<your key stores folder>` 는 검증자키가 존재하는 폴더입니다. 입력하지 않으면 기본 폴더 `./validator_keys` 로 처리됩니다.
* 로컬 월렛에 저장된 검증자 계정 출력하기

  ```
  ./agora.sh validator accounts list
  ```
* 로컬 월렛에 저장된 검증자 계정을 파일로 백업하기

  ```
  ./agora.sh validator accounts backup <folder>
  ```

  `<folder>` 는 백업데이타를 저장할 폴더명입니다. 입력하지 않으면 `./backup-wallet` 로 처리됩니다.

#### 검증자 실행 (리눅스 및 맥 사용자용)

* 검증자 클라이언트 실행하기

  ```
  ./agora.sh validator run
  ```

#### 검증자의 역활 수행을 종료 (리눅스 및 맥 사용자용)

* 검증자의 역활 수행을 자발적으로 종료하기

  ```
  ./agora.sh validator exit
  ```

#### 검증자의 리워드와 예치금을 인출 (리눅스 및 맥 사용자용)

* 인출이 가능하도록 하기 위해 출금주소가 포함된 서명된 데이타를 생성하기

  ```
  ./agora.sh deposit-cli generate-bls-to-execution-change <folder>
  ```

  `<folder>` 는 서명된 데이타가 저장된 폴더입니다. 입력하지 않으면 `./bls_to_execution_changes` 로 처리됩니다.
* 출금주소가 포함된 서명된 데이타를 네트워크로 전송하기

  ```
  ./agora.sh validator withdraw <folder>
  ```

  `<folder>` 는 서명된 데이타가 저장된 폴더입니다. 입력하지 않으면 `./bls_to_execution_changes` 로 처리됩니다.

#### 슬래싱 방지 (리눅스 및 맥 사용자용)

검증자 한 명은 블록당 한 번만 검증해야 합니다. 그렇지 않으면 검사기가 슬래싱될 수 있습니다.\
하나의 검증자가 여러 서버에서 실행되는 경우, 해당 검증자는 위의 조건을 위반할 수 있습니다.\
검증자의 서버가 다른 서버로 변경되면 검증자가 위의 조건을 위반할 수 있습니다. 이를 방지하려면 검증자가 지금까지 수행한 블록 확인 정보를 옮겨가야 합니다. 이 때 필요한 기능이 이 명령어입니다.

* export

  ```
  ./agora.sh validator slashing-protection-history export <folder>
  ```

  `<folder>` 는 슬래싱 방지를 위한 데이타가 저장될 폴더입니다. 입력하지 않으면 `./slashing-protection-export` 로 처리됩니다.
* import

  ```
  ./agora.sh validator slashing-protection-history import <folder>
  ```

  `<folder>` 는 슬래싱 방지를 위한 데이타가 저장된 폴더입니다. 입력하지 않으면 `./slashing-protection-export` 로 처리됩니다.

#### 도커-컴포우즈-사용 (리눅스 및 맥 사용자용)

1. 실행 계층의 블록데이타를 초기화하기

```
./agora.sh el-node init
```

2. 검증자 키를 임포트하기

```
./agora.sh validator accounts import <your key stores folder>
```

`<your key stores folder>` 는 검증자키가 존재하는 폴더입니다. 입력하지 않으면 `./validator_keys` 로 처리됩니다.

3. 프로세스 자동실행을 위해 월렛의 비밀번호를 기록하기

```
nano ./root/config/cl/password.txt
```

4. 트랜잭션 수수료를 받을 주소를 등록하기

```
nano ./root/config/cl/proposer_config.json
```

5. 도커 컴포우즈를 실행하기

```
./agora.sh docker-compose up
```

6. 도커 컴포우즈를 종료하기

```
./agora.sh docker-compose down
```

#### 모니터링을 위한 도커 컴포우즈 사용 (리눅스 및 맥 사용자용)

1. 실행 계층의 블록데이타를 초기화하기

```
./agora.sh el-node init
```

2. 검증자 키를 임포트하기

```
./agora.sh validator import <your key stores folder>
```

또는

```
./agora.sh validator accounts import <your key stores folder>
```

3. 프로세스 자동실행을 위해 월렛의 비밀번호를 기록하기

```
nano ./root/config/cl/password.txt
```

4. 트랜잭션 수수료를 받을 주소를 등록하기

```
nano ./root/config/cl/proposer_config.json
```

5. 도커 컴포우즈를 실행

```
./agora.sh docker-compose-monitoring up
```

또는

```
./agora.sh start
```

6. 도커 컴포우즈를 종료

```
./agora.sh docker-compose-monitoring down
```

또는

```
./agora.sh stop
```

## 윈도우즈 사용자용

### Testnet 설치 (윈도우즈 사용자용)

```shell
mkdir agora-chain
cd agora-chain
curl -S -L -o agora.bat https://raw.githubusercontent.com/bosagora/agora-chain/v0.x.x/agora.bat
call agora.bat
agora.bat network testnet
```

#### 업그레이드 (윈도우즈 사용자용)&#x20;

```
curl -S -L -o upgrade.bat https://raw.githubusercontent.com/bosagora/agora-chain/v0.x.x/upgrade.bat
upgrade.bat
```

#### 실행 계층 (윈도우즈 사용자용)

* 실행 계층의 블록데이타를 초기화

  ```
  agora.bat el-node init
  ```
* 실행 계층의 클라이언트 실행

  ```
  agora.bat el-node run
  ```

#### 합의 계층 (윈도우즈 사용자용)

* 합의 계층의 클라이언트 실행

  ```
  agora.bat cl-node run
  ```

전송 테스트를 원하는 경우 테스트넷 수도꼭지 [https://faucet.bosagora.org/request/boa/](https://faucet.bosagora.org/request/boa/Your's)\<Your testnet account> 에서 1 tBOA를 얻을 수 있습니다.

#### 아고라 검증자 (Agora-cl-validator)

이 단계는 선택 사항이지만 아고라 블록체인 보안에 참여하고, 투표권을 갖고, 보상을 받으려면 필수적이다.

그러나 이 섹션에서는 Agora Testnet BOA를 사용하고 있으므로 보상은 실질적인 가치가 없습니다. 테스트넷에서 실제 BOA를 사용하지 말고 40,000 tBOA를 요청합니다. 제목에 "검증자"가 포함된 이메일을 <agora-chain@bosagora.io>로 보내거나, 이것이 실패할 경우 <https://t.me/bosagora_korea>의 텔레그램으로 요청 하십시오.

#### 개인 키 생성 및 디파짓 데이터 및 디파짓 스테이킹 준비

테스트넷 스테이킹 바로가기: <https://testnet-agora-staking.bosagora.org>

#### 검증자의 계정 (윈도우즈 사용자용)

* 니모닉을 가지고 있지 않을 때 검증자키를 생성하기

  ```
  agora.bat deposit-cli new-mnemonic
  ```
* 니모닉을 가지고 있을 때 검증자키를 생성하기

  ```
  agora.bat deposit-cli existing-mnemonic
  ```
* 검증자 키를 월렛에 추가하기

  ```
  agora.bat validator import <your key stores folder>
  ```

  또는

  ```
  agora.bat validator accounts import <your key stores folder>
  ```

  `<your key stores folder>` 는 검증자키가 존재하는 폴더입니다. 입력하지 않으면 `./validator_keys` 로 처리됩니다.
* 로컬 월렛에 저장된 검증자 계정 출력하기

  ```
  agora.bat validator accounts list
  ```
* 로컬 월렛에 저장된 검증자 계정을 파일로 백업하기

  ```
  agora.bat validator accounts backup <folder>
  ```

  `<folder>` 는 백업데이터를 저장할 폴더입니다. 입력하지 않으면 `./backup-wallet` 로 처리됩니다.

#### 검증자 실행 (윈도우즈 사용자용)

* 검증자 클라이언트 실행하기

  ```
  agora.bat validator run
  ```

#### 검증자의 역활 수행을 종료 (윈도우즈 사용자용)

* 검증자의 역활 수행을 자발적으로 종료하기

  ```
  agora.bat validator exit
  ```

#### 검증자의 리워드와 예치금을 인출 (윈도우즈 사용자용)

* 인출이 가능하도록 하기 위해 출금주소가 포함된 서명된 데이타를 생성하기

  ```
  agora.bat deposit-cli generate-bls-to-execution-change <folder>
  ```

  `<folder>` 는 서명된 데이타가 저장될 폴더입니다. 입력하지 않으면 `./bls_to_execution_changes` 로 처리됩니다.
* 출금주소가 포함된 서명된 데이타를 네트워크로 전송하기

  ```
  agora.bat validator withdraw <folder>
  ```

  `<folder>` 는 서명된 데이타가 저장된 폴더입니다. 입력하지 않으면 `./bls_to_execution_changes 로 처리됩니다.`&#x20;

#### 슬래싱 방지 (윈도우즈 사용자용)

* export

  ```
  ./agora.bat validator slashing-protection-history export <folder>
  ```

  `<folder>` 는 슬래싱 방지를 위한 데이타가 저장될 폴더입니다. 입력하지 않으면 `./slashing-protection-export` 로 처리됩니다.
* import

  ```
  ./agora.bat validator slashing-protection-history import <folder>
  ```

  `<folder>` 는 슬래싱 방지를 위한 데이타가 저장된 폴더입니다. 입력하지 않으면 `./slashing-protection-export` 로 처리됩니다.

#### 도커 컴포우즈 사용 (윈도우즈 사용자용)

1. 실행 계층의 블록데이타를 초기화하기

```
agora.bat el-node init
```

2. 검증자 키를 임포트하기

```
agora.bat validator import <your key stores folder>
```

또는

```
agora.bat validator accounts import <your key stores folder>
```

3. 프로세스 자동실행을 위해 월렛의 비밀번호를 기록하기

```
notepad ./root/config/cl/password.txt
```

4. 트랜잭션 수수료를 받을 주소를 등록하기

```
notepad ./root/config/cl/proposer_config.json
```

5. 도커 컴포우즈를 실행

```
agora.bat docker-compose up
```

6. 도커 컴포우즈를 종료

```
agora.bat docker-compose down
```

#### 모니터링을 위한 도커 컴포우즈 사용 (윈도우즈 사용자용)

1. 실행 계층의 블록데이타를 초기화하기

```
agora.bat el-node init
```

2. 검증자 키를 임포트하기

```
agora.bat validator import <your key stores folder>
```

또는

```
agora.bat validator accounts import <your key stores folder>
```

3. 프로세스 자동실행을 위해 월렛의 비밀번호를 기록하기

```
notepad ./root/config/cl/password.txt
```

4. 트랜잭션 수수료를 받을 주소를 등록하기

```
notepad ./root/config/cl/proposer_config.json
```

5. 도커 컴포우즈를 실행

```
agora.bat docker-compose-monitoring up
```

또는

```
agora.bat start
```

6. 도커 컴포우즈를 종료

```
agora.bat docker-compose-monitoring down
```

또는

```
agora.bat stop
```

#### 검증자의 상태와 리워드를 체크하기

Go to website [https://testnet.agorascan.io](https://testnet.agorascan.io/)

## 다른 기능들

### Agora-cl 의 문서

Go to website <https://agora-cl-docs.bosagora.org/>

### 검증자의 상태와 리워드를 체크하기

Go to website <https://testnet.agorascan.io/>
