Hướng dẫn nhanh về cách khởi chạy nút Chainlink

Nov 28 2022
Oracle trong blockchain là gì?
Oracles là nguồn cấp dữ liệu đưa dữ liệu từ các nguồn dữ liệu ngoài chuỗi khối (off-chain) và đưa nó lên chuỗi khối (on-chain) để các hợp đồng thông minh sử dụng. Điều này là cần thiết vì các hợp đồng thông minh chạy trên Ethereum không thể truy cập thông tin được lưu trữ bên ngoài mạng blockchain.
Hình ảnh gốc từ Shubham Dhage

Oracles là nguồn cấp dữ liệu đưa dữ liệu từ các nguồn dữ liệu ngoài chuỗi khối (off-chain) và đưa nó lên chuỗi khối (on-chain) để các hợp đồng thông minh sử dụng. Điều này là cần thiết vì các hợp đồng thông minh chạy trên Ethereum không thể truy cập thông tin được lưu trữ bên ngoài mạng blockchain.

Được rồi, có những loại oracle nào?

Oracles có thể được tập trung và phi tập trung. Oracle tập trung được kiểm soát bởi một người và thường có thể được đặt trên một máy chủ. Các nhà tiên tri phi tập trung bao gồm một số máy chủ được kiểm soát bởi các tổ chức khác nhau, từ đó đưa ra quyết định chung về nhà tiên tri dựa trên sự đồng thuận.

Mạng tiên tri phổ biến nhất là Chainlink . Tôi sẽ cho bạn biết làm thế nào để triển khai tiên tri của bạn. Hãy bắt đầu bằng cách cài đặt nút trong bài viết này.

Mạng tiên tri phi tập trung Chainlink cung cấp đầu vào, đầu ra và tính toán chống giả mạo để hỗ trợ các hợp đồng thông minh nâng cao trên bất kỳ chuỗi khối nào.

Để chạy một nút, bạn có thể sử dụng nút đó trên máy tính của mình để thử nghiệm cục bộ hoặc chạy phiên bản sản xuất trên máy chủ đám mây. Trong hướng dẫn này, tôi sẽ xem xét tùy chọn chạy một nút trên VPS.

Tôi đã tạo trên giọt DigitalOcean và Cụm cơ sở dữ liệu cho PostgreSQL.

Bảng điều khiển DigitalOcean

Đối với một nút, Chainlink đề xuất các yêu cầu hệ thống sau:

  • Tối thiểu: Để bắt đầu chạy một nút Chainlink, bạn sẽ cần một máy có ít nhất 2 lõi và 4 GB RAM.
  • Khuyến nghị: Các yêu cầu để chạy quy mô nút Chainlink là số lượng công việc mà các dịch vụ nút của bạn cũng quy mô. Đối với các nút có hơn 100 công việc, bạn sẽ cần ít nhất 4 lõi và 8GB RAM.
  • Tối thiểu: Ít nhất 2 lõi, RAM 4GB và dung lượng lưu trữ 100 GB.
  • Khuyến nghị: Để hỗ trợ hơn 100 tác vụ, máy chủ cơ sở dữ liệu của bạn sẽ cần ít nhất 4 lõi, 16 GB RAM và 100 GB dung lượng lưu trữ.

curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again

mkdir ~/.chainlink

Tôi sẽ chạy một nút cho Ethereum Mainnet. Do đó, tôi sẽ chỉ định tham số ETH_CHAIN_ID=1 . Để biết ID của ai trong trường hợp của bạn, bạn cần tìm nó trên trang web chainlist.org

Ví dụ cho Ethereum Mainnet

Hãy tạo một tệp môi trường và chỉ định tất cả các biến cần thiết:

echo "ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink/.env

Ngoài ra, chúng tôi cần một ứng dụng khách Ethereum, chúng tôi có thể chạy nó cục bộ hoặc sử dụng các dịch vụ của bên thứ ba như Alchemy , Infura , QuikNode , Chainstack , Moralis .

Tôi thích sử dụng Alchemy hơn vì phí biểu giá thuận tiện với giới hạn cao, khả năng phản hồi nhanh của nút và bảng điều khiển nhiều thông tin.

giá giả kim

Để làm việc với Alchemy, bạn cần tạo một ứng dụng mới bằng cách chọn chuỗi và mạng.

Cửa sổ tạo ứng dụng trong Alchemy

Khi ứng dụng được tạo, các phân tích sẽ có sẵn trong bảng điều khiển. Để tương tác với nút, chúng tôi sẽ cần xuất một liên kết để kết nối qua WebSockets.

bảng điều khiển giả kim

Trong phần cài đặt, bạn cần tìm liên kết: wss://<URL>

Hãy thêm một kết nối đến nút Ethereum vào cấu hình Chainlink:

echo "ETH_URL=wss://<URL>" >> ~/.chainlink/.env

Nếu bạn đang thử nghiệm, bạn có thể thêm ?sslmode=disablevào cuối URL. Tuy nhiên, bạn không bao giờ nên làm điều này trên một nút sản xuất.

Mẫu chuỗi kết nối:

postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE

echo "DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE" >> ~/.chainlink/.env

Phiên bản hiện tại tại thời điểm viết bài là 1.10.0. Xem phiên bản mới nhất hiện tại có tại liên kết .

Nếu nút được bắt đầu từ người dùng gốc, bạn chỉ nên chọn các phiên bản gốc của hình ảnh.

Để thay đổi phiên bản, hãy thay thế tham số bằng phiên bản mong muốn:

hợp đồng thông minh/chainlink:<phiên bản>

Trong trường hợp của tôi, ví dụ, tôi sẽ chạy phiên bản gốc. Để làm điều này, tôi sẽ sử dụng lệnh sau:

cd ~/.chainlink && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n

      
                

Tiếp theo, nút sẽ yêu cầu bạn nhập email và mật khẩu cho người điều hành. Nếu mọi thứ thành công, nút sẽ bắt đầu và chúng ta sẽ thấy một số lượng lớn tin nhắn trong thiết bị đầu cuối.

Để khởi chạy nút sau này, chúng tôi cần lưu các khóa, vì điều này, chúng tôi sẽ dừng nút và thực hiện các thao tác sau:

Lưu E-mail của nhà điều hành:

echo "[email protected]" > ~/.chainlink/.api

echo "password" >> ~/.chainlink/.api

echo "my_wallet_password" > ~/.chainlink/.password

cd ~/.chainlink && docker run --restart=always  -p 6688:6688 -d --name chainlink -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n -p /chainlink/.password

Tuyệt vời, nút đang chạy, bây giờ chúng tôi muốn kết nối với nó từ một thiết bị cục bộ. Để làm điều này, bạn cần tạo một đường hầm SSH tới máy chủ bằng nút.

ssh <USERNAME>@<IP> -L 6688:localhost:6688 -N

Hãy để tab đầu cuối mở và mở và nhấp vào liên kết trong trình duyệt:http://localhost:6688/

Nhập e-mail và mật khẩu của nhà điều hành được chỉ định ở trên.

Giao diện người dùng đăng nhập của nhà điều hành Chainlink

Tuyệt vời, mọi thứ đã được thiết lập thành công!

Giao diện người dùng điều hành Chainlink

Giờ đây, bạn có thể tạo các nhà tiên tri và công việc cho họ.

Trong bài viết tiếp theo , tôi đã tạo một hướng dẫn để triển khai oracle và kết nối nó với node.

Để thiết lập cụ thể hơn với quyền truy cập an toàn vào giao diện người vận hành và hiệu suất của công việc tiên tri, tôi khuyên bạn nên đọc các liên kết sau: