Chainlink یکی از پروتکل‌ های اصلی برای اتصال قراردادهای هوشمند با داده‌های خارجی است. اتصال سالیدیتی به chainlink می‌تواند به شما کمک کند تا به راحتی به داده‌ های غیرمتمرکز متصل شوید و از APIهای مختلف استفاده کنید.

مراحل اتصال سالیدیتی به chainlink

در ادامه، مراحل لازم برای اتصال پروژه سالیدیتی خود به Chainlink برای دریافت داده‌های خارجی را بررسی خواهیم کرد.

۱. نصب Chainslink

مطمئن شوید که بسته Chainlink را در پروژه خود نصب کرده‌اید. شما می‌توانید آن را با استفاده از npm نصب کنید:

npm install @chainlink/contracts

آموزش سالیدیتی

۲. ایجاد قرارداد هوشمند

برای استفاده و اتصال سالیدیتی به chainlink در یک قرارداد هوشمند، شما نیاز به استفاده از ‘VRF’ (Verifiable Random Function) یا ‘Oracle’ دارید.

مثال قرارداد با استفاده از Oracle:

// SPDX-License-Identifier: MIT
pragma solidity ^.8.;

import "@chainlink/contracts/src/v.8/ChainlinkClient.sol";
import "@chainlink/contracts/src/v.8/interfaces/ChainlinkRequestInterface.sol";

contract MyContract is ChainlinkClient {
    using Chainlink for Chainlink.Request;

    uint256 public data;

    constructor() {
        setPublicChainlinkToken();
    }

    function requestData(string memory _jobId, address _oracle, uint256 _payment) public {
        Chainlink.Request memory req = buildChainlinkRequest(_jobId, _oracle, this.fulfill.selector);
        sendChainlinkRequestTo(_oracle, req, _payment);
    }

    function fulfill(bytes32 _requestId, uint256 _data) public recordChainlinkFulfillment(_requestId) {
        data = _data;
    }
}

۳. ایجاد درخواست داده

برای دریافت داده از Chainlink، باید درخواست داده‌ای با استفاده از شناسه شغلی (job ID) و آدرس اوراکل (oracle address) ایجاد کنید.

  • Job ID: شناسه‌ای است که نوع داده‌ای که می‌خواهید را مشخص می‌کند.
  • Oracle Address: آدرس اوراکلی است که به آن درخواست می‌دهید.

۴. راه‌ اندازی تست‌ نت

قبل از استقرار قرارداد در شبکه اصلی، بهتر است آن را در یک تست‌نت مانند Kovan یا Rinkeby آزمایش کنید. برای این کار، حتماً مقداری توکن LINK برای پرداخت هزینه‌ها به اوراکل در این شبکه‌ها داشته باشید.

۵. ارتباط با اوراکل

پس از ارسال درخواست، Chainlink شما را با داده‌های مورد نظرتان می‌سازد. حتماً متد fulfill() را پیاده‌سازی کنید تا داده‌ها را دریافت و ذخیره کنید.

نتیجه‌ گیری

با اتصال سالیدیتی به chainlink می‌توانید به سادگی و بدون نیاز به پشتیبانی‌ های اضافی، به داده‌های خارجی دسترسی پیدا کنید. این کار به شما اجازه می‌دهد تا کارایی قراردادهای هوشمند خود را بهبود بخشید و قابلیت‌ های جدیدی را به آن‌ها اضافه کنید.