Đưa bạn tham gia vào cam kết testnet Ethereum 2.0 Pyrmont
nguồn|someresat.medium.com

nguồn|
Nhắc nhở: Không làm theo hướng dẫn này để kết nối với mạng chính Eth2. Để biết hướng dẫn về mainnet, vui lòng tham khảo "Hướng dẫn cam kết Mainnet Ethereum 2.0 (Ubuntu/Teku)".
Bài viết này giải thích chi tiết cách cam kết trên mạng chính Ethereum 2.0 thông qua mạng thử nghiệm đa khách hàng Pyrmont. Chủ yếu dựa trên các công nghệ sau:
Máy chủ Ubuntu v20.04 (LTS) x64Tới Nút Ethereum ()
chi nhánh mãỨng dụng khách Ethereum 2.0 của ConsenSys, Teku ()
chi nhánh mãPyrmont
Mạng công cộng testnet nhiều khách hàng chính thức,MetaMask
PrometheusVí tiền mã hóa plugin trình duyệt
Grafanatham số
bảng điều khiển
Hướng dẫn này bao gồm các hướng dẫn sau:
Kết nối và định cấu hình an toàn phiên bản máy chủ Ubuntu mới chạy
Định cấu hình nút Ethereum 1.0 và chạy nó dưới dạng dịch vụ
Tạo khóa tài khoản trình xác thực Pyrmont và tài sản tiền gửi
Nhập khóa tài khoản trình xác thực Pyrmont vào ứng dụng khách Teku
tiêu đề cấp đầu tiên
nhắc lại
nhắc lại
Không làm theo hướng dẫn này để kết nối với mạng chính Eth2. Để biết hướng dẫn cụ thể về mainnet, vui lòng tham khảo "Hướng dẫn đặt cược trên Mainnet Ethereum 2.0 (Ubuntu/Teku)".
tiêu đề cấp đầu tiên
Lời cảm ơn và từ chối trách nhiệm
Hướng dẫn này đề cập đến các tài liệu khác nhau trên Internet, cảm ơn những người đóng góp đã cung cấp tài liệu!ConsenSys Discordtri ânEthStakertrong kênh #teku và
Sự giúp đỡ và đánh giá được cung cấp bởi các thành viên trong nhóm bất hòa.
tiêu đề cấp đầu tiên
ủng hộ
ủng hộ
Quá trình này có thể là một chút khó khăn. Ngoài tôi, đây là hai tài nguyên tốt mà bạn có thể truy cập để được trợ giúp:
Discord:https://discord.gg/7z8wzehjrJ
Cộng đồng EthStaker là một cộng đồng đặt cược Ethereum 2.0, giàu tài nguyên và rất thân thiện.tiêu đề cấp đầu tiên
tình trạng
tình trạng
Sử dụng hướng dẫn này yêu cầu một số kiến thức cơ bản về Ethereum, ETH, Staking, Testnet, Linux và MetaMask.
Hướng dẫn này cũng cần được cài đặt và chạy trước khi bắt đầu:Máy chủ Ubuntu v20.04 (LTS) AMD64
Hoặc máy chủ Ubuntu mới hơn được cài đặt và chạy trên máy tính cục bộ, mạng của bạn hoặc trên đám mây (AWS, Digital Ocean, Microsoft Azure, v.v.). Bạn nên sử dụng máy tính cục bộ để cải thiện khả năng phân cấp của mạng - nếu nhà cung cấp đám mây ngừng hoạt động, tất cả các nút được lưu trữ trên nhà cung cấp này sẽ ngoại tuyến.MetaMask. Máy tính có hệ điều hành (Mac, Windows, Linux, v.v.) và trình duyệt (Brave, Safari, FireFox, v.v.).
tiêu đề cấp đầu tiên
Tôi chưa kiểm tra hướng dẫn này trên Raspberry Pi. Chỉ cần trao đổi phần mềm được liệt kê bên dưới để lấy phiên bản ARM nếu bạn muốn dùng thử. Không đảm bảo để làm việc.
tiêu đề cấp đầu tiên
Yêu cầu
Trường hợp sử dụng máy chủ Ubuntu. Tôi đã sử dụng máy chủ AMD64 v20.04 (LTS) VM
Yêu cầu phần cứng là một chủ đề lớn. Nhìn chung: CPU tương đối mới, RAM 8GB (16GB càng tốt), SSD có bộ nhớ ít nhất 1TB, mạng ổn định (tốc độ tải xuống đủ nhanh và dung lượng dữ liệu hàng tháng), những hiệu suất này sẽ giúp quá trình cầm cố an toàn và mượt mà hơn .
tiêu đề cấp đầu tiên
Tổng quan

