IBAX는 분산 원장 기술인 블록체인을 기반으로 한 플랫폼입니다.
이 장에서는 IBAX 블록체인 플랫폼의 사용 방법에 대해 설명합니다.
만약 IBAX 블록체인 플랫폼에서 애플리케이션을 개발하고 생태계를 관리하는 데 관심이 있다면, IBAX 블록체인 플랫폼에 대해 자세히 알 필요가 없을 수도 있습니다.
IBAX 블록체인 플랫폼에서는 블록체인과 블록체인 네트워크가 생태계 구성원, 관리자 및 애플리케이션 개발자에게 숨겨져 있습니다. IBAX 블록체인 플랫폼은 모든 이 사용자 그룹을 위해 RESTful API 인터페이스를 제공합니다. 이 인터페이스는 블록체인의 무결성을 보장하는 분산 전역 상태에 대한 액세스를 제공합니다.
애플리케이션 개발자
기술 용어에서 **전역 상태(Global State)**는 데이터 집합입니다. IBAX 블록체인 플랫폼에서 전역 상태는 데이터베이스로 구현됩니다. 응용 프로그램 개발자의 관점에서 응용 프로그램은 이 데이터베이스와 상호 작용하기 위해 쿼리, 삽입 및 업데이트 데이터베이스 테이블을 통해 이루어집니다.
IBAX 블록체인 플랫폼에서는 계약을 실행하여 거래를 블록체인에 기록합니다. 이러한 거래는 블록체인 네트워크 노드가 실행하는 계약 코드를 호출하며, 이로 인해 전역 상태 데이터베이스가 변경됩니다.
응용 프로그램 개발자에게는 계약이 함수와 같은 것으로 간주되며, 계약을 실행할 때 데이터가 데이터베이스에 기록됩니다. 페이지는 스크립트와 같습니다. 페이지 코드는 페이지 템플릿 함수의 집합입니다. 일부 함수는 페이지 요소를 표시하고, 다른 데이터는 데이터베이스에서 가져옵니다. IBAX 블록체인 플랫폼을 사용하는 경우 응용 프로그램 개발자는 거래, 블록 생성 및 합의 알고리즘에 대해 알 필요가 없습니다.
생태계 구성원
애플리케이션 개발자가 작성한 애플리케이션은 생태계 환경에서 작동하며, 일반적으로 특정 목적을 위해 여러 애플리케이션을 결합하여 해당 목적의 다양한 측면을 달성합니다.
생태계의 애플리케이션에 접근하려면 사용자는 해당 생태계의 구성원이어야 합니다. 한 사용자는 여러 생태계의 구성원이 될 수 있습니다.
생태계 구성원은 일반적인 웹 애플리케이션과 마찬가지로 애플리케이션 페이지에서 데이터베이스를 보고 수정할 수 있으며, 양식을 작성하고 버튼을 클릭하며 페이지를 탐색할 수 있습니다.
응용 프로그램은 생태계 응용 프로그램과 플랫폼 응용 프로그램으로 범위별로 분류될 수 있습니다.
생태계 응용 프로그램
생태계 응용 프로그램은 특정 생태계의 고유한 기능이나 비즈니스 프로세스를 구현합니다. 생태계 응용 프로그램은 해당 생태계에서만 사용할 수 있습니다.
플랫폼 응용 프로그램
플랫폼 응용 프로그램은 모든 생태계에 적용될 수 있습니다. 어떤 응용 프로그램이든 플랫폼 응용 프로그램으로 개발할 수 있습니다. IBAX 블록체인 플랫폼 개발자는 투표, 알림, 생태계 구성원 역할 관리 등의 생태계 거버넌스 핵심 기능을 지원하는 플랫폼 응용 프로그램을 제공합니다.
하위 모델
계층 정의
IBAX 블록체인 플랫폼은 여러 계층으로 구성됩니다:
사용자 상호작용 계층
생태계 구성원은 페이지와 페이지 요소를 통해 애플리케이션과 상호작용합니다.
애플리케이션 계층
애플리케이션 개발자는 계약 코드와 페이지 코드를 사용하여 전역 상태(데이터베이스 테이블)와 상호작용합니다.
전역 상태 계층
분산 작업 분류장부(블록체인)에 기록된 작업을 통해 전역 상태(데이터베이스)를 업데이트하고 동기화합니다.
블록체인 계층
새로운 블록을 사용하여 분산 작업 분류장부를 업데이트합니다. 새로운 블록에는 작업(트랜잭션)이 전역 상태에서 실행되어야 합니다.
노드 네트워크 계층
IBAX 블록체인 플랫폼 네트워크 프로토콜을 구현합니다. 네트워크 프로토콜은 트랜잭션을 노드 네트워크에서 배포하고 검증하며 새로운 블록을 생성합니다. 마찬가지로, 새로운 블록은 노드 네트워크에서 배포되고 검증됩니다. 모든 노드의 분산 작업 분류장부는 동기화됩니다. 노드 간에 충돌이 발생하면 어떤 블록체인이 유효한 체인으로 간주되고 무효한 블록체인이 롤백되는지를 노드가 인식합니다.
트랜잭션 계층
트랜잭션은 블록 생성과 블록체인 프로토콜의 기반이 되며, 트랜잭션 자체는 사용자 상호작용 계층에서 실행되는 작업의 결과입니다. 트랜잭션은 Weaver에 의해 생성됩니다. 사용자나 개발자가 페이지의 버튼을 클릭하거나 계약을 코드 편집기에서 실행하는 등의 작업을 수행할 때, Weaver는 이 작업을 트랜잭션으로 변환하고 해당 네트워크 노드에 전송합니다.
그러므로 거래 프로세스 방향은 다음과 같습니다:
- 사용자 페이지에서 사용자 작업이 거래를 생성합니다.
- 해당 거래는 블록에 포함됩니다.
- 해당 블록은 블록체인에 포함됩니다.
- 변경 작업은 블록체인의 전역 상태를 변경시키며, 이 작업은 데이터베이스에 적용됩니다.
- 데이터베이스 변경은 애플리케이션에서 표시됩니다.
구현
IBAX 블록체인 플랫폼은 두 가지 주요 구성 요소로 구성됩니다. 서버 측 go-ibax (opens new window) 와 Weaver 소스 코드 (opens new window) 입니다.
Weaver:
- 사용자 페이지 제공
- 애플리케이션 개발을 위한 IDE 제공
- 사용자 계정의 공개 키를 저장하고 권한을 실행
- 애플리케이션 페이지에서 데이터베이스 데이터를 요청하고 사용자에게 애플리케이션 페이지를 표시
- REST API 를 통해 트랜잭션을 서버로 전송
사용자가 작업을 쉽게 수행할 수 있도록 자동으로 트랜잭션을 생성하며, 애플리케이션 개발자가 IDE에서 스마트 컨트랙트를 실행할 때 Weaver는 해당 작업을 트랜잭션으로 변환합니다.
서버: