mining custom_top_html:no
default debug random = 0 / type = READ / detected = READ / doc_Srl = 4410628

건강한 P2P 네트워크를 위해서는 건강한 node들이 골고루 많이 퍼져 있어야 합니다. 이는 비트코인도 마찬가지인데요, "full node를 돌리는 게 중요하다" 이런 얘기 들어보신 분들이 많으실 겁니다. 혹시 모르시는 분들을 위해 설명하자면 full node란 건 비트코인이 생겨난 후 지금까지의 모든 이체 내역을 담은 블록체인을 전부 가지고 있는 node입니다. 비트코인이 생긴 지 꽤 됐으니 용량도 꽤 듭니다. 현재 기준 약 160GB정도가 소요되는데요, 크다면 크고 작다면 작은 용량인데 내가 코인 네트워크에 이정도는 기여할 수 있다고 생각하시면 full node를 돌리는 것 고려해 보셔도 좋을 것 같습니다.

 

 

비트코인 고래들과 거대 마이닝 풀 사이에서 라즈베리 파이로 돌리는 full node가 뭔 힘이 있냐고 할 수 있겠지만, 올해 UASF를 통해 보셨을 겁니다. 약자도 뭉치면 강하다는 것을요앞으로 비슷한 사태가 있을 때 full node를 통해서 비트코인의 앞날에 한 표를 던질 수 있게 됩니다. 또한 full node를 비트코인 지갑으로도 활용하시는 경우, 3자를 믿는 부분을 최소화하고 내 비트코인을 정말로 온전하게 내가 소유할 수 있습니다.

 

 

사실 라즈베리 파이로 돌리면 번거로운 것도 많고, 사실 어떻게 보면 라즈베리 파이보다 컴퓨터가 더 널리 보급된지라 걍 컴퓨터에서 full node를 돌려도 되지만 왜 이걸 해봤냐면... 그냥 해보고 싶어서 해봤어요 ㅋㅋㅋ 굴러다니는 라즈베리 파이가 하나 있는데 어따 써먹어보고 싶어서덕질 좀 해봤네요;; 굳이 장점을 찾자면 공간을 덜 차지하고, 전기도 덜 먹는 full node를 만들 수 있다 정도 있겠네요 ㅋㅋ

 

사실 라즈베리 파이는 처음입니다ㅋㅋㅋ 근데 이거 해보니까 그냥 컴퓨터네요ㅋㅋ 제가 아두이노는 좀 만져봤는데 아두이노는 컴퓨터랑 좀 많이 다른데요, 이건 그냥 컴퓨텁니다. 크게 겁먹으실 것 없으실 듯 합니다. 특히 리눅스에 익숙하신 분들이라면요!

 

그리고 아래의 내용 중, 라즈베리파이 부분 말고 full node 설치과정은 일반 PC에서도 거의 동일합니다. 이거대로 하시면 우분투에서도 full node 돌리실 수 있으니 참고하셔요!

 

서론이 길었는데요시작합니다.

 

 

준비물

 

1.     라즈베리 파이 버전은 크게 상관 없을 듯 하지만, 여기서는 Pi3를 기준으로 설명합니다. Pi1같은 구 버전 파이를 쓰는 경우 다운로드 해야하는 OS파일이 다를 수 있습니다.

 

2.     남는 스마트폰 충전기 – 2.0A 이상이면 좋음. 라즈베리 파이는 micro USB B타입을 쓰므로 타입C를 쓰는 최신 스마트폰 충전기는 타입Cà타입B 변환 젠더 필요.

 

3.     microSD카드 – 8GB이상. 속도도 class10이상 권장함.

 

4.     microSD 카드리더기 노트북 등에 자체적으로 카드리더기가 있으면 필요 없음.

 

5.     모니터, 마우스, 키보드 최초 OS 설치 후 라즈베리 파이에 openssh 서버를 설치해서 SSH 접속이 가능해질 때까지만 필요. Pi3의 경우, HDMI 단자 밖에 없으므로 HDMI가 되는 모니터를 쓰든지 변환 젠더를 써야 함. 마우스와 키보드의 경우에는 USB 타입이어야 함(거의 없겠으나, PS2를 쓰는 경우 역시 변환 젠더 필요)

 

6.     외장하드 라즈베리 파이에서 USB2.0까지만 지원하니 USB3.0이상 지원하는 하드디스크는 무의미. 현재 비트코인 블록체인 총 용량이 약 160GB 정도 되니, 장래를 고려했을 때 512GB, 최소 256GB 이상의 외장하드.

 

 

 

설치 절차

 

