JSHan94 / cosmos-cbdc

CBDC demo project made by cosmos-sdk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cosmos-cbdc

CBDC demo project made by cosmos-sdk

TODO

  1. CBDC 발행
    • 시중은행에서 CBDC 발행 요청하는 page 추가
    • 중앙은행에서 CBDC 발행 요청 처리하는 page 추가
    • CBDC Blockchain 연결
    • 시중은행의 중앙은행 당좌예금 page 추가
  2. CBDC 환수
    • 시중은행에서 CBDC 환수 요청하는 page 추가
    • 중앙은행에서 CBDC 환수 요청 처리하는 page 추가
  3. CBDC 송금 및 대금결제 취소
    • 시중은행 Escrow account 추가
    • User 화면에서 결제 취소 요청하는 기능 추가
    • 상점 화면에서 결제 취소 승인/거절하는 page 추가
    • 3일 지났을 시 재입금하는 스마트 컨트랙트 작성
    • 디자인 요청 반영
    • 영/한 토글 기능 추가
  4. CBDC 해외송금
    • Klaytn Testnet(Baobab) 노드 구성, Wallet 발행
    • LFB-SDK를 사용해서 독자적인 Testnet 구성, Wallet 발행
    • Klaytn과 LINE 블록체인과 Cosmos 블록체인 간의 정보 교환 기능 추가
    • Dashboard와 블록체인간의 연동, Dashboard 좀 더 시각화
    • 해외송금 UI 디자인 구현
    • Dashboard와 Server의 DB 이용 최적화 - 현재 작업중
    • 2차 PoC 데모 준비 - 현재 작업중

Build Environment

  • node: 14.17.5
  • npm: 6.14.14
  • go: 1.16.5
  • python2: 2.7.18
  • starport: 0.14.0
  • jq : 1.6

파일 설명

CBDC_server

Cosmos 블록체인과 하나금융 application과 연동하기 위한 Backend 서버. 은행 이벤트 중 블록체인 트랜잭션이 호출되면 해당 서버로 요청을 보냄. 그 후 트랜잭션 생성 CLI를 대신하여 실행 시켜줌. 현재 이더리움의 Web3 API 같은 것을 Cosmos에서는 지원하지 않는 것으로 보여서 다음과 같이 구현하였음. 세부적인 실행 과정은 주석과 shell script를 참고할 것을 권장함.

CBDC_blockserver

CBDC 해외송금 Dashboard에서 블록체인의 blockNumber와 트랜잭션 정보를 동기화하기 위한 Backend 서버. 본 시스템은 세 가지 블록체인을 사용하는 시나리오를 가정하였으며 각각 Cosmos, Line Financial Blockchain (LFB), Kakao Klaytn이 해당 됨. 현재 세 블록체인 간의 표준화 된 프로토콜이 존재하지 않아 각각의 트랜잭션 정보를 수집하여 하나의 Dashboard를 통해 보여주도록 구현되었음. 본 소스코드 내에는 cosmos blockchain 클라이언트 코드만 들어있으며, LFB와 Klaytn는 각각 로컬 환경에서 구성하여야 함. 각각 블록체인 구성에 대한 참고자료는 아래와 같음.

CBDC_dashboard

해외송금 Blockchain의 transaction 상황을 보기 위한 대시보드. 연동된 블록체인들에서 트랜잭션 정보를 가져와 분석한 다음 dashboard에 등록함.

CBDC_admin

은행 관리 시나리오 데모 프로그램

  • 시중 은행 페이지
    • Distribution.js 파일
    • 시중 은행 CBDC 배정 및 확인 페이지
    • CBDC 잔액 조회 페이지
  • 중앙 은행 페이지
    • Home.js
    • 중앙 은행 CBDC 발행 및 배정 기능

CBDC_user

은행 어플리케이션 사용 데모 프로그램 구현. 현재 제공되는 기능에 대한 설명은 데모 영상을 참고할 것을 권장 드림. 현재 크롬창 최적화 사이즈: 516 * 992(viewport)

  • 활용 프레임워크
    • Frontend : ReactJS
    • Backend : NodeJS
    • Database : Firebase
  • 개인 고객 페이지
    • PersonalPage 폴더 내 각 페이지 구현
    • CBDC 결제, 발행, 교환 시나리오 구현
    • 거래 기록 확인 기능
    • 역외 결제 시나리오 구현
  • 상점 고객 페이지
    • AffilatePage 폴더 내 각 페이지 구현
    • 개인 고객 결제 내역 확인 시나리오 구현
    • 거래 기록 확인 기능

CBDC_receiver

해외송금 수취 은행 데모 시현을 위한 프로그램.

  • 해외 송금 정보 확인 페이지
    • OverseasInfoPage.js
    • 해외 송금이 완료된 후 트랜잭션의 기록을 확인할 수 있음

dpnmd

CBDC 코스모스 블록체인. 관련 실행 방법은 Cosmos SDK 공식 Docs를 참고하는 것을 권장함.

실행 방법

shell 1 - 서버 실행

디폴트 포트 설정은 다음과 같다.

  • Admin port : 3001
  • User port : 3000
  • Receiver port: 3002
  • Server port : 3030

shell 2 - 블록체인 실행

starport serve

만약 블록이 생성 되지 않는 다면 다른 shell에서 아래와 같은 명령어 실행 시 블록이 생성됨 (에러 메시지가 Trigger 역할을 하는 듯함..). dpnm은 cosmos-SDK chain 생성 시 초기 세팅한 이름임. 자유롭게 변경가능함

dpnmd start

실행 결과

실행 이미지(Kor ver.)

demo1 demo2

데모 영상

유튜브

About

CBDC demo project made by cosmos-sdk


Languages

Language:JavaScript 67.8%Language:CSS 14.2%Language:SCSS 11.0%Language:Less 3.6%Language:Go 2.8%Language:HTML 0.3%Language:Shell 0.1%Language:Dockerfile 0.0%Language:Vue 0.0%