Hướng dẫn này khá dài. Sơ đồ sau đây giải thích ngắn gọn các bước đặt cược. Những phần được đánh dấu màu vàng là những phần sẽ được trình bày trong bài viết này:
Toàn bộ quá trình có thể được khái niệm hóa như sau:
Thiết lập nút Eth1 và đồng bộ hóa dữ liệu của mạng thử nghiệm Eth1 Göerli;
Tạo khóa trình xác thực và dữ liệu gửi tiền;
Định cấu hình ứng dụng khách Teku và đồng bộ hóa dữ liệu nút Eth1
Hãy bắt đầu ngay bây giờ!
tiêu đề cấp đầu tiên
Sử dụng cổng SSH, kết nối với máy chủ Ubuntu của bạn. Theo mặc định, tài khoản root thường bị vô hiệu hóa trên Ubuntu, tuy nhiên một số nhà cung cấp đám mây có thể kích hoạt tài khoản root. Nếu bạn đã đăng nhập với quyền root, tốt nhất nên tạo lại tài khoản người dùng với quyền quản trị, vì có rất nhiềurủi ro。
rủi ro
# adduser
Lưu ý: Nếu bạn chưa đăng nhập với quyền root, bạn có thể bỏ qua bước 1 trực tiếp.
Đặt mật khẩu và điền các thông tin khác.
# usermod -aG sudo
Cấp đặc quyền quản trị cho người dùng mới bằng cách thêm nó vào nhóm sudo.khi bạn sử dụng tên người dùng của bạn
Khi đăng nhập, bạn có thể thực hiện các thao tác với đặc quyền siêu người dùng bằng cách nhập sudo trước dòng lệnh.Tùy chọn: nếu bạn đang sử dụng tài khoản rootkhóa ssh
# rsync --archive --chown=: ~/.ssh /home/
Để kết nối với phiên bản Ubuntu của bạn, bạn sẽ cần sử dụng dữ liệu khóa SSH của tài khoản gốc để kết nối với tài khoản mới.Đăng nhập vào máy chủ Ubuntu.
tiêu đề cấp đầu tiên
Đảm bảo hệ thống được cập nhật lên phần mềm và cài đặt bảo mật mới nhất.
$ sudo apt update && sudo apt upgrade$ sudo apt dist-upgrade && sudo apt autoremove
$ sudo reboot
tiêu đề cấp đầu tiên
Bước 2: Bảo mật máy chủ
Bảo mật là rất quan trọng. Nhưng vì bài viết này không phải là hướng dẫn về bảo mật nên chỉ liệt kê một số cài đặt cơ bản.
cấu hình tường lửaMáy chủ Ubuntu 20.04 có thể sử dụng mặc địnhTường lửa UFW
để hạn chế lưu lượng truy cập đến máy chủ, nhưng trước tiên hãy đặt nó để cho phép lưu lượng truy cập vào từ SSH, Go Ethereum, Grafana, Teku.
cho phép ssh
Cho phép kết nối với máy chủ thông qua SSH. Tiếp theo, chúng tôi sẽ sửa đổi cổng mặc định 22 để bảo mật (vì đây là một vectơ tấn công phổ biến).
Lưu ý: Nếu bạn chọn không sửa đổi cổng SSH mặc định (không được khuyến nghị), thì bạn cần thêm một thao tác - cho phép cổng SSH mặc định *$ sudo ufw allow 22/tcp* , sau đó chuyển sang bước cho phép "Go Ethereum".
$ sudo ss -tulpn | grep ':'
Chọn một số cổng trong khoảng 1024 - 49151 và chạy lệnh sau để truy xuất số cổng không sử dụng. Nếu nó là màu đỏ (đã sử dụng), hãy chọn một cổng khác. Ví dụ: sudo ss -tulpn | grep ':6673'Cập nhật tường lửa để cho phép
$ sudo ufw allow /tcp
của lưu lượng truy cập vào. SSH yêu cầu giao thức TCP. Ví dụ: sudo ufw allow 6673/tcp
$ sudo nano /etc/ssh/sshd_config
Tiếp theo, sửa đổi cổng SSH mặc định.Tìm cổng mặc định # Cổng 22 hoặc Cổng 22, sau đó sửa đổi số cổng của riêng bạn Cổng

. Xóa dấu # (nếu có). Tham khảo ảnh chụp màn hình bên dưới, tài liệu của bạn sẽ trông giống như tài liệu hiển thị bên dưới (ngoại trừ số cổng khác). Lưu và thoát.
$ sudo systemctl restart ssh
Khởi động lại dịch vụ SSH 。
Sử dụng số cổng của bạn vào lần tiếp theo bạn đăng nhập qua SSH
$ sudo ufw deny 22/tcp
Tùy chọn: Nếu bạn đã sử dụng UFW trên cổng 22/TCP, hãy cập nhật tường lửa của bạn để từ chối lưu lượng truy cập vào trên cổng đó. Đảm bảo thực hiện việc này sau khi bạn đã đăng nhập bằng cổng SSH mới.
Cho phép sử dụng EthereumInfuraCho phép các yêu cầu gửi đến từ các đồng nghiệp Go Ethereum (cổng 30303/TPC và 30303/UDP). Nếu bạn sử dụng một bên thứ ba chẳng hạn như (
) quản lý nút Eth1, bạn có thể bỏ qua bước này.
$ sudo ufw allow 30303
Lưu ý: Nếu bạn đang lưu trữ cục bộ máy chủ Ubuntu của mình, bạn sẽ cần định cấu hình bộ định tuyến mạng của mình để cho phép lưu lượng truy cập vào từ cổng 30303.
Cho phép TekuCho phép kết nối ngang hàng với các đồng nghiệp của Teku để trên các nút chuỗi đèn hiệu (Consensyscung cấp
Cổng mặc định 9000/TCP và 9000/UDP) để hoạt động. .
$ sudo ufw allow 9000
Lưu ý: Nếu bạn đang lưu trữ cục bộ máy chủ Ubuntu của mình, bạn sẽ cần định cấu hình tường lửa và định tuyến mạng của mình để cho phép lưu lượng truy cập vào từ cổng 9000.
Cho phép Grafana
$ sudo ufw allow 3000/tcp
Cho phép các yêu cầu gửi đến máy chủ web Grafana (cổng 3000/TCP).
Cho phép Prometheus (tùy chọn)
$ sudo ufw allow 9090/tcp
Bạn cũng có thể mở cổng 9090/TCP nếu muốn truy cập trực tiếp vào dịch vụ dữ liệu Prometheus. Điều này là không cần thiết nếu bạn chỉ sử dụng Grafana để xem dữ liệu. Tôi đã không mở cổng này.
$ sudo ufw enable$ sudo ufw status numbered
Màn hình sẽ trông như thế này

