Ethereum 2.0 Pyrmont 테스트넷 서약에 참여하도록 안내합니다.

소스 |
알림: 이 가이드를 따라 Eth2 메인넷에 연결하지 마십시오. 메인넷 가이드는 "이더리움 2.0 메인넷 서약 교육(Ubuntu/Teku)"을 참조하십시오.
이 글은 멀티클라이언트 테스트넷인 Pyrmont를 통해 이더리움 2.0 메인넷에서 담보하는 방법에 대해 자세히 설명합니다. 주로 다음 기술을 기반으로 합니다.
우분투 v20.04(LTS) x64 서버이더리움 노드로 이동()
코드 브랜치Pyrmont
공식 다중 클라이언트 테스트넷 공개 네트워크,MetaMask
Prometheus브라우저 플러그인 암호화 지갑
Grafana매개변수
대시 보드
이 가이드에는 다음 지침이 포함되어 있습니다.
새로 실행 중인 Ubuntu 서버 인스턴스를 연결하고 안전하게 구성
Ethereum 1.0 노드 구성 및 서비스로 실행
Pyrmont 검증자 계정 키 생성 및 자산 예치
Pyrmont 검사기 계정 키를 Teku 클라이언트로 가져오기
첫 번째 레벨 제목
상기시키다
상기시키다
이 가이드를 따라 Eth2 메인넷에 연결하지 마십시오. 메인넷별 가이드는 "이더리움 2.0 메인넷 스테이킹 튜토리얼(Ubuntu/Teku)"을 참고하세요.
첫 번째 레벨 제목
승인 및 면책 조항
이 자습서는 자료를 제공한 기여자 덕분에 인터넷의 다양한 자료를 참조합니다!ConsenSys Discord고마워하는EthStaker#teku 채널에서
디스코드에서 팀원들이 제공하는 도움과 리뷰.
첫 번째 레벨 제목
지원하다
지원하다
이 과정은 약간 까다로울 수 있습니다. 저 외에 도움을 받을 수 있는 두 가지 좋은 리소스가 있습니다.
Discord:https://discord.gg/7z8wzehjrJ
EthStaker 커뮤니티는 리소스가 풍부하고 매우 친숙한 Ethereum 2.0 스테이킹 커뮤니티입니다.첫 번째 레벨 제목
상태
상태
이 튜토리얼을 사용하려면 Ethereum, ETH, Staking, Testnet, Linux 및 MetaMask에 대한 배경 지식이 필요합니다.
시작하기 전에 이 자습서도 설치하고 실행해야 합니다.우분투 서버 v20.04(LTS) amd64
또는 로컬 컴퓨터, 네트워크 또는 클라우드(AWS, Digital Ocean, Microsoft Azure 등)에 설치되어 실행 중인 최신 Ubuntu 서버. 네트워크의 분산화를 개선하기 위해 로컬 컴퓨터를 사용하는 것이 좋습니다. 클라우드 공급자가 다운되면 이 공급자에서 호스팅하는 모든 노드가 오프라인 상태가 됩니다.MetaMask. 운영 체제(Mac, Windows, Linux 등)와 브라우저(Brave, Safari, FireFox 등)가 있는 컴퓨터.
첫 번째 레벨 제목
Raspberry Pi에서 이 튜토리얼을 테스트하지 않았습니다. 사용해 보고 싶다면 아래 나열된 소프트웨어를 ARM 버전으로 바꾸십시오. 작동이 보장되지 않습니다.
첫 번째 레벨 제목
필요하다
우분투 서버 사용 사례. v20.04(LTS) amd64 서버 VM을 사용했습니다.
하드웨어 요구 사항은 큰 주제입니다. 일반적으로: 비교적 새로운 CPU, 8GB RAM(16GB가 더 좋음), 최소 1TB 메모리가 있는 SSD, 안정적인 네트워크(충분히 빠른 다운로드 속도 및 월별 데이터 할당량), 이러한 성능은 서약 프로세스를 더 안전하고 원활하게 만듭니다. .
첫 번째 레벨 제목
개요

