BApp Developer Guide#

BApp 이란 BORA Ecosysem과 연계하여 개발된 콘텐츠 또는 어플리케이션을 의미합니다.
본 문서는 개발사BAppBORA Ecosystem을 연동하는 과정에 대해 설명합니다.

용어 정리

  • 콘텐츠 앱(BApp) : BORA Ecosystem을 활용하여 개발된 3rd-Party 서비스
  • 개발사 : BORA Ecosystem을 활용하여 사용자에게 콘텐츠(서비스)를 제공하는 회사
  • 사용자 : 콘텐츠 앱과 BORA Membership에 가입하여 이용하는 End-user
  • BORA API : BORA Ecosystem과의 연계를 위해서 제공하는 RESTful API Set

개발사가 BORA Ecosystem과 연계하여 서비스를 제공하기 위해서는 1) BORA 멤버쉽 연동, 2) SHELL 트랜잭션 연동 과정이 필요합니다. 특히, BORA Ecosystem 과 개발사 시스템은 개별적인 장애 발생시 상호 시스템에 영향을 주지 않는 방법으로 연동되어야 합니다.


BORA 멤버쉽 연동#

개발사 입장에서 BORA 멤버쉽과의 연동은, BORA 블록체인 네트워크에서 사용하는 사용자별 SHELL App 지갑주소 를 생성하거나 조회하는 절차입니다. 개발사는 자체 멤버쉽 시스템을 구축해야하며, 이에 대한 관리는 개발사의 역할입니다. BORA Ecosystem 은 멤버쉽 연동 과정에 필요한 최소한의 지갑주소 정보만 제공하며 이를 제외한 일체의 고객정보에 대해 개발사와 공유하지 않습니다.

연동프로세스

  1. 사용자는 BORA 회원가입 or BORA 로그인 과정을 통해 Access Token 을 발급받아 BORA API를 호출할 수 있는 최소 권한을 획득합니다.
  2. 획득한 권한으로 콘텐츠 앱에서 BORA Ecosystem 에 해당 사용자의 SHELL App 지갑(사용자 지갑) 생성 요청을 합니다. BORA 멤버쉽 시스템은 이 요청을 인지하여 사용자 지갑을 생성하고 이를 콘텐츠 앱에 알려줍니다.
  3. 개발사는 발급된 사용자 지갑 주소를 콘텐츠 앱 내 멤버쉽 정보와 매칭하여 보관합니다. 이후 콘텐츠 앱은, BORA Ecosystem 에서 제공하는 API 에 해당 사용자 지갑 주소를 사용하게 됩니다.

BORA 회원가입/로그인 및 지갑 연동#

user wallet interaction

프로세스

  1. 개발사는 각자의 방식에 따라 멤버쉽 정보를 생성, 관리해야 합니다.
  2. 사용자가 SHELL App 지갑을 발급 받지 않은 경우(ex.최초 가입) BORA Ecosystem 에서 제공하는 BORA 인증 페이지를 Redirection URL 로 지정하여 새창 (or 페이지 전환 or 웹뷰)으로 호출합니다. 이는 OAuth2.0 의 Authorize code 방식을 지원하는 일반적인 SNS 연동 방식과 동일합니다.
  3. 사용자가 BORA 인증 페이지 에서 로그인을 성공하는 경우, Redirect URLAccess Token 을 반환해 줍니다.
  4. 개발사는 반환된 Access Token 을 이용하여, 사용자의 BORA 회원번호콘텐츠 앱 사용자 주소확인 API 를 호출합니다.
  5. SHELL App 지갑 가 있는 경우 사용자 지갑주소와 함께 잔액(현재 보유금액)을 반환해 주고, 최초 사용자의 경우 지갑생성 후 사용자 지갑주소만 리턴해 줍니다. 최초 사용자의 경우, 전달받은 SHELL App 지갑 주소를 콘텐츠 내 멤버쉽 정보와 맵핑하여 저장합니다.

위 “절차3“ 에서 BORA 멤버쉽 시스템 에 가입되지 않은 경우, 별도의 BORA 멤버쉽 가입 절차를 진행하게 됩니다.

#

SHELL Transaction 연동#

블록체인에 데이터를 기록하기 위해서는 스마트컨트랙트(SmartContrct)를 정의하고, 이에 대해 트랜잭션을 실행 시킴으로써 기록할 수 있습니다.

블록체인에 기록하게 되는 모든 데이터의 처리를 트랜잭션(Transaction)이라고 합니다. BORA Devtoolkit 은, 서비스에 필요한 기능들을 스마트컨트랙트로 정의하고 이를 RESTful API로 제공함으로써, 개발사가 단순한 RESTful API 호출만으로도 블록체인에 콘텐츠의 주요 정보를 기록할 수 있도록 합니다.

블록체인에 기록하는 데이터는 ① SHELL 의 이동, 소비, 생성, 소멸 등에 대한 정보② 콘텐츠의 중요한 데이터, 예를 들면 공정성을 증명해야 하는 게임주요이력 등이 될 수 있습니다.

