[Daily Contents] 블록체인 명세서 이해 향상


명세서 활용법

블록체인 프로젝트는 Sub1, Sub2, Sub3으로 진행할수록 뼈대에 기능이 점차 덧붙여지는 애자일 프로젝트

  • 목차, 프로젝트 개요, 프로젝트 목표를 훑어 전체 구성 파악
  • 과제 명세에 프로젝트 별 구현 범위 표시
  • 명세서를 읽으며 공식 문서 참고(공식이 아닌 문서에는 틀린 정보, 과거에는 옳았어도 현재는 틀리게 된 정보 등이 혼재되어 있으므로 공식 문서 권장)

프로젝트 소개

P2P 거래(중개자 없는 전자 상거래 시스템)

플랫폼의 개입을 최소화한 오픈 마켓 서비스
FE - 이더리움 // BE - 이더리움 간 연동 기술

특징

  • 누구나 전자 상거래의 판매자와 구매자가 될 수 있다.
  • 서비스 토큰으로 거래를 진행
  • 주요 기능은 스마트 컨트랙트를 통해 구현
    • 판매 상품 등록
    • 에스크로 기능
    • 구매 이력 기능

전체 아키텍쳐
블록체인 - FE - BE

기술스택
Blockchain

  • GO-Ethereum : 이더리움 클라이언트 SW
  • Solidity : 스마트 컨트랙트 개발 언어
  • solcjs : 솔리디티 컴파일러
  • Remix IDE : 브라우저 스마트 컨트랙트 통합 개발 환경

FE

  • Vue.js/Vue CLI : JS 프레임워크 및 툴
  • web3.js : JS 이더리움 APIs

BE

  • Java Spring : Java 프레임워크
  • MySQL : 관계형 데이터베이스
  • Docker : 컨테이너 솔루션

etc.

  • VirtualBox : 가상화 솔루션
  • Vagrant : 프로비저닝 툴
  • MetaMask : 블록체인 지갑

PJT 주요 과제
Sub1. 블록체인 네트워크 구축 및 활용
Sub2. 지갑 기능, ERC-20 구현
Sub3. 상품 등록 기능 구현, 에스크로 기능 구현, 구매 이력 관리 구현

디지털 화폐

탈중앙형 NFT 거래 플랫폼
OpenSea와 유사한 NFT 거래 플랫폼 구축

특징

  • 표준을 준수하는 Non-Fungible Token을 구현
  • 플랫폼을 통해 디지털 Asset을 NFT화 하고 거래할 수 있다.

전체 아키텍쳐
블록체인 - FE - BE

기술스택
Blockchain

  • Besu : 이더리움 클라이언트 SW
  • Solidity : 스마트 컨트랙트 개발 언어
  • Truffle : 스마트 컨트랙트 프레임워크
  • MetaMask : 블록체인 지갑
  • Remix IDE : 브라우저 스마트 컨트랙트 통합 개발 환경

Filesystem

  • IPFS : Inter-Planetary File System 분산형 파일 시스템(Peer-to-Peer Filesystem)

FE

  • React : JS 프레임워크
  • web3.js : JS 이더리움 APIs

BE

  • Node.js : JS Runtime
  • MySQL : 관계형 데이터베이스
  • Docker : 컨테이너 솔루션

PJT 주요 과제
Sub1. ERC-721 구현 및 테스트
Sub2. NFT Minting 및 조회
Sub3. NFT 거래 기능

프로젝트 주안점

  • BE는 거들 뿐… Web 3.0 프로젝트
  • 블록체인 관련 기술에 초점
    • 지갑과 Cryptocurrency의 개념 이해
    • 스마트 컨트랙트 구현 이해도 높이기
      • 표준에 맞게 구현하기(ERC-20, ERC-721)
      • 컨트랙트 상속, 호출
    • 블록체인과 상호작용하기(Web3 API 사용하기)
  • 끊임없이 질문 : 호출할 때마다의 비용 문제, 블록체인에 꼭 넣어야 할 데이터는 무엇?? 또한 오픈이 되어도 상관없는 데이터.

FAQ

Solidity 공부 팁 : 공식 문서, 스마트 컨트랙트 기술을 사용하는 회사의 Github 오픈소스, crypto zombie의 게임으로 학습

Q&A

Q. Dapp에서 이더리움에 배포된 스마트 컨트랙트와 데이터를 주고받기 위해서는 ABI가 필수인지?
A. 스마트 컨트랙트 주소는 고유값. 단 컨트랙트 안에 어떤 것을 호출해야 할지는 명시해야 함. 그것을 명시하기 위해 CA와 ABI가 필수.

댓글남기기