Raspberry Pi에서 Ethereum 노드를 실행하는 방법

한동안 자체 노드를 실행하고 싶었습니다. 하나를 설정하겠습니다.

소개

강력한 성능을 제공하는 포켓 크기의 컴퓨터입니다. Raspberry Pi가 IoT 및 블록 체인 기반 구현에 치명적인 조합 인 이유를 알아보세요.

이 주제에 대해 더 자세히 알아보기 전에 이더 리움에 대해 간단히 설명하겠습니다.

이더 리움은 스마트 계약을 실행하는 분산 형 플랫폼입니다.

스마트 계약은 다운 타임, 검열, 사기 또는 제 3 자 간섭의 가능성없이 프로그래밍 된대로 정확하게 실행되는 애플리케이션입니다.

Ethereum은 핵심에 블록 체인 기술을 사용합니다. 간단히 말해서, Ethereum은 여러 컴퓨터 또는 노드의 처리 능력과 스토리지 리소스에 의존하여 분산 된 방식으로 명령을 처리하도록 설계된 글로벌 네트워크입니다.

노드를 실행함으로써 우리는 네트워크를 분산화하고 동료들간에 신뢰할 수있게 유지하는 데 기여합니다. Ethereum 네트워크에 직접 참여하고 최첨단 기술의 요령을 얻는 방법입니다. 게다가 재미 있습니다!

왜 Raspberry Pi에서 Ethereum 노드를 실행해야합니까?

Raspberry Pi는 중지하기로 결정할 때까지 자체적으로 실행될 수 있으므로 Ethereum 노드를 실행하는 데 적합합니다.

물론, 컴퓨터에서 노드를 실행할 수 있지만 전용 컴퓨팅 및 저장 비용이 있습니다. 차라리 전용 하드웨어에서 노드를 실행하고 랩톱에서 영화를보고 싶습니다. 그리고 Raspberry Pi는 실수로 태우는 경우를 대비하여 lappy보다 훨씬 저렴합니다!

클라우드 서비스의 가상 머신 인스턴스에서 이더 리움 노드를 실행할 수도 있지만 이로 인해 엄청난 비용이 발생합니다. 주머니에 구멍을 뚫고 싶지 않겠죠?

또한 Raspberry Pi를 사용하여 실험을위한 간단한 샌드 박스를 만들 수 있습니다. 이는 또한 임베디드 플랫폼과 함께 블록 체인 기술을 배포하고 IoT와 추가로 통합 할 가능성을 보여줍니다.

Raspberry Pi에서 Ethereum 노드를 어떻게 실행합니까?

이제 장비를 설정하려면 몇 가지 도구가 필요합니다. 몇 가지 전제 조건을 살펴 보겠습니다.

우리는 Raspbian OS가 이미 Raspberry Pi에 설치되어 있다고 가정합니다. 그렇지 않더라도 걱정하지 마세요. 아래 링크를 따라 작업을 완료하세요. :

https://www.raspberrypi.org/downloads/raspbian/

OS의 기본 설정이 완료되면 바로 사용할 수 있습니다. 다음 단계를 진행해 보겠습니다.

1 단계 : 패키지를 최신 버전으로 업데이트하기 시작

명령 :

2 단계 : Ethereum 클라이언트 (일명 Geth (Go Ethereum))의 메모리 확보

메모리 집약적 인 작업을 위해 RAM을 확보하는 좋은 방법은 GPU에 할당되는 양을 줄이는 것입니다. 또한 그래픽 데스크톱이 필요하지 않은 경우 단순히 명령 줄로 부팅하도록 시스템을 구성하십시오.

1. 명령 줄로 부팅하는 경우 :

2. GPU에 할당 된 메모리를 줄이려면 :

3. 마지막으로 재부팅합니다.

더 나아가 다음 단계에서 패키지 종속성을 설치합니다.

3 단계 : Geth를 설치하기 전에 Golang을 설치해야합니다. 다음 명령을 사용하여 수행 할 수 있습니다.

