Unit5. 백신접종 DID 개발

Yona·2022년 2월 9일
1

블록체인

목록 보기
19/22
post-thumbnail

DID란?

Decentralized Identity (탈중앙화 신원 증명), 이전에 작성한 글을 참고하면 될 듯 하다. - DID

예시코드로 제공되어있는 졸업증명 DID를 참고하여, 백신시스템으로 변경해 보자.


백신접종 DID의 주요 기능

  • 인증된 기관으로부터 백신 접종 증명서를 발급받을수 있다.
  • 접종 여부 확인 / 백신 제조사 확인 / 접종일 확인

OwnerHelper

OwnerHelper, 특정 함수를 관리자만 사용할 수 있도록 설정하는 기능을 가지고있는 컨트랙트

function transferOwnership() : 관리자를 다른 address로 이전시키는 함수

IssuerHelper

IssuerHelper, 백신 증명서를 발급해줄수있는 기관을 추가/삭제/확인 할 수 있는 기능을 가지고있는 컨트랙트

function addIssuer() : 백신 증명서를 발행할 수 있도록 인증기관을 추가하는 함수
function getIssuer() : 해당 기관이 인증되어있는 확인할 수 있는 함수
function delIssuer() : ↔️ addIssuer()

VaccineDID

function claimCredential() :
function getCredential() :

결과

gif를 통해서 컨트랙트 동작방식을 설명하고싶었으나 pending 때문에 원활히 진행이 안될것같아서 사진으로 첨부함

Ropsten 테스트넷으로 배포진행하였고 컨트랙트 주소(0x7703015Df9E56853bed5Db550b335259a5a9e6f3)를 통해 이더스캔 에서 확인가능하다. 전체 소스코드는 깃허브 에 올려두었다.

isIssuer 를 통해서 해당 기관이 인증되어있는 기관인지 확인해볼 수 있다.
최초 발행자인 owner 는 true로 갖고있으며, 인증이 되어있지 않으면 false 값을 갖고있다.
address 값 파라미터로 갖는 addIssuer 를 실행하면 true 로 바뀐것을 확인할 수 있다.


회고

예제코드를 보면서 실습을 진행하였을 때는 간단하게 생각했었는데.... 막상 소스코드를 작성하다보니 그렇지않았음을 깨달았다. 지금까지 너무 복사붙혀넣기식의 진행을 했었나, 제대로 된 학습이 되지않았다고 생각한다.
위 기능말고 인증기관 추가, 백신타입 추가, 부작용으로 인한 미접종자 같은 추가하고싶은 기능들이 있었는데 코딩실력이 미치지않아서 진행하지 못했다는게 개인적으로 아쉬웠다.

꾸준히 공부해서 나중에 완벽하게 수정하도록 해야겠다.

0개의 댓글