비트코인 (비트코인 코어 설치하기)
비트코인은 오픈소스 프로젝트로 말 그대로 모두가 개발에 참여할 수 있다.
비트 코어를 이용해서 개발에 참여하려면 어떻게 해야 할까?
1. Bitcoin Core란?
Bitcoin Core란 비트코인의 사용자 소프트웨어 구현을 돕는 샘플 프로그램, 즉 비트코인의 참조 구현이다. 비트코인이 갖춰야 할 모든 기능을 구현하고 있으며 transaction과 wallet에 대한 모든 데이터를 저장하고 있다.
2. Bitcoin Core 설치하기
① Bitcoin core 코드 다운로드하기
Git bash에 git clone https://github.com/bitcoin/bitcoin.git 입력
cd 폴더 및 파일명 → 해당 폴더 및 파일로 이동하는 명령어
git clone GitHub주소 → 해당 주소의 파일을 모두 현재 위치에 다운로드하는 명령어
② Bitcoin core 빌드 환경 조성하기
cmd에서 bitcoin / doc / build-windows.md 혹은 build-unix.md파일을 살펴보자
현재 운영체제가 window이므로 cmd bitcoin / doc 폴더에서 more build-windows.md 입력
해당 파일의 요구조건을 모두 갖춰야 bitcoin core를 컴파일할 수 있다.
dir → 현재 위치의 모든 파일, 폴더명을 보여주는 명령어
다음 내용은 build-windows.md의 내용을 정리한 것이다.
● WSL 다운로드하기
WSL은 윈도우에서 리눅스 명령을 cmd, powershell에서 사용할 수 있게 해주는 도구이다.
WSL을 다운로드하기 전 다음과 같이 설정을 바꿔 주어야 한다.
먼저 제어판 > 프로그램 > 프로그램 및 기능 > Windows 기능 켜기 / 끄기에 들어가서 Linux용 Windows 하위 시스템에 체크를 해준다.
그리고 설정 > 업데이트 및 보안 > 개발자용에 들어가서 개발자 모드에 체크한다.
위와 같은 설정이 끝나면 https://www.microsoft.com/ko-kr/p/ubuntu-1804/9n9tngvndl3q에서 ubuntu 18.04를 다운로드한다.
● 빌드 환경 조성하기
어플을 다운로드한 후 실행시켜 위와 같은 창이 뜨면
sudo apt update
sudo apt upgrade
sudo apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git
sudo apt install g++-mingw-w64-x86–64
다음 명령어들을 순서대로 입력한 후
sudo update-alternatives — config x86_64-w64-mingw32-g++ 에서 설정을 1로 변경한다.
③ Bitcoin core 빌드하기
git clone https://github.com/bitcoin/bitcoin.git
cd depends
make HOST=x86_64-w64-mingw32
cd ..
./autogen.sh
./configure
다음과 같은 메시지와 함께 Error가 하나도 뜨지 않아야 한다.
make
여기까지 따라왔다면 비트 코어 빌드는 성공한 것이다.
중간중간 필요한 패키지를 설치하지 않아 발생하는 오류가 잦으므로 주의해야 한다.
③ Bitcoin core 설치하기
sudo make install
Which bitcoind / Which bitcoin-cli 를 입력했을 때 다음과 같은 화면이 뜨면 정상적으로 설치가 끝난 것이다.
bitcoind 명령어로 bitcoind를 실행시켜 보자
이렇게 비트코인 코어를 실행시킬 수 있게 되었다.
※ https://bitcoin.org/ko/download 다음 페이지에서 쉽게 다운로드할 수도 있다.
3. Bitcoin Core Node를 운영하는 이유
비트코인 코어는 blockchain dataset을 모두 다운 받기 전까지는 transaction을 처리하거나 계좌의 잔액을 업데이트 할 수 없다. 이 full blockchain dataset을 다운 받으려면 꽤 많은 저장공간과 2GB 이상의 RAM이 필요하다. 그럼에도 많은 사람들이 비트코인 코어 노드를 운영하는 이유는 무엇일까?
① 비트코인 소프트웨어를 개발할 중이고 API가 필요할 때
② 비트코인의 합의 알고리즘에 따라 transaction을 처리하는 어플리케이션을 만들고 싶을 때
③ 노드를 실행시킴으로써 블록체인 네트워크가 더 원활하게 돌아갈 수 있도록 지원 하고 싶을 때
④ 제 3자 (거래소)가 내 transaction을 처리하는 것을 원치 않을 때
대체로 위와 같은 경우에 사람들은 비트코인 코어 노드를 운영한다.