Hello cả nhà, mình là người mới và mình cũng là một chàng sinh viên IT đam mê lĩnh vực blockchain. Hôm nay mình sẽ viết một bài viết hướng dẫn mọi người cách chạy node Etherium với lighthouse và reth thông qua việc sử dụng Docker nhé.

Chuẩn bị :

- Để có thể chạy được một node Etherium với lighthouse và reth bạn phải chuẩn bị cho mình một môi trường Linux nhé!
Ở đây mình sử dụng wsl một môi trường ảo Linux trên Window cho phép mình tương tác với nhân kernel trực tiếp trên máy tính Window nhé cả nhà!
- Bên cạnh đó các bạn cài đặt Rust và Docker, các gói thư viện cần thiết điều này là bắt buộc rồi nè!
Các bạn có thể kiểm tra phiên bản Rust và Docker của mình theo các câu lệnh sau: - rustc --version - docker --version

Bắt đầu nào :

Đầu tiên các bạn tải ETH Docker về máy nhé:
"cd ~ && git clone https://github.com/eth-educators/eth-docker.git"
Tiếp theo mình sẽ tạo một client "ethuser" để chạy node thay vì dùng quyền root nhé! Thao tác như sau:
"adduser ethuser" "usermod -aG sudo ethuser"
Chúng ta chuyển qua client "ethuser" để tiếp tục nhé!
"su - ethuser"
Tiếp tục chúng ta tải các phụ thuộc cần thiết của Eth Docker nhé!
"./ethd install"
Sau khi tải xong terminal sẽ hiển thị như sau:
Hình ảnh sau khi tải thành công các phụ thuộc cần thiết cho Eth Docker
Hình ảnh sau khi tải thành công các phụ thuộc cần thiết cho Eth Docker
Tiếp theo chúng ta chạy lệnh sau để cập nhật lại terminal để có thể sử dụng ethd cli:
"source ~/.profile"
Đây là phiên bản ethd hiện tại:
Phiên bản Eth Docker v2.9.2.0
Phiên bản Eth Docker v2.9.2.0
Tiếp theo chúng ta chạy lệnh sau để cấu hình chạy Eth Docker:
"./ethd config"
Xuất hiện thư mục chọn Network muốn chạy node
Xuất hiện thư mục chọn Network muốn chạy node
Tiếp theo chọn loại node để deploy
Ở đây mình chạy Ethereum node đầy đủ nhé
Ở đây mình chạy Ethereum node đầy đủ nhé
Tiếp theo chọn Lighthouse nhé cả nhà!
Mình chọn Lighthouse vì theo mình biết nó khá là nhẹ
Mình chọn Lighthouse vì theo mình biết nó khá là nhẹ
Bây giờ chọn Reth nhé !
Tất nhiên là Reth rồi vì nó code bằng Rust . hết
Tất nhiên là Reth rồi vì nó code bằng Rust . hết
Từ đây trở đi các bạn cứ để mặc định nhé!
URL for CL checkpoint để nguyên nhé cả nhà
URL for CL checkpoint để nguyên nhé cả nhà
À các bạn nhớ add địa chỉ ví của mình để nhận phần thưởng khi chạy node nhé (Ethereum thì không có phần thưởng đâu nhé, mình thị phạm cho mọi người xem vui thui).
Đây là kết quả khi đã điền xong thông tin
Đây là kết quả khi đã điền xong thông tin
Tiếp theo chúng ta chạy lệnh ssau để có thể chạy node dựa vào Eth Docker nhé!
"./ethd up"
Hình ảnh khi chạy node thành công
Hình ảnh khi chạy node thành công
Như vậy là chúng ta có thể khởi chạy node Ethereum dựa trên docker thành công rồi nhá!
Lưu ý: trong quá trình mình chạy node có 2 lỗi xảy ra:
- Trong khi chạy "./ethd install" mình gặp lỗi và phải tự cài đặt thêm một thư viện 1 cách thủ công như sau: "sudo apt-get install -y curl jq gosu"
- Trong khi chạy lệnh "./ethd up" mình gặp lỗi : "Error response from daemon: path / is mounted on / but it is not a shared or slave mount"
Mình đã giải quyết nó như sau các bạn có thể tham khảo nhé:
+ Đầu tiên mình sẽ chạy lệnh "mount | grep ' / '" để kiểm tra mount hiện tại.
+ Sau đó mình chạy lệnh "sudo nano /etc/fstab" để mở fstab lên và thêm vào "UUID=<YOUR_UUID> / ext4 rw,relatime,discard,errors=remount-ro,data=ordered,shared 0 1", sau đó lưu lại.
+ Tiếp tục thử unmount và mount lại: "sudo mount -o remount /".
+ Khởi động lại Docker daemon: "sudo systemctl restart docker"
Hy vọng bài viết này đã giúp các bạn có thể hiểu thêm và dễ dàng khởi chạy một Ethereum Node bằng Ethereum Docker nhé!