상위 수준에서, 블록체인 노드는 다음의 중요 구성 요소들로 이루어져 있습니다.
이 구성요소들을 만들기 너무 복잡하기 때문에 대부분의 블록체인 프로젝트들은 이미 존재하는 블록체인 프로젝트에서 fork(간단히 말해, 기존의 블록체인을 복사하여 새로 만드는 것)합니다. 예를 들어, 비트코인 저장소는 Litecoin, Zcash, Namecoin, Bitcoin Cash 등의 프로젝트가, 이더리움 저장소는 Quorum, POA Network, KodakCoin, Musicoin 등의 프로젝트가 fork했습니다.
그러나, 기존에 존재하던 블록체인 플랫폼들은 수정을 허용하도록 설계되지 않았고, 결과적으로 fork로 새로운 블록체인을 구성하는 것을 심각한 한계들을 낳았습니다.
Substrate는 블록체인을 구성하는 오픈 소스이며, 독립적이고(Modular), 확장 가능한 프레임워크입니다.
Substarte는 커스터마이징 가능한 블록체인 노드를 만드는 데 필요한 모든 주요 구성 요소들을 제공합니다.
많은 시작하는 사람들을 위해, Substrate 개발자 허브는 별도의 설치 없이 바로 사용할 수 있는 Substrate 기반 노드 템플릿을 제공합니다.
이 글의 목표는
1. 당신의 컴퓨터에 Substrate 개발 환경을 구축한다.
2. Substrate 기반 블록체인을 실행하기 위해 노드 템플릿 프로젝트를 사용한다.
3. 템플릿 노드와 소통하기 위해 프론트엔드 템플릿 프로젝트를 사용한다.
Substrate 개발은 UNIX-기반 운영체제(macOS, Linux)에서 가장 쉽습니다. 만약 윈도우를 사용하신다면, 가상머신을 통해 리눅스에서 실습하세요!
다음 명령어는 macOS 기준입니다.
openssl
설치 : brew update && brew install opensslbrew가 없다면 brew 먼저 설치: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
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.
즉시 Substrate 위에서 시작할 수 있도록 Substrate node template이 작업 개발 환경을 제공합니다
위에서 설치한 Substrate 기반 블록체인 노드와 상호작용하기 위한 웹 브라우저 인터페이스를 사용하기 위해 프론트엔드 템플릿을 사용해 봅시다!
다 설치했나요? 컴파일이 끝나면 이제 프론트엔트 템플릿으로 탐험해 볼 준비가 됐습니다!
--dev 옵션은 미리 정의된 development chain의 노드를 실행하겠다는 의미입니다. 기본적으로 이 옵션은 또한 실행이 중지되면 모든 활성화된 데이터를 지워 노드를 중지하고 새로 시작할 때마다 깨끗한 작업 환경을 보장합니다.
계속 실행해둔 상태에서 이어집니다!
Transfer 컴포넌트의 기능 사용