IOG : 카르다노 dApp 개발을 지원하는 PAB
플루터스 애플리케이션 백엔드 (Plutus Application Backend) 줄여서 PAB 라고 부르는 이것은 카르다노 Cardano dApp 개발을 지원하는 도구입니다.
PAB는 개발자가 라이브 프로덕션 환경에 제품을 배포하기 전에 dApp을 만들고 테스트할 수 있도록 하는 구성 요소와 환경을 제공합니다.
알론조 프로토콜 업그레이드는 카르다노에서 스마트 컨트랙트를 지원하는데 필요한 인프라 및 도구와 함께 스마트 컨트랙트 언어를 제공하는 플랫폼인 플루터스 Plutus를 도입했습니다.
플루터스 플랫폼을 통해 개발자는 분산된 원장과 상호작용하는 스크립팅 기능을 사용해 분산형 애플리케이션(dApp, 디앱)을 작성할 수 있게 됩니다.
이 플루터스를 이해하려면 세 가지 개념을 인식해야 합니다.
- eUTxO(ExTended Unspent Transaction Output, 확장 UTxO) 모델
- Plutus Core: 플루터스의 온 체인 부분
- Plutus Application Framework (PAF) 플루터스 컨트랙트는 블록체인에서 실행되는 부분 (온체인 코드)와 사용자 컴퓨터에서 실행되는 부분(오프체인 또는 클라이언트 코드)으로 구성됩니다.
온체인과 오프체인 코드는 모두 하스켈 Haskell로 작성되고, 플루터스 스마트 컨트랙트는 곧 하스켈 프로그램입니다.
PAB (Plutus Application Backend) 란 무엇입니까?
UTxO 모델에는 앱을 동작하게 하는 트랜잭션을 구축하는 오프체인 인프라를 가지고 있습니다. 이 오프체인 인프라는 원장의 상태를 확인하고 원장에서 일부 정보를 탐색 또는 추려내 이를 한데 모아 적재적소 올바른 위치에 올바른 데이터 조각으로 트랜잭션을 구축해야 하기 때문에 매우 복잡합니다.
그래서 PAB는 오프체인 인프라와 온체인 스크립트를 더 쉽게 작성할 수 있도록 하는 단일 하스켈 라이브러리입니다. PAB는 다음 두 가지 방법으로 UTxO 트랜잭션을 구축하는 데 도움이 됩니다.
- The read path (읽기 경로): 이것인즉, 체인에서 정보를 얻고 블록체인에서 발생하는 이벤트에 반응합니다. 이 읽기 경로는 이미 테스트넷에서 작동중입니다.
- The write path (쓰기 경로): 이곳이 플루터스 스크립트를 실행하는 트랜잭션을 실제로 구성하는 곳입니다.
PAB의 역할
PAB는 개발자가 dApp을 실제 프로덕션 환경에 배포하기 전에 로컬에서 dApp을 만들고 테스트할 수 있도록 하는 PAF의 핵심 구성 요소입니다. Marlowe Playground가 개발자가 금융형 스마트 컨트랙트를 만들고 테스트할 수 있는 샌드박스인 것처럼 PAB는 개발자가 전체 dApp을 만들고 테스트할 수 있는 유사한 환경을 제공합니다.
PAB는 애플리케이션 인스턴스의 요구사항을 관리하고 처리하기 위한 오프체인 백엔드 서비스입니다. 여기에는 외부 클라이언트(예:지갑 프론트엔드)와의 상호작용이 포함되고 플루터스 애플리케이션, 노드, 월렛 백엔드, 엔드유저간의 중개자 역할을 합니다. 이러한 상호작용은 편리한 시뮬레이션과 dApp 통합을 가능하게 하는 PAB 커맨드(명령)와 모의 구성요소를 통해 가능합니다.
하지만 이것은 카르다노 dApp 생성과 구현을 위한 필수 전제 조건은 아닙니다. 일부 개발자는 자체적인 도구를 만들고 있고 실제로 API 기반 대안들이 커뮤니티 구성원들에 의해 작업되고 있습니다. PAB는 개발자들이 처음부터 자체 인프라 환경(체인 인덱스 등)을 구축해야하는 개발 시간과 자원을 줄여줍니다.
PAB를 통해 개발자는 애플리케이션의 사전 테스트 및 오류 제거를 위해 온체인에서 어떻게 동작하는지를 시뮬레이션해 완벽한 출시를 위한 준비를 할 수 있습니다.
그래서 PAB의 목적은 다음과 같습니다:
- Plutus 애플리케이션이 실행될 수 있는 표준화된 환경 제공
- 검색 가능한 인터페이스를 외부 클라이언트에 제공
- 스마트 컨트랙트 사용을 위한 온체인 정보 추적
- 개발자가 에뮬레이션되거나 되지 않은 환경에서 작업
PAB는 에뮬레이션되거나 되지 않은 환경 사이를 원활하게 전환할 수 있습니다. 이를 통해 단위 테스트, 통합 테스트, 속성 기반 테스트 등 모든 종류의 테스트를 쉽게 작성할 수 있습니다. PAB는 백엔드가 메시지를 송수신할 수 있으므로 dApp이 PAB와 쉽게 통신할 수 있습니다. 따라서 dApp은 PAB가 노출한 엔드포인트와 특정 스마트 컨트랙트가 처리할 수 있는 작업에 일반적인 요청을 전송할 수 있습니다.
또한 프레임워크 라이브러리를 사용해 배포된 애플리케이션은 PAB에서 실행되고, PAB는 eUTxO 모델에 기반한 트랜잭션을 트리거하는 스마트 컨트랙트 작업을 추가로 수행할 수 있도록 블록체인 액세스를 위한 런타임 지원을 제공합니다. 마지막으로 PAB는 지속성, 로깅 그리고 모니터링 기능을 갖추고 있습니다.
지금은 어디에 위치해 있습니까?
Alonzo 하드포크가 메인넷에 배포되고, 스마트 컨트랙트 기능은 현재 명령줄 인터페이스 (CLI) 를 사용하여 액세스할 수 있습니다. 9월 초에 간단한 스마트 컨트랙트가 메인넷에서 이루어졌고, 이것은 디앱 배포에 이르는 첫 번째 단추였습니다. 그동안 개발자들은 테스트넷에서 핵심 스마트 컨트랙트 기능을 테스트하면서 로컬에서 dApp(대부분은 PAB를 사용하여)을 작업해 왔습니다. 이러한 요소들은 디앱이 메인넷에 도달하기 전에 결합되어야 하고 시간이 걸립니다.
PAB가 노드 및 지갑 월렛 백엔드 (WBE) 커넥터와 같은 기타 핵심 구성 요소와 통합되면 개발자는 dApp을 레디(준비) 상태로 전환하고 메인넷 출시 전에 카르다노 테스트넷으로 가져올 수 있게 됩니다. 로컬에서 구축된 이러한 초기 애플리케이션은 개발자가 의도한 대로 메인넷과 상호작용할 수 있습니다.
우리가 지금까지 개발에 대한 에뮬레이터(mockchain 이라고 불리우는) 접근 방식은 dApp 제작자들에게 테스트넷에서 메인넷으로까지의 원활한 전환이 될 것임을 의미합니다. 구성 요소를 변경하여 PAB를 시작하면 실제 코드나 하스켈 코드를 변경할 필요가 없습니다. 이 통합 작업은 복잡하지만 카르다노 인프라에 있어 중요한 부분이므로 올바르게 완료되었는지 확인해야합니다.
우리는 최종 통합 작업을 계속하고 있으며 현재의 상황으로 보았을 때 중요한 문제가 발생하지 않는다는 것을 가정하여 11월에 통합 요소를 제공할 계획입니다.
앞을 내다보고
이것은 시작에 불과합니다. 언제나 그랬듯이 이것은 반복적인 프로세스로 이루어질 것입니다. 플루터스 플랫폼의 진화에 따라 개발자 커뮤니티에서 자체 도구를 만들고 배포해 카르다노에서 실행된는 dApp을 위한 오프체인 코드를 생성하도록 이끌 것입니다.
우리는 이미 Alonzo 알론조 테스트넷 프로그램과 Project Catalyst를 통해 이 커뮤니티에서 많은 활동을 보았습니다. 따라서 엔지니어/QA 및 개발자 커뮤니티와 함께 플랫폼을 테스트하는동안 점진적인 개선 작업을 수행하고 더 많은 기능을 추가할 것입니다.
최종 목표는 알론조 하드포크와 플루터스 스마트 컨트랙트가 도래해 이미 급성장하고 있는 생태계를 지원하기 위한 새로운 툴(도구), API 및 환경을 통해 개발자 경험을 빠르게 확장할 수 있도록 하는 것입니다.
'Cardano' 카테고리의 다른 글
10월 31일 찰스 : 서프라이즈 AMA 요약 (0) | 2021.11.01 |
---|---|
일본 블록체인 엑스포 카르다노 찰스 화상 라이브 요약 (0) | 2021.10.30 |
IOG : Ouroboros Chronos, 암호화된 시간 소스 (0) | 2021.10.27 |
브룬디 대통령 만남, 잔지바르 대통령 만남 (0) | 2021.10.26 |
IOG : 카르다노 스마트 컨트랙트의 인증된 디앱 (0) | 2021.10.25 |
댓글