1.     먼저 라즈베리 파이에서 돌릴 운영체제를 다운로드합니다.
https://www.raspberrypi.org/downloads/
여기에서 라즈베리 파이용 OS들을 확인할 수 있음.
라즈베리 파이에는 매우 여러가지의 운영체제를 사용할 수 있는데, 공식 운영체제인 라즈비안(Raspbian)도 데비안 기반의 리눅스 배포판이지만, 리눅스 배포판 중 가장 많이 사용되는 우분투가 가장 설치하기 편리할 것 같아서 여기에서는 우분투 마테(Ubuntu MATE)의 라즈베리파이용 버전을 선택했습니다(라즈베리 파이용 우분투 서버도 있지만, 설치해본 결과 apt 패키지 매니저 관련해서 문제가 있는 것 같아서 배제. 나중에 알고 보니 라즈베리용 공식 OS인 라즈비안도 우분투랑 매우 유사한 데비안 기반이었네요그래서 이름도 라즈비안;; 데비안을 써본 적은 없으나 아래 내용들 대부분 별다른 어려움 없이 데비안/라즈비안에 적용 가능할 것으로 생각됩니다). 하지만 어차피 비트코인 노드를 소스로부터 컴파일할 것이기 때문에 사실상 거의 모든 운영체제에서 가능할 겁니다.
라즈베리 파이3용 우분투 마테 다운로드(토렌트): https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz.torrent
(
위 링크 출처: https://ubuntu-mate.org/download/ 맨 아래 Raspberry Pi à 16.04.2 (Xenial))
토렌트로 다운로드하면 확장자가 img.xz인 파일을 얻을 수 있습니다(아마 파일명이 ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz 일 것으로 생각됨).

 

 

2.     다운로드한 운영체제 파일을 micro SD카드에 넣기
먼저 카드리더기를 이용해서 사용하시는 PCmicro SD카드를 연결해 줍니다.
우분투의 경우: 기본 탑재 유틸리티인 Disks에서 파티션 이미지 파일을 SD카드에 구워주는 기능이 기본으로 탑재돼 있음.
Disks에서 sd카드의 모든 파티션을 삭제하고 톱니바퀴모양 버튼이나 우측상단 三모양 버튼 à Restore Partition Image à img.xz파일 선택. 아래의 참고 이미지(퍼왔어요;;) 참조

윈도우의 경우: 7zip(http://www.7-zip.org/)으로 xz압축을 해제해서 img파일을 얻고, Win32 Disk Imager(http://sourceforge.net/projects/win32diskimager/)를 이용해서 sd카드에 img파일을 구울 수 있음.
 

 

 

3.     유선랜+DHCP를 사용하여 인터넷 연결을 하려는 경우 지금 미리 랜선을 연결해 놓습니다.
 

 

 

4.     라즈베리 파이에 모니터, 키보드, 마우스를 연결하고 전원을 연결
참고로 라즈베리 파이에는 따로 전원 스위치가 없고 micro USB 케이블을 연결하면 바로 켜지는 구조입니다.
 

 

5.     부팅이 시작되고 우분투 마테의 경우에는 마치 우분투를 처음 까는 것처럼 차례대로 설정하는 화면이 나옵니다. 우분투를 설치하듯이 한 단계씩 진행하면 됩니다.
화면 캡쳐는 굳이 필요 없을 것 같으나 보려면 à https://fossbytes.com/install-ubuntu-mate-on-raspberry-pi-2-3/
 

 

6.     설정을 마치고 나면 마치 리눅스 민트 같은 바탕화면을 볼 수 있는데요, OS는 설치됐으나 인터넷을 사용해야 하기 때문에 인터넷 연결 설정을 마칩니다.
라즈베리 파이의 경우, WiFi 모듈을 기본 탑재하고 있으므로 무선공유기에 연결해도 되고, 이더넷 포트도 가지고 있으므로 유선으로 연결해도 됩니다. 유선랜을 연결한 게 아니라면 우측 상단쯤에 부채꼴 모양(속이 빈 와이파이 심볼) 버튼이 있는게 그거 누르시면 핸폰 와이파이 연결하듯이 연결하실 수 있습니다.
3
번에서 말한 것처럼 유선랜+DHCP를 쓰는 경우 별도 설정 없이 설치만 마치면 인터넷이 이미 연결돼 있을 겁니다(직접 해본 결과).
 

 

7.     모든 패키지를 최신으로 업로드 및 autoclean/autoremove 작업
라즈베리 파이에서 돌릴 지갑에 코인을 넣어둘 생각이라면 소프트웨어를 최신으로 유지하는 작업은 매우 중요합니다. 그렇지 않은 경우에도 웬만하면 업데이트는 주기적으로 꼭 해주세요.
$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoclean && sudo apt-get autoremove

 

 

8.     Openssh-server 설치 후 서비스 활성화 및 포트 변경.
포트는 22번으로 설정되나, 웬만하면 바꾸는 걸 추천합니다 아래의 포트 변경 방법을 참조해주세요.
OpenSSH Server
설치
$ sudo apt-get install openssh-server
포트 변경: 텍스트 에디터로 /etc/ssh/sshd_config 파일을 연다(Sudo 권한 필요).
$ sudo nano /etc/ssh/sshd_config

주석 빼고 맨 위에 보면 Port라고 돼 있는데 그 뒤의 숫자를 원하는 포트로 바꿉니다.
마지막으로 SSH를 활성화합니다. 우분투 마테는 이부분이 보통 우분투랑 다른 것 같은데요, 보통 우분투에서는 “$ sudo systemctl restart sshd.service” 이런 명령어를 쓰는데 마테에서는 해당 명령어를 인식 못했구요, 아래와 같이 쳐줘야 됐습니다.
$ sudo systemctl enable ssh

 

 

 

9.     공유기 설정
공유기를 사용하는 경우 공유기 관리 페이지에서 라즈베리 파이에 고정된 사설 IP를 부여하도록 하고, 만약 해당 라즈베리 파이에 외부 네트워크에서 접속할 계획이 있는 경우, 라즈베리 파이의 SSH용 포트에 대하여 포트포워딩을 설정합니다. 설정한 IP의 부여는 재부팅 시 적용되므로 라즈베리 파이를 재부팅 해 주세요. à 이 부분은 상세설명 없이 넘어 갈게요~

 

 

10.  재부팅 후 라즈베리 파이의 네트워크 정보, 혹은 공유기 관리 페이지에서 설정해 놓은 사설IP가 라즈베리 파이에 부여됐는지를 확인.
라즈베리 파이에서 확인할 경우. 아래와 같이 입력하고 내용을 대충 보면 알 수 있습니다.
$ ifconfig –a

 

 

 

11.  모니터, 마우스, 키보드를 분리하고 라즈베리 파이로 SSH 접속 확인.
잘 됐다면 이 이후로는 모니터, 마우스, 키보드는 SSH가 연결되지 않는 등의 상황(주로 인터넷 연결 관련 문제)이 아니면 필요 없음. 리눅스를 통해 접속하시려는 경우 간단합니다. 터미널을 여시고 아래와 같이 입력하면 됩니다. $ ssh –p [아까 설정한 포트번호] [라즈베리파이 사용자 ID]@[라즈베리파이 IP]
) $ ssh –p 9876 [email protected]
윈도우의 경우 mobaXterm이나 Putty 같은 프로그램이 필요하겠네요. à 이 부분은 상세설명 없이 넘어 갈게요~
10
번에서 포트포워딩 설정을 하지 않았다면 라즈베리파이가 연결된 공유기와 같은 공유기에 붙어서 내부 IP로 접근해야 됩니다.

 

 

 

12.  비트코인 코어 깃허브에서 소스코드를 다운로드 받기 위해서 먼저 git 설치
$ sudo apt-get install git

 

 

 

13.  비트코인 코어 깃허브에서 clone을 위한 주소 확인하고 git clone
비트코인 코어 깃허브: https://github.com/bitcoin/bitcoin
$ cd ~
à 만약 다른 데 소스코드 다운로드 받고 싶으시면 원하시는 경로로 이동하면 됩니다.
$ git clone https://github.com/bitcoin/bitcoin.git
$ cd bitcoin

 

 

 

14.  최신 릴리즈 커밋으로 checkout. 현재 기준 최신 릴리즈는 v0.15.1(7b57bc9)입니다.
$ git checkout v0.15.1

 

 

 

15.  비트코인 코어 깃허브 페이지에서 빌드 절차를 확인 가능합니다. 빌드를 위해서 설치해줘야 하는 dependency들이 많은데 아래와 같이 설치해줍니다.
UNIX
빌드 절차 페이지: https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
설치1(빌드를 위한 일반 라이브러리)
$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3

설치2(Boost 라이브러리)
$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3

설치3(BetkelyDB 4.8). 빌드 절차 페이지에 보면 우분투만 하면 된다고 돼 있는데 우분투 마테도 우분투니 이걸 따라야 합니다.
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:bitcoin/bitcoin
$ sudo apt-get update
$ sudo apt-get install libdb4.8-dev libdb4.8++-dev

뭔가를 엄청나게 깔았으므로 이 시점에서 update && upgrade && autoclean && autoremove 때려줍니다.
$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoclean && sudo apt-get autoremove

 

 

 

16.  Autogen.sh 실행(아까 bitcoin 디렉토리에서)
$ ./autogen.sh

 

 

 

17.  Configure 실행.
여기서 중요!!! 라즈베리 파이3 같이 메모리가 엄청 적은 장비에서 컴파일하려면 gccGarbage Collector에 다음과 같은 제한을 걸어야 합니다(빌드 안내 페이지에 나와있음). 처음에 이거 무시하고 그냥 PC에서 하듯이 했다가 하룻밤 내내 돌리고 make할 때 에러나고 안됐습니다 ㅠ 꼭 해 주세요;;
$ ./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"

지갑 기능을 쓰지 않고 full node로써만 동작하게 하려는 경우, configure시 아래와 같은 옵션을 추가로 주면 됨(전 지갑 기능 있는 상태로 했습니다).
$ ./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768" --disable-wallet

 

 

 

18.  Make 하기.
라즈베리 파이의 컴퓨팅 성능 한계로 어마어마하게 시간이 오래 걸리므로(1시간 이상) 실행하고 다른 일 하시거나 자기 전에 돌리는 것 추천합니다.
$ make –j
-j
옵션은 CPU의 프로세서(라즈베리 파이3는 쿼드코어입니다)만큼의 쓰레드를 생성해서 make 작업을 진행해 줍니다. 저는 이걸 까먹고 안 줬는데 이것 때문에 오래 걸렸던 것일 수도 있습니다.

 

 

 

19.  Install 하기.
아무데서나 비트코인 명령어들을 쓸 수 있게 해줍니다. 윈도우랑 다르게 리눅스는 굳이 여기까지는 안해줘도 되고 그냥 ~/bitcoin/src 안에 bitcoin-clibitcoind와 같은 실행파일들을 실행하는 것으로도 충분합니다.
$ sudo make install

 

 

 

20.  블록체인을 저장할 디렉토리를 하나 만듭니다. 이 디렉토리에 외장하드를 연결할 겁니다.
$ cd ~
à 역시 만약 다른 데 소스코드 다운로드 받고 싶으시면 원하시는 경로로 이동하면 됩니다.
$ mkdir .bitcoin
à 폴더 명은 아무거나 원하시는 걸로 하셔도 됩니다. 단 이하의 모든 부분에서 일관성 있게 경로를 지정해 주셔야 합니다.

 

 

 

21.  외장하드 준비하기
완전히 비어있는 외장하드이면 가장 좋고, 기존 외장하드에 파티션을 나누어서 새로운 파티션을 만드셔도 됩니다. 파일시스템도 꼭 ext4같이 리눅스 파일시스템일 필요 없고 NTFS도 됩니다. 저는 그냥 윈도우의 하드디스크 파티션 만들기 및 포맷을 이용했는데 리눅스의 gparted 쓰셔도 됩니다. 커맨드 라인 덕후분들은 fdisk 쓰시구요ㅋㅋ

 

 

 

22.  외장하드 연결
USB 포트들 중 하나에 외장하드를 연결합니다. 여러 개의 저장장치를 연결한 게 아닐 경우 백이면 백 /dev/sda가 해당 외장하드일 겁니다. (sd카드는 sdX로 안 잡히더라구요)
아래 명령어로 확실하게 확인할 수 있습니다.
$ sudo fdisk –l

 

 

 

23.  외장하드가 시스템 시작 시 자동으로 마운트되도록 조치하기
/etc/fstab 파일을 편집합니다.
$ sudo nano /etc/fstab

파일의 맨 밑줄에 아래와 같이 추가합니다.
/dev/sda[
파티션번호] /home/[사용자ID]/.bitcoin [파티션형식] defaults,uid=1000,gid=1000,dmask=027,fmask=137 0 0
) /dev/sda2 /home/fuguo/.bitcoin ntfs defaults,uid=1000,gid=1000,dmask=027,fmask=137 0 0
의미를 간략하게 설명하면 /dev/sda2의 파티션을 /home/fuguo/.bitcoin 폴더에 ntfs 형식으로 마운트하돼 소유자(uid)1000(사실상 설치할 때 설정한 사용자의 uid입니다), 소유그룹을 1000(사실상 설치할 때 설정한 사용자의 gid입니다)으로 설정하고 해당 위치의 모든 디렉토리에 대한 권한을 drwxrr-x--- 모든 파일에 대한 권한을 rw-r-----으로 설정하라는 의미입니다.
파일을 저장하고 이를 적용해야겠죠. 재부팅합니다.
$ sudo reboot