설치되는 Golang 버전은 오래된 버전이므로 Golang 버전 관리자 ‘g’를 사용하여 1.10 이상으로 업그레이드해야합니다.

링크 : https://github.com/stefanmaric/g

명령 :

4 단계 : Geth 설치

소스에서 빌드하면 많은 사용자 정의 옵션이 허용되므로 바이너리를 사용하는 대신 소스에서 Geth를 빌드하도록 선택할 것입니다.

예를 들어 바이너리에서 제공되지 않을 수있는 일부 기능을 추가하고 적절한 설치를위한 하드웨어 (Raspberry Pi) 특정 정보를 제공하고 원하는 위치에 설치할 수 있습니다.

또한 보안 패치 든 새 기능이든 최신 버전과 최신 업데이트를 설치할 수 있습니다.

명령 :

5 단계 : 계정 만들기

새로운 암호화 키 세트를 생성하고 비밀번호로 개인 키를 보호합니다.

이 계정을 사용하여 암호 화폐를 채굴하고 의미있게 거래하는 경우 개인 키에 액세스하지 못하도록 키를 백업해야합니다.

6 단계 : 라이트 모드에서 이더 리움 메인 넷 동기화

인수없이 Geth를 실행하면 노드를 시작하고 전체 공용 메인 넷 블록 체인을 동기화하려고 시도합니다. 크기가 50GB 이상이고 지속적으로 증가하는 임베디드 컴퓨터에서는 좋은 생각이 아닐 수 있습니다.

대신 빛 동기화 모드에서 노드를 시작합니다. 이것은 표시되는 블록 헤더와 주문형 블록 체인의 다른 부분 만 가져옵니다.

실행을 중지하려면 Ctrl + C를 누릅니다.

백그라운드에서 실행하려면 nohup 을 사용하면됩니다.

백그라운드에서 동기화 프로세스를 실행합니다. 로그를 보려면 코드 편집기 (예 : Vim 또는 Nano)를 사용하여 nohup.out 파일을 엽니 다.

로그는 다음과 같이 표시됩니다.


7 단계 : 자바 스크립트 콘솔

Geth 자바 스크립트 콘솔은 Geth-attach 명령을 통해 사용할 수 있습니다.

최근 동기화 된 블록을 확인하려면 :

출력 :

현재 계정을 나열하려면 :

동료를 나열하려면 :

출력 :

8 단계 : RPC 설정

자바 스크립트 콘솔을 열고 다음 명령을 실행합니다.

출력 :


구문 : admin.startRPC (‘IP 주소’, PORT 번호)

RPC가 해당 IP 및 PORT에서 실행되기 시작합니다.

이제 Postman을 사용하여 간단한 API 호출을 수행하거나 원하는 프로그래밍 언어로 REST API 호출을 수행하고 Ethereum Management API를 통해 데이터를 가져올 수 있습니다.

단계 : 9 이더 리움 블록 체인에서 거래 보내기

음,이 단계는 정말 재미 있습니다. 그러나 그것은 우리에게 실제 에테르를 요구할 것입니다. (최고의 것은 결코 무료가 아닙니다!)

거래는 eth_sendTransaction 과 동일한 인수이며 보낸 사람 주소를 포함합니다. passphrase tx.from 에 속한 개인 키를 해독하는 데 사용됩니다.

암호 만 개인 키를 복호화하는 경우에만 트랜잭션이 확인되고 사용자에 로그인하여 트랜잭션을 네트워크로 보냅니다. 계정은 노드에서 전역 적으로 잠금 해제되지 않으며 다른 RPC 호출에서 사용할 수 없습니다.

콘솔 : personal.sendTransaction (tx, passphrase)

RPC : {“method”:“personal_sendTransaction”,“params”: [tx, string]}

자바 스크립트 콘솔 :

Raspberry Pi를 사용하여 Ethereum 블록 체인을 더 많이 사용하려면 go-Ethereum Management API를 참조하십시오.

이것이이 섹션의 전부입니다. 계속 혁신하세요!