Tạo nhà tiên tri Chainlink của bạn trên Ethereum
Trong bài viết trước , tôi đã tạo một hướng dẫn để cài đặt nút Chainlink của bạn, hãy sử dụng nó nếu bạn không có nút đang chạy, vì điều này là cần thiết để triển khai tiên tri.
Bước tiếp theo sẽ là triển khai hợp đồng tiên tri và liên kết nó với nút.
Hợp đồng tiên tri là thành phần trên chuỗi cho dịch vụ tiên tri: nó lắng nghe các yêu cầu dữ liệu từ các hợp đồng khác, chuyển tiếp các truy vấn dữ liệu đến các nút tiên tri và phát dữ liệu được trả về cho hợp đồng khách hàng. Hợp đồng này cũng có thể thực hiện một số tính toán trên các điểm dữ liệu được trả về để tạo ra giá trị tổng hợp mà nó gửi đến hợp đồng yêu cầu.
Chúng tôi cần triển khai một trong các hợp đồng như Oracle.sol hoặc Operator.sol trên chuỗi khối.
Oracle.sol là một loại hợp đồng cũ không hỗ trợ “phản hồi lớn” và do đó sẽ không hỗ trợ phản hồi nhiều từ. Operator.sol là một loại mới hỗ trợ phản hồi lớn nhưng tiêu thụ nhiều gas hơn.
Chọn loại hợp đồng dựa trên nhiệm vụ của bạn: nếu bạn cần nhận được phản hồi ngắn với một biến duy nhất, hãy chọn — Oracle.sol và nếu bạn cần trả lại nhiều giá trị cho hợp đồng — Operator.sol.
Tôi sẽ chỉ cho bạn một ví dụ về cách định cấu hình cả hai tùy chọn. Hãy bắt đầu với Oracle.sol .
Để triển khai hợp đồng, chúng tôi sẽ sử dụng Remix , vâng, bạn cũng có thể sử dụng các công cụ như Hardhat hoặc Truffle , nhưng trong hướng dẫn, tôi sẽ xem xét ví dụ về Remix .
Để triển khai hợp đồng Oracle.sol , hãy sao chép đoạn mã sau:
// SPDX-License-Identifier: MIT
pragma solidity 0.6.6;
import "@chainlink/contracts/src/v0.6/Oracle.sol";
Tiếp theo, chuyển đến tab triển khai và chọn môi trường mong muốn, ví dụ: Nhà cung cấp được tiêm — Metamask . Kết nối với tài khoản sẽ được sử dụng để triển khai và chỉ định mạng được yêu cầu.
Để triển khai nó, hãy chọn hợp đồng Oracle và đặt tham số — địa chỉ của hợp đồng LINK trong mạng được chỉ định ( tìm nó trong tài liệu Chainlink ) và nhấp vào nút giao dịch.

Tiếp theo, chúng ta cần cấp quyền cho ví của nút để ghi lại kết quả của các chức năng tiên tri. Địa chỉ ví của nút nằm trong GUI của nhà điều hành Chainlink ở góc trên bên phải của trang chủ. Sao chép nó, gọi hàm hợp đồng Oracle setFulfillmentPermission , dán nó vào các đối số và đặt giá trị thành true .

Vậy là xong, ở giai đoạn này bạn đã triển khai oracle của mình, bạn chỉ cần kết nối tương tác với nó với một hợp đồng thông minh khác.
Còn hợp đồng Operator.sol thì sao, triển khai nó như thế nào?
OK, để thực hiện việc này, hãy sao chép đoạn mã sau:
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
import "@chainlink/contracts/src/v0.7/Operator.sol";

Sau khi triển khai hợp đồng, như trước đây trong hợp đồng Oracle.sol , chúng ta cần thêm địa chỉ ví nút. Để thực hiện việc này, hãy gọi hàm setAuthorizedSenders và chèn địa chỉ theo định dạng sau vào các đối số: [“address”]

Bạn đã triển khai hợp đồng tiên tri của mình một cách hoàn hảo, trong bài viết tiếp theo tôi sẽ viết về cách hợp đồng thông minh có thể tương tác với tiên tri.