재부팅 후 잠시 기다렸다 다시 SSH로 붙어서 내용을 이어 나갑니다. 재부팅하지 않고 하려면 아래와 같이 입력합니다.
$ sudo mount –a
/etc/fstab
에 적혀있지만 마운트되지 않은 모든 파티션들이 마운트됩니다. 만약 외장하드를 연결했을 때 어딘가에 자동으로 마운트됐다면 이 방법으로 원하는 위치에 마운트를 못 시킬 수도 있습니다. 그럴 때는 그냥 재부팅해주세요.

 

 

 

24.  제대로 마운트됐나 확인합니다.
$ df

목록 중에 /dev/sda[파티션번호]를 찾아서 Mounted on 항목을 확인하면 됩니다.

 

 

 

25.  거의 다 됐습니다. 이제 시스템 시작 시 자동으로 bitcoind (비트코인 full node 데몬)을 실행하도록 해봅시다.
아래와 같이 입력합니다.
$ crontab –e

원하는 에디터를 선택하라고 나오는데 원하시는 걸 선택합니다(nano 추천. 젤 쉬움).
어떤 파일이 열리고 뭐라고뭐라고 나옵니다. 맨 밑줄에 아래와 같이 추가하고 저장합니다.
@reboot /usr/local/bin/bitcoind –daemon –datadir=/home/[
사용자이름]/.bitcoin
만약 아까 make install을 하지 않으셨다면 /usr/local/binbitcoind가 없을 겁니다. 그 경우는 아래와 같이 입력하세요.
@reboot /home/[
사용자이름]/bitcoin/src/bitcoind –daemon –datadir=/home/[사용자이름]/.bitcoin

 

 

 

