2022/블록체인

[DID / 하이퍼래져] ACA-PY 증명서 취소 예제 실행해보기

코드아키택트 2021. 11. 23. 21:58
반응형

안녕하세요 갈아만든쌀입니다. 오늘은 ACA-PY 중 증명서 취소 예제를 실행해 보도록 하겠습니다. 


요약

  • 준비 : Von network(블록체인)실행,  Faber Agent 실행, Alice Agent 실행
  • 과정 : Faber 및 Alice Agent 연결 -> 증명서 발급 -> 발급 취소
  • 배울 수 있는 것 : 터미널 및 OpenAPI를 활용한 증명서 취소 등

준비 

Von network 다운로드, ACA-PY 다운로드

 ACA-PY는 여기서 https://github.com/hyperledger/aries-cloudagent-python

 Von network는 여기서 https://github.com/bcgov/von-network

 다운로드 가능합니다.


Von network실행

von network root폴더 -> (최초 1회) build -> (매회 시작) start -> (끝날때)stop 또는 (끝나면서 삭제)down 

원튜토리얼 링크는 다음과 같습니다. https://github.com/bcgov/von-network/blob/master/docs/UsingVONNetwork.md#creating-a-did

 최초 실행시 한번 build를 해줘야합니다. root폴더란 다운받은 위치를 뜻하며 다운받은 위치에서

./manage build
./manage start --logs

위의 커맨드를 실행합니다

--logs를 쓰면 알수없는 실행내역들을 볼 수 있습니다. 실행까지 잠시 시간이 걸릴텐데 조금 기다리도록 합시다

build
start

제대로 실행됬는지 확인하고 싶다면 localhost:9000에 접속하면 볼 수 있습니다.

이렇게 된거 종료까지 해보겠습니다.

우분투 기준으로 ctrl + c로 취소후 아래 커맨드를 입력합니다.

./manage down


Faber Agent 및 Alice Agent실행

다른 예제를 실행해 봤다면 크게 어렵지 않음. faber agent에 argument가 조금 더 붙음

ACA-PY > demo 폴더로 이동해서 터미널을 실행합니다. 위에서 테스트로 von network를 껐지만 꼭 다시 켜고 실행하시기 바랍니다

Faber Agent 실행

다음 커맨드를 통해 faber를 실행합니다. faber agent라고 쓰여있는데, 쉽게 발급기관이라고 보시면 됩니다

./run_demo faber --revocation

이제 터미널이 조금 많아지니 잘 봐야 합니다

중간에 보시면 revocation registry라는 부분을 볼 수 있습니다. 이게 있어야만 발급 취소가 가능하다고 합니다.

 

Alice Agent 실행 및 Faber Agent와 연결

  ./run_demo alice

위의 명령어를 실행합니다.

Alice 실행 및 메세지 보내기 성공

 이제 서로 연결은 끝났습니다. 다른예제에선 서로 연결하기만 하는것도 힘들어 죽겠는데, 여기선 매우 쉽게 됩니다


증명서 발급하기

터미널에서 쉽게 할 수 있음. 발급 후 OpenAPI를 통해, Alice의 지갑에서 확인 및, Faber의 발급이력에서 확인 가능

이제 증명서를 발급해 보겠습니다. Faber 터미널에서 1번을 누르면 발급 가능합니다.

 증명서를 받는쪽인 Alice를 보게되면 오류가 나는데, 정확한 원인은 모르겠습니다. 아마 유지보수가 그렇게 잘 되는건 아닌가봅니다


발급받은 증명서 확인

OpenAPI를 통해 발급 확인

ACA-PY는 터미널을 통해 화려하게 돌아가지만, OpenAPI형식을 제공하기도 합니다. API를 다뤄본적 없다면 보기 힘들거라 생각합니다. 저도 그랬으니까요. 어쨋은 OpenAPI를 통해 발급받은 증명서를 확인해 보겠습니다.

위는 Faber 아래는 alice

각각 administration API를 볼 수 있습니다. Faber는 localhost:8021이고, Alice는 localhost:8031입니다.

 

Alice OpenAPI 확인

localhost:8031에 들어가 credential 부분에 가면 발급받은, 증명서를 볼 수 있습니다.


발급받은 증명서 유효성 검사

증명서 취소 후 결과와 비교하기 위한 작업

마찬가지로 OpenAPI에서 발급받은 증명서의 유효성을 볼 수 있습니다. /credential/revoked/{credential_id}를 통해 확인할 수 있습니다


발급한 증명서 취소하기

Faber에서 취소한 후, Alice에서 취소 여부 판별

이번엔 터미널에서 진행하도록 하겠습니다. Faber터미널에서 5번을 누르면 됩니다

위에 이미 젹혀있지만, 취소할떄 revocation registry ID와 revocation ID를 넣어주어야 합니다. Publish항목은 장부에 취소 이력을 넣을지 선택하는 부분인데 Y로 해줘야 최종적으로 발급한 증명서가 취소된다고 합니다


증명서 취소여부 확인하기

증명서가 취소되어도, Alice의 지갑안에는 남아있음. 쉽게 취소표시가 하나 추가되었다고 보면될듯

 마지막으로 Alice의  OpenAPI에서 증명서가 취소되었는지 확인해보도록 하겠습니다.

cred_dev_id = 3인 증명서가 취소된 것을 볼 수 있습니다.


끝맺으며

 오늘은 ACA-PY 또는 Hyperledger Aries + Indy로 증명서 취소 예제를 해봤습니다. 증명서 발급 취소는 찾아보니 W3C라는 표준에는 없는 항목이라고 하니 크게 신경쓰지 않아도 될 내용인지도 모르겠습니다. 가령 증명서에 "언제까지 유효함" 같은 부분을 넣고 발급하는 방식도 있고, 유효기간이 지나면 소유자의 지갑에서 삭제할 수 있기 때문입니다. 또한 기능이 하나씩 추가될때마다 성능저하의 우려가 있기 때문에 그런 단점은 염두해두고 사용해야할 것 같습니다.

 예제는 어떻게든 돌리긴 했지만, 유지보수가 잘 되진 않는것 같아 아쉬움이 남았습니다.

반응형