블록체인 개발자들은 많은 리소스와 시간을 사용하여 블록체인에서 DApp을 개발하고 블록체인 인프라를 구축하여 고객에게 서비스를 하고 있다. 빠르게 시장에 마케팅과 서비스를 해야 하는 Web3에서 블록체인 개발자는 체인 위에서 DApp 개발에 집중하는 것이 유리하다. 클라우드 위에서는 이미 구축이 되어있는 블록체인 노드 서비스를 활용하면 개발 공수에 시간을 절약할 수 있고, 클라우드가 제공하는 컴퓨팅, 네트워크, 보안 서비스를 조합하여 높은 레벨의 서비스 성능과 안정성을 가져갈 수 있다. 이번 블로그에서는 블록체인 노드 서비스에 대한 간단한 소개와 Hyperledger 체인에서 BNS 를 사용하는 절차에 대해서 소개를 하도록 하겠다.
알리바바클라우드 Web3팀은 기존에 보유하고 있는 컴퓨팅, 스토리지등의 인프라 위에서, 웹3 개발 및 서비스 일련의 프로세스에 걸친 다양한 레이어에서 서비스를 개발하고 확장하고 있다.
Blockchain Node Service는 PaaS형태의 서비스로서 구축•관리비용을 절감할 수 있고, 블록체인 비지니스의 시작속도를 높이기 위한 온디맨드 서비스이다.
클라우드의 높은 확장성을 이용하고, Low Latency의 고속데이터 처리를 하여 고성능의 서비스를 제공하고, 기본적으로 이중화 구성을 하여 High Availability를 제공한다. 또한, 보안에 필요한 신기술을 적용하여 End-to-End 레벨에서 자산을 보호하며, 각종 악의적 공격과 해킹으로부터 고객의 Asset을 보호할 수 있다. 알리바바클라우드는 현재 Hyperledger, Ant Blockchain, Ethereum Quorum 의 체인에서 BNS를 서비스 하고 있으며, 지원되는 체인의 목록은 지속적으로 확장이 될 예정이다.
Hyperledger Fabric 2.2 버전을 선택하고, Resource Type으로는 Consortium을 선택한다. Consortium을 선택하면 Organization도 포함이 되어 자동 구축된다. 필요에 따라서 Edition을 선택하며, 구축될 Consortium의 이름과 사용될 Domain Name을 입력한다.
배포가 완료된 오버뷰 화면에서 컨서시움과 두 개의 조직(Org0, Org1)이 확인된다.
콘소시움부터 보자. 도메인네임과 배포리전, 콘소시움 노드의 MSP ID, Peer Node의 개수, CAUrl, CAName이 확인된다. 그리고 하단에는 콘소시움에 참여한 두 개의 조직이 확인된다.
그리고 생성된 채널과 3개의 Orderer Node가 확인된다.
다음은 조직의 기본정보 화면이다. Org0 조직의 MSP ID, Egress IP, CAUrl 등의 정보가 확인되며, 조직의 Peer Node 정보가 확인된다.
블록체인 노드 인프라는 생성이 되었고, 이제 Hyperledger 체인코드를 패키징을 하여 노드 인프라 위에 배포를 할 차례다.
체인코드는 이번 데모에서는 Hyperledger Fabric Sample을 사용하여 배포를 하겠다. Curl 등의 방법으로 샘플 코드를 다운로드를 받은 후에, 패키징에 필요한 필수 패키지(Go, NodeJS, NVM 등)을 설치하고, 환경변수를 세팅한다.
본 데모에서는 golang으로 코딩된 abstore데모를 사용하였다. Peer lifecycle chaincode package 커맨드로 chaincode를 tar.gz 파일로 패키징을 하였다.
BNS 콘솔에 체인코드를 배포하기 위해서는 tar.gz 파일을 업로드를 해주어야 하므로, 로컬 PC에 scp와 같은 커맨드를 사용하여 다운로드를 한다.
BNS 콘솔의 Chaincode Package management 메뉴로 들어오면 Upload Chaincode 버튼을 클릭한다.
로컬 PC에 저장한 tar 파일을 선택하여 업로드한다.
업로드된 체인코드가 확인이 되고, Status는 Uninstalled로 보인다.
Installation 버튼을 누르면 체인코드의 정합성을 검증한 후에 Install이 진행이 된다.
설치가 정상적으로 완료된 code는 Installed 상태로 바뀌며, Submit definition을 수행할 수 있다.
체인코드를 배포할 채널을 선택하고, 배포에 필요한 Endorsement Policy를 입력한다.
Submit이 완료된 상태이다. Org0에서 배포를 수행하면 Org1에서 이를 Handling 할 수 있다.
Submit을 수행한 조직과 채널, 기타정보 등을 확인하고 승인한다.
승인이 완료된 체인코드는 노드위에서 정상적으로 Running된다.
체인코드를 사용할 user1이 추가된 화면이다. 이 유저가 사용할 수 있는 SDK와 CA를 다운로드 하면 커넥션에 필요한 프로파일 정보와 키를 확인할 수 있다.
REST API를 사용하기 위해 관련 컴퍼넌트를 설치하면 REST API 커맨드가 활성화 되고,
API가 사용할 Token을 생성한다.
이제 POST,GET 등의 메쏘드로 API를 사용하고, TEST를 수행할 수 있다.
이번에는 패브릭 어플리케이션을 수행해본다. 배포할 javascript 언어를 설치한 후에,
계정과 CA 정보를 이용하여 app.js 어플리케이션을 블록체인 네트워크에 배포할 수 있다.
지금까지 Blockchain Node 서비스에 대한 간단한 소개와, Fabric Ledger 체인에 체인코드를 배포하는 과정을 살펴보았다. 물론 개발자는 직접 구축을 할 수도 있지만, 구축에는 많은 시간과 시행착오가 필요하다는 점을 고려하면 알리바바 클라우드의 매니지드 서비스를 이용하는 것이 여러모로 이롭다. 다음에는 다른 체인 위에서 BNS를 구축하고 배포하는 내용에 대해서 소개를 해 드리고자 한다.
James Lee - October 11, 2023
JJ Lim - November 10, 2021
Haemi Kim - October 20, 2021
Regional Content Hub - August 12, 2024
Haemi Kim - September 15, 2021
JJ Lim - November 1, 2021
An all-in-one service that provides elastic, stable, and widely distributed computing, network, and storage resources to help you deploy businesses on the edge nodes of Internet Service Providers (ISPs).
Learn MoreIdentify vulnerabilities and improve security management of Alibaba Cloud WAF and Anti-DDoS and with a fully managed security service
Learn MoreAllows developers to quickly identify root causes and analyze performance bottlenecks for distributed applications.
Learn MoreMulti-source metrics are aggregated to monitor the status of your business and services in real time.
Learn More