26.  재부팅합니다.
제대로 됐다면 bitcoind가 시스템 재시작시 가동을 시작해야 합니다. 확인하려면 아래와 같이 입력합니다.
$ ps aux | grep bitcoind

실행이 제대로 됐든 안됐든 무조건 한 줄 이상이 나올 겁니다(최소한 grep bitcoind는 나오기 때문). 나오는 내용 중에
fuguo    878 75.9 32.7 465748 310780 ?       Ssl  20:41 122:55 /usr/local/bin/bitcoind -daemon -datadir=/home/fuguo/.bitcoin
이런 게 있음 된 겁니다. 확인사살을 위해서 아래와 같이 입력합니다.
$ bitcoin-cli getnetworkinfo

만약 제대로 bitcoind가 돌아가고 있으면 아직 블록체인 다운로드가 안됐으니까 워밍업 에러인 error code: -28이 나와야 합니다. 이게 아니고
error: Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (/home/fuguo/.bitcoin/bitcoin.conf)
이런 게 나오면 bitcoind가 안 돌고 있는겁니다.

 

 

 

27.  이제 기다리는 일만 남았습니다.
인터넷에 보면(https://buildaminingrig.com/build-a-bitcoin-full-node-on-a-raspberry-pi/) 이미 다운로드 된 블록체인을 사용해서 거기에서 이어나가는 게 아니라 라즈베리 파이를 이용해서 아예 처음부터 블록체인을 다운로드하는 경우 SWAP 파일 없이는 제대로 다운로드가 안된다고 얘기를 하는 부분이 있습니다. 블록체인을 계속 이어나가는 데 SWAP파일이 필요 없다면 처음부터 다운로드하는 데에도 SWAP 파일이 없어도 될 것 같아서 제 생각에는 아마 별 상관 없을 듯 합니다만, 뒤에도 설명하겠지만, 저는 160GB를 다운로드하는 게 너무 오래 걸릴 것 같아서 이미 돌아가고 있는 full node에서 블록체인 데이터를 다운로드 받아서 넣어줬습니다. 그래서 이 부분 확인을 못했습니다. 누군가 해보신 분이 댓글로 달아 주심 좋을 것 같네요 ㅠ. 외부에서 블록체인을 다운로드 받는 방법은 아래에서 설명합니다.

 

 

 

28.  일단 여기까지 하셨음 ~/.bitcoin으로 들어가 보심 blocks, wallet.dat 같은 예전에 없던 파일들이 만들어져 있을 겁니다(없으면 좀만 기다려주세요. 근데 사실 이 과정이 필요한 건지는 모르겠습니다…)

 

 

 

29.  라즈베리 파이를 끄고 외장하드를 분리해서 full node가 이미 설치돼 메인넷과 싱크까지 완료된 컴퓨터에 연결합니다.

 

 

 

30.  리눅스의 경우 디폴트 datadir 위치는 ~/.bitcoin입니다. 여기에서 wallet.dat을 제외한(만약 지갑을 그냥 복제하고 싶으시다면 wallet.dat 파일도) 모든 파일을 외장하드의 블록체인용 파티션에 복붙합니다.

 

 

31.  다시 외장하드를 라즈베리 파이에 연결하고 라즈베리 파이의 전원을 켭니다.
일이 제대로 됐다면 한 2~30분정도 기다리면 블록 싱크가 완료됐을겁니다. 블록 싱크의 완료 여부를 아는 방법은 아래와 같은데요
$ bitcoin-cli getblockcount
를 입력해서 나오는 숫자가 blockchain.info 같은데서 나오는 최신 블록과 일치하면 된 겁니다.

 

 

 

긴 글 읽으시느라 고생 많았습니다. 제가 실력이 없어서 쓸데없는 순서를 적거나 잘못된 내용을 적었을 수도 있습니다. 그럴때는 댓글로 지적해주시거나 알려주시면 이 글을 보고 설치해보려는 분들께 큰 도움이 될 것 같습니다. 저도 답변 가능한 부분은 시간이 허용하는 한 답변해 드리겠습니다. 모쪼록 이 글이 건강한 네트워크를 만드는 데 조그만 도움이라도 되길 바랍니다.

 

--------------------------------UPDATE-----------------------------------

제가 원래 스왑을 추가하는 방법을 적어놓지는 않았는데요, 라즈베리 파이가 램이 1GiB(파이3 기준이고 옛날 파이는 더 적습니다) 밖에 안되기도 하고 아래에서 @신피질 님께서 그래도 스왑이 있어야 안정적으로 돌아가지 않겠냐고 말씀을 해주시기도 해서 관련 내용 추가합니다.

 

밑에 댓글에서도 확인하실 수 있지만, 라즈베리 파이 full node에서 “$ bitcoin-cli gettxoutsetinfo”를 입력하면 한참 돌다가 에러를 뱉는데요, 이게 full node가 제대로 돌고 있는 게 아니라거나 하는 건 아닌 것 같구요, 아무래도 RPC 타임아웃 에러인 것 같습니다. 그리고 SWAP파일을 추가한다고 해도 이 문제가 해결되는 건 아니기 때문에(사실 타임아웃이면 SWAP이랑 상관있는 게 아니겠죠;;) 스왑을 설정하는 건 어디까지나 옵션으로 보시면 될 것 같습니다. 아무래도 라즈베리 파이의 메모리가 작다 보니 설정하시는 게 안하는 것보다 성능 측면에는 도움이 될 겁니다.

 

사실 라즈베리용 우분투 마테가 스왑을 사용하지 않는 것은 이유가 있습니다. 스왑은 램이 모자라거나 할 때 램을 보조하는 보조기억장치 위의 용량인데요 스왑으로 쓰이는 공간은 아무래도 file IO가 빈번하게 일어날 수 밖에 없습니다. 보통 SSDHDD는 별 지장이 없는데 라즈베리 파이의 경우 보조기억장치가 micro SD카드인데 이게 micro SD카드의 노후화를 가속시킬 수 있다고 합니다.

 

본론으로 들어가서, 사실 우분투 마테에서 스왑파일을 추가하는 방법은 우분투와 완전히 같습니다. 인터넷에 내용이 너무 많아서 노하우랍시고 적어놓는 게 부끄러울 정도네요 ㅠ. 아래의 내용은 이 페이지(https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04)를 참고했음을 밝힙니다(DigitalOcean은 리눅스 노하우를 정말 잘 정리해 놓는 것 같아요 ㅎㅎ 참 좋은 업체입니다 ㅎㅎ)

 

 

 

 

1.     스왑의 공간을 할당합니다.
$ sudo fallocate –l 3G /swapfile

위 명령은 루트 디렉토리의 swapfile3GiB를 할당하라는 의미입니다.
라즈베리파이에서 / microSD카드가 마운트되는 위치인데요, 만약 외장하드를 스왑으로 쓰시고 싶으시다거나 하면 다른 경로를 지정하시면 됩니다.
제대로 공간이 할당됐음을 확인하시려면 아래와 같이 입력합니다.
$ ls –lh /swapfile

제대로 됐다면 아래와 같이 나올겁니다.
-rw-r--r-- 1 root root 3.0G 12
27 12:58 /swapfile

 

 

 

2.     다음으로는 스왑파일을 활성화하는 작업입니다. 먼저 스왑파일의 권한을 변경합니다.
$ sudo chmod 600 /swapfile

이는 root만 스왑파일을 읽고 쓸 수 있게 만들어줍니다. 적용을 확인하기 위해 아래와 같이 입력합니다.
$ ls –lh /swapfile

제대로 됐다면 아래와 같이 나올겁니다.
-rw------- 1 root root 3.0G 12
27 12:58 /swapfile

 

 

 

3.     이제 해당 파일을 스왑으로 선언합니다.
$ sudo mkswap /swapfile

제대로 됐다면 대충 아래와 같이 출력됩니다(참고페이지에서 긁어온거라 용량이나 UUID는 다를 수 있습니다).
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089

 

 

 

4.     스왑파일을 활성화합니다.
$ sudo swapon /swapfile

스왑이 제대로 활성화됐는지 확인하기 위해서는 아래와 같이 입력합니다.
$ free –h

제대로 됐다면 아래와 같이 나올겁니다.
             total      used        free      shared  buff/cache   available
Mem:       925M     418M        21M       3.0M       485M     442M
Swap:        3.0G     128M        2.9G

 

 

5.     이제 스왑 설정은 끝났습니다만, 이대로는 재부팅 시 스왑이 풀리게 됩니다. 이를 위해서 /etc/fstab을 아래와 같이 수정합니다.
$ sudo nano /etc/fstab

맨 밑에 아래의 한 줄을 추가합니다.
/swapfile none swap sw 0 0

 

 

 

6.     이제 다 됐습니다. 그런데 앞에서도 말씀드렸지만 스왑은 램을 대신하는거라 micro SD카드에 상당한 무리를 줍니다. 따라서 스왑 성향(swappiness)을 좀 낮출 필요가 있습니다.
기본적인 스왑 성향은 60으로 돼 있습니다.
$ cat /proc/sys/vm/swappiness
60

이를 10 정도로 낮추기 위해서 아래와 같이 입력합니다.
$ sudo sysctl vm.swappiness=10

제대로 수정되면 아래와 같이 출력됩니다.
vm.swappiness = 10

 

 

 

7.     Swappiness 설정도 재부팅 시 초기화가 되는데요, 이를 막기 위해서는 /etc/sysctl.conf을 수정해야 합니다.
$ sudo nano /etc/sysctl.conf

맨 밑에
vm.swappiness=10
의 한 줄을 추가하면 됩니다.

 

 

14
댓글 17
  • ?
    나이스코인 2017.12.27 11:28
    대단하십니다. 저도 놀고 있는 파이3에 설치해봐야겠네요.^^
  • profile
    신피질 2017.12.27 11:47
    라즈베리파이3 SWAP활성화 해야 할듯.
    라즈베리파이3 메모리가 1G인데, 현재 비트코인 UTXO Memory Pool이 1.8G정도로 알고 있습니다.
    좀 돌다 문제 발생할듯 한데요?

    Bitcoin Core provides the gettxoutsetinfo RPC that has exactly the information you want. Note, it takes that call up to a minute or two to run (and maybe longer as the UTXO set keeps growing).

    Here's what my node says right now:

    {
    "height": 442313,
    "transactions": 15237948,
    "txouts": 43194647,
    "bytes_serialized": 1635888675,
    "total_amount": 16028761.10201779
    }
    Current and historical data may be found on Statoshi.info's UTXO page.

    shareimprove this answer
    edited Dec 7 '16 at 19:06


    Pieter Wuille
    34.7k259118
    answered Feb 10 '15 at 21:06

    David A. Harding
    6,84711748

    It seems to me that having more than one sample output does not benefit the answer, as it will eventually be outdated inevitably. I'd probably roll back to your initial answer, or replace the old output with the current. Although, it is somewhat interesting to see that within half a year the number of txouts has almost doubled. – Murch♦ Aug 10 '15 at 14:46

    @Murch The number of outputs has just about doubled now, to 33409889. – eponymous Aug 29 '15 at 13:21
  • ?
    후구오 2017.12.27 12:21
    @신피질
    조언 감사합니다.
    이 글은 제가 어제 직접 해보면서 적은 건데요, SWAP 없이 어젯밤부터 라즈베리파이로 full node를 돌리고 있는데 아직까지 별 문제는 없습니다. 그리고 인터넷에 영문자료를 찾아보면 라즈베리 파이로 full node 돌리는 내용에 대한 글들이 많이 있는데, 어떤 글은 SWAP이 필요하다고 하고 어떤 글은 있으면 속도가 빨라지지만 꼭 필요치는 않다고 얘기합니다.
    SWAP이 필요하다고 하는 글(https://buildaminingrig.com/build-a-bitcoin-full-node-on-a-raspberry-pi/)을 보면 라즈베리파이로 처음부터 체인을 다운로드하는 경우에만 SWAP이 필요하다고 하는데요, 사실 그렇다면 mempool의 크기와 과 관련된 문제는 아닙니다. 왜냐면 mempool과 관련돼 있을 경우 처음부터 체인을 다운로드하든 아니든 간에 무조건 SWAP이 있어야 하는거니까요.

    계속 돌려보다가 문제생기거나 멈추는지 확인해 보고, 문제가 생기면 해당내용 추가하겠습니다.
  • profile
    신피질 2017.12.27 12:33
    @후구오
    아,그렇군요. stackexchange에 관련글이 있군요.
    In Bitcoin Core, there are two settings, -dbcache and -maxmempool, defaulting to 450 and 300, respectively.

    The mempool can only occupy as much as is configured through -maxmempool.

    The UTXO set cache can occupy as much as is configured through -dbcache plus the amount of configured mempool space that is currently unused. The memory usage is however much higher than the equivalent representation on disk - loading the entire UTXO set would require 6-7 GiB at the time of speaking.

    The in-memory representations are always larger. On disk they're just packed sequences of bytes. In memory, there are indexes and pointers, and memory allocation overhead - all to speed up access. The blowup factor for UTXO data is larger than for memory.

    Since 0.14, the mempool is also saved to disk at shutdown (but not continuously).

    So far, there is no prioritization done on the UTXO cache. We just keep all accessed entries around, and when it grows too large, all the modified entries are written to disk. One (very) significant optimization is that when a UTXO is created and then spent, without being written to disk in between, we just remove it from memory.

    shareimprove this answer
    edited Oct 12 at 18:07
    answered Oct 12 at 17:21


    Pieter Wuille
    34.7k259118

    Is the memory usage of the mempool same as the representation on disk? If not, is it logged somewhere? Could you please tell me why does the UTXO set take much more than the representation on disk? And is there a priority to which outputs are kept in RAM? – amanusk Oct 12 at 17:34

    I've updated the answer to address these questions. – Pieter Wuille Oct 12 at 23:29

    Thanks. So last question. If I use -dbcache=16384 will 16GB of my RAM be used regardless of the actual size the UTXO set will take up in RAM? – amanusk Oct 14 at 17:19

    No, only as much as can be used. – Pieter Wuille Oct 14 at 17:38
  • ?
    후구오 2017.12.27 13:46
    @신피질
    그런데 PC랑 다르게 라즈베리파이에서 bitcoin-cli gettxoutsetinfo를 실행해보니까 엄청 오래 돌아가다가 결국 아래같이 에러를 뱉네요 ㅠ
    error: couldn't connect to server: unknown (code -1)
    (make sure server is running and you are connecting to the correct RPC port)

    3GiB의 SWAP을 추가하고 나서도 문제는 똑같은 걸 보니 SWAP 문제는 아닌 것 같긴 합니다. 이런 부분 빼고 getnetworkinfo getblockinfo는 다 잘 돌아가는 걸 보니 full node가 사실 안돌아가고 있고 그런 건
    아닌 것 같구요, 뭔가 타임아웃이 일어나서 안되는 것 같아요.

    우분투에 스왑파일 잡는 건 사실 인터넷에 너무 내용이 많아서 여기에 적는 게 좀 부끄럽긴 한데 일단 다른 분들 참고하시라고 SWAP을 추가하는 방법을 게시글에 추가해 놓겠습니다. ㅎㅎ 도움 감사합니다.
  • ?
    SSang 2017.12.27 12:09
    라즈베리파이를 5대 정도 운용중인데
    용도가 있는지라 참여를 못하는게 아쉽네요
    해당 용도로의 사용이 끝나면 한번 해봐야겠습니다.
  • ?
    하늘문 2017.12.27 12:40
    땡글 다운 좋은 글이군요
  • profile
    둔산 2017.12.27 13:19
    좋은 내용 감사합니다.
  • profile
    rhdwjd 2017.12.27 14:38
    좋은정보 감사합니다
  • ?
    중앙지검 2017.12.27 14:54
    이런것도있군요. 배울것들이 참 많네요. 올려주셔서 감사합니다
  • ?
    tstech 2017.12.27 15:28
    흠 사무실에 남는 나스서버에 구동해 봐야 겠군요...
  • ?
    마스터훈 2017.12.27 18:43
    풀 노드를 유지하면 이득을 보는 부분은 없죠??
  • ?
    후구오 2017.12.27 22:47
    @마스터훈
    직접적으로는 그렇습니다.
    마스터노드를 갖고 있는 대시와 다르게 비트코인의 경우 노드 운영자에게 별도로 보상하는 것은 없습니다. 하지만, 비트코인 네트워크의 분산화가 잘 되면 그렇지 않은 경우보다 비트코인은 건강한 암호화폐가 될 것이고 그렇게 된다면 비트코인의 가치 또한 증가하지 않을까 싶습니다 ㅎㅎ
  • ?
    마스터훈 2017.12.27 22:49
    @후구오
    답변 감사합니다.
    노드유지하면 보상도 주면 참 좋겠는데요,, 아쉽네요
  • profile
    엑스 2017.12.27 22:21
    윈도우의 경우는 bitcoin core 깔고 실행시켜 놓으면 동일한 효과인가요?
  • ?
    후구오 2017.12.27 22:44
    @엑스
    네 맞습니다^^
  • ?
    마스터훈 2017.12.27 23:04
    저도 4TB 하드에 비트코어 설치하고 블럭 받고 있네요^^
    조금이라도 도움이 된다면 저도 동참하려 합니다^^

채굴

코인 채굴에 관한 게시판입니다.

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
공지 채굴 새로 들어오시는분들! - 땡글 이용시 지켜지면 좋은 것 47 240 57913
김광부
2017.06.25
공지 [땡글운영위] 이사진 구성원 변경 공지 7 file 13 727
땡글운영위
2019.09.03
공지 로그인이 안되시는 분은 문의해주시기 바랍니다. 3 4 1563
땡글개발자
2019.08.21
공지 개인 정보 유출에 따른 사과문 54 file 8 3387
땡글개발자
2019.08.21
26934 채굴 1080ti 가성비 질문..조텍 GTX1080 Ti DDR5X 11G BLOWER vs 1080ti 지천명       안녕하세요 선배님들   뭐가 더 나을라나요...   조텍블로워제품이 가격이 좀 쌈니다만...ㅠ                 ------------------------------------- 꼬리말 * 게시글 내용 삭제시 레벨 강등 * 질문은 각 주제... 2 2076
한김에끝까지
2017.12.27
26933 채굴 채굴장에서 셋팅 작업할때           거치대 없이 한손에 들만한 모니터 + 키보드 + 마우스 셋트 혹시 쓰시는분 계실까요?   이리저리 바꿔가며 연결하기가 기존건 너무 어렵네요. 고견 부탁드립니다.             ---------------------------... 11 1153
구리구링
2017.12.27
26932 채굴 [초보 질문]1060 4way 해쉬 질문 드립니다. 안녕하세요? 이제야 채굴에 입문해보려고 4웨이 채굴기 처음으로 조립하여 마이닝풀에서 비트골드 돌려보고 있구요 프로그램은 Zec Miner 0.3.4b쓰고 있습니다.   마이너를 작동시키면  GPU 0: 280 Sol/s GPU1: 299So... 3 681
Z제로Zero
2017.12.27
26931 채굴 메모리가 삼성인지 엘피다인지 어디보면 아나요? 제목처럼 질문 드립니다.   감사합니다.       ------------------------------------- 꼬리말 * 게시글 내용 삭제시 레벨 강등 * 질문은 각 주제별 게시판에.   비트코인 암호화화폐 커뮤니티 땡글~ 땡글~ ---------... 3 624
3ervant
2017.12.27
26930 채굴 rx580 4G 그래픽         rx580 4G  삼성메모리 그래픽 6way 설정해볼려고 합니다   파워는 [마이크로닉스] CASLON BTC 700W 87+ for Mining 벌크 (ATX/700W) 쓸려고 하는데 괜찮을지  궁금하네요   아님  추천 해주시는거 있으시면 ... 5 1066
이두리움
2017.12.27
26929 채굴 전기문의드립니다. 한앵글에 1080TI 6WAY로 9SET를 구성한다고 했을때 그 앵글에 몇K정도의 전력을 따와야될까요?   5K라면 모자를거같고 10K라면 너무남지않나? 막연하게 이정도만 생각해봤습니다.   미리 감사드리고 성굴하세요^^;;; ... 2 644
땡퍼
2017.12.27
26928 채굴 처음인데 1080ti 12way 조립하고 싶습니다 . 조언바랍니다.   가상화폐 입문자입니다..   기존 pc 로 돌리다가...  1080ti 12way 를 이번에 제작할려고 합니다..     1. 1080ti 회사 추전 부탁드립니다.  -- 일단은 그냥 gigabyte 난 msi 제품 생각 중인데 ..      가격대비 성... 6 1656
무한비행
2017.12.27
26927 채굴 Zcoin 해시값 원래 이런가요. 채굴 프로그램에서는 8M 나오는데. 마풀허 대시보드에서는 4M도 안되게 나오네요. 설정값이 잘못된건가요?    아님 원래 그런건가요?                       ------------------------------------- 꼬리말 * 게시글 ... 5 961
영수시현
2017.12.27
26926 채굴 원격프로그램 검은화면 해결법   안녕하세요.   얼마전 윈도우 업데이트 이후 채굴기에 내장그래픽 사용시 원격프로그램에서나 아래의 사진처럼 모니터 연결시 검은화면 때문에 제대로 안되는 경우가 있습니다. 아마 윈도우 업데이트에 내장그래픽 ... 15 file 17 12427
사악천
2017.12.27
26925 채굴 rx580 8g 6way 파워구성 어케 하시고들 있나요? 700w 듀얼이면 무난할까요?   -10%~15% 줄 생각입니다.                       ------------------------------------- 꼬리말 * 게시글 내용 삭제시 레벨 강등 * 질문은 각 주제별 게시판에.   비트코인 암호화화폐 ... 6 1231
vkillmor
2017.12.27
26924 채굴 스텔라(stellar) 채굴을 하고싶은데..어떻게 하나요? 안녕하세요   처음 채굴을 해보려고 합니다.   그래서 스텔라를 해보고 싶은데..아무리 구글링 해도 정보가 없네요..ㅠㅠ   정보좀 부탁드리겠습니다.     감사합니다.         ------------------------------------... 1 2080
specialx
2017.12.27
26923 채굴 1070ti 3way 파워 선택 고민입니다..   인텔 i5 8세대, 아수스 로그스트릭 z370, 조텍 지포스 1070ti x 2 or 3 달려고 합니다.   커세어 rm1 1000 80plus 골드로 가면 될까요? 가격이 한 30만원조금 안되네요..                 ------------------------... 2 972
나무를스치는바람
2017.12.27
26922 채굴 채굴기 셋팅에 사용하는 모니터     10인치 모니터입니다. (사진은 일렉채굴중인 3웨이 채굴기입니다) 해상도는 16:9가 아닌 16:10 비율의 1280*800입니다.   이 모니터의 최대 장점이 5v 2a로 동작한다는 것인데요... 보조배터리를 이용하면 손쉽... 13 file 1 2412
SSang
2017.12.27
26921 채굴 위장용 케이스 이거 어떨까요?   Micronix Frontier H350  http://item.gmarket.co.kr/Item?goodscode=983492433   이곳 저곳 심혈을 기울여 살펴봤는데 이만한 케이스가 없어보이네요.   별도 라이저카드 꽂는 부분이 채굴용으로 쓰는 라이저카드 ... 12 1567
루울루
2017.12.27
26920 채굴 1070 vs 1070ti 채굴성능 어느놈이 좋을런지요....(전성비무시)       1070ti 47만에 사게되서 6웨이 구성하려는데 1070 과 1070ti 중에 어느놈이 나은지요?     사무실전기써서 전성비는 중요치 않구요...              ------------------------------------- 꼬리말 * 게시글 내... 9 2322
붉은고추
2017.12.27
26919 채굴 크롬원격 쓰시는분들 많으시죠? 검은화면 질문입니다.       안녕하세요 항상 팀뷰어만 쓰다 크롬원격으로 바꿧습니다. 문제는 재부팅시에 화면이 검은화면으로 되어버리네요. 저만그런가요? 검은화면으로떠서 항상 재부팅해버리면 채굴장을 나가야하는 상황입니다. 문제... 8 3017
의자왕
2017.12.27
26918 채굴 채굴기 제작중 듀얼 파워 연결질문 입니다... 고수님들 듀얼파워 연결시 아래 그림이 맞나요? 4p커넥터는 연결하지 말라는 분들도 있어서 파워 탈까 고민되네요... 조언 부탁드립니다. 2 file 834
khepera
2017.12.27
26917 채굴 결국 팀뷰 결재했습니다.                 뭐 찾아보면 무료 도 있고 더 싼거 도 있고 할거같은댕   폰으로 원격하다가 도저히 참을수 없어서 결재했습니다.    웃긴게 모바일은 추가 40만원 더 붙어서 금액이 저렇내요 ㅎㅎ       ---------... 18 file 1 2270
불쭈꾸미
2017.12.27
26916 채굴 채굴장 위탁 선택 팁이 있을까요? 그리고 1080ti 6way 정도면 한달 위탁비용 얼마정도 생각하면 될까요? 제목이 곧 내용 입니다 1080ti 6way 전기세 관리비 포함 부가세까지 해서 한달에 14만원 받는다던데 괜찮은걸까요? 8 1657
뚱이89
2017.12.27
26915 채굴 ZEC 채굴량도 달나라로 가는군요. ㅋ 시세 오른거에 비하자면 채굴량이 좀 많이 나온다는 느낌이 있었는데   이번주 아주그냥 팍팍 떨어지는군요 ㅋㅋㅋ     5 1917
아시아광부
2017.12.27
목록
Board Pagination Prev 1 ... 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 ... 2642 Next
/ 2642

개인 정보 유출에 따른 안내

개인정보 유출에 따른 사과문

https://www.ddengle.com/board_free/11420106

8월20일 땡글 해킹사고 경과 보고

https://www.ddengle.com/board_free/11420345

로그인이 안되시는 분

https://www.ddengle.com/board_free/11420465
8월18일~20일 해커에 의해 땡글 사이트에서 땡글 회원님들의 아이디 및 비밀번호가 유출되고 있음을 발견하였습니다.
더이상 피해가 발생하지 않도록 조치된 상태이나 일부 사용자의 개인정보가 유출되었으며, 해커는 추가적으로 사용자 정보를 불법적으로 공개하겠다고 합니다.
  • 최근에 접속한 사용자의 경우 ID와 비번이 유출되었을 가능성이 높습니다. 최대 비번을 꼭 바꿔주시기 바랍니다. (특히 8월부터 8월21일까지)
  • 최근에 접속하지 않은 사용자의 경우에도 해커는 사용자 정보를 입수하여 그 일부 정보를 불법적으로 공개하였습니다.
  • 해커에 의한 사용자 도용을 방지하고자, 최근 수개월간 비번 변경을 하지 않은 약 1만8천명의 사용자를 이용정지시켰습니다.
이 글을 보시는 땡글 유저분은 자신이 계정이 정지된 상태라면 [email protected] 혹은 [email protected] 으로 메일주셔서 자신임을 간단히 인증하여 다시 계정을 활성화시키는 해킹 안내메일을 받으시기 바라며, 혹은 기존 계정 삭제 요청을 해주시기 바랍니다.
Close