오픈소스 컨트리뷰톤 결과보고
🧑🎓 멘티 정보
▶️ 프로젝트명: 이더리움 재단 오픈 프로젝트
▶️ 이름: 전종혁
컨트리뷰션 기간 : 2021. 8. 7. - 2021. 10. 12. (평가 기준 컨트리뷰션 인정 기간)
정식 활동 기간: 2021. 8. 7. - 2021. 11. 19.
Challenges
2021. 8. 7. - 2021. 8. 31.
Masters
2021. 9. 6. - 2021. 11. 19.
🗒️ 컨트리뷰션 활동내용
Challenges와 Masters 프로그램 전체 기간 내 진행되었던 컨트리뷰션에 대한 활동 내역을 모두 정리해 주세요.
각 issue에 대한 타이틀 작성, 태그/유형 분류, URL 참조 및 컨트리뷰션 내용 요약 등을 공통으로 진행해 주세요. 각 이슈 및 주요 활동별 필요한 캡처 이미지 추가 URL 등을 첨부해 주세요.
참고자료로 20년도 결과보고서 작성 예시 URL을 상단에 표기해 두었습니다. 👀
▶️ 프로젝트 활동 내용
Rate Limiting Nullifier / Semaphore 리서치 발표
https://docs.google.com/presentation/d/1nGv3TrA9e8oPb8saE5XmgiZruCsRVNT8teVoGb5MJlA/edit
기여 계획서
https://docs.google.com/document/d/1Co4NSuBTl-T60LjL0rJcSmM6Yh7l4r5JjaW8N0xUtSQ/edit
✏️ Seamphore Auth
Bug Report
#25
KnexTimeoutError: Knex: Timeout acquiring a connection. · Issue #25 · ChihChengLiang/semaphore_auth
요약: 노드 모듈의 버전 이슈로 인해 실행 시 KnexTimeoutError 오류가 발생하였습니다.
상세내용: 2년 전부터 관리가 안되고 있는 프로젝트였기 때문에 실행하면서 많은 오류가 발생하였습니다. 그 중에서 버전에 대한 의존성 문제로 KnexTimeoutError가 발생하였고, knex, objection, pg 의 버전을 변경하여 버그를 해결하였습니다.
해당 이슈는 스택오버플로우 참조한 링크와 함께 PR을 제출한 후 머지 되어 close 되었습니다.
Pull Request
#26
요약: 사용하지 않는 컴포넌트 제거, READEME 수정, Node 모듈 버전 수정
상세내용:
- 사용하지 않는 github.html 컴포넌트로 인해 실행 이슈가 있었습니다. 제거하여 해결하였습니다.
- 비기너를 위해 정상 동작하도록 README.md 파일의 설치 가이드를 수정하였습니다.
- 사용하지 않는 github 모듈을 제거하였습니다.
- PostgreSQL의 버전 이슈로 버전을 변경하였습니다.
코드리뷰
#26
요약: commit 된 scripts/buildImagesGoerli 파일이 추가 된 이유에 대한 질문
상세내용: commit 된 buildmagesGoeril 파일이 추가 된 이유에 대해 질문을 받았습니다.
해당 파일은 실행 권한을 수정하였다고 설명하였습니다.
코드리뷰Commit
#26
요약: github 모듈 삭제
상세내용: 코드리뷰에서 주석처리 된 github 모듈을 삭제할 것을 제안 받았고, 삭제하여 머지되었습니다.
실행 가이드
https://hackmd.io/@9IcKGEd_QdOkn_Eh8WiTuA/ByaJTKLfK
요약: 비기너를 위한 실행 가이드
상세내용: 처음 해당 프로젝트를 접하는 비기너를 위해 문서를 작성하였습니다.
설치 가이드 부터 test네트워크 실행 및 Posting 가이드를 작성하여 README.md 파일에 업데이트 하였습니다.
✏️ Seamphore lib
Pull Request
#12
init should hash by jeonjonghyeok · Pull Request #12 · akinovak/semaphore-lib
요약: should hash값 초기화
상세내용: vote 프로젝트를 진행하면서 fast semaphore 라이브러리를 사용하였습니다.
기존에 동작하던 코드가 동작하지 않아 samaphore lib 코드를 보게 되었고, 최근 should hash값이 추가된 것을 확인하였습니다.
should hash값이 추가되면서 기존코드가 동작하지 않으므로 should hash값을 true값으로 초기화하여 기존 코드에 영향이 가지 않도록 수정하여 PR을 생성하였고, 머지되었습니다.
✏️ Semaphore voting
GitHub - jeonjonghyeok/semaphore-anonymous-voting: Anonymous voting app PoC, built using Semaphore
작업 내용
- 인메모리에서 동작하는 머클 트리를 DB에 추가하여 영속성을 가지도록 변경 하였습니다.
- router 를 추가하였습니다.
🪴 컨트리뷰션 후기 및 개인 성과
컨트리뷰션을 진행하며 느꼈던 어려움, 성취감 및 성장할 수 있었던 기회에 대해 자유롭게 작성해 주세요.
- 첫 PR
오픈소스 컨트리뷰션 프로그램에 참여하기 전, 같이 일하던 인도 개발자가 오픈소스에 커미터가 되면서 팀원들에게 축하를 받은 일이 있었습니다.
그 때 이후로 오픈소스에 꼭 기여해보고 싶다는 목표를 가지게 되었고, 그 목표를 이 프로그램을 통해 실현할 수 있어서 저에게 굉장히 소중한 경험이었습니다.
처음 기여를 할 때는 아주 사소한 내용의 커밋이었지만 작성할 때 10번이상 수정하면서 고민하였습니다.
이후 머지가 되면서 굉장히 뿌듯하였고, 자신감을 얻을 수 있었습니다. 그 때의 성취감으로 인해서 계속해서 더 성장할 수 있었던 것 같습니다.
- 첫 PR 이후 성장
기여하기 이전에는 라이브러리를 사용하다가 이슈가 발생하면 당연히 나의 코드 문제겠지? 라고 생각하고 내 코드를 수정 하였을 것 같습니다.
하지만 라이브러리 코드를 직접 들어가서 커밋시간을 확인하고, 내용을 확인하여 라이브러리를 직접 수정하는 자신을 발견하였을 때 오픈소스 컨트리뷰션을 통해 성장했구나 라는 생각을 하게 되었습니다.
🚀 앞으로의 계획
향후 컨트리뷰션 했던 프로젝트 또는 다양한 오픈소스 컨트리뷰션에 대한 본인의 계획을 작성해 주세요.
✏️Semaphore
현재 3가지 방향으로 고민하고 있습니다. 팀원들과 논의하여 주제를 확정 한 후 아래 방향으로 기여하고 싶습니다.
- 기존 Voting App을 Product레벨로 구현
- 기존 Voting App 같은 경우 스마트 컨트렉트를 거치지 않고, 서버에서 동작하기 때문에 블록체인 탈 중앙화라고 할 수 없음. Web3를 적용하여 서버를 스마트 컨트렉트로 배포하는 방향 - 가스 비용이 많이 듦
- 이더리움 테스트넷 연동
- Voting 캠페인을 인증된 사용자가 추가할 수 있도록 구현
- Semaphore Auth를 Product레벨로 구현
- 포스팅 UI / UX 수정
- 한국어 가이드 문서 작성
- Semaphore를 이용한 새로운 서비스 기획 및 구현
- 기존 voting app, hojicha 를 참고하여 새로운 서비스 기획 및 구현