1. Create your first Substrate blockchain

코와->코어·2022년 4월 16일
0

Substrate 공부하기

목록 보기
1/8
post-thumbnail

원문


블록체인 노드가 뭔가요?

상위 수준에서, 블록체인 노드는 다음의 중요 구성 요소들로 이루어져 있습니다.

  • 스토리지
  • P2P 네트워킹
  • 합의 능력
  • 외부에서 얻은 정보에 대한 데이터 핸들링 능력
  • 런타임

이 구성요소들을 만들기 너무 복잡하기 때문에 대부분의 블록체인 프로젝트들은 이미 존재하는 블록체인 프로젝트에서 fork(간단히 말해, 기존의 블록체인을 복사하여 새로 만드는 것)합니다. 예를 들어, 비트코인 저장소는 Litecoin, Zcash, Namecoin, Bitcoin Cash 등의 프로젝트가, 이더리움 저장소는 Quorum, POA Network, KodakCoin, Musicoin 등의 프로젝트가 fork했습니다.

그러나, 기존에 존재하던 블록체인 플랫폼들은 수정을 허용하도록 설계되지 않았고, 결과적으로 fork로 새로운 블록체인을 구성하는 것을 심각한 한계들을 낳았습니다.

Substrate가 뭔가요?

Substrate는 블록체인을 구성하는 오픈 소스이며, 독립적이고(Modular), 확장 가능한 프레임워크입니다.

Substarte는 커스터마이징 가능한 블록체인 노드를 만드는 데 필요한 모든 주요 구성 요소들을 제공합니다.

많은 시작하는 사람들을 위해, Substrate 개발자 허브는 별도의 설치 없이 바로 사용할 수 있는 Substrate 기반 노드 템플릿을 제공합니다.

이 글의 목표는
1. 당신의 컴퓨터에 Substrate 개발 환경을 구축한다.
2. Substrate 기반 블록체인을 실행하기 위해 노드 템플릿 프로젝트를 사용한다.
3. 템플릿 노드와 소통하기 위해 프론트엔드 템플릿 프로젝트를 사용한다.

설치

Substrate 개발은 UNIX-기반 운영체제(macOS, Linux)에서 가장 쉽습니다. 만약 윈도우를 사용하신다면, 가상머신을 통해 리눅스에서 실습하세요!
다음 명령어는 macOS 기준입니다.

필요한 패키지 설치

  • openssl 설치 : brew update && brew install openssl

brew가 없다면 brew 먼저 설치: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Rust, Rust toolchain 설치

  • rustup 설치 : curl https://sh.rustup.rs -sSf | sh
  • 환경변수 설정 : source ~/.cargo/env
  • stable 체인을 기본으로 설정 : rustup default stable && rustup update
  • nightly와 nightly wsam 설치 : rustup update nightly
    rustup target add wasm32-unknown-unknown --toolchain nightly

nightly 빌드를 사용하는 이유: Substrate uses WebAssembly (Wasm) to produce portable blockchain runtimes. You will need to configure your Rust compiler to use nightly builds to allow you to compile Substrate runtime code to the Wasm target.

  • 설치완료 확인 : rustc --version && rustup show

Substrate node template 설치

즉시 Substrate 위에서 시작할 수 있도록 Substrate node template이 작업 개발 환경을 제공합니다

  • 저장소 클론 : git clone https://github.com/substrate-developer-hub/substrate-node-template
  • 루트 디렉토리 변경 : cd substrate-node-template && git checkout latest
  • 프로젝트 컴파일 : cargo build --release
    (프로젝트 크기가 크고 최적화를 위해 --release 옵션을 썼다 보니 약 5~10분 정도 걸립니다)

프론트엔드 템플릿 설치

위에서 설치한 Substrate 기반 블록체인 노드와 상호작용하기 위한 웹 브라우저 인터페이스를 사용하기 위해 프론트엔드 템플릿을 사용해 봅시다!

다 설치했나요? 컴파일이 끝나면 이제 프론트엔트 템플릿으로 탐험해 볼 준비가 됐습니다!

Substrate 노드 시작하기

  1. Substrate 노드 템플릿을 설치한 디렉토리로 가기
  2. 다음 커맨드로 실행 : ./target/release/node-template --dev

--dev 옵션은 미리 정의된 development chain의 노드를 실행하겠다는 의미입니다. 기본적으로 이 옵션은 또한 실행이 중지되면 모든 활성화된 데이터를 지워 노드를 중지하고 새로 시작할 때마다 깨끗한 작업 환경을 보장합니다.

계속 실행해둔 상태에서 이어집니다!

이번엔 프론트엔드 템플릿을 사용해 볼까요?

  1. front-end template을 설치한 디렉토리로 가기
  2. 다음 커맨드로 실행 : yarn start
  • localhost:8000에서 실행됩니다!!

송금하기

Transfer 컴포넌트의 기능 사용

profile
풀스택 웹개발자👩‍💻✨️

0개의 댓글