이더 리움 블록 체인 모니터링

블록 체인에 대해 더 배우기위한 여정의 일환으로, 저는 블록 체인에서 일어나는 일을 시각화하고 싶은 욕구가 커지고 있음을 발견했습니다. 나는 터미널에서 아주 편안합니다. 그러나 무언가를 해석하는 데 항상 시각적으로 가장 효율적인 방법은 아닙니다. 멋진 UI에서 일어나는 일을 보는 것은 매우 흥미로울 수 있습니다!

단계는 다음과 같습니다.

서문

이 게시물은 블록 체인에 대한 다양한 통계 및 정보를 시각화하기 위해 함께 작동하는 두 가지 도구에 대해 설명합니다.

eth-net-intelligence-api

이 서비스는 eth-netstats 와 함께 실행되는 n d 서비스입니다. 이 도구는 node 앱을 구성하는 데 사용됩니다. 이더 리움 블록 체인에서 노드 모니터링을위한 모든 구성 및 설정은이 API에서 수행됩니다.

eth-netstats

블록 체인에 대한 몇 가지 기술적 구성 요소와 정보를 시각화하는 UI를 제공하는 프런트 엔드 부분입니다. 여기에서이 대시 보드를 사용하여 퍼블릭 이더 리움 블록 체인을 볼 수 있습니다. 실제로 자신의 이더 리움 노드를이 도구에 연결하고 퍼블릭 블록 체인에 대한 업데이트를 제공하는 다른 노드에 기여할 수도 있습니다.

1. 설정

모니터링 작업을 시작하기 전에 비공개 네트워크를 설정하기위한 몇 가지 조치를 취해야합니다. 이번 기회에 5 개의 노드를 포함하는 사설 네트워크를 만드십시오. 이 작업을 수행하는 방법에 익숙하지 않은 경우 이전 블로그 A Journey into Blockchain : Private Network with Ethereum에서 단계별 가이드를 참조하십시오. 폴더 구조는 다음과 같습니다.

2. 도구 다운로드 및 설치

이제 비공개 네트워크를 모니터링하는 데 사용할 도구를 다운로드하거나 저장소를 복제 할 준비가되었습니다. 이러한 저장소는 쉽게 액세스 할 수있는 장소 (즉, 노드 디렉토리 중 하나가 아님)에 보관해야합니다.

복제 eth-netstats 다음 명령을 실행하십시오.

git clone https://github.com/cubedro/eth-netstats.git

이제 설치 eth-netstats 가 필요합니다. eth-netstats 디렉토리에 있는지 확인한 후 다음 명령을 실행하십시오.

복제 eth-net-intelligence-api 를 실행하려면 다음 명령어를 실행하세요.

git clone https://github.com/cubedro/eth-net-intelligence-api.git

이 도구에 대한 특정 설치 지침은 없습니다. 그러나 모든 것이 최신 상태인지 확인하십시오. 나는 몇 가지 빠른 업데이트가 트릭을 수행했다는 것을 발견하기 위해서만 제대로 작동하도록 몇 가지 문제를 겪었습니다. 다음 섹션에서 노드 앱을 구성하겠습니다.

3. 노드 모니터링 앱 구성

이제 이전에 설정 한 사설 네트워크를 모니터링하도록 노드 모니터링 앱을 구성 할 준비가되었습니다. 이렇게하려면 eth-net-intelligence-api 디렉토리에있는 app.json 파일을 수정해야합니다.

이 파일에서 변경해야 할 구성이 거의 없습니다.

4. 노드 앱 시작

이제 노드 앱이 구성되었으므로 시작할 수 있습니다. 백엔드 도구 eth-net-intelligence-api 는 PM2라는 노드 생산 프로세스 관리자를 사용합니다. 전부는 아니지만 백엔드 노드 앱과 상호 작용하는 데 사용되는 대부분의 명령은 pm2 로 시작합니다.

먼저, cd eth-net-intelligence-api 디렉터리로 이동합니다. 이 디렉토리에서 다음 명령을 실행하십시오.

백엔드가 이제 실행 중입니다. 명령 pm2 show & lt; id & gt; , pm2 logs pm2 list pm2 . 자세한 내용은 pm2 --help 를 사용하세요.

5. 프런트 엔드 시작

이제 백엔드 노드 앱이 실행 중이므로 프런트 엔드를 시작할 수 있습니다. 별도의 터미널 창에서 cd eth-netstats 디렉터리로 이동합니다. WS_SERVER WS_SECRET 구성은 이전에 백엔드 앱을 실행하는 데 사용 된 app.json 파일에서 설정되었습니다. 따라서 비밀은 다음과 같이 프런트 엔드로 전달되어야합니다.

이제 웹 브라우저에서 http : // localhost : 3000을 방문하십시오. 모니터링 대시 보드에 노드가 나열되지 않음을 알 수 있습니다. 현재 실행중인 geth 인스턴스가 없기 때문입니다. 세 번째 터미널 창에서 geth 인스턴스를 시작합니다. 이 작업을 수행하는 방법에 익숙하지 않은 경우 이전 블로그 섹션 5를 참조하십시오. 힌트, 명령은 다음과 같습니다.

geth 인스턴스가 시작된 후 Ethereum 네트워크 상태 웹 페이지를 새로 고칩니다. 이제 노드가 대시 보드에 나열됩니다.

6. 대시 보드 살펴보기

이제 모든 것이 설정되고 모니터링이 실행되었으므로 재미가 시작됩니다. 먼저 처음에 생성 한 나머지 비공개 네트워크를 추가 하겠습니다. 기억하면 총 5 개의 노드가 있습니다. node01 이 계속 실행중인 상태에서 node02 node03 을 시작합니다. admin.addPeer (& lt; node01 enode address & gt;) 명령을 사용하여이 2 개의 노드를 node01 에 연결합니다. 대시 보드를 새로 고침하면 node01 에 대해 2 개의 피어가 표시됩니다.

이제 대시 보드에 node04 node05 를 추가하겠습니다. 이렇게하려면 새 구성 파일 몇 개를 생성 해야합니다. app.json 을 복사하고 2 개의 새 파일 ( app04.json app05.json )을 만듭니다. 원하는대로 이름을 지정할 수 있지만 혼동을 피하기 위해 추적 할 노드와 번호를 일치시킵니다. 4 개의 구성 필드 만 변경하면됩니다.

다음으로 2 개의 새로운 노드 앱 시작 :

node04 node05 에 대한 geth 인스턴스를 시작하고 대시 보드를 새로 고칩니다.

이제 이전에 설정되었던 전체 사설 네트워크가 대시 보드에서 모니터링되고 있습니다! 그러나 실제로 아무 일도 일어나지 않습니다. 실제로 채굴중인 노드가 없기 때문입니다. node02 에서 광부를 시작하십시오. node02 node01 에 연결 되었음에도 불구하고 마이닝으로 표시되지 않습니다. 이는 백엔드 노드 앱인 app.json node02 가 아닌 node01 의 포트에 연결되기 때문입니다. 그러나 node01 node02 에서 채굴중인 블록으로 업데이트됩니다. 또한 node04 node05 가 최신 블록으로 업데이트되지 않음을 알 수 있습니다. node02 node03 node01 에 연결되었지만 node04 node05 는 연결되지 않았으며이 시점에서 독립적으로 유지됩니다.

사설 네트워크를 완성 하려면 node04 node01 에 연결하고 node05 에서 node04 로. 네트워크 연결 다이어그램은 다음과 같습니다.

이러한 최종 노드 연결을 수행하면 모든 노드가 동일한 마지막 블록을 표시하도록 업데이트됩니다. 나머지 네트워크와 동기화하는 데 node05 가 조금 더 오래 걸린다는 것을 알 수 있습니다. 이는 node05 와 마이닝 노드 node02 사이에 3 도의 분리가 있기 때문입니다.

이 대시 보드에는 여러 가지 통계, 그래프 및 기타 실적 측정 항목이 캡처되어 있음을 알 수 있습니다. 대시 보드의 모든 것이 무엇을 의미하는지 알아 보려면 다음 동영상을 시청하세요.

결론

블록 체인을 실험하는 데 상당한 시간을 투자 한 후 저는 제가 만들고있는 네트워크를 더 잘 모니터링 할 수있는 방법을 찾아야했습니다. 이더 리움 네트워크 통계는 이더 리움 블록 체인이 어떻게 작동하는지에 대한 느낌을 얻을 수있는 좋은 방법을 제공합니다.

자세히 알아보기…

Twitter @JHenningsgaard에서 나를 팔로우하세요.