tiêu đề cấp đầu tiên
Bước 3: Cài đặt và chạy nút Go EthereumInfuraCài đặt và định cấu hình nút Eth1.0 mà chuỗi đèn hiệu sẽ được kết nối. Nếu bạn chọn dịch vụ của bên thứ ba (chẳng hạn như
), bạn có thể bỏ qua bước này.
Cài đặt Go Ethereum
$ sudo add-apt-repository -y ppa:ethereum/ethereum
Nên sử dụng PPA (Personal Package Archives, kho lưu trữ gói cài đặt cá nhân) để cài đặt ứng dụng khách Go Ethereum.
$ sudo apt update$ sudo apt install geth
Cập nhật các gói và cài đặt phiên bản ổn định mới nhất.
Chạy Go Ethereum làm dịch vụ nền
$ sudo useradd --no-create-home --shell /bin/false goeth
Cần phải tạo một tài khoản để chạy dịch vụ này và loại tài khoản này không thể đăng nhập vào máy chủ.
$ sudo mkdir -p /var/lib/goethereum
Tạo một thư mục dữ liệu cho chuỗi khối Eth1 để lưu trữ dữ liệu nút Eth1.
$ sudo chown -R goeth:goeth /var/lib/goethereum
Đặt quyền của thư mục. Tài khoản goeth cần có quyền sửa đổi thư mục dữ liệu.
$ sudo nano /etc/systemd/system/geth.service
Tạo tệp dịch vụ systemd để lưu trữ cấu hình dịch vụ. Chúng tôi sẽ sử dụng tệp cấu hình này để hướng dẫn systemd chạy quy trình geth.
[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
Sao chép và dán cấu hình dịch vụ sau vào tài liệu.http://localhost:8545)。
cờ --goerli được sử dụng để định vị mạng thử nghiệm Göerli và cờ --http được sử dụng để hiển thị một cổng HTTP (

Tham khảo ảnh chụp màn hình bên dưới. Lưu và thoát.
$ sudo systemctl daemon-reload
Tải lại systemd để hiển thị các thay đổi trên
$ sudo systemctl start geth$ sudo systemctl status geth
Bắt đầu dịch vụ và kiểm tra để đảm bảo dịch vụ đang chạy đúng cách.

Màn hình sẽ giống như ảnh chụp màn hình bên dưới."Nếu bạn đã làm mọi thứ đúng, nó sẽ hiện "đang hoạt động (đang chạy)" bằng phông chữ màu xanh lá cây
. Nếu nó không hiển thị, bạn cần quay lại và lặp lại các bước trên để khắc phục sự cố. Nhấn Q để thoát.
$ sudo systemctl enable geth
Cho phép dịch vụ geth tự động khởi động khi khởi động lại hệ thống.
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.
Nút Go Ethereum sẽ bắt đầu đồng bộ hóa. Bạn có thể chạy lệnh nhật ký để theo dõi tiến trình. Nhấn "CTRL+c" để thoát.
$ sudo journalctl -fu geth.service
Bạn có thể thêm một số ứng dụng ngang hàng khi mất nhiều thời gian (>10 phút) để tìm ứng dụng ngang hàng để đồng bộ hóa. truy cậpđâyđây
$ sudo systemctl stop geth$ sudo nano /etc/systemd/system/geth.service
Để có được bảng kê khai mới nhất, hãy chạy các lệnh sau để sửa đổi dịch vụ geth:
ExecStart=geth --goerli --http --datadir /var/lib/goethereum --bootnodes "enode://46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291@94.237.54.114:30313,enode://119f66b04772e8d2e9d352b81a15aa49d565590bfc9a80fe732706919f8ccd00a471cf8433e398c55c4862aadb4aadf3a010201483b87e8358951698aa0b6f07@13.250.50.139:30303"
Sửa đổi dòng ExecStart để thêm cờ --bootnodes: Liệt kê các đồng nghiệp mới nhất bên dưới, được phân tách bằng dấu phẩy.
$ sudo systemctl daemon-reload$ sudo systemctl start geth
$ sudo journalctl -fu geth.service
Lưu file và thoát. Sau đó khởi động lại dịch vụ và xem.

Trước khi chạy chuỗi đèn hiệu, bạn cần đợi các nút đồng bộ hóa. nhấp chuộtđâyđây
Truy cập vào khối mới nhất.

Tiếp theo, chúng tôi sẽ chuẩn bị dữ liệu tiền gửi của trình xác thực. Nếu muốn kiểm tra trạng thái đồng bộ, bạn có thể chạy lệnh sudo journalctl -fu geth.service bất cứ lúc nào để kiểm tra.
tiêu đề cấp đầu tiên
Bước 4: Tạo khóa xác thực và gửi dữ liệu
Để có thể chạy các nút trình xác thực trên mạng thử nghiệm Eth2.0 Pyrmont, chúng tôi sẽ cần đăng ký một hoặc nhiều tài khoản trình xác thực.
Lưu ý: Nếu bạn đã tạo dữ liệu tiền gửi và gửi tiền ký quỹ, bạn có thể bỏ qua bước này. Nếu bạn đã tạo nó ở nơi khác, bạn sẽ cần sao chép khóa xác thực của mình vào máy chủ này.
Các bước đăng ký như sau:
Nhận Göerli ETH
Tạo khóa trình xác thực. Khóa đại diện cho tài khoản trình xác thực.
Gửi 32 Göerli ETH vào mỗi tài khoản trình xác thực
Đợi tài khoản trình xác thực của bạn được kích hoạt
Hãy bắt đầu ngay bây giờ!
Nhận Goerli ETH
Sử dụng máy tính có cài đặt plugin trình duyệt MetaMask.
Nhấp vào MetaMask và đăng nhập
Nhấp vào menu thả xuống ở trên cùng và chọn mạng thử nghiệm Göerli
Nhấp vào tên tài khoản và sao chép địa chỉ ví testnet Göerli của bạnauthenticated faucetSử dụng địa chỉ của bạn từethstaker DiscordNhận Göerli ETH hoặc thông qua。
#request-goerli-eth kênh trên lệnh bot: !goerliEth
Lưu ý: Trình xác thực yêu cầu khoản tiền gửi là 32 ETH. Ví MetaMask của bạn cần có đủ Göerli ETH được ký gửi vào từng ứng dụng khách trình xác thực. Ví dụ: nếu bạn muốn chạy 10 trình xác nhận, bạn sẽ cần 320 Göerli ETH cộng với một số tiền bổ sung (giả sử 1 Göerli ETH) để trả phí gas.
đi đến
đi đếnđâyđây

Nhận "bản phát hành mới nhất" của ứng dụng Deposit CLI."trong "tài sản
$ 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
Một cột để sao chép liên kết này sang phiên bản Linux. Chúng ta sẽ sử dụng đường dẫn đó để tải về như hình bên dưới. Sửa đổi URL trong lệnh thành liên kết tải xuống của phiên bản mới nhất.
$ sudo tar xvf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz$ cd eth2deposit-cli-ed5a6d3-linux-amd64
Chạy ứng dụng để tạo dữ liệu tiền gửi và khóa trình xác thực.
SẽSẽ
$ sudo ./deposit new-mnemonic --num_validators --mnemonic_language=english --chain pyrmont
Thay đổi giá trị này thành số khóa trình xác thực bạn muốn tạo. Ví dụ: --num_validators 5

Nó sẽ yêu cầu bạn tạo một mật khẩu ví. Chúng tôi sẽ sử dụng điều này để tải khóa trình xác thực vào ví trình xác thực của ứng dụng khách Teku. Sao lưu nó lên một nơi an toàn.

Nó tạo ra một cụm từ gốc (mnemonic). Sao lưu nó lên ở nơi khác. Điều này rất quan trọng, bạn sẽ cần nó để tạo khóa rút tiền hoặc thêm trình xác thực.

Khi bạn đã xác nhận bản ghi nhớ của mình, khóa trình xác thực của bạn sẽ được tạo.
Các khóa trình xác nhận mới được tạo và tệp dữ liệu tiền gửi được tạo ở một nơi cụ thể. Ví dụ: eth2deposit-cli-ed5a6d3-linux-AMD64/validator_keys. Đánh dấu nó, chúng ta sẽ cần nó sau.

Nội dung của thư mục như sau:secure FTP (SFTP)Tệp Deposit_data-[timestamp].json chứa khóa công khai của trình xác thực và thông tin về khoản tiền gửi. Tài liệu này sẽ được sử dụng trong bước tiếp theo để hoàn tất quy trình gửi tiền. Vì chúng tôi đang ở trên máy chủ và không có trình duyệt web, hãy sử dụng
Di chuyển các tệp sang máy tính đang chạy MetaMask. Hãy nhớ hoàn thành bước này trước khi tiếp tục.
Tài liệu keystore-m...json chứa khóa ký được mã hóa. Mỗi tài khoản trình xác thực có một keystore-m. Chúng sẽ được sử dụng để tạo ví xác thực ứng dụng khách Teku.
$ cd ~$ rm -rf eth2deposit-cli-ed5a6d3-linux-amd64.tar.gz
Bây giờ bạn đã có dữ liệu tiền gửi và các tệp kho khóa, đã đến lúc thiết lập Teku. Chúng tôi cần gửi tài sản vào khóa (ký gửi Göerli ETH để kích hoạt trình xác nhận) trước khi thiết lập Teku, để chúng tôi có thể xác minh thiết lập trước. Nếu tiền gửi của trình xác thực được kích hoạt, nhưng hệ thống chưa sẵn sàng, chúng tôi sẽ bị phạt chậm.
tiêu đề cấp đầu tiên
Bước 5: Điều kiện lắp đặt
Teku được xây dựng trên ngôn ngữ Java, do đó, nó yêu cầu Môi trường thời gian chạy Java (JRE) để chạy và Bộ công cụ phát triển Java (JDK) để biên dịch.
$ sudo apt install default-jre default-jdk$ java --version
$ javac --version
Màn hình sẽ trông giống như
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
tiêu đề cấp đầu tiên
truy cập
truy cậpđâyđây

Sử dụng nhãn (trong trường hợp này là 20.11.0-RC2)
$ cd ~$ git clone --b 20.11.0-RC2 https://github.com/Consensys/teku.git
$ cd teku
sử dụngGradlesử dụng
$ sudo ./gradlew installDist
để biên dịch mãThời gian xây dựng mất khoảng 3-6 phút. Thời gian để lấy một số đồ uống và bù nước. cũng có thể đọc tôi。
Nếu tất cả các thao tác đều thành công, vui lòng tiếp tục, nếu thao tác không thành công, hãy yêu cầu trợ giúp trên kênh #teku của ConsenSys Discord:https://discord.gg/trQ378WCp4
tiêu đề cấp đầu tiên
Bước 7: Sao chép tệp nhị phân Teku
$ cd ~$ sudo cp -a teku/build/install/teku/. /usr/local/bin/teku
LƯU Ý: Bạn sẽ cần thực hiện việc này mỗi khi kéo hoặc tạo phiên bản mới của *teku* nhị phân. Vui lòng xem phụ lục cuối cùng của hướng dẫn này - Cập nhật Teku.
tiêu đề cấp đầu tiên
Bước 8: Định cấu hình Ứng dụng khách Beacon Nodes và Trình xác thực
Chúng tôi sẽ chạy ứng dụng khách Teku dưới dạng dịch vụ, vì vậy nếu hệ thống khởi động lại, quy trình sẽ tự động khởi động lại.
Thiết lập tài khoản và thư mục
$ sudo useradd --no-create-home --shell /bin/false teku
Tạo một tài khoản cho hoạt động của các nút báo hiệu và các nút trình xác thực. Loại tài khoản này không thể được sử dụng để đăng nhập vào máy chủ.
$ sudo mkdir -p /var/lib/teku$ sudo mkdir -p /etc/teku
Tạo một thư mục dữ liệu cho các tệp dữ liệu của ứng dụng khách Teku và một thư mục cấu hình cho các tệp cấu hình của Teku.
$ sudo cp -a /$HOME/ /var/lib/teku
Bằng cách này, chúng tôi có thể tập trung tài liệu vào một nơi và sao chép tài liệu keystore-m...json vào thư mục dữ liệu mà chúng tôi đã tạo trước đó.Điền vào đường dẫn của khóa xác thực đã tạo của bạn trong
$ cd /var/lib/teku/validator_keys$ ls
$ sudo rm
, ví dụ: eth2deposit-cli-ed5a6d3-linux-AMD64/validator_keys. Điều đáng chú ý là chúng tôi chỉ sao chép tệp keystore-m. Không sao chép tài liệu Deposit_data. Nếu bạn đã sao chép nó, chỉ cần xóa nó bằng đoạn mã sau.

Bạn sẽ nhận được kết quả sau (tùy thuộc vào số lượng tài liệu trình xác nhận bạn có)
Tạo tài liệu mật khẩu trình xác thực
Teku Client yêu cầu Authenticators phải có tệp mật khẩu để truy cập từng tài khoản Authenticator trong khi chạy và tự động khởi động lại dịch vụ.
$ ls /var/lib/teku/validator_keys
Tạo một tệp mật khẩu có cùng tên cho mỗi tệp keystore_m*.json.
$ sudo nano /var/lib/teku/validator_keys/.txt
hiện hữuhiện hữu

Điền vào tên của tài liệu json. Đừng quên thêm .txt vào cuối. Trong tệp txt, hãy điền mật khẩu của nơi lưu trữ mật khẩu (mật khẩu bạn đã cung cấp khi tạo tệp trình xác thực ở bước 4) vào YourKeystorePasswordForThisValidator. Lưu và khởi chạy. Lặp lại các bước trên cho từng tệp *.json.

Bạn sẽ nhận được kết quả như sau, bước này đã xong.
LƯU Ý: Không nên có tệp *deposit_data-\*.json* nào. Nếu có, xóa nó đi. Nó gây ra ghép nối sai vì ứng dụng khách Teku mong muốn nó có tệp mật khẩu tương ứng.
Đặt quyền
$ sudo chown -R teku:teku /var/lib/teku$ sudo chown -R teku:teku /etc/teku
$ ls -dl /var/lib/teku; ls -dl /etc/teku
Đặt quyền thư mục. Tài khoản teku cần có quyền sửa đổi danh mục số. Xác minh rằng quyền truy cập thư mục được đặt chính xác.

Nên trông như thế này:
$ sudo chmod -R 700 /var/lib/teku/validator_keys$ sudo ls -lh /var/lib/teku/validator_keys
Áp dụng các quyền đối với tài liệu cho các khóa xác nhận để cung cấp thêm một lớp bảo mật và ngăn việc vô tình xóa. Cấp cho người dùng (teku) quyền đọc/ghi/thực thi. Xác nhận rằng các quyền đối với tài liệu được đặt chính xác.

Kết quả sẽ giống như thế này
Bây giờ chúng tôi đã thiết lập khóa xác thực và cụm mật khẩu, đã đến lúc định cấu hình dịch vụ.
Tạo tệp cấu hình Teku
$ sudo nano /etc/teku/teku.yaml
Máy khách Teku có thể đọc các tùy chọn dòng lệnh thông qua các tệp cấu hình. Hãy tạo ngay.
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
Dán mã dưới đây vào tài liệu.
flagdata-base-path xác định nơi dịch vụ lưu trữ dữ liệu.
Cờ trình xác thực-khóa cho biết vị trí của tệp khóa trong tệp mật khẩu. Bằng cách này, tất cả chúng đều nằm trong cùng một thư mục.
hiện hữuhiện hữu"abcdefg12345"。
Nhập văn bản bạn muốn. Ví dụ: trình xác thực-vẽ bậy:
Cài đặt log-destination: CONSOLE được khuyến nghị khi sử dụng systemd

Tham khảo ảnh chụp màn hình bên dưới. Tài liệu của bạn phải tương tự như nó. Thoát và lưu.
Tạo và cấu hình dịch vụ Teku
$ sudo nano /etc/systemd/system/teku.service
Tạo một tệp dịch vụ systemd để lưu trữ các dịch vụ cấu hình.
[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
Sao chép và dán mã dưới đây vào tài liệu
Java (ngôn ngữ lập trình mà Teku sử dụng) được thiết kế để chiếm nhiều RAM khi chạy. flagEnvironment="JAVA_OPTS=-Xmx2g" giới hạn kích thước heap là 2GB, vì vậy Teku chạy với khoảng 3–3,5GB tổng bộ nhớ khả dụng.

Tham khảo ảnh chụp màn hình bên dưới. Tài liệu của bạn phải tương tự như nó. Thoát và lưu.
$ sudo systemctl daemon-reload
Tải lại systemd để hiển thị các thay đổi.
Lưu ý: Nếu bạn đang chạy nút Eth1 cục bộ (xem bước 3), bạn nên đợi cho đến khi nút được đồng bộ hóa hoàn toàn trước khi bắt đầu dịch vụ Teku. Kiểm tra tiến độ tại đây: *sudo journalctl -fu geth.service*
$ sudo systemctl start teku$ sudo systemctl status teku
Bắt đầu dịch vụ và kiểm tra để đảm bảo dịch vụ đang chạy chính xác.

Kết quả hiển thị sẽ như thế này:"Nếu bạn đã làm mọi thứ đúng, nó sẽ hiện "đang hoạt động (đang chạy)" bằng phông chữ màu xanh lá cây
. Nếu nó không hiển thị, bạn cần quay lại và lặp lại các bước trên để khắc phục sự cố. Nhấn Q để thoát.
$ sudo systemctl enable teku
Cho phép dịch vụ tự động khởi động lại khi hệ thống khởi động lại.
Nút báo hiệu sẽ bắt đầu đồng bộ hóa dữ liệu. Có thể mất vài giờ để đồng bộ hóa hoàn toàn. Bạn có thể theo dõi tiến trình bằng cách chạy lệnh nhật ký. Nhấn CTRL+c để thoát.
$ sudo journalctl -fu teku.service
Lưu ý: Nhấn Ctrl+C để thoát nhật ký sẽ không ảnh hưởng đến dịch vụ. tạp chí cho biết chế độ xem thời gian thực của nhật ký dịch vụ.
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
Bước này kết thúc. Bây giờ chúng ta có một chuỗi đèn hiệu đang chạy và một nút trình xác thực. Chúc mừng! Bạn thật tuyệt vời!
tiêu đề cấp đầu tiên
Bước 9: Gửi tiền cho Trình xác thực
Bây giờ thiết lập của bạn đã được thiết lập và chạy, bạn cần gửi 32 Göerli ETH vào mạng thử nghiệm Pyrmont.
LƯU Ý: Nếu bạn đã gửi khoản đặt cọc cầm cố, bạn có thể bỏ qua bước này.
Bước này nói về việc gửi Göerli ETH cần thiết vào hợp đồng ký gửi của mạng thử nghiệm Pyrmont. Điều này yêu cầu khởi chạy ví MetaMask (hoặc ví khác) của bạn thông qua trang web Launchpad của Pyrmont trên trình duyệt.
LƯU Ý: Nếu hướng dẫn này dành cho mạng chính (không phải mạng chính), bạn sẽ cần đợi cho đến khi nút Eth1 và nút đèn hiệu của bạn được đồng bộ hóa hoàn toàn trước khi gửi tiền. Nếu không, bạn có thể bị phạt chậm khi nút Eth1 hoặc chuỗi đèn hiệu của bạn đang đồng bộ hóa.https://pyrmont.launchpad.ethereum.org/
Launchpad cho testnet Pyrmont:

Tiếp tục nhấp qua các bước cảnh báo khi màn hình chuyển tiếp cho đến khi bạn đến phần tạo cặp khóa. Chọn số lượng trình xác thực bạn định chạy. Chọn một giá trị khớp với số lượng tệp chứng nhận mà bạn đã tạo ở bước 4.

Cuộn xuống để xem bạn có đồng ý với nội dung không, sau đó nhấp vào "Tiếp tục".

Bạn sẽ được yêu cầu tải lên tệp Deposit_data-[timestamp].json. Bạn đã tạo tài liệu này trên mạng, sao chép nó vào máy tính có trình duyệt. Duyệt/chọn hoặc kéo và thả tài liệu, sau đó nhấp vào Tiếp tục.

Kết nối ví của bạn. Chọn MetaMask (hoặc bất kỳ ví được hỗ trợ nào khác), đăng nhập, chọn mạng thử nghiệm Göerli nơi lưu trữ Göerli ETH của bạn và nhấp vào Tiếp tục.
Lưu ý: Hãy chắc chắn 100% rằng bạn đã chọn mạng thử nghiệm Göerli trên MetaMask. Không gửi ETH thực đến mạng thử nghiệm Pyrmont.

Sau đó, một bản Tóm tắt sẽ xuất hiện cho biết số lượng trình xác thực và số lượng Göerli ETH được yêu cầu. Tick vào các ô đó nếu đồng ý rồi nhấn Continue.

nhấp chuột"Initiate All Transactions"nhấp chuột

(bắt đầu tất cả các giao dịch).

Nhiều phiên bản MetaMask sẽ bật lên, mỗi phiên bản thực hiện một yêu cầu giao dịch cho 32 Göerli ETH tới mạng thử nghiệm Pyrmont. Vui lòng xác nhận từng giao dịch.

Khi tất cả các giao dịch được hoàn thành thành công, cổ phần của bạn đã hoàn tất!

Chúc mừng!

Sẽ có một danh sách kiểm tra ở cuối. Có rất nhiều thông tin hữu ích trong đó. bạn có thể xem qua
Kiểm tra trạng thái của khoản tiền gửi xác thực của bạn

Những người xác thực mới tham gia sẽ cần đợi (vài giờ đến vài ngày) để kích hoạt. Bạn có thể kiểm tra trạng thái khóa của mình bằng cách thực hiện theo các bước sau:
Sao chép địa chỉ ví testnet Göerli của bạnhttps://pyrmont.beaconcha.in/
Đi đến:

Tìm kiếm địa chỉ ví của bạn. Khóa của bạn sẽ được hiển thị.

Bây giờ bạn có một chuỗi đèn hiệu đang hoạt động, một nút trình xác nhận và tiền gửi testnet của bạn trước mặt bạn. Khi khoản tiền gửi của bạn được kích hoạt, bạn sẽ bắt đầu làm việc và kiếm tiền. Chúc mừng!
tiêu đề cấp đầu tiên
Prometheus là một hệ thống nguồn mở cung cấp khả năng giám sát và hộp công cụ cảnh báo. Nó chạy như một dịch vụ trên máy chủ Ubuntu của bạn và công việc của nó là tìm nạp dữ liệu. Để biết thêm thông tin xemđây。
đây
Chúng tôi sẽ sử dụng Prometheus để hiển thị chuỗi báo hiệu, dữ liệu thời gian chạy của trình xác thực và dữ liệu dành riêng cho phiên bản.
tạo tài khoản người dùng
$ sudo useradd --no-create-home --shell /bin/false prometheus$ sudo useradd --no-create-home --shell /bin/false node_exporter
Các dịch vụ này được chạy dưới tài khoản. Những tài khoản này không thể đăng nhập vào máy chủ.
Tạo một thư mục
$ sudo mkdir /etc/prometheus$ sudo mkdir /var/lib/prometheus
Thư mục chương trình và dữ liệu.
$ sudo chown -R prometheus:prometheus /etc/prometheus$ sudo chown -R prometheus:prometheus /var/lib/prometheus
Tải xuống phần mềm Prometheus
từtừTrang tải xuống Prometheus
$ cd ~$ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.22.2/prometheus-2.22.2.linux-amd64.tar.gz
Sửa đổi số phiên bản của phiên bản mới nhất. Người dùng Rpi chắc chắn sẽ nhận được các tệp nhị phân ARM.
$ tar xvf prometheus-2.22.2.linux-amd64.tar.gz
Mở kho lưu trữ tar. Nó chứa hai tài liệu nhị phân và một số tài liệu nội dung.
$ sudo cp prometheus-2.22.2.linux-amd64/prometheus /usr/local/bin/$ sudo cp prometheus-2.22.2.linux-amd64/promtool /usr/local/bin/
Sao chép các tệp nhị phân vào các vị trí sau.
$ sudo chown -R prometheus:prometheus /usr/local/bin/prometheus$ sudo chown -R prometheus:prometheus /usr/local/bin/promtool
Đặt quyền sở hữu của thư mục. Tài khoản prometheus sẽ quản lý những thứ này.
$ 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
Sao chép các tài liệu nội dung này vào các vị trí sau.
$ sudo chown -R prometheus:prometheus /etc/prometheus/consoles$ sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
Đặt quyền sở hữu thư mục và tệp (-R). Tài khoản prometheus sẽ quản lý những thứ này.
$ rm -rf prometheus-2.22.2.linux-amd64.tar.gz prometheus-2.22.2.linux-amd64
Xóa kho lưu trữ tải xuống.
Chỉnh sửa tài liệu cấu hình
Prometheus sử dụng tệp cấu hình để biết nơi tìm nạp dữ liệu.
$ sudo nano /etc/prometheus/prometheus.yml
Mở tệp cấu hình YAML để chỉnh sửa.
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"]
Sao chép mã bên dưới vào tài liệu, cẩn thận không thực hiện bất kỳ chỉnh sửa nào khác và thoát để lưu tệp.
$ sudo chown -R prometheus:prometheus /etc/prometheus/prometheus.yml
Đặt quyền sở hữu cho tệp cấu hình. Tài khoản prometheus sẽ có quyền sở hữu này.
$ 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
Cuối cùng, kiểm tra xem máy chủ có đang chạy chính xác không.
level=info ts=2020-11-22T17:24:35.396Z caller=main.go:684 msg="Server is ready to receive web requests."
Đầu ra phải như sau. Nhấn Ctrl + C để thoát.
Đặt Prometheus làm dịch vụ tự khởi động
$ sudo nano /etc/systemd/system/prometheus.service
Tạo một tệp dịch vụ systemd để lưu trữ tệp cấu hình dịch vụ, tệp này sẽ yêu cầu systemd chạy Prometheus với tư cách là người dùng prometheus, đặt tệp cấu hình vào thư mục /etc/prometheus/prometheus.yml và lưu nó vào thư mục /var/lib /prometheus.
[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
Sao chép đoạn mã sau vào tài liệu. Thoát và lưu.
$ sudo systemctl daemon-reload
Tải lại systemd để hiển thị các thay đổi.
$ sudo systemctl start prometheus$ sudo systemctl status prometheus
Sau đó khởi động dịch vụ bằng lệnh bên dưới và kiểm tra trạng thái để đảm bảo dịch vụ đang chạy chính xác.

Đầu ra phải như hình dưới đây."Nếu bạn đã làm mọi thứ đúng, nó sẽ hiện "đang hoạt động (đang chạy)" bằng phông chữ màu xanh lá cây
chữ
$ sudo systemctl enable prometheus
tiêu đề cấp đầu tiên
Bước 11: Cài đặt Node ExporterNode_Exportersự mở rộng. Nếu bạn chỉ định một phiên bản khác bên dưới, bạn có thể tìm thấy nó trongđâyđây
$ cd ~$ curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
Tìm phiên bản ổn định mới nhất. Người dùng Rpi nhớ lấy mã nhị phân ARM.
$ tar xvf node_exporter-1.0.1.linux-amd64.tar.gz
Mở phần mềm đã tải xuống.
$ 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
Sao chép các tệp nhị phân vào thư mục /usr/local/bin và đặt quyền sở hữu nhóm và người dùng cho người dùng node_exporter mà chúng tôi đã tạo trước đó.
$ rm -rf node_exporter-1.0.1.linux-amd64.tar.gz node_exporter-1.0.1.linux-amd64
Xóa các kho lưu trữ đã tải xuống.
Đặt Node Exporter làm dịch vụ tự khởi động
$ sudo nano /etc/systemd/system/node_exporter.service
Tạo một tệp dịch vụ systemd để lưu trữ tệp cấu hình dịch vụ, tệp này sẽ yêu cầu systemd chạy Node_Exporter với tư cách là người dùng node_exporter.
[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
Sao chép đoạn mã sau vào tài liệu. Thoát và lưu.
$ sudo systemctl daemon-reload
Tải lại systemd để hiển thị các thay đổi.
$ sudo systemctl start node_exporter$ sudo systemctl status node_exporter
Sau đó khởi động dịch vụ bằng lệnh bên dưới và kiểm tra trạng thái để đảm bảo dịch vụ đang chạy chính xác.

Đầu ra phải như hình dưới đây."Nếu bạn đã làm mọi thứ đúng, nó sẽ hiện "đang hoạt động (đang chạy)" bằng phông chữ màu xanh lá cây
. Nếu nó không hiển thị, bạn cần quay lại và lặp lại các bước trên để khắc phục sự cố. Nhấn Q để thoát.
$ sudo systemctl enable node_exporter
Cuối cùng, cho phép Node Exporter bắt đầu khởi động hệ thống.
Kiểm tra Prometheus và Node Exporter (tùy chọn):9090 Bạn có thể kiểm tra có chọn lọc chức năng của nó. Ở đó bạn có thể chạy các truy vấn để xem các dữ liệu khác nhau. Ví dụ: bạn có thể thử truy vấn này để xem dung lượng bộ nhớ khả dụng:
http://:9090/new/graph?g0.expr=node_memory_MemFree_bytes&g0.tab=1&g0.stacked=0&g0.range_input=1h
tiêu đề cấp đầu tiên
Bước 12: Cài đặt Grafana
Prometheus là nguồn dữ liệu của chúng tôi và Grafana cung cấp cho chúng tôi chức năng báo cáo dữ liệu bảng điều khiển. Tiếp theo cài đặt Grafana và định cấu hình trang tổng quan.
Chúng tôi sẽ sử dụng kho lưu trữ APT để cài đặt vì điều này sẽ giúp cài đặt và cập nhật dễ dàng hơn. Có thể tìm thấy Grafana trong kho lưu trữ gói chính thức của Ubuntu, nhưng phiên bản đó có thể không phải là mới nhất, vì vậy chúng tôi sẽ sử dụng kho lưu trữ chính thức của Grafana.
$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Tải xuống khóa Grafana GPG bằng wget, sau đó chuyển đầu ra sang khóa apt. Điều này sẽ thêm khóa vào danh sách các khóa đáng tin cậy để cài đặt APT của bạn.
$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
Thêm kho lưu trữ Grafana vào các nguồn của APT.
$ sudo apt update
Xóa bộ đệm apt.
$ apt-cache policy grafana
Xác nhận rằng Grafana đã được cài đặt từ kho lưu trữ.
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
...
Kiểm tra xem phiên bản hiển thị ở trên cùng có khớp với phiên bản khôngđâyđây
$ sudo apt install grafana
Phiên bản mới nhất hiển thị phù hợp. Sau đó tiếp tục cài đặt.
$ sudo systemctl start grafana-server$ sudo systemctl status grafana-server
Khởi động máy chủ Grafana và kiểm tra trạng thái để đảm bảo rằng nó đang chạy chính xác.

Đầu ra sẽ trông như thế này:"Nếu bạn đã làm mọi thứ đúng, nó sẽ hiện "đang hoạt động (đang chạy)" bằng phông chữ màu xanh lá cây
. Nếu nó không hiển thị, bạn cần quay lại và lặp lại các bước trên để khắc phục sự cố. Nhấn Q để thoát.
$ sudo systemctl enable grafana-server
Cho phép Grafana bắt đầu khởi động hệ thống.
Định cấu hình đăng nhập GrafanaThật tuyệt khi có thể làm được điều này! Bây giờ mọi thứ đã được thiết lập và chạy, bạn có thể truy cập http://
:3000/, cửa sổ đăng nhập Grafana sẽ xuất hiện.
Nhập tên người dùng và mật khẩu trong quản trị viên. Hệ thống sẽ yêu cầu bạn thay đổi mật khẩu, vui lòng thực hiện.
Định cấu hình nguồn dữ liệu của Grafana

Hãy cấu hình nguồn dữ liệu. Di chuột đến biểu tượng bánh răng trên thanh menu bên trái, một menu sẽ bật lên - chọn Nguồn dữ liệu.


Nhấp vào Thêm nguồn dữ liệu và chọn Prometheus. Nhập http://localhost:9090 vào URL, sau đó nhấp vào Lưu và kiểm tra.
Nhập bảng điều khiển Grafana
Di chuyển chuột đến biểu tượng + trên thanh menu bên trái, một menu sẽ bật lên, chọn Nhập.Sử dụng mã 13457 để nhập trình xác nhận đơn chính thức của Tekubảng điều khiểnhoặc nhập Ben Edgington với mã 12522

bảng điều khiển

tiêu đề cấp đầu tiên
viết ở cuối
viết ở cuối
Đó là nó! Hy vọng hướng dẫn này có thể giúp bạn.TwitterNếu bạn có bất kỳ phản hồi nào, bạn có thể tìm thấy nó tạiReddithoặc
liên hệ với tôi trênfriends linkNếu bạn thích hướng dẫn này và muốn người khác làm theo, vui lòng sử dụng
Chia sẻ hướng dẫn!
Hỗ trợ: somer.eth
hiện hữu
hiện hữuđâyđâyTìm phiên bản bạn muốn và nhập nó vào
$ 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
. Ví dụ: $ git fetch --tags && git checkout 20.11.0-RC2.
Tài khoản chính thức: Trạm Trung Quốc ETH
Trang web: ethereum.cn


