- 블록체인 기반의 온/오프라인 귀농교육 플랫폼
- DApp의 경우 서비스 이용에서 사용자들에게 가스비와 속도에 대한 불편함이 발생함
- 이를 해소하기 위한 방안으로 블록에 최소한의 데이터를 기록하여 가스비 소모를 최소화하고, 그 외의 데이터를 보관을 서버(DB)가 부담하도록 하여 프론트에서 보여주는 데이터 호출 속도를 개선시키기 위함
- 모바일(iOS) 과 Web이라는 두 가지 플랫폼이 klaytn 네트워크에 참여할 수 있도록 PROXY 서버와 같은 역할(사용자 등록, 어드민계정(back-office) 관리 등)
- [클라이언트와 공유한 API 문서 중 일부 소개]
-
회원가입
- 강사(농부) - WEB 와 수강생 - mobile의 계정으로 나누어 회원가입을 진행
- mobile의 경우 키스토어 파일 내용을 받아 API서버에서 Network서버로 넘기면 Network서버의 API에서 .json파일로 dd/keystore에 키스토어 파일 생성하여 사용자 등록 후 정상 응답을 받은 API서버에서 나머지 사용자 정보 DB 저장
- web의 경우 private_key를 받아 암호화 하여 DB에 저장
-
강의등록
- 강사 계정으로 트랜잭션을 수행하여 블록에 강의 정보를 등록 후 lectureIDs의 index 값을 고유키로 받아 강의 정보와 커리큘럼을 DB에 저장, DB트랜잭션 관리
-
강의신청
- 수강생이 강의 신청 트랜잭션을 수행하여 강의료를 지불 후 API를 호출하여 해당 강의의 수강인원 증가 및 수강생 수강,구매 이력 관리
-
강의평가
- 수료기준을 만족한 수강생에 한하여 강의평가 자격이 주어지도록 권한부여 및 평가 완료 강의 상태 관리
-
강의료지급
- 어드민 계정에 한하여 권한 확인 후 평점에 맞는 강의료와 수수료가 분배되는 트랜잭션 수행
- 사용자 등록
- 모바일 : 키스토어 파일 등록
- 웹 : Private Key 등록
- 강사가 강의등록 -> 수강생 강의신청 -> 강사 출석관리 -> 강의 종료 -> 수료기준 만족 시 강의평가 진행 -> 어드민 계정의 경우 평점에 따른 수익 분배 진행
- klaytn 네트워크 구축 -> 기존에 AWS의 EC2를 할당 받아 네트워크서버로 사용하였으나 풀노드 수행 중 log파일 등 할당받은 서버 성능(용량) 문제 발생
- ngrok을 이용하여 로컬로 풀노드 네트워크를 구축하였으나 무료계정의 경우 세션을 1개만 할당해주어 네트워크서버의 API서버를 못 올림 -> 현재 코드 상으로는 구현 완료
- 플랫폼 별 대응 -> iOS와 Web 플랫폼간 사용자 등록 및 네트워크 참여 대응을 일치되지 않아 관련 이슈 발생