2022/블록체인

[DID / 하이퍼래져] Aries-React-Native실행해보기

코드아키택트 2021. 11. 19. 23:44
반응형

https://github.com/hyperledger/aries-mobile-agent-react-native

 

GitHub - hyperledger/aries-mobile-agent-react-native: Aries Mobile Agent React Native - Part of the Aries Bifold effort to provi

Aries Mobile Agent React Native - Part of the Aries Bifold effort to provide SSI capabilities in a production ready app. - GitHub - hyperledger/aries-mobile-agent-react-native: Aries Mobile Agent R...

github.com


유후. 갈아만든쌀입니다. 오늘은 Hyperledger aries-mobile-agent-react-native 실행하는 방법에 대해서 알아보겠습니다.

 

Hyperledger Aries..?

 우선 어느정도 배경지식이 있다는 가정하에 설명하도록 하겠습니다. Hyperledger 프로젝트 중 신원증명과 관련된 블록체인을 담당하는 친구는 Indy입니다. 아주 단순화 해서 블록체인을 관리하고 블록체인에 접근하려는 행위들을 관리하는 프로젝트라고 보시면 됩니다.

 블록체인이라는게 데이터베이스랑 비슷한데, 접근할때마다 비용이 발생합니다. 따라서 이런점은 좋은것은 아니겠죠. Aries의 등장 배경도 이와 비슷합니다. 증명서 발급과 같은 행위들을 블록체인을 통해서 하는것이 아니라 agent vs agent간의 통신으로 하는 것 입니다. 

 우리가 동사무소를 가서 증명서를 받을때 우리는 담당공무원이랑만 또는 키오스크만 쳐다보고 할 뿐이지 그 뒤에있는 데이터베이스를 신경 쓸 필요가 없는것과 유사한 원리라고 생각하면 편할 것 같습니다.

https://www.youtube.com/watch?v=EKH7vjp_P9o&ab_channel=StephenCurran

위 유투브에 잘 설명되어 있습니다. 5분짜리니까 보시면 이해가 훨씬 잘 될거라고 생각합니다.

 

 위에서 비유한 공무원 또는 키오스크는 데이터베이스와 직접 소통하는 주체라고 볼 수 있습니다. 어떤 행위를 하는 주체를 모두 Agent라고 칭하더랍디다. 이 Agent들은 용도에 따라 ACA-PY라는 친구를 기반으로 생성하거나 Aries-React-Native를 기반으로 만들 수 있습니다. 다른 프레임워크도 있지만 제가 써보지 않아서 언급하진 않겠습니다. 

 위의 그림에 오른쪽에 보시면 ACA-PY 또는 Aries-React-Natvie가 같이 써있는 것을 볼 수 있습니다. 동사무소에 문서를 발급받으러 온 우리를 모바일 에이전트 또는 Aries-React-Native와 같다고 볼 수 있습니다. 다만 블록체인에선 증명서를 지갑에 저장한다는 표현을 쓰니 Aries-React-Native의 지갑안에 발급받은 증명서를 저장한다고 생각하시면 됩니다.

 그럼 이제 하나하나 해보겟습니다.

1. 다운로드 및 설치

 readme.md에 굉장히 잘 정리되어있습니다. 문제는 항상 하란대로 해도 안되는 경우가 많다는것이지요. 저는 우분투여서 우분투가 아니신 분들은 큰 흐름만 이해하시길 바랍니다. 저는 맥북이 아닌 관계로 안드로이드 기준으로 진행하겠습니다.

git clone https://github.com/hyperledger/aries-mobile-agent-react-native  //다운르도
cd aries-mobile-agent-react-native // 이동
npm install //패키지 설치

 

설치는 위와 같습니다. 다운완료 후, .env파일을 만들어 다음과 같은 내용을 추가합니다.

MEDIATOR_URL=http://mediator3.test.indiciotech.io:3000?c_i=eyJAdHlwZSI6ICJkaWQ6c292OkJ6Q2JzTlloTXJqSGlxWkRUVUFTSGc7c3BlYy9jb25uZWN0aW9ucy8xLjAvaW52aXRhdGlvbiIsICJAaWQiOiAiYjE5YTM2ZjctZjhiZi00Mjg2LTg4ZjktODM4ZTIyZDI0ZjQxIiwgInJlY2lwaWVudEtleXMiOiBbIkU5VlhKY1pzaGlYcXFMRXd6R3RtUEpCUnBtMjl4dmJMYVpuWktTU0ZOdkE2Il0sICJzZXJ2aWNlRW5kcG9pbnQiOiAiaHR0cDovL21lZGlhdG9yMy50ZXN0LmluZGljaW90ZWNoLmlvOjMwMDAiLCAibGFiZWwiOiAiSW5kaWNpbyBQdWJsaWMgTWVkaWF0b3IifQ==
GENESIS_URL=https://raw.githubusercontent.com/Indicio-tech/indicio-network/main/genesis_files/pool_transactions_testnet_genesis

사실 위의 의미를 저도 잘 모릅니다. 테스트를 위한 블록체인 네트워크가 있는데, 그 부분의 설정들을 가져다 쓴다고 생각하시면 됩니다. 

2. 실행해보기

 실행을 위해선 두개의 터미널이 필요합니다. 하나는 프로젝트 자체를 실행하고 나머지 하나는 android버전을 실행한다고 생각하면 될 것 같습니다. 저는 안드로이드 장비를 이용했는데 설정이 조금 필요합니다. 이부분은 일단 링크만 달아놓겠습니다.

https://reactnative.dev/docs/running-on-device

결과적으론 adb devices를 쳤을때, 본인의 디바이스가 보인다면 준비의 반은 끝입니다.

 다시 돌아와 커맨드는 각각 다음과 같습니다.

npm run start //첫번째 커맨드창
npx react-native run-android //두번쨰 커맨드창

 

GIF 용량 한계가 있어서 짤랐습니다. 위의 커맨드를 실행하면 무언가 많이 설치하는것을 볼 수 있습니다. 제가 지난번에 할땐 오류가 있었는데, 이번엔 안나네요. 혹시 누군가 댓글을 단다면 다뤄보도록 하겠습니다.

 

 

 이제 핸드폰으로 가시면 앱이 설치된 것을 볼 수 있습니다. 캡쳐는 생략하겠습니다.

 Aries-react-native가 안드로이드 10기준으로 지원하는데, 현재 안드로이드가 6이라 몇몇 기능이 안되는거 같네요...뎀...

반응형