이 튜토리얼은 꽤 깁니다.다음 다이어그램은 스테이킹 단계를 간략하게 설명합니다.노란색으로 표시된 부분은 이 기사에서 다룰 부분입니다.
전체 프로세스는 다음과 같이 개념화할 수 있습니다.
Eth1 노드를 설정하고 Eth1 Göerli 테스트 네트워크의 데이터를 동기화합니다.
유효성 검사기 키를 생성하고 데이터를 예치합니다.
Teku 클라이언트 구성 및 Eth1 노드 데이터 동기화
지금 시작합시다!
첫 번째 레벨 제목
SSH 포트를 사용하여 Ubuntu 서버에 연결합니다. 기본적으로 루트 계정은 일반적으로 Ubuntu에서 비활성화되어 있지만 일부 클라우드 공급자는 루트 계정을 활성화할 수 있습니다. 루트로 로그인한 경우 관리자 권한으로 사용자 계정을 다시 만드는 것이 가장 좋습니다.위험。
위험
# adduser
참고: 루트로 로그인하지 않은 경우 1단계로 바로 건너뛸 수 있습니다.
비밀번호를 설정하고 기타 정보를 입력합니다.
# usermod -aG sudo
새 사용자를 sudo 그룹에 추가하여 관리 권한을 부여하십시오.사용자 이름을 사용할 때
로그인할 때 명령줄 앞에 sudo를 입력하여 수퍼유저 권한으로 작업을 수행할 수 있습니다.선택 사항: 루트 계정을 사용하는 경우SSH 키
# rsync --archive --chown=: ~/.ssh /home/
Ubuntu 인스턴스에 연결하려면 루트 계정의 SSH 키 데이터를 사용하여 새 계정에 연결해야 합니다.Ubuntu 서버에 로그인합니다.
첫 번째 레벨 제목
시스템이 최신 소프트웨어 및 보안 설정으로 업데이트되었는지 확인하십시오.
$ sudo apt update && sudo apt upgrade$ sudo apt dist-upgrade && sudo apt autoremove
$ sudo reboot
첫 번째 레벨 제목
2단계: 서버 보안
보안은 매우 중요합니다. 하지만 이 글은 보안을 위한 가이드가 아니기 때문에 일부 기본 설정만 나열했습니다.
방화벽 구성Ubuntu 20.04 서버는 기본값을 사용할 수 있습니다.UFW 방화벽
서버에 대한 트래픽을 제한하지만 먼저 SSH, Go Ethereum, Grafana, Teku의 인바운드 트래픽을 허용하도록 설정합니다.
SSH 허용
SSH를 통해 서버에 연결할 수 있습니다. 다음으로 보안을 위해 기본 포트 22를 수정합니다(일반적인 공격 벡터이므로).
참고: 기본 SSH 포트를 수정하지 않기로 선택한 경우(권장하지 않음) 작업을 추가해야 합니다. 기본 SSH 포트 허용 *$ sudo ufw allow 22/tcp* , 그런 다음 "이동"을 허용하는 단계로 건너뜁니다. 이더 리움".
$ sudo ss -tulpn | grep ':'
1024 - 49151 사이의 포트 번호를 선택하고 다음 명령을 실행하여 사용하지 않는 포트 번호를 검색합니다. 빨간색(사용됨)이면 다른 포트를 선택하십시오. 예: sudo ss -tulpn | grep ':6673'허용하도록 방화벽 업데이트
$ sudo ufw allow /tcp
인바운드 트래픽. SSH에는 TCP 프로토콜이 필요합니다. 예: sudo ufw allow 6673/tcp
$ sudo nano /etc/ssh/sshd_config
다음으로 기본 SSH 포트를 수정합니다.기본 포트 번호 Port 22 또는 Port 22를 찾은 다음 자신의 포트 번호를 수정하십시오.

. #(있는 경우)을 제거합니다. 아래 스크린샷을 참조하십시오. 문서는 아래 표시된 것과 유사해야 합니다(포트 번호가 다르다는 점 제외). 저장 및 종료.
$ sudo systemctl restart ssh
SSH 서비스를 다시 시작하십시오. 。
다음에 SSH를 통해 로그인할 때 포트 번호를 사용하십시오.
$ sudo ufw deny 22/tcp
옵션: 이미 포트 22/TCP에서 UFW를 사용하고 있는 경우 해당 포트에서 인바운드 트래픽을 거부하도록 방화벽을 업데이트하십시오. 새 SSH 포트를 사용하여 로그인한 후에 이 작업을 수행해야 합니다.
이더리움 이동 허용InfuraGo Ethereum 피어(포트 30303/TPC 및 30303/UDP)의 인바운드 요청을 허용합니다. (
) 관리형 Eth1 노드인 경우 이 단계를 건너뛸 수 있습니다.
$ sudo ufw allow 30303
참고: Ubuntu 서버를 로컬에서 호스팅하는 경우 포트 30303에서 인바운드 트래픽을 허용하도록 네트워크 라우터를 구성해야 합니다.
테쿠 허용Beacon Chain 노드(Consensys공급
기본 포트 9000/TCP 및 9000/UDP)가 작동합니다. .
$ sudo ufw allow 9000
참고: Ubuntu 서버를 로컬에서 호스팅하는 경우 포트 9000에서 인바운드 트래픽을 허용하도록 네트워크 라우팅 및 방화벽을 구성해야 합니다.
Grafana 허용
$ sudo ufw allow 3000/tcp
Grafana 웹 서버(포트 3000/TCP)에 대한 인바운드 요청을 허용합니다.
Prometheus 허용(선택 사항)
$ sudo ufw allow 9090/tcp
Prometheus 데이터 서비스에 직접 액세스하려는 경우 포트 9090/TCP를 열 수도 있습니다. Grafana만 사용하여 데이터를 보는 경우에는 필요하지 않습니다. 이 포트를 열지 않았습니다.
$ sudo ufw enable$ sudo ufw status numbered
디스플레이는 다음과 같아야 합니다.

