Hướng dẫn Raspi-Node
#
Tại sao lại có hướng dẫn này?Hướng dẫn này dành cho những người muốn cài đặt Raspberry-pi 4 với hệ điều hành Raspberry Pi dành cho máy tính mini Rasp-PI đầy đủ được cài đặt cùng với tất cả các phần mềm cần thiết để thiết lập và chạy Cardano Node trên blockchain. Đây có thể là một thiết lập tốt cho những ai đang tìm cách thực hiện một số thiết bị phát triển nhẹ trên blockchain như tạo NFT chẳng hạn.
caution
Bạn sẽ cần một màn hình (ít nhất là để thiết lập ban đầu vì SSH bị vô hiệu hóa và ufw đang hoạt động) và bạn phải sử dụng Raspberry Pi 4 với 8GB RAM!
#
Tải xuông & Flash#
Cài đặt Raspi-ImagerTải xuống, cài đặt và chạy Raspberry Pi Imager. Cắm ổ USB của bạn vào máy tính.
Hệ điều hành 64 bit Raspberry Pi
Hiện có một hình ảnh 64 bit mà bạn có thể cài đặt, nó không có sẵn trong lựa chọn raspi-imageer. Kiểm tra các hình ảnh trong liên kết dưới đây để lấy phiên bản mới nhất. Nó là một tập tin zip nên chúng ta phải giải nén nó trước khi đưa vào flash.
Tải xuống hệ điều hành Raspberry Pi arm64
Giải nén tệp img và flash nó bằng Raspi-imageer. Cắm nó vào Raspberry Pi 4 của bạn và thực hiện thiết lập ban đầu username=pi
và password=raspberrypi
Bạn có thể tìm tài liệu tại đây https://www.raspberrypi.com/documentation/
Cắm SSD vào một trong các cổng usb3 màu xanh lam. Sau đó lắp HDMI, Bàn phím, Chuột, Ethernet và nguồn điện.
caution
Những chiếc Pi4 đầu tiên được xuất xưởng không khởi động từ USB3.0 theo mặc định, ngày nay Rasp Pi4 mới đã mặc định. Nếu hình ảnh của bạn không khởi động được một trong hai vấn đề phổ biến nhất là phần sụn cũ trên Pi của bạn hoặc bộ điều hợp USB3.0 không tương thích..
info
Tất cả những gì chúng ta thực sự cần làm ở đây là tắt tự động đăng nhập và tạo người dùng ada với các đặc quyền sudo. Sau khi đăng nhập lại, chúng tôi sẽ xóa người dùng Pi mặc định và định cấu hình máy chủ & môi trường cho cardano-node & cardano-cli.
ada
#
Tạo user mới ướng dẫn này cố gắng trở thành người dùng bất khả tri để bạn có thể chọn một tên người dùng khác và bạn sẽ ổn. Tuy nhiên, khi tạo các dịch vụ systemd, bạn sẽ phải chỉnh sửa người dùng. Chú ý!
Mở một terminal sau đó tạo một người dùng mới và thêm nó vào nhóm sudo.
Cập nhật hệ điều hành Raspbery Pi và khởi động lại máy chủ để đảm bảo bạn đang sử dụng nhân mới nhất. Khởi động lại và đăng nhập với tư cách người dùng mới của bạn.
#
Thay đổi mật khẩuBạn có thể thay đổi mật khẩu người dùng bất cứ lúc nào bằng lệnh sau.
caution
Cẩn thận nơi bạn sử dụng sudo. Ví dụ: phát hành 'sudo passwd' sẽ thay đổi mật khẩu gốc. Đây dường như là một nơi mà những người mới sử dụng cảm thấy bối rối.
#
Xóa user piThe pi user is set to auto login and does not require a password for sudo commands. Best to just trash it to avoid any potential security issues.
#
Cài đặt server#
Định cấu hình phần cứngHãy tiết kiệm một chút điện năng, nâng cao bộ điều khiển trên CPU lên một chút và đặt ram GPU thấp nhất có thể.
Dưới đây là một số liên kết để ép xung và kiểm tra tốc độ ổ đĩa của bạn. Nếu bạn có tản nhiệt, bạn có thể an toàn đến 2000. Chỉ cần chú ý đến các khuyến nghị để phù hợp với tốc bạn đã chọn.
- https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md
- https://www.seeedstudio.com/blog/2020/02/12/how-to-safely-overclock-your-raspberry-pi-4-to-2-147ghz/
- https://www.tomshardware.com/how-to/raspberry-pi-4-23-ghz-overclock
- https://dopedesi.com/2020/11/24/upgrade-your-raspberry-pi-4-with-a-nvme-boot-drive-by-alex-ellis-nov-2020/
- Legendary Technology: New Raspberry Pi 4 Bootloader USB
Ép xung, Bộ nhớ & radios
Chỉnh sửa /boot/config.txt.
Chỉ cần dán các bổ sung Pi Pool ở dưới cùng.
sử dụng CTRL + x
để save và y
đồng ý và thoát.
Save và reboot.
#
Định cấu hình Raspbia#
Vô hiệu hóa user root#
Bộ nhớ chia sẻ an toànGắn bộ nhớ được chia sẻ dưới dạng chỉ đọc. Open /etc/fstab.
Thêm dòng này ở dưới cùng, lưu và thoát.
#
Tăng giới hạn tệp đang mở cho $ USERThêm một vài dòng vào cuối /etc/security/limits.conf
Xác nhận nó đã được thêm vào dưới cùng.
#
Tối ưu hóa hiệu suất và bảo mậtcaution
Nếu bạn muốn tắt ipv6 hoặc bật chuyển tiếp, bạn có thể làm dưới đây.
Thêm phần sau vào cuối /etc/sysctl.conf. Save và exit.
Tải các thay đổi của chúng tôi sau khi khởi động
Tạo một tệp mới. Dán, lưu và đóng.
#
ChronyChúng tôi cần đồng bộ hóa thời gian của chúng tôi chính xác nhất có thể. Mở /etc/chrony/chrony.conf
Thay thế nội dung của tệp bằng nội dung bên dưới, Lưu và thoát.
Lưu và thoát
#
Zram swapinfo
Chúng tôi đã phát hiện ra rằng cardano-node có thể sử dụng hoán đổi nén này một cách an toàn trong ram về cơ bản cung cấp cho chúng tôi khoảng 20gb ram. Chúng tôi đã thiết lập các tham số hạt nhân cho zram trongn /etc/sysctl.conf
Swapping trên ổ cúng là chậm, swapping dùng nén RAM nhanh hơn và cung cấp cho chúng tôi một số chi phí trước khi hết bộ nhớ (oom).
Disable Raspbian swapfile.
Lưu và khởi động lại.
#
Cài đặt góiCài đặt các gói cần thiết
#
Cập nhật bảo mật tự độngBật cập nhật bảo mật tự động.
#
Thiết lập Môi trường#
Mô tả: Định cấu hình môi trường cho Cardano Node#
Chọn testnet hoặc mainne.danger
Có một khoản tiền gửi đăng ký 500 ₳ và chi phí đăng ký 5 ₳ khác để bắt đầu một nhóm trên mạng chính. Người dùng lần đầu tiên được khuyến khích sử dụng testnet. Bạn có thể lấy tada với tada faucet link
Tạo các thư mục cho dự án.
Tạo tệp .adaenv, chọn mạng bạn muốn sử dụng và nguồn tệp. Tệp này sẽ chứa các biến/cài đặt để vận hành Pi-Node.. /home/ada/.adaenv
#
Tạo các biến cơ sở và thêm ~/.local/bin to our $PATH 🏃caution
Bạn phải tải lại các tệp môi trường sau khi cập nhật chúng. Tương tự đối với nút cardano, các thay đổi đối với cấu trúc liên kết hoặc tệp cấu hình yêu cầu khởi động lại dịch vụ cardano.
#
Xây dựng LibsodiumĐây là ngã ba Libsodium của IOHK. Nó cần thiết cho bản nhị phân xây dựng động của nút cardano.
Echo thư viện đường dẫn tệp .bashrc và nguồn nó.
Cập nhật bộ đệm liên kết cho các thư viện được chia sẻ và xác nhận.
#
Truy xuất tệp nodeChạy phần sau để sửa đổi $ {NODE _ CONFIG} -config.json và cập nhật TraceBlockFetchDecisions thành "true" và lắng nghe trên tất cả các giao diện với Prometheus Node Exporter.
info
Tip for relay nodes: Có thể giảm mức sử dụng bộ nhớ và cpu bằng cách đặt "TraceMemPool" thành "false" trong {NODE_CONFIG}-config.json. Thao tác này sẽ tắt dữ liệu mempool trong Grafana và gLiveView.sh
#
Truy xuất mã nhị phân aarch64 1.33.1 và cardano-submit-apiinfo
Các mã nhị phân cardano-node, cardano-cli và cardano-submit-api không chính thức có sẵn cho chúng tôi đang được một kỹ sư IOHK xây dựng trong thời gian rảnh rỗi. Cân nhắc việc ủy quyền cho nhóm zw3rk để hỗ trợ phát triển Haskel.
caution
Nếu các tệp nhị phân đã tồn tại (nếu đang cập nhật), bạn sẽ phải xác nhận việc ghi đè các tệp cũ.
Xác nhận các tệp nhị phân nằm trong $PATH của $USER.
#
file khởi động SystemdTạo tệp systemd và tập lệnh khởi động để systemd có thể quản lý nút cardano.
Dán phần sau, lưu và thoát.
Cho phép thực thi tệp dịch vụ nút cardano mới.
Mở /etc/systemd/system/cardano-node.service.
Dán phần sau, Bạn sẽ cần phải chỉnh sửa tên người dùng tại đây nếu bạn chọn không sử dụng ada. Cứu thoát.
Tạo tệp systemd và tập lệnh khởi động để systemd có thể quản lý cardano-submit-api.
Cho phép thực thi tập lệnh dịch vụ cardano-submit-api mới
Tạo /etc/systemd/system/cardano-submit.service.
Dán phần sau, Bạn sẽ cần phải chỉnh sửa tên người dùng tại đây nếu bạn chọn không sử dụng ada. cứu thoát.
Tải lại systemd để nó chọn các tệp dịch vụ mới của chúng tôi.
Hãy thêm một vài hàm vào cuối tệp .adaenv của chúng tôi để làm cho công việc dễ dàng hơn một chút.
Lưu và thoát
Những gì chúng tôi vừa làm là thêm một số chức năng để kiểm soát dịch vụ cardano của chúng tôi và gửi cardano mà không cần phải gõ ra
sudo systemctl enable cardano-node.service
sudo systemctl start cardano-node.service
sudo systemctl stop cardano-node.service
sudo systemctl status cardano-node.service
Bây giờ chúng ta chỉ cần:
- cardano-service enable (enables cardano-node.service auto start at boot)
- cardano-service start (starts cardano-node.service)
- cardano-service stop (stops cardano-node.service)
- cardano-service status (shows the status of cardano-node.service)
Hoặc
- cardano-submit enable (enables cardano-submit.service auto start at boot)
- cardano-submit start (starts cardano-submit.service)
- cardano-submit stop (stops cardano-submit.service)
- cardano-submit status (shows the status of cardano-submit.service)
Dịch vụ gửi sẽ lắng nghe trên cổng 8090. Bạn có thể kết nối ví Nami của mình như bên dưới để tự gửi tx trong cài đặt của Nami.
#
⛓ Đồng bộ chuỗi ⛓Bây giờ bạn đã sẵn sàng để bắt đầu cardano-node. Làm như vậy sẽ bắt đầu quá trình 'đồng bộ hóa chuỗi'. Quá trình này sẽ mất khoảng 48 giờ và thư mục db hiện có kích thước khoảng 13GB. Chúng tôi đã từng phải đồng bộ hóa nó với một nút và sao chép nó từ nút đó sang những nút mới để tiết kiệm thời gian. Tuy nhiên...
#
Tải xuông snapshotTôi đã bắt đầu chụp nhanh thư mục db các nút sao lưu của mình và lưu trữ nó trong một thư mục web. Với dịch vụ này, mất khoảng 20 phút để lấy ảnh chụp nhanh mới nhất và có thể mất một giờ nữa để đồng bộ hóa với đầu chuỗi. Dịch vụ này được cung cấp nguyên trạng. Điều đó phụ thuộc vào bạn. Nếu bạn muốn đồng bộ chuỗi của riêng mình, chỉ cần:
Nếu không, hãy đảm bảo rằng nút của bạn không chạy và xóa thư mục db nếu nó tồn tại và tải xuống db /.
Tải xuống cơ sở dữ liệu
Sau khi wget hoàn tất, hãy bật và khởi động cardano-node
#
gLiveView.shCác tập lệnh của nhà điều hành hiệp hội có một vài công cụ hữu ích để vận hành một nhóm. Chúng tôi không muốn dự án nói chung, mặc dù có một vài kịch bản mà chúng tôi sẽ sử dụng.
Tập lệnh trợ giúp người đieuù hành pool (SPO)
info
Bạn có thể thay đổi cổng cardano-node đang chạy trong tệp .adaenv trong thư mục chính của bạn. Mở tệp chỉnh sửa số cổng. Nạp thay đổi vào shell của bạn và khởi động lại dịch vụ cardano-node.
Thêm một dòng tìm nguồn cung cấp tệp .adaenv của chúng tôi vào đầu tệp env và điều chỉnh một số đường dẫn.
Cho phép thực thi gLiveView.sh.
#
topologyUpdater.shCho đến khi peer to peer được kích hoạt trên mạng, các nhà khai thác mạng cần một cách để có được danh sách các rơle / peer để kết nối. Dịch vụ cập nhật cấu trúc liên kết chạy trong nền với cron. Mỗi giờ kịch bản sẽ chạy và cho dịch vụ biết bạn là người chuyển tiếp và muốn trở thành một phần của mạng. Nó sẽ thêm relay của bạn vào thư mục của nó sau bốn giờ mà bạn sẽ thấy trong các kết nối trong gLiveView.
info
Danh sách được tạo sẽ hiển thị cho bạn khoảng cách & manh mối về vị trí đặt rơ le.
Tải xuống tập lệnh topoUpdater và xem qua nó. Giảm số lượng đồng nghiệp xuống 10 và thêm bất kỳ đồng nghiệp tùy chỉnh nào bạn muốn. Đây là những kết nối gửi đi. Bạn sẽ không thấy bất kỳ giao dịch nào cho đến khi các nút khác bắt đầu kết nối với bạn.
Giảm số MX _ PEERS xuống 10.
Lưu, thoát và làm cho nó có thể thực thi được.
caution
Bạn sẽ không thể thực thi thành công ./topologyUpdater.sh cho đến khi bạn được đồng bộ hóa hoàn toàn đến đầu chuỗi
Tạo một công việc cron sẽ chạy tập lệnh mỗi giờ.
info
Chọn nano khi được nhắc cho trình chỉnh sửa.
Thêm phần sau vào dưới cùng, lưu và thoát.
info
Hình ảnh Pi-Node có mục cron này bị tắt theo mặc định. Bạn có thể kích hoạt nó bằng cách xóa dấu #
Sau bốn giờ, bạn có thể mở $ {NODE _ CONFIG} -topology.json và kiểm tra danh sách các dịch vụ ngang hàng mà dịch vụ đề xuất cho bạn. Loại bỏ bất kỳ thứ gì hơn 7k khoảng cách (hoặc ít hơn). IOHK gần đây đã đề xuất 8 đồng nghiệp. Càng nhiều đồng nghiệp bên ngoài, nó càng sử dụng nhiều tài nguyên hệ thống. Bạn cũng có thể thêm bất kỳ đồng nghiệp nào mà bạn muốn kết nối với thủ công bên trong tập lệnh. Đây là nơi bạn sẽ thêm nhà sản xuất khối của mình hoặc bất kỳ nút nào của bạn bè.
info
Bạn có thể sử dụng gLiveView.sh để xem thời gian ping liên quan đến các ứng dụng ngang hàng trong tệp -topology {NODE _ CONFIG} của mình. Sử dụng Ping để phân giải tên máy chủ thành IP.
Các thay đổi đối với tệp này sẽ có ảnh hưởng khi khởi động lại dịch vụ cardano.
caution
Đừng quên xóa dấu phẩy cuối cùng trong tệp cấu trúc liên kết của bạn!
Trạng thái sẽ hiển thị là đã bật và đang chạy
Sau khi nút của bạn đồng bộ hóa trước kỷ nguyên 208 (kỷ nguyên shelley), bạn có thể sử dụng gLiveView.sh để theo dõi tiến trình đồng bộ hóa của mình.
danger
Có thể mất hơn một giờ để cardano-node đồng bộ hóa với đầu chuỗi. Sử dụng đầu ra ./gliveView.sh, htop và log để xem quá trình. Hãy kiên nhẫn nó sẽ xuất hiện.
#
Prometheus, Node Exporter & GrafanaPrometheus kết nối với phần phụ trợ của các nút cardano và cung cấp các chỉ số qua http. Đến lượt nó, Grafana có thể sử dụng dữ liệu đó để hiển thị đồ thị và tạo cảnh báo. Bảng điều khiển Grafana của chúng tôi sẽ được tạo thành từ dữ liệu từ hệ thống Ubuntu & nút cardano của chúng tôi. Grafana cũng có thể hiển thị dữ liệu từ các nguồn khác, như adapools.org.
info
Bạn có thể kết nốiTelegram bot với Grafana, bot này có thể cảnh báo bạn về sự cố với máy chủ. Dễ dàng hơn nhiều so với việc cố gắng cấu hình cảnh báo qua emai
#
Cài đặt Prometheus & Node Exporter.info
Prometheus có thể quét các điểm cuối http của các máy chủ khác đang chạy trình xuất nút. Có nghĩa là Grafana và Prometheus không cần phải được cài đặt trên lõi và rơle của bạn. Chỉ yêu cầu gói prometheus-node-exportorter nếu bạn muốn xây dựng bảng điều khiển Grafana trung tâm cho nhóm, giải phóng tài nguyên và có một bảng điều khiển duy nhất để giám sát mọi thứ.
Tắt chúng trong systemd ngay bây giờ.
#
Định cấu hình PrometheusMở prometheus.yml.
Thay thế nội dung của tệp bằng.
caution
Thụt lề phải đúng định dạng YAML nếu không Prometheus sẽ không khởi động được.
Lưu và thoát
Khởi động Prometheus.
#
Cài đặt GrafanaThêm khóa gpg của Grafana vào Ubuntu.
Thêm repo ổn định mới nhất vào các nguồn apt.
Cập nhật danh sách gói của bạn và cài đặt Grafana.
Thay đổi cổng Grafana nghe để nó không xung đột với nút cardano.
Khởi động Grafana
#
chức năng bash cardano-monitorMở .adaenv.
Xuống dưới cùng thêm.
Lưu, thoát và source.
Ở đây chúng tôi gắn cả ba dịch vụ dưới một chức năng. Bật Prometheus.service, prometheus-node-exporter.service & grafana-server.service để chạy khi khởi động và khởi động dịch vụ.
caution
Tại thời điểm này, bạn có thể muốn bắt đầu dịch vụ cardano và được đồng bộ hóa trước khi chúng tôi tiếp tục định cấu hình Grafana. Chuyển đến phần đồng bộ chuỗi. Chọn xem bạn muốn đợi 30 giờ hoặc tải xuống ảnh chụp nhanh chuỗi mới nhất. Quay lại đây khi gLiveView.sh cho thấy bạn đang ở đầu chuỗi..
#
Grafana, Nginx proxy_pass & snakeoilHãy đặt Grafana sau Nginx với chứng chỉ tự ký (solidoil). Chứng chỉ được tạo khi chúng tôi cài đặt gói ssl-cert.
Bạn sẽ nhận được cảnh báo từ trình duyệt của mình. Điều này là do chứng chỉ ca không thể theo một chuỗi tin cậy đến một nguồn đáng tin cậy (tập trung). Tuy nhiên, kết nối được mã hóa và sẽ bảo vệ mật khẩu của bạn ở dạng văn bản thuần túy
Thay thế nội dung của tệp bằng bên dưới.
Kiểm tra xem Nginx có hài lòng với các thay đổi của chúng tôi không và khởi động lại nó.
Bây giờ bạn có thể truy cập địa chỉ ip pi-node của mình mà không cần bất kỳ thông số cổng nào, kết nối sẽ được nâng cấp lên SSL / TLS và bạn sẽ nhận được một thông báo đáng sợ (không thực sự đáng sợ chút nào). Tiếp tục đến trang tổng quan của bạn.
#
Định cấu hình GrafanaTrên máy cục bộ của bạn, mở trình duyệt của bạn và nhập địa chỉ ip riêng của các nút của bạn.
Đăng nhập và đặt mật khẩu mới. Tên người dùng và mật khẩu mặc định là admin:admin.
Định cấu hình nguồn dữ liệu
Trong menu dọc bên trái, chuyển đến Configure > Datasources và kich Add data source. chọn Prometheus. Enter http://localhost:9090 ở đó màu xám, mọi thứ khác có thể để mặc định. Ở dưới cùng, lưu & kiểm tra. Bạn sẽ nhận được màu xanh lá cây "Nguồn dữ liệu đang hoạt động" nếu cardano-monitor đã được khởi động. Nếu vì lý do nào đó mà các dịch vụ đó không thể bắt đầu , hãy khởi động lại cardano-service.
Import dashboards
Lưu các tệp json của bảng điều khiển vào máy cục bộ của bạn
Armada Alliance Grafana Dashboards
Trong menu dọc bên trái, chuyển đến Dashboards > Manage và kích Import. Chọn tệp bạn vừa tải xuống / tạo và lưu. Quay lại Dashboards > Manage và nhấp vào trang tổng quan mới của bạn.
#
Định cấu hình poolDataLiveTại đây, bạn có thể sử dụng api poolData để đưa thêm dữ liệu pool vào Grafana như cổ phần và giá cả.
Làm theo hướng dẫn để cài đặt plugin Grafana, định cấu hình nguồn dữ liệu của bạn và nhập trang tổng quan.
#
Các lệnh hữu íchinfo
Xem số lượng zram swap cardano-node đang sử dụng.
Theo dõi kết xuất nhật ký vào nhật ký.
Thực hiện theo đầu ra nhật ký để stdout.
Xem các kết nối mạng với netstat.