체인의정석

멀티체인 환경의 스마트컨트렉트 테스트 시 체크리스트 본문

블록체인/Ethers & web3

멀티체인 환경의 스마트컨트렉트 테스트 시 체크리스트

체인의정석 2022. 4. 15. 18:44
728x90
반응형

각 체인별 체크

1. Chain ID를 체크한다.

2. URC_URL을 체크한다.

3. test 환경인지 dev환경인지 prd 환경인지 체크한다.

컨트렉트 관련 체크

1. 상호작용 하는 컨트렉트 주소가 해당 체인의 주소가 맞는지 체크한다.

2. 각 컨트렉트의 관리자 권한을 체크한다.

3. 체인간 중간에 사인하는 주체가 있다면 해당 주체가 맞는지 체크한다.

4. 발행하는 테스트 자산의 이름,  심볼 , URI 등이 해당 체인의 정보값이 맞는지 체크한다.

5. 컨트렉트간의 연결이 잘 이루어져있는지 체크한다.

6. 실행하는 체인 환경에 따라서 가스비를 지정해주어야 하는지, 달라지는 gas limit이 없는지 체크한다.

지갑 주소 관련 체크

1. 각 체인별로 실행에 필요한 잔고가 충분한지 체크한다.

2. 지갑에 실제 실행권한이 부여되었는지 체크한다.

네트워크 관련 체크

1. 각 네트워크의 스캔에서 블록이 생성되고 있는지 체크한다.

2. 네트워크와 연결된 URI가 잘 작동하고 있는지 체크한다.

3. 네트워크와 연결된 URI가 같은 환경의 test/prd/dev가 맞는지 끝에 "/"가 추가되어 있지 않는지. 메인네트워크인지 테스트네트워크인지 해당 테스트 네트워크의 종류가 맞는지 확인한다.

 

문서관리

1. 공유되는 환경의 경우 하나의 문서에 컨트렉트 주소에 대한 정보를 공유한다.

2. 공유한 정보 밑에 체인별로 상이한 환경 변수를 모두 적어 놓는다.

3. 중요한 트랜잭션에 대한 input값은 미리 적어 놓은 후 주석으로 달아서 실제 실행했는지 확인하고 넘어간다.

4. 이전에 사용하던 컨트렉트는 지우지 않고 과거의 데이터로 남겨둔다. 각 컨트렉트 주소는 배포된 날짜 및 간단한 설명을 달아서 버전관리를 진행한다. (사용된 브랜치 주소나 major 변경 사항을 기록으로 남김)

 

운영 관리

1. 개별 트랜잭션 단위로 쪼개서 순서를 문서화 시킨다.

2. 트랜잭션을 실행하거나 결과가 나올시 문서에 모두 기록한다.

3. 배포 이후 관리자 권한을 각각 넘기며, 넘어간 관리자를 위한 운영에 필요한 스크립트는 따로 작성한다.

4. env파일을 여러개 로컬에 저장하여 관리하며, 깃허브에 올리지 않는다.

5. 하나의 경로 안에서 환경변수 파일만 바꾸면 각각 다른 체인에 배포가 되도록 구조를 설계한다.

 

테스트/운영 비용 관리

1. 실제 사용되는 가스를 모두 구한 후 가스를 불러오는 API를 가져와서 엑셀시트로 곱하면 대략적인 가스 비용이 산정된다. 실제 배포 및 운영에 필요한 보고는 엑셀시트를 통하여 보고한다. 가스비 변동폭이 크기 때문에 넉넉하게 보고한다.

2. 자금 사용에 대한 기록은 이더스캔 사이트에서 csv파일을 내려받아 한번에 정리 후 보고한다.

3. 하드웨어가 회사에서 지급되는 경우 하드웨어에서 보관하지만 이가 어려울 경우 그냥 중앙 거래소의 계좌에서 보관하고 필요한 만큼만 뽑아쓴다.

 

테스트 관리

1. 반복되는 테스트의 경우 각 체인별로 구분을 나누어서 컨트렉트 주소만 넣으면 모두 세팅되도록 만든다.

2. 결과 값을 변수를 선언하는 값으로 출력을 시켜서 결과값만 가지고 바로 대입이 가능하도록 만든다.

3. 주소만 검토하면 문제가 없도록 만든다.

728x90
반응형
Comments