컨텐츠 내에서 SHELL을 사용자에게 지급하거나 사용자 간 SHELL을 거래하려면 BORA에서 제공하는 Transaction API 연동이 필요합니다. 그 외 특정 컨텐츠나 이력들을 특수한 목적에 사용하기 위해 블록체인에 기록하고 싶은 경우에도 Transaction API 연동이 필요합니다.

블록체인의 내재적인 특성상 한번 기록된 정보는 변경이 불가함을 항상 명심하여야 합니다.

Transaction 연동을 위한 기본 정책#

  • BORA on Demand 방식

    일반적으로 앱 어플리케이션은 다양한 기능을 제공합니다. 개발사는, BORA 플랫폼과의 연동이 필수적인 기능연동이 필요하지 않은 기능을 분리하여 구현해야 하며, SHELL 사용이 필요한 시점에 실질적인 BORA 플랫폼과의 연동이 일어나도록 해야 합니다. 이는 앱 서비스와 BORA Ecosystem과의 서비스 영향을 최소화 하기 위함입니다.

  • Bulk Transaction 전송 연동 방식

    특수한 상황을 제외하고, 앱 내의 실시간으로 변경되는 내용들은 서버에서 상태를 관리하고, 마지막 결과만 블록체인에 기록하도록 해야 합니다. 이는 블록체인의 부하를 최소화 하기 위한 방법입니다. 콘텐츠의 원활한 서비스를 위해 BORA API 호출은 1,000 tps 이하를 권장합니다.

사용자가 BORA 를 BApp 서비스에 이용하기 위한 방법#

사용자는 앱 서비스 내 컨텐츠(ex.상점)를 통해 SHELL 을 획득하거나, 외부 거래소 등을 통해 획득한 BORA 를 SHELL 로 전환하여 서비스에 이용할 수 있습니다. 이는 BORA Island 에서 제공하는 BORA <-> SHELL 전환 기능을 통해 가능합니다.

본 과정이 완료되면, 사용자는 앱 서비스에서 SHELL을 사용할 수 있습니다. 아래는 서비스 흐름에 대한 이해를 돕기 위한 설명이며, 개발사가 별도로 작업할 부분은 없습니다.

token use scenario

프로세스

  1. BORA Token 획득 – 외부 거래소 또는 사용자 간의 거래를 통해 BORA Token 획득
  2. BORA Island 멤버쉽 가입 or 로그인 - BORA Island 멤버쉽으로 가입하면, ① BORA 지갑 과 ② SHELL Main 지갑 이 생성됨
  3. 보유하고 있는 BORA 를 SHELL 로 전환
  4. 콘텐츠 별 앱 지갑주소 생성 - 개발사의 서비스에서 멤버쉽 연동시 생성
  5. SHELL Main 지갑에 보유한 SHELL을 콘텐츠별 앱 지갑으로 할당(이체)
  6. 개발사의 서비스를 통해 앱 지갑 내 SHELL 거래 시작

게임 플레이 연동#

본 설명은 SHELL 이 게임 내 통화로 사용되는 것을 전제로 하며, 보편적으로 활용되는 캐쥬얼 게임 프로세스를 가정하고 만든 시나리오입니다. 콘텐츠의 형태나 서비스 정책에 따라 시나리오는 변경될 수 있습니다.

사용자가 게임을 플레이하면 플레이 결과에 따라 SHELL 변동이 발생되고 해당 라운드의 SHELL 이용내역을 블록체인에 기록합니다.

게임이 진행되는 동안 발생하는 Transaction 들을 실시간으로 BORA API 호출을 통해 기록할 수도 있지만, 블록체인 노드의 부하 최소화를 위해 게임 결과를 모아 한번에 블록체인에 기록하는 것을 권장합니다.

game play

프로세스

  1. 사용자가 개발사의 콘텐츠(게임)를 실행
  2. BES 멤버쉽 연동유무 확인
  3. SHELL App 지갑 잔액 및 Status 확인
  4. 게임 플레이
  5. 게임 라운드가 종료되면, SHELL 이동 내역을 담아 BORA API 호출 (Transfer) (주요 게임데이터도 함께 저장할 수 있음)
  6. 게임 종료

아이템 구매 연동#

본 설명은 앱 서비스 내에서 아이템 구매를 위해 SHELL 을 사용하는 시나리오입니다.

아이템 구매도 마찬가지로 게임 내의 상점에 진입하기 전에 2차 인증 과정을 통해서 사용자의 자산사용 동의 과정을 거처서 상점에 진입하고, 최종 구매 결과를 BORA API를 통해서 블록체인에 기록합니다.

본 과정에서의 "재화사용 인증 요청"도 개발사의 서비스 정책에 따라서 선택 적용할 수 있습니다.

item buy

프로세스

  1. 사용자가 개발사의 콘텐츠(게임)를 실행
  2. BES 멤버쉽 연동유무 확인
  3. SHELL App 지갑 잔액 및 Status 확인
  4. 아이템 상점 진입
  5. 아이템 구매 진행
  6. 아이템 구매가 확정되면, SHELL 이동 내역을 담아 BORA API 호출 (Transfer)
  7. 아이템 상점 닫기