Enclave Server 로컬환경에서 진행하기

김성진·2022년 7월 19일
0

Verify-VASP local setup guideline

Requirements

로컬 환경에서 외부 접근 가능한 주소 획득, https 통신을 위해 사용합니다. 가입 후 아래와 같이 auth token을 터미널에 등록해주세요.

$  brew install ngrok/ngrok/ngrok
$  ngrok config add-authtoken <token>
  • docker

도커를 설치하시고 아래의 팀 공용 아이디로 로그인해주세요.

dockerhub: <허브아이디>
id: <해당아이디>
pw: <해당패스워드>
  • sshuttle

Enclave 서버가 rds db로 연결할 때 파라미터로는 ssh tunnel을 설정할 수 없어 환경을 터널링된 상태로 바꿔줘야합니다.

$ brew install sshuttle
$ sshuttle --dns -vr ubuntu@<IP> 0/0 --ssh-cmd 'ssh -i {pem 파일 경로}'

이 때 ubuntu@ 0/0 은 stg bastion의 ip입니다.

How to run

  1. apply sshuttle

터미널에 아래 명령어를 입력해주세요.
$ sshuttle --dns -vr ubuntu@35.72.157.88 0/0 --ssh-cmd 'ssh -i {<pem 파일 경로>}'

  1. edit ngrok config

$ vi ~/Library/Application\ Support/ngrok/ngrok.yml (vim) 혹은 $ ngrok config edit (nano) 을 통해 아래와 같이 수정해주세요.

version: "2"
authtoken: {여러분의 auth token}
tunnels:
  first:
    addr: 21117
    proto: http
  second:
    addr: 8000
    proto: http

$ ngrok config check 를 통해 설정이 잘 되었는지 확인해주세요.

포트는 소스의 포트로. enclave server가 저기로 요청을 전송합니다.

21117번 포트는 enclave server입니다.

  1. start ngrok & get addresses

$ ngrok start --all을 실행해주세요. 설정이 잘 되었다면 아래와 같은 스테이터스 패널이 표시됩니다.

ngrok

Session Status                online
Account                       Wayne (Plan: Free)
Version                       3.0.2
Region                        Japan (jp)
Latency                       46.830333ms
Web Interface                 http://127.0.0.1:4040
Forwarding                    https://62ec-121-135-186-84.jp.ngrok.io -> http://localhost:8000
Forwarding                    https://743d-121-135-186-84.jp.ngrok.io -> http://localhost:21117

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

이제 여기서 Forwarding으로 표기된 두 개의 주소를 가져와서 docker-compose.yml 파일을 수정해야합니다.

  1. edit addresses

3번 단계에서 가져온 주소들로 아래를 수정해줍니다.

  • 8000포트와 연결된 주소 (3번 단계의 https://62ec-121-135-186-84.jp.ngrok.io)
    • docker-compose.yml의 #VASP API 주석이 있는 섹션의 엔드포인트를 8000번 포트와 연결된 주소로 덮어씌워주세요
  • 21117포트와 연결된 주소 (3번 단계의 https://743d-121-135-186-84.jp.ngrok.io/)
    • docker-compose.yml의 VEGA_ENCLAVE_PUBLIC_ENDPOINT 항목에 덮어씌워주세요
  1. run!

터미널에서 이 리포로 이동한 뒤, $ docker-compose up 을 입력해주세요.
아래와 같은 output이 나오면 성공입니다.

Recreating enclave ... done
Attaching to enclave
enclave    |
enclave    | > vega-enclave@1.3.9 productstart /data/app
enclave    | > node build/main.js
enclave    |
enclave    | [WARN] 2022-04-22T07:05:16.647Z VEGA_DECRYPT_API_ENDPOINT is not set. Plain 'VEGA_ENCRYPTION_KEY_BASE64' value will be used to decrypt private key in PKMS.
enclave    | [DEBUG] 2022-04-22T07:05:16.823Z PerVasp key is not found
enclave    | [DEBUG] 2022-04-22T07:05:16.960Z PerVasp key is created and saved
enclave    | [INFO] 2022-04-22T07:05:16.965Z Start worker(retryCommandsJob) with interval 60 seconds
enclave    | [INFO] 2022-04-22T07:05:16.966Z Start worker(updateImpossibleCommandsJob) with interval 300 seconds
enclave    | [INFO] 2022-04-22T07:05:16.966Z Start worker(deleteCommandsJob) with interval 3600 seconds
enclave    | [INFO] 2022-04-22T07:05:17.028Z Listening port at 21117
profile
multi-national communicator with programming (back-end)

0개의 댓글