첫 번째 레벨 제목
3단계: Go Ethereum 노드 설치 및 실행Infura비콘 체인이 연결될 Eth1.0 노드를 설치하고 구성합니다. 타사 서비스(예:
), 이 단계를 건너뛸 수 있습니다.
Go 이더리움 설치
$ sudo add-apt-repository -y ppa:ethereum/ethereum
Go Ethereum 클라이언트를 설치하려면 PPA(Personal Package Archives, 개인 설치 패키지 아카이브)를 사용하는 것이 좋습니다.
$ sudo apt update$ sudo apt install geth
패키지를 업데이트하고 최신 안정 버전을 설치하십시오.
Go Ethereum을 백그라운드 서비스로 실행
$ sudo useradd --no-create-home --shell /bin/false goeth
이 서비스를 실행하려면 계정을 생성해야 하며 이러한 유형의 계정으로는 서버에 로그인할 수 없습니다.
$ sudo mkdir -p /var/lib/goethereum
Eth1 노드 데이터를 저장할 Eth1 블록체인용 데이터 디렉토리를 생성합니다.
$ sudo chown -R goeth:goeth /var/lib/goethereum
디렉터리의 권한을 설정합니다. goeth 계정에는 데이터 디렉터리를 수정할 수 있는 권한이 필요합니다.
$ sudo nano /etc/systemd/system/geth.service
서비스 구성을 저장할 systemd 서비스 파일을 만듭니다. 이 구성 파일을 사용하여 geth 프로세스를 실행하도록 systemd에 지시합니다.
[Unit]Description=Ethereum go client
After=network.target
Wants=network.target[Service]
User=goeth
Group=goeth
Type=simple
Restart=always
RestartSec=5
ExecStart=geth --goerli --http --datadir /var/lib/goethereum[Install]
WantedBy=default.target
다음 서비스 구성을 복사하여 문서에 붙여넣습니다.http://localhost:8545)。
플래그 --goerli는 Göerli 테스트넷을 찾는 데 사용되고 플래그 --http는 HTTP 포트를 노출하는 데 사용됩니다(

아래 스크린샷을 참조하세요. 저장 및 종료.
$ sudo systemctl daemon-reload
위의 변경 사항을 표시하려면 systemd를 새로고침하세요.
$ sudo systemctl start geth$ sudo systemctl status geth
서비스를 시작하고 제대로 실행되고 있는지 확인하십시오.

디스플레이는 아래 스크린샷과 같아야 합니다."모든 작업을 올바르게 수행한 경우 녹색 글꼴로 "활성(실행 중)"이라고 표시됩니다.
. 표시되지 않으면 돌아가서 위의 단계를 반복하여 문제를 해결해야 합니다. 종료하려면 Q를 누르십시오.
$ sudo systemctl enable geth
geth 서비스가 시스템 재부팅 시 자동으로 시작되도록 허용합니다.
NOTE: Issuing Ctrl+C to quit out of journal doesn’t impact the service. Journal is simply a real-time view of the service logs.
Go Ethereum 노드가 동기화를 시작합니다. 저널 명령을 실행하여 진행 상황을 추적할 수 있습니다. 종료하려면 "CTRL+c"를 누르십시오.
$ sudo journalctl -fu geth.service
동기화할 피어를 찾는 데 시간이 오래 걸리는 경우(>10분) 일부 피어를 추가할 수 있습니다. 입장여기여기
$ sudo systemctl stop geth$ sudo nano /etc/systemd/system/geth.service
최신 매니페스트를 가져오려면 다음 명령을 실행하여 geth 서비스를 수정합니다.
ExecStart=geth --goerli --http --datadir /var/lib/goethereum --bootnodes "enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291@94.237.54.114:30313,enode://119f66b04772e8d2e9d352b81a15aa49d565590bfc9a80fe732706919f8ccd00a471cf8433e398c55c4862aadb4aadf3a010201483b87e8358951698aa0b6f07@13.250.50.139:30303"
--bootnodes 플래그를 추가하도록 ExecStart 줄을 수정합니다. 아래에 최신 피어를 쉼표로 구분하여 나열합니다.
$ sudo systemctl daemon-reload$ sudo systemctl start geth
$ sudo journalctl -fu geth.service
파일을 저장하고 종료합니다. 그런 다음 서비스를 다시 시작하고 시청하십시오.

비콘 체인을 실행하기 전에 노드가 동기화될 때까지 기다려야 합니다. 딸깍 하는 소리여기여기
최신 블록에 액세스합니다.

다음으로 검증인 입금 데이터를 준비하겠습니다. 동기화 상태를 확인하려면 언제든지 sudo journalctl -fu geth.service 명령을 실행하여 확인할 수 있습니다.
첫 번째 레벨 제목
4단계: 유효성 검사기 키 생성 및 데이터 입금
Eth2.0 Pyrmont 테스트넷에서 유효성 검사기 노드를 실행하려면 하나 이상의 유효성 검사기 계정을 등록해야 합니다.
참고: 이미 입금 데이터를 생성하고 약정 입금을 제출한 경우 이 단계를 건너뛸 수 있습니다. 다른 곳에서 생성한 경우 인증자 키를 이 서버에 복사해야 합니다.
등록 단계는 다음과 같습니다.
괴를리 ETH 받기
유효성 검사기 키를 생성합니다. 키는 유효성 검사기 계정을 나타냅니다.
각 유효성 검사기 계정에 32 Göerli ETH 입금
유효성 검사기 계정이 활성화될 때까지 기다립니다.
지금 시작합시다!
괴를리 ETH 받기
브라우저 플러그인 MetaMask가 설치된 컴퓨터를 사용하십시오.
MetaMask를 클릭하고 로그인하십시오.
상단의 드롭다운 메뉴를 클릭하고 Göerli 테스트 네트워크를 선택합니다.
계정 이름을 클릭하고 Göerli 테스트넷 지갑 주소를 복사합니다.authenticated faucet주소 사용ethstaker DiscordGöerli ETH 받기, 또는 다음을 통해。
봇 명령의 #request-goerli-eth 채널: !goerliEth
참고: 유효성 검사기는 32 ETH의 예치금이 필요합니다. 귀하의 MetaMask 지갑에는 각 유효성 검사기 클라이언트에 예치된 충분한 Göerli ETH가 있어야 합니다. 예를 들어, 10명의 유효성 검사기를 실행하려면 가스 요금을 충당하기 위해 320 Göerli ETH와 약간의 추가 자금(예: 1 Göerli ETH)이 필요합니다.
이동
이동여기여기

Deposit CLI 애플리케이션의 "최신 릴리스"를 받으십시오.""자산에서
$ cd ~$ sudo apt install curl
$ curl -LO https://github.com/ethereum/eth2.0-deposit-cli/releases/download/v1.1.0/eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz
이 링크를 Linux 버전에 복사하는 열 하나. 해당 링크를 사용하여 아래와 같이 다운로드합니다. 명령의 URL을 최신 버전의 다운로드 링크로 수정하십시오.
$ sudo tar xvf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz$ cd eth2deposit-cli-ed5a6d3-linux-amd64
응용 프로그램을 실행하여 예금 데이터 및 유효성 검사기 키를 생성합니다.
할 것이다할 것이다
$ sudo ./deposit new-mnemonic --num_validators --mnemonic_language=english --chain pyrmont
생성하려는 유효성 검사기 키의 수로 변경합니다. 예: --num_validators 5

지갑 비밀번호를 생성하라는 메시지가 표시됩니다. 이를 사용하여 유효성 검사기 키를 Teku 클라이언트의 유효성 검사기 지갑에 로드합니다. 안전한 곳에 백업하십시오.

시드 구문(니모닉)을 생성합니다. 다른 곳에 백업하십시오. 이것은 중요하며 인출 키를 생성하거나 유효성 검사기를 추가하는 데 필요합니다.

니모닉을 확인하면 유효성 검사기 키가 생성됩니다.
새로 생성된 검증인 키와 입금 데이터 파일은 특정 위치에 생성됩니다. 예: eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys. 표시하세요. 나중에 필요합니다.

폴더의 내용은 다음과 같습니다.secure FTP (SFTP)deposit_data-[timestamp].json 파일에는 검증인의 공개 키와 보증금에 대한 정보가 포함되어 있습니다. 이 문서는 다음 단계에서 입금 프로세스를 완료하는 데 사용됩니다. 우리는 서버에 있고 웹 브라우저가 없으므로
파일을 MetaMask를 실행하는 컴퓨터로 마이그레이션합니다. 계속하기 전에 이 단계를 완료해야 합니다.
keystore-m...json 문서에는 암호화된 서명 키가 포함되어 있습니다. 각 유효성 검사기 계정에는 keystore-m이 있습니다. 이는 Teku 클라이언트 유효성 검사기 지갑을 만드는 데 사용됩니다.
$ cd ~$ rm -rf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz
예금 데이터와 키 저장소 파일이 있으므로 이제 Teku를 설정할 차례입니다. Teku를 설정하기 전에 자산을 키에 예치(Göerli ETH를 예치하여 유효성 검사기를 활성화)해야 설정을 먼저 확인할 수 있습니다. 검증자 예치금이 활성화되었지만 시스템이 준비되지 않은 경우 속도 저하 페널티가 발생합니다.
첫 번째 레벨 제목
5단계: 장착 조건
Teku는 Java 언어를 기반으로 하므로 실행하려면 JRE(Java Runtime Environment)가 필요하고 컴파일하려면 JDK(Java Development Kit)가 필요합니다.
$ sudo apt install default-jre default-jdk$ java --version
$ javac --version
디스플레이는 다음과 같아야 합니다.
ethstaker@ETH-STAKER-001:~$ java --versionopenjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
ethstaker@ETH-STAKER-001:~$ javac --version
javac 11.0.9.1
첫 번째 레벨 제목
입장
입장여기여기

레이블 사용(이 경우 20.11.0-RC2)
$ cd ~$ git clone --b 20.11.0-RC2 https://github.com/Consensys/teku.git
$ cd teku
사용Gradle사용
$ sudo ./gradlew installDist
코드를 컴파일하기 위해빌드 시간은 약 3-6분 정도 소요됩니다. 음료를 마시고 수분을 보충할 시간입니다. 나도 읽을 수 있어。
모든 작업이 성공하면 계속 진행하고 작업이 실패하면 ConsenSys Discord의 #teku 채널에서 도움을 요청하세요.https://discord.gg/trQ378WCp4
첫 번째 레벨 제목
7단계: Teku 바이너리 복사
$ cd ~$ sudo cp -a teku/build/install/teku/. /usr/local/bin/teku
참고: *teku* 바이너리의 새 버전을 가져오거나 빌드할 때마다 이 작업을 수행해야 합니다. 이 자습서의 마지막 부록인 Teku 업데이트를 참조하십시오.
첫 번째 레벨 제목
8단계: 비콘 노드 및 유효성 검사기 클라이언트 구성
Teku 클라이언트를 서비스로 실행하므로 시스템이 재부팅되면 프로세스가 자동으로 다시 시작됩니다.
계정 및 디렉토리 설정
$ sudo useradd --no-create-home --shell /bin/false teku
비콘 노드와 검증자 노드 운영을 위한 계정을 생성합니다. 이 유형의 계정은 서버에 로그인하는 데 사용할 수 없습니다.
$ sudo mkdir -p /var/lib/teku$ sudo mkdir -p /etc/teku
Teku 클라이언트의 데이터 파일용 데이터 디렉터리와 Teku 구성 파일용 구성 디렉터리를 만듭니다.
$ sudo cp -a /$HOME/ /var/lib/teku
이렇게 하면 문서를 한 곳에서 중앙 집중화하고 keystore-m...json 문서를 이전에 만든 데이터 디렉터리에 복사할 수 있습니다.생성된 인증 키의 경로를 입력하십시오.
$ cd /var/lib/teku/validator_keys$ ls
$ sudo rm
, 예: eth2deposit-cli-ed5a6d3-linux-amd64/validator_keys. keystore-m 파일만 복사한다는 점은 주목할 가치가 있습니다. deposit_data 문서를 복사하지 마십시오. 복사했다면 다음 코드로 삭제하면 됩니다.

다음 결과를 얻어야 합니다(보유한 유효성 검사기 문서 수에 따라 다름).
유효성 검사기 암호 문서 만들기
Teku Client는 인증자가 서비스를 실행하고 자동으로 다시 시작하는 동안 각 인증자 계정에 액세스하기 위한 비밀번호 파일을 가지고 있어야 합니다.
$ ls /var/lib/teku/validator_keys
각 keystore_m*.json 파일에 대해 동일한 이름으로 암호 파일을 생성합니다.
$ sudo nano /var/lib/teku/validator_keys/.txt
존재하다존재하다

json 문서의 이름을 입력합니다. 끝에 .txt를 추가하는 것을 잊지 마십시오. txt 파일에서 암호 저장소의 암호(4단계에서 유효성 검사기 파일을 만들 때 제공한 암호)를 YourKeystorePasswordForThisValidator에 입력합니다. 저장하고 실행합니다. 각 *.json 파일에 대해 위의 단계를 반복합니다.

다음 결과가 표시되어야 합니다. 이 단계가 완료되었습니다.
참고: *deposit_data-\*.json* 파일이 없어야 합니다. 있으면 삭제하십시오. Teku 클라이언트는 해당 암호 파일이 있을 것으로 예상하기 때문에 페어링 오류가 발생합니다.
권한 설정
$ sudo chown -R teku:teku /var/lib/teku$ sudo chown -R teku:teku /etc/teku
$ ls -dl /var/lib/teku; ls -dl /etc/teku
디렉터리 권한을 설정합니다. teku 계정에는 번호 디렉터리를 수정할 수 있는 권한이 필요합니다. 디렉토리 권한이 올바르게 설정되었는지 확인하십시오.

다음과 같아야 합니다.
$ sudo chmod -R 700 /var/lib/teku/validator_keys$ sudo ls -lh /var/lib/teku/validator_keys
추가 보안 계층을 제공하고 우발적인 삭제를 방지하기 위해 인증자 키에 문서 권한을 적용합니다. (teku) 사용자에게 읽기/쓰기/실행 권한을 부여합니다. 문서 권한이 올바르게 설정되었는지 확인하십시오.

결과는 다음과 같아야 합니다.
이제 인증자 키와 암호를 설정했으므로 서비스를 구성할 차례입니다.
Teku 구성 파일 만들기
$ sudo nano /etc/teku/teku.yaml
Teku 클라이언트는 구성 파일을 통해 명령줄 옵션을 읽을 수 있습니다. 지금 만드세요.
data-base-path: "/var/lib/teku"network: "pyrmont"eth1-endpoint: "http://127.0.0.1:8545/"validator-keys: "/var/lib/teku/validator_keys:/var/lib/teku/validator_keys"validators-graffiti: ""p2p-port: 9000log-destination: CONSOLEmetrics-enabled: truemetrics-port: 8008rest-api-enabled: true
rest-api-docs-enabled: true
아래 코드를 문서에 붙여넣습니다.
flagdata-base-path는 서비스가 데이터를 저장하는 위치를 정의합니다.
validators-keys 플래그는 암호 파일에서 키 파일의 위치를 나타냅니다. 이렇게 하면 모두 같은 디렉토리에 있습니다.
존재하다존재하다"abcdefg12345"。
원하는 텍스트를 입력합니다. 예: 유효성 검사기-그래피티:
log-destination: CONSOLE 설정은 systemd를 사용할 때 권장됩니다.

아래 스크린샷을 참조하세요. 귀하의 문서는 이와 유사해야 합니다. 종료하고 저장합니다.
Teku 서비스 생성 및 구성
$ sudo nano /etc/systemd/system/teku.service
구성 서비스를 저장할 systemd 서비스 파일을 만듭니다.
[Unit]Description=Teku Client
Wants=network-online.target
After=network-online.target[Service]
Type=simple
User=teku
Group=teku
Restart=always
RestartSec=5
Environment="JAVA_OPTS=-Xmx2g"
ExecStart=/usr/local/bin/teku/bin/teku --config-file=/etc/teku/teku.yaml[Install]
WantedBy=multi-user.target
아래 코드를 복사하여 문서에 붙여넣기
Java(Teku에서 사용하는 프로그래밍 언어)는 실행할 때 많은 RAM을 차지하도록 설계되었습니다. flagEnvironment="JAVA_OPTS=-Xmx2g"는 힙 크기를 2GB로 제한하므로 Teku는 약 3–3.5GB의 사용 가능한 총 메모리로 실행됩니다.

아래 스크린샷을 참조하세요. 귀하의 문서는 이와 유사해야 합니다. 종료하고 저장합니다.
$ sudo systemctl daemon-reload
변경 사항을 표시하려면 systemd를 다시 로드하십시오.
참고: 로컬 Eth1 노드를 실행 중인 경우(3단계 참조) Teku 서비스를 시작하기 전에 완전히 동기화될 때까지 기다려야 합니다. 여기에서 진행 상황을 확인하세요. *sudo journalctl -fu geth.service*
$ sudo systemctl start teku$ sudo systemctl status teku
서비스를 시작하고 제대로 실행되고 있는지 확인하십시오.

표시된 결과는 다음과 같아야 합니다."모든 작업을 올바르게 수행한 경우 녹색 글꼴로 "활성(실행 중)"이라고 표시됩니다.
. 표시되지 않으면 돌아가서 위의 단계를 반복하여 문제를 해결해야 합니다. 종료하려면 Q를 누르십시오.
$ sudo systemctl enable teku
시스템이 다시 시작될 때 서비스가 자동으로 다시 시작되도록 허용합니다.
비콘 노드는 데이터 동기화를 시작합니다. 완전히 동기화하는 데 몇 시간이 걸릴 수 있습니다. journal 명령을 실행하여 진행 상황을 추적할 수 있습니다. CTRL+c를 눌러 종료합니다.
$ sudo journalctl -fu teku.service
참고: 저널을 종료하기 위해 Ctrl+C를 눌러도 서비스에 영향을 미치지 않습니다. 저널은 서비스 로그의 실시간 보기를 나타냅니다.
Started Teku Client....
INFO - Loading 2 validator keys...
INFO - BLS: loaded BLST library
INFO - Loaded 2 Validators: 96a349b, b7f51b6
...
INFO - Sync Event *** Current slot: 30174, Head slot: 54, Connected peers: 1
INFO - Sync Event *** Current slot: 30175, Head slot: 92, Connected peers: 6
INFO - Sync Event *** Current slot: 30176, Head slot: 128, Connected peers: 8
INFO - Sync Event *** Current slot: 30177, Head slot: 160, Connected peers: 10
이 단계는 끝났습니다. 이제 실행 중인 비콘 체인과 유효성 검사기 노드가 있습니다. 축하해요! 당신은 굉장합니다!
첫 번째 레벨 제목
9단계: 검증인 입금하기
이제 설정이 완료되어 실행 중이므로 Pyrmont 테스트넷에 32 Göerli ETH를 예치해야 합니다.
참고: 이미 약정 보증금을 제출한 경우 이 단계를 건너뛸 수 있습니다.
이 단계는 필요한 Göerli ETH를 Pyrmont 테스트넷의 입금 계약에 입금하는 것입니다. 이를 위해서는 브라우저에서 Pyrmont의 Launchpad 웹사이트를 통해 MetaMask(또는 기타) 지갑을 실행해야 합니다.
참고: 이 튜토리얼이 메인넷에 대한 것이라면(그렇지 않은 경우) 입금하기 전에 Eth1 노드와 비콘 노드가 완전히 동기화될 때까지 기다려야 합니다. 그렇지 않으면 Eth1 노드 또는 비콘 체인이 동기화될 때 속도 저하 페널티를 받을 수 있습니다.https://pyrmont.launchpad.ethereum.org/
Pyrmont 테스트넷용 런치패드:

키 쌍 생성 섹션에 도달할 때까지 화면이 전환될 때 경고 단계를 계속 클릭하십시오. 실행하려는 유효성 검사기의 수를 선택하십시오. 4단계에서 생성한 인증자 파일 수와 일치하는 값을 선택합니다.

아래로 스크롤하여 내용에 동의하는지 확인한 다음 "계속"을 클릭하십시오.

deposit_data-[timestamp].json 파일을 업로드하라는 메시지가 표시됩니다. 이 문서를 공중에서 생성하고 브라우저가 있는 컴퓨터에 복사합니다. 문서를 탐색/선택하거나 드래그 앤 드롭한 다음 계속을 클릭합니다.

지갑을 연결합니다. MetaMask(또는 기타 지원되는 지갑)를 선택하고 로그인한 다음 Göerli ETH가 저장된 Göerli 테스트 네트워크를 선택한 다음 계속을 클릭합니다.
참고: MetaMask에서 Göerli 테스트 네트워크를 선택했는지 100% 확신하십시오. 실제 ETH를 Pyrmont 테스트넷에 보내지 마십시오.

그러면 검증자 수와 필요한 Göerli ETH 금액을 보여주는 요약이 나타납니다. 동의하는 경우 해당 상자를 선택한 다음 계속을 클릭하십시오.

딸깍 하는 소리"Initiate All Transactions"딸깍 하는 소리

(모든 트랜잭션 시작).

MetaMask의 여러 인스턴스가 팝업되어 각각 Pyrmont 테스트넷에 32 Göerli ETH에 대한 트랜잭션 요청을 합니다. 각 거래를 확인하십시오.

모든 거래가 성공적으로 완료되면 지분이 완료됩니다!

축하해요!

마지막에 체크리스트가 있습니다. 유용한 정보가 많이 있습니다. 당신은 볼 수 있습니다
검증인 예치금 상태 확인

새로 가입한 유효성 검사기는 활성화되기까지 기다려야 합니다(몇 시간에서 며칠). 다음 단계에 따라 키 상태를 확인할 수 있습니다.
Göerli 테스트넷 지갑 주소 복사https://pyrmont.beaconcha.in/
이동 :

지갑 주소를 검색합니다. 키가 표시됩니다.

이제 작동하는 비콘 체인, 유효성 검사기 노드 및 테스트넷 예금이 앞에 있습니다. 보증금이 활성화되면 일을 시작하고 수입을 올릴 수 있습니다. 축하해요!
첫 번째 레벨 제목
Prometheus는 모니터링 기능과 경고 도구 상자를 제공하는 오픈 소스 시스템입니다. Ubuntu 서버에서 서비스로 실행되며 작업은 데이터를 가져오는 것입니다. 자세한 내용은 참조여기。
여기
Prometheus를 사용하여 비콘 체인, 유효성 검사기 런타임 데이터 및 인스턴스별 데이터를 노출합니다.
사용자 계정 생성
$ sudo useradd --no-create-home --shell /bin/false prometheus$ sudo useradd --no-create-home --shell /bin/false node_exporter
이러한 서비스는 계정으로 실행됩니다. 이러한 계정은 서버에 로그인할 수 없습니다.
디렉터리 만들기
$ sudo mkdir /etc/prometheus$ sudo mkdir /var/lib/prometheus
프로그램 및 데이터 디렉토리.
$ sudo chown -R prometheus:prometheus /etc/prometheus$ sudo chown -R prometheus:prometheus /var/lib/prometheus
프로메테우스 소프트웨어 다운로드
~에서~에서프로메테우스 다운로드 페이지
$ cd ~$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.22.2/prometheus-2.22.2.linux-amd64.tar.gz
최신 버전의 버전 번호를 수정하십시오. Rpi 사용자는 반드시 ARM 바이너리를 받아야 합니다.
$ tar xvf prometheus-2.22.2.linux-amd64.tar.gz
tar 아카이브를 엽니다. 여기에는 두 개의 이진 문서와 일부 콘텐츠 문서가 포함되어 있습니다.
$ sudo cp prometheus-2.22.2.linux-amd64/prometheus /usr/local/bin/$ sudo cp prometheus-2.22.2.linux-amd64/promtool /usr/local/bin/
바이너리를 다음 위치에 복사합니다.
$ sudo chown -R prometheus:prometheus /usr/local/bin/prometheus$ sudo chown -R prometheus:prometheus /usr/local/bin/promtool
디렉토리의 소유권을 설정합니다. prometheus 계정이 이를 관리합니다.
$ sudo cp -r prometheus-2.22.2.linux-amd64/consoles /etc/prometheus$ sudo cp -r prometheus-2.22.2.linux-amd64/console_libraries /etc/prometheus
이러한 콘텐츠 문서를 다음 위치에 복사합니다.
$ sudo chown -R prometheus:prometheus /etc/prometheus/consoles$ sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
디렉토리 및 파일의 소유권을 설정합니다(-R). prometheus 계정이 이를 관리합니다.
$ rm -rf prometheus-2.22.2.linux-amd64.tar.gz prometheus-2.22.2.linux-amd64
다운로드 아카이브를 제거합니다.
구성 파일 편집
Prometheus는 구성 파일을 사용하므로 데이터를 가져올 위치를 알고 있습니다.
$ sudo nano /etc/prometheus/prometheus.yml
편집을 위해 YAML 구성 파일을 엽니다.
global: scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "teku"
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets: ["localhost:8008"]
아래 코드를 문서에 복사하고 다른 편집을 하지 않도록 주의하고 종료하여 파일을 저장합니다.
$ sudo chown -R prometheus:prometheus /etc/prometheus/prometheus.yml
구성 파일의 소유권을 설정합니다. Prometheus 계정은 이 소유권을 갖게 됩니다.
$ sudo -u prometheus /usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
마지막으로 서버가 올바르게 실행되고 있는지 테스트합니다.
level=info ts=2020-11-22T17:24:35.396Z caller=main.go:684 msg="Server is ready to receive web requests."
출력은 다음과 같아야 합니다. Ctrl+C를 눌러 종료합니다.
Prometheus를 자동 시작 서비스로 설정
$ sudo nano /etc/systemd/system/prometheus.service
Prometheus 사용자로 Prometheus를 실행하도록 systemd에 알리고 /etc/prometheus/prometheus.yml 디렉터리에 구성 파일을 넣고 /var/lib 디렉터리에 저장하도록 서비스 구성 파일을 저장할 systemd 서비스 파일을 만듭니다. /프로메테우스.
[Unit]Description=Prometheus
Wants=network-online.target
After=network-online.target[Service]
Type=simple
User=prometheus
Group=prometheus
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries[Install]
WantedBy=multi-user.target
다음 코드를 문서에 복사합니다. 종료하고 저장합니다.
$ sudo systemctl daemon-reload
변경 사항을 표시하려면 systemd를 다시 로드하십시오.
$ sudo systemctl start prometheus$ sudo systemctl status prometheus
그런 다음 아래 명령으로 서비스를 시작하고 상태를 확인하여 올바르게 실행되고 있는지 확인하십시오.

출력은 아래와 같아야 합니다."모든 작업을 올바르게 수행한 경우 녹색 글꼴로 "활성(실행 중)"이라고 표시됩니다.
텍스트
$ sudo systemctl enable prometheus
첫 번째 레벨 제목
11단계: 노드 내보내기 설치Node_Exporter확대. 아래에서 다른 버전을 지정하면 다음에서 찾을 수 있습니다.여기여기
$ cd ~$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
최신 안정 버전을 찾으십시오. Rpi 사용자는 ARM 바이너리를 얻는 것을 기억합니다.
$ tar xvf node_exporter-1.0.1.linux-amd64.tar.gz
다운로드한 소프트웨어를 엽니다.
$ sudo cp node_exporter-1.0.1.linux-amd64/node_exporter /usr/local/bin$ sudo chown -R node_exporter:node_exporter /usr/local/bin/node_exporter
바이너리를 /usr/local/bin 디렉토리에 복사하고 사용자 및 그룹 소유권을 이전에 생성한 node_exporter 사용자로 설정합니다.
$ rm -rf node_exporter-1.0.1.linux-amd64.tar.gz node_exporter-1.0.1.linux-amd64
다운로드한 아카이브를 제거합니다.
Node Exporter를 자동 시작 서비스로 설정
$ sudo nano /etc/systemd/system/node_exporter.service
node_exporter 사용자로 Node_Exporter를 실행하도록 systemd에 지시하는 서비스 구성 파일을 저장할 systemd 서비스 파일을 만듭니다.
[Unit]Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter[Install]
WantedBy=multi-user.target
다음 코드를 문서에 복사합니다. 종료하고 저장합니다.
$ sudo systemctl daemon-reload
변경 사항을 표시하려면 systemd를 다시 로드하십시오.
$ sudo systemctl start node_exporter$ sudo systemctl status node_exporter
그런 다음 아래 명령으로 서비스를 시작하고 상태를 확인하여 올바르게 실행되고 있는지 확인하십시오.

출력은 아래와 같아야 합니다."모든 작업을 올바르게 수행한 경우 녹색 글꼴로 "활성(실행 중)"이라고 표시됩니다.
. 표시되지 않으면 돌아가서 위의 단계를 반복하여 문제를 해결해야 합니다. 종료하려면 Q를 누르십시오.
$ sudo systemctl enable node_exporter
마지막으로 노드 내보내기가 시스템 부팅과 함께 시작되도록 허용합니다.
Prometheus 및 Node Exporter 테스트(선택 사항):9090 기능을 선택적으로 테스트할 수 있습니다. 여기에서 쿼리를 실행하여 다른 데이터를 볼 수 있습니다. 예를 들어 다음 쿼리를 사용하여 사용 가능한 메모리 양을 확인할 수 있습니다.
http://:9090/new/graph?g0.expr=node_memory_MemFree_bytes&g0.tab=1&g0.stacked=0&g0.range_input=1h
첫 번째 레벨 제목
12단계: Grafana 설치
Prometheus는 우리의 데이터 소스이며 Grafana는 대시보드 데이터를 보고하는 기능을 제공합니다. 다음으로 Grafana를 설치하고 대시보드를 구성합니다.
APT 리포지토리를 사용하여 설치 및 업데이트를 더 쉽게 할 것입니다. Grafana는 공식 Ubuntu 패키지 저장소에서 찾을 수 있지만 해당 버전이 최신 버전이 아닐 수 있으므로 Grafana의 공식 저장소를 사용합니다.
$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
wget으로 Grafana GPG 키를 다운로드한 다음 출력을 apt-key로 파이프합니다. 이렇게 하면 APT 설치를 위해 신뢰할 수 있는 키 목록에 키가 추가됩니다.
$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
Grafana 리포지토리를 APT의 소스에 추가합니다.
$ sudo apt update
적절한 캐시를 플러시합니다.
$ apt-cache policy grafana
저장소에서 Grafana가 설치되었는지 확인합니다.
grafana: Installed: (none)
Candidate: 7.3.3
Version table:
7.3.3 500
500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
7.3.2 500
500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
7.3.1 500
500 https://packages.grafana.com/oss/deb stable/main amd64
...
상단에 표시된 버전이여기여기
$ sudo apt install grafana
표시된 최신 버전이 일치합니다. 그런 다음 설치를 계속하십시오.
$ sudo systemctl start grafana-server$ sudo systemctl status grafana-server
Grafana 서버를 시작하고 상태를 확인하여 올바르게 실행되고 있는지 확인하십시오.

출력은 다음과 같아야 합니다."모든 작업을 올바르게 수행한 경우 녹색 글꼴로 "활성(실행 중)"이라고 표시됩니다.
. 표시되지 않으면 돌아가서 위의 단계를 반복하여 문제를 해결해야 합니다. 종료하려면 Q를 누르십시오.
$ sudo systemctl enable grafana-server
Grafana가 시스템 부팅과 함께 시작되도록 허용합니다.
Grafana 로그인 구성이 일을 할 수 있어서 좋습니다! 이제 모든 것이 설정되고 실행되었으므로 http://로 이동할 수 있습니다.
:3000/, Grafana 로그인 창이 나타납니다.
admin에 사용자 이름과 비밀번호를 입력합니다. 시스템에서 비밀번호를 변경하도록 요청할 것입니다. 그렇게 하십시오.
Grafana의 데이터 소스 구성

데이터 소스를 구성해 보겠습니다. 마우스를 왼쪽 메뉴 표시줄의 톱니바퀴 아이콘으로 이동하면 메뉴가 나타납니다. 데이터 소스를 선택합니다.


데이터 소스 추가를 클릭하고 Prometheus를 선택합니다. URL에 http://localhost:9090을 입력한 다음 저장 및 테스트를 클릭합니다.
Grafana 대시보드 가져오기
왼쪽 메뉴 표시줄의 + 아이콘에 마우스를 가져가면 메뉴가 팝업되고 가져오기를 선택합니다.코드 13457을 사용하여 공식 Teku의 단일 유효성 검사기를 가져옵니다.대시 보드또는 코드 12522로 Ben Edgington을 가져오십시오.

대시 보드

첫 번째 레벨 제목
마지막에 쓰기
마지막에 쓰기
그게 다야! 이 튜토리얼이 도움이 되길 바랍니다.Twitter의견이 있으시면 다음에서 찾을 수 있습니다.Reddit또는
저에게 연락friends link이 튜토리얼을 즐겼고 다른 사람들이 따라하기를 원한다면 다음을 사용하십시오.
튜토리얼을 공유하세요!
지원: somer.eth
존재하다
존재하다여기여기원하는 버전을 찾아 입력하십시오.
$ cd ~$ cd teku
$ sudo git fetch --tags && git checkout
$ sudo ./gradlew installDist
$ sudo systemctl stop teku
$ sudo rm -r /usr/local/bin/teku # <-- Delete old build
$ sudo cp -a ~/teku/build/install/teku/. /usr/local/bin/teku
$ sudo systemctl start teku
$ sudo systemctl status teku # <-- Check status
$ sudo journalctl -fu teku # <-- Check status
. 예: $ git fetch --tags && git checkout 20.11.0-RC2.
공식 계정: ETH 차이니즈 스테이션
홈페이지: ethereum.cn


