1. 밸리데이터 노드 설치

    1-1. 도커 모드

    sudo su
    cd
    apt-get update
    apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release
    curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] <https://download.docker.com/linux/ubuntu> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt-get update
    apt-get install docker-ce docker-ce-cli containerd.io -y
    
    curl -L "<https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
    
    curl [<https://sh.rustup.rs>](<https://sh.rustup.rs/>) -sSf | sh
    source /root/.cargo/env
    
    # 바로 밑 명령은 최신 소스코드를 직접 컴파일하는 것으로 본인의 하드웨어에 좀 더 적합한 바이너리를 만드는 데 목적이 있음
    # 하지만 초보자가 최적화하기에는 무리가 있다고 판단되므로 바로 밑 컴파일 명령문은 취소하며 사용하지 않기를 바람
    
    ~~cargo install --git <https://github.com/aptos-labs/aptos-core.git> aptos --tag aptos-cli-latest~~
    
    대신에 최신 바이너리 파일 자체를 바로 다운로드하여 키 생성 작업을 실행할 수 있도록 아래에 설명을 추가하였으니 참고하기 바람
    

    만약 CLI 설치 중에 에러메세지가 뜬다면 직접 해당 사이트에 가서 최신 Aptos CLI 도구를 다운로드하여 아래 언급하는 위치로 옮겨야 한다

    https://github.com/aptos-labs/aptos-core/releases

    스크린샷 2022-05-15 04.49.25.png

    Aptos CLI 버전 중에 가장 윗 부분에 위치한 최신 자료의 우분투용 버전의 다운로드 경로 복사

    스크린샷 2022-05-15 04.51.30.png

    복사한 다운로드 경로를 터미널 창에 아래와 같이 붙여넣고 입력

    # CLI 바이너리 파일 이름이 aptos이기 때문에 기존 aptos 디렉토리를 지우지 않고 아래 명령들을 진행하면
    # 바이너리 파일을 이동시키지 못하는 문제가 발생하므로 미리 aptos 디렉토리를 삭제해준다
    
    rm -r aptos
    
    # 아래 다운로드 경로와 다운로드한 파일명은 Aptos CLI 버전이 업데이트될 때마다 달라질 수 있음
    
    wget <https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.2.0/aptos-cli-0.2.0-MacOSX-x86_64.zip>
    apt install unzip
    unzip aptos-cli-0.2.0-MacOSX-x86_64.zip && rm aptos-cli-0.2.0-MacOSX-x86_64.zip
    
    # 다운로드 받은 파일을 압축해제하면 aptos 단 하나의 바이너리 파일이 생성된다
    # 이 바이너리 파일을 바이너리 디렉토리에 옮기고 권한을 바꿔주면 별도의 컴파일 작업은 필요없다
    
    chmod +x ./aptos
    mv aptos /usr/bin
    

    CLI 도구 설치가 문제없이 완전하게 설치되면 아래 명령 입력작업을 계속한다

    export WORKSPACE=testnet
    mkdir ~/$WORKSPACE
    cd ~/$WORKSPACE
    
    wget [<https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml>](<https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml>)
    wget [<https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml>](<https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml>)
    wget [<https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/fullnode.yaml>](<https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/fullnode.yaml>)
    
    aptos genesis generate-keys --output-dir ~/$WORKSPACE
    mkdir -p /root/backup
    cp * /root/backup
    
    aptos genesis set-validator-configuration --keys-dir ~/$WORKSPACE --local-repository-dir ~/$WORKSPACE --username 본인아이디 --validator-host 서버ip주소:6180 --full-node-host 서버ip주소:6182
    
    # 본인아이디는 디스코드(# 넣지말고 띄어쓰기 금지) 또는 깃헙 아이디를 사용하고, 서버ip주소는 밸리데이터 풀노드 동일한 주소를 써도 현재는 무방하다 
    
    nano 본인아이디.yaml
    
    ---
    account_address: 7410973313fd0b5c69560fd8cd9c4aaeef873f869d292d1bb94b1872e737d64f
    consensus_key: "0x4e6323a4692866d54316f3b08493f161746fda4daaacb6f0a04ec36b6160fdce"
    account_key: "0x83f090aee4525052f3b504805c2a0b1d37553d611129289ede2fc9ca5f6aed3c"
    network_key: "0xa06381a17b090b8db5ffef97c6e861baad94a1b0e3210e6309de84c15337811d"
    validator_host:
      host: 35.232.235.205 <-- 본인 서버 주소가 맞는 지 확인
      port: 6180
    full_node_host:
      host: 34.135.169.144 <-- 본인 서버 주소가 맞는 지 확인
      port: 6182
    stake_amount: 1
    
    # 포트 번호 변경 금지
    
    nano layout.yaml
    
    # 나노 편집기를 이용하여 아래 내용을 복사(점선 포함)하여 layout.yaml 파일 안에 직접 넣어야 한다 (직접 작성하기 전까지 layout.yaml은 존재하지 않는 파일)
    
    ---
    root_key: "0x5243ca72b0766d9e9cbf2debf6153443b01a1e0e6d086c7ea206eaf6f8043956"
    users:
      - 본인아이디
    chain_id: 23
    
    # 본인아이디 앞 - 위치는 윌 줄 users: 의 e 알파벳 밑에 위치하도록 스페이스 바로 다시 한번 조정한다 (- 앞에 스페이스 두 칸)
    # 본인아이디 첫 글자와 그 앞의 - 사이에는 스페이스 한 칸이 있어야 한다
    # 본인아이디는 위에서 사용한 아이디를 입력한다
    # 복사 붙여넣기 후 글자 위치가 밀리는 부분이 있으면 반드시 각 행의 첫 시작 위치와 띄어쓰기 부분은 정확하게 수정해야 한다
    # 편집을 끝내고 저장 후 나가는 방법 : 컨트롤+c 눌렀다가 y 눌렀다가 엔터
    # 현재 root key는 예시 그대로 써도 무방하므로 아래 명령을 통해 root key를 생성/교체하지 않아도 된다
    # 예시 그대로 쓰지 않고 교체하고 싶다면 아래 명령 실행
     
    aptos key generate --output-file root-key.yaml
    nano root-key.yaml
    
    # root-key.yaml 내의 Key 코드를 복사하여 위 layout.yaml 파일 내용 중 "" 안에 정확하게 붙여 넣는다
    
    wget [<https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.1.0/framework.zip>](<https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.1.0/framework.zip>)
    unzip framework.zip && rm framework.zip
    
    aptos genesis generate-genesis --local-repository-dir ~/$WORKSPACE --output-dir ~/$WORKSPACE
    cp * /root/backup &> /dev/null
    

    여기까지 진행하였다면  /root/testnet 디렉토리에 위와 같은 디렉토리 포함 11개(root-key를 별도 생성했다면 총 13개)가 종류별로 정확하게 존재하여야 한다. 만약 누락된 파일이 있을 경우 재설치한다.

    여기까지 진행하였다면 /root/testnet 디렉토리에 위와 같은 디렉토리 포함 11개(root-key를 별도 생성했다면 총 13개)가 종류별로 정확하게 존재하여야 한다. 만약 누락된 파일이 있을 경우 재설치한다.

    docker volume prune
    
    # 노드 시작 전 반드시 위 명령을 실행하여 기존의 로컬 컨테이너 이미지를 모두 삭제해야 한다
    # 기존에 노드를 설치한 적 있고 단순히 docker-compose down만 실행했었다면 위 명령은 필수적이다 
    
    docker-compose up -d
    
    # 로그 정상 여부 확인을 위해 로그 출력 명령 입력
    
    docker-compose logs -f --tail 1000
    
    # 로그 출력 상태에서 빠져나올려면 컨트롤+c
    # 기타 상태 확인 명령들은 기존 Devnet 도커모드 풀노드명령들을 참고하면 된다
    

    참고사항:

    아직 Aptos 측에서 Testnet 접속을 위한 genesis.blob 과 waypoint.txt 파일을 배포하지 않았기 때문에 Testnet에 접속한 상태는 아니다.

    현재 노드는 본인이 지정한 ip 주소로 로컬 네트워크 상태에서 구동되고 있으며, 등록 절차(본인아이디.yaml 정보를 검증 페이지에 기입)가 끝나고

    Testnet 참가 노드 선정 작업까지 끝나면 Aptos 측에서 위 2개의 설정 파일을 배포할 것으로 예상되며,

    이 2개의 파일을 다운로드하여 노드를 리스타트하면 Testnet 접속 및 트랜잭션이 이루어질 것으로 생각된다.

    정상적으로 설치가 되었고 구동되고 있다면 현재 테스트 페이지에서 보여지는 모습은 아래와 같다.

    IT 1단계 등록 후 선정 예정인 밸리데이터 노드 모니터링 화면 (9101, 8080, 6180, 6181 포트 오픈)

    IT 1단계 등록 후 선정 예정인 밸리데이터 노드 모니터링 화면 (9101, 8080, 6180, 6181 포트 오픈)

    밸리데이터 노드와 같이 구동되는 풀노드 모니터링 화면 (9103, 80, 6182 포트 오픈)  - 밸리데이터와 동일한 주소 셋팅으로도 독립적으로 구동 가능함

    밸리데이터 노드와 같이 구동되는 풀노드 모니터링 화면 (9103, 80, 6182 포트 오픈) - 밸리데이터와 동일한 주소 셋팅으로도 독립적으로 구동 가능함

    Testnet IT1 노드 등록 페이지로 접속하여 아래와 같이 노드 정보를 입력하라는 창이 나타나면 본인아이디.yaml 파일을 열고 하나씩 해당 정보를 복사하여 붙여넣는다

    정보를 다 입력하고 패이지 우측의 검증버튼을 누르면 Aptos 측에서 위 3개 포트를 통해 현재 구동 중인 노드의 정보를 검증하고 문제가 없으면 그 다음 단계인 KYC 인증으로 넘어갈 수 있다

    정보를 다 입력하고 패이지 우측의 검증버튼을 누르면 Aptos 측에서 위 3개 포트를 통해 현재 구동 중인 노드의 정보를 검증하고 문제가 없으면 그 다음 단계인 KYC 인증으로 넘어갈 수 있다

    KYC 인증까지 완료하면 등록 시 기입했던 메일 주소로 아래와 같이 등록 성공했다는 메일이 날라온다 ( 노드 등록 시에 메일 주소 기입하면 본인 확인을 위한 확인 메일도 날라오니 꼭 컨펌할 것 )

    KYC 인증까지 완료하면 등록 시 기입했던 메일 주소로 아래와 같이 등록 성공했다는 메일이 날라온다 ( 노드 등록 시에 메일 주소 기입하면 본인 확인을 위한 확인 메일도 날라오니 꼭 컨펌할 것 )

    스크린샷 2022-05-15 03.25.18.png