Enclave 설치 및 실행
VerifyVASP에서 제공하는 Enclave 서버 개발 환경 설정에 대한 문서입니다.
Last updated
VerifyVASP에서 제공하는 Enclave 서버 개발 환경 설정에 대한 문서입니다.
Last updated
시스템/인프라 구성도
Enclave Server
CPU : 최소 2, 권장 4G
메모리 : 최소 2G, 권장 4G
스토리지 : 최소 8G, 권장 16G (도커, 컨테이너 포함)
Enclave docker 이미지 다운로드
Enclave docker 이미지는 Private Registry에 있어, 관리자에게 Docker Hub Credential ID를 전달하여 권한을 받을 수 있습니다.
corporate-kr@verifyvasp.com으로 Docker Hub ID를 전달하여 주시면 다운로드 권한을 드리겠습니다.
다운로드
VEGA_SERVER_PORT
21117
Enclave 서버의 포트 번호.
VEGA_ENCLAVE_PUBLIC_ENDPOINT
VV central 서버에서 접근할 수 있는 enclave 서버의 공개 엔드포인트 URL. 반드시 HTTPS 프로토콜 사용해야 한다.
예) “https://api.vasp.com/enclave”
VEGA_ALLIANCE_ACCESS_KEY
accessKey part of the API-Key
VEGA_ALLIANCE_SECRET_KEY
secretKey part of the API-Key
VEGA_DATABASE_CLIENT
mysql2
데이터베이스의 종류.
데이터베이스 클라이언트에 맞는 값을 기입하면 된다. pg, mysql, mysql2, oracledb, mssql 값을 사용할 수 있다.
VEGA_DATABASE_USERNAME
Database user name
VEGA_DATABASE_PASSWORD
Database password
VEGA_DATABASE_HOST
Address to access database
VEGA_DATABASE_PORT
3306
Port number to access database
VEGA_DATABASE_DB
verifyvasp
Database name that enclave server uses
VEGA_DATABASE_SEARCH_PATH
enclave
Custom schema name for PostgreSQL
VEGA_DATABASE_POOL_MIN
0
Minimum value of database connection pool
VEGA_DATABASE_POOL_MAX
5
Maximum value of database connection pool
VEGA_DATABASE_SSL
데이터베이스의 ssl 연결을 사용할지 여부 (true or false)
VEGA_DATABASE_SSL_CA
서버 인증서를 검증하기 위한 인증기관(CA)의 인증서 파일 경로
VEGA_DATABASE_SSL_KEY
ssl 연결에 사용할 클라이언트 인증서 개인키 파일 경로
VEGA_DATABASE_SSL_CERT
ssl 연결에 사용할 클라이언트 공개 인증서 파일 경로
VEGA_DATABASE_SSL_CAPATH
ca 인증서들이 저장되어 있는 디렉토리 경로
VEGA_DATABASE_SSL_CIPHER
클라이언트와 서버간 사용할 수 있는 암호화 알고리즘을 지정
VEGA_DATABASE_SSL_REJECT_UNAUTHORIZED
서버의 인증서가 신뢰되지 않더라도 ssl 연결을 허용할지 여부 (true or false) pool
VEGA_VERIFICATION_API_PATH
사용자 검증 API 엔드포인트 URL.
VEGA_VERIFICATION_ACCOUNT_API_PATH
사용자 계정 (지갑 주소 및 수취인 이름) 검증 API 엔드포인트 URL.
VEGA_VERIFICATION_TRANSACTION_API_PATH
트랜잭션 처리 상태 조회 API 엔드포인트 URL.
VEGA_VERIFICATION_CALLBACK_API_PATH
비동기 처리 결과를 받을 Callback API 엔드포인트 URL.
VEGA_VERIFICATION_AUTHORIZATION_TOKEN
VASP 백엔드로 API를 호출할 때 사용할 인증 토큰. Enclave 서버가 VASP 백엔드로 API를 호출할 때, 헤더로 인증 토큰을 전달한다.
VEGA_VERIFICATION_AUTHORIZATION_KEY
VASP 백엔드로 API를 호출할 때 인증 토큰을 전달할 헤더 키값. 설정하지 않으면 Authorization
헤더를 통해 인증 토큰을 전달한다.
VEGA_API_ENDPOINT
VerifyVASP central API server address. 앞서 말했듯이, 두 가지 환경을 제공하는데 목적에 맞게 사용하면 된다. 프로덕션 환경의 경우, https://api-kr.vega-protocol.com
로 기입한다. 스테이징 환경의 경우, https://api-kr.vega-protocol.xyz
로 기입하면 된다.
VEGA_LOG_LEVEL
info
Enclave 서버의 로그 레벨을 정할 수 있다.
none, error, warn, info, debug 값을 사용할 수 있다.
VEGA_PUBLIC_KEY_TTL
1800000
종단 간 암호화에 사용할 상대방 VASP의 public key을 얼마나 오랫동안 캐싱 할 것인지 설정할 수 있다. 단위는 밀리초.
VEGA_ENCRYPTION_KEY_BASE64
개인정보 암호화에 사용할 암호화 키
아래 VEGA_DECRYPT_API_ENDPOINT를 입력하지 않으면, VEGA_ENCRYPTION_KEY_BASE64 환경 변수에 설정된 값이 그대로 데이터베이스의 암호화 키로 사용된다. (권장하지 않음) VEGA_DECRYPT_API_ENDPOINT가 설정되어 있으면, VEGA_ENCRYPTION_KEY_BASE64 환경 변숫값을 request body의 inputKey로 설정하여 해당 API를 호출하고 응답으로 받은 outputKey를 암호화 키로 사용한다.
VEGA_DECRYPT_API_ENDPOINT
VEGA_ENCRYPTION_KEY_BASE64에 설정된 암호화 키를 한 번 더 복호화 하기 위해 설정하는 외부 서비스 엔드포인트. HSM과 같은 암호화에 관련된 외부 서비스를 사용하기 위해 설정한다
VEGA_CHAINALYSIS_SANCTION_API_KEY
Chainalysis sanction API 연동 기능을 이용하여 상대방 지갑 주소를 screening 하고자 할 때, Chainalysis Sanction API Key를 설정한다.
VEGA_CHAINALYSIS_KYT_API_KEY
Chainalysis KYT API 연동 기능을 이용하여 상대방 지갑 주소나 자산 전송 트랜잭션의 위험 평가를 수행하고자 할 때, Chainalysis KYT API Key를 설정한다.
VEGA_REFINITIV_WCO_API_KEY
Refinitiv World Check One API 연동 기능을 이용하여 거래 상대방에 대한 위험 평가를 수행하고자 할 때, Refinitiv World Check One API Key를 설정한다.
VEGA_REFINITIV_WCO_API_SECRET
Refinitiv World Check One API 연동 기능을 이용하여 거래 상대방에 대한 위험 평가를 수행하고자 할 때, Refinitiv World Check One API Key 와 함께 발급된 Secret을 설정한다.
VEGA_REFINITIV_WCO_GROUP_ID
Refinitiv World Check One API 연동 기능을 이용하여 거래 상대방에 대한 위험 평가를 수행하고자 할 때, Refinitiv console sit에서 생성한 group ID를 설정한다. 연동 기능을 통해 수행한 모든 screening case는 해당 그룹에 속한다.
환경 변수를 파일에 적어 실행합니다. (e.g. stg_env)
실행
enclave 서버가 완전히 잘 떴는지 확인하는 방법
docker log를 봤을 때 “Listening port at 21117” 와 같이 설정한 포트 번호로 listening 하고 있다는 메시지가 보여야 합니다.
(단, 뒤이어 다른 에러 로그가 없어야 합니다.)
<enclave endpoint>/healthcheck 경로로 GET 호출합니다.
VV central 서버에서 주기적으로 (5~10) 초에 한번 각 VASP enclave 서버의 health를 체크하고 있습니다.
Enclave docker가 동작을 멈추면 재기동 해야 합니다.
또는, Enclave docker log에 다음과 같은 로그가 찍히면 재기동 해야 합니다.
“Unhandled Rejection detect: <error message>”
“Uncaught Exception detect: <error message>”