본문 바로가기

카테고리 없음

[프로젝트] 블록체인 예치 서비스 - BackEnd

INTRODUCE

해당 프로젝트는 블록체인을 Stake 서비스로 ProofOfStake(PoS) 와 비슷하다가 착각할 수 있지만 엄연히 다른 서비스입니다. PoS는 새로운 블록을 쌓기 위해 연산을 하고 그에 대한 보상을 지급하는 서비스인 반면, 해당 Stake 서비스는 블록체인 재화를 예치하고, 이를 통해 보상을 지급하는 서비스입니다. 즉, 은행 예치에 대한 이자와 비슷하다고 보시면 될거 같습니다.

프로젝트에서는 블록체인 Contract 를 제작하고 테스트 및 검증 배포와 함께 B.E 서비스를 통해 블록체인 실시간 데이터를 API를 통해 제공하였으며, Admin 서비스로는 Grafana를 통해 데이터 모니터링 및 BackOffice API 를 제작하였습니다.

 

※프로젝트에서 블록체인과 B.E 개발을 담당하여 포트폴리오를 2개로 분할합니다.

 

프로젝트 목표
- 기획에 맞는 Contract 설계
- 블록체인 계약의 로직과 안전성 검증
- 백앤드 서비스를 통한 Portal 연동 기능 구현
- Admin 제공용 Grafana 데이터 수집 기능 구현

Stake란?

더보기

Stake 서비스가 독자적인 서비스는 아닙니다. 여러 블록체인 거래소와 플랫폼 서비스에서 이미 서비스중이며, 비슷한 서비스는 아래 링크로 확인할 수 있습니다.

빗썸 : https://www.bithumb.com/react/staking

업비트 : https://upbit.com/staking/items

클레이스왑 : https://klayswap.com/ko/pool

바이낸스 : https://www.binance.com/en/earn

 

등 다양한 거래소 & 플랫폼에서 스테이킹 서비스를 제공하고 있습니다. 그렇다면 왜 PoS 채굴이 아닌데 스테이킹 서비스를 출시하고 이를 통해 보상을 지급할까? 라는 의문이 있을 겁니다. 그에 대한 간단한 설명으로 여러 사이트에서 설명해주고 있습니다.

 

스테이킹에 대한 설명 : https://www.coinex.com/ko/academy/detail/1207-staking-pool?pId=1

이미지 출처

 

즉, 블록체인 Node를 직접 띄워서 해당 네트워크에 직접 PoS 를 참여할 수 없는 이용자들에게 자산을 예치받고 대신 PoS에 참여하고 이를 기반으로 보상을 지급하기 위해 Stake 서비스를 제공하는 것입니다.

뿐만 아니라 Uniswap 서비스를 이용하면 여러 토큰을 묶어 DEX 토큰을 발행이 가능합니다. 이를 통해 새로운 토큰을 유통하거나 시장에 풀 수 있습니다.

 

 


SKILL

블록체인
Language : Solidity, TypeScript
Library: Openzeppelin, Hardhat, Mocha
Infrastructure: Remix, Ganache, Hardhat 

BackEnd
Language : Golang
FrameWork : Native
Infrastructure: Gorm, MemoryCache, HTTP, goRoutine 

 


담당 업무

담당 업무
블록체인
- Contract 기능 추가 및 역할 리펙토링
- 테스트 코드를 통한 검증
- 배포 스크립트 작성
BackEnd
- 메타 데이터 API 구현
- 실시간 블록체인 데이터 프로파일링
- 데이터 수집 기능 구현
- Garafana DB 연동 및 데이터 저장

Project Overview

블록체인 Contract가 배포되고 모니터링을 위한 BackEnd 서비스를 개발해야 했습니다. 개발하는 서비스는 총 2가지입니다.

1. 블록체인 데이터를 수집하여 API를 통해 데이터를 제공하는 서비스.

2. 블록체인 데이터를 수집하여 Grafana DB에 저장하고 관리자에게 통계 자료를 제공해주는 서비스.

Stake API 는 여러 서비스와 연동하여 주기적으로 데이터를 수집하고, 이를 기반으로 실시간 데이터를 가공. API를 통해 연동하였으며 응답속도를 향상 시키기 위해 Memory Cache를 활용하여 최신 데이터를 관리하였습니다. 

 

 

Admin을 위한 Grafana 데이터 수집 서비스 또한 개발하게되었습니다. 해당 서비스는 Stake API 서비스와 로직은 많이 비슷하지만 수집하는 데이터에서 차이가 있으며, 직접 블록체인에 연결하여 데이터를 가져와야 하는 니즈 또한 있었습니다. 2개의 B.E 서비스 개발이 완료되고 AWS를 통해 빌드 / 배포 서비스는 정상적으로 출시하여 운영되었습니다. 해당 서비스는 약 456,000개의 Token 보상으로 지급하고, 약 207,787 개의 Dex Token을 예치 하였으며, 블록체인 3.0 업데이트로 인하여 서비스는 정상적으로 종료되었습니다.

 

 


프로젝트 후기 및 문제 해결

 

📌 간헐적 데이터 누락 현상 발생

  • 10분 단위로 데이터를 수집해야 하는 파이프라인에서 일부 데이터가 저장되지 않는 문제가 발생
  • API 연동 또는 DB 연결의 일시적인 불안정성으로 인해 수집 쿼리 실행이 실패하고, 그에 따라 데이터 누락 현상이 발생함을 확인

🔧 해결 방안 및 시스템 개선

  • GoRoutine을 활용한 병렬 처리
    → 여러 서비스(API 및 DB) 연동을 병렬로 처리하여 속도 향상과 안정성 확보
  • 메모리 캐시 도입
    → 연동 실패 시, 최신 데이터를 임시 저장 및 보존하여 데이터 손실 방지
    → 장애 발생 시에도 복구 가능한 구조를 설계
  • Slack 연동 알림 시스템 구축
    → 수집 실패 시 즉시 알림 전송으로 빠르게 원인 파악 가능
    → 알림 메시지에 실패 원인 및 연관 서비스 정보 포함
  • 데이터 재수집 기능 구현
    → 데이터 누락 발생 시 해당 시간 구간에 대해 재수집 가능
    → 특정 시간 구간을 지정하거나, 실패 로그 기반 자동 재시도 기능 포함

📊 모니터링 및 가시화

  • Grafana 대시보드 구성
    → 각 수집 서비스의 상태, 실패율, 처리량 등을 시각화
    → 데이터 누락 알림과 함께 실시간 상태 확인 가능