Buat oracle Chainlink Anda di Ethereum

Nov 28 2022
Pada artikel sebelumnya, saya membuat panduan untuk menginstal node Chainlink Anda, gunakan jika Anda tidak memiliki node yang sedang berjalan, karena ini diperlukan untuk penerapan oracle. Langkah selanjutnya adalah menerapkan kontrak oracle dan menautkannya ke node.
Foto oleh fabio di Unsplash

Pada artikel sebelumnya , saya membuat panduan untuk menginstal node Chainlink Anda, gunakan jika Anda tidak memiliki node yang sedang berjalan, karena ini diperlukan untuk penerapan oracle.

Langkah selanjutnya adalah menerapkan kontrak oracle dan menautkannya ke node.

Kontrak oracle adalah komponen on-chain untuk layanan oracle: ia mendengarkan permintaan data dari kontrak lain, menyampaikan kueri data ke node oracle, dan menyiarkan data yang dikembalikan ke kontrak klien. Kontrak ini juga dapat melakukan beberapa perhitungan pada poin data yang dikembalikan untuk menghasilkan nilai agregat yang dikirimkan ke kontrak yang meminta.

Kita perlu menggunakan salah satu kontrak seperti Oracle.sol atau Operator.sol di blockchain.

Oracle.sol adalah jenis kontrak lama yang tidak mendukung "respons besar" dan karenanya tidak mendukung respons multi-kata. Operator.sol adalah tipe baru yang mendukung respons besar tetapi mengonsumsi lebih banyak bahan bakar.

Pilih jenis kontrak berdasarkan tugas Anda: jika Anda perlu mendapatkan respons singkat dengan satu variabel, pilih — Oracle.sol , dan jika Anda perlu mengembalikan beberapa nilai ke kontrak — Operator.sol.

Saya akan menunjukkan kepada Anda contoh cara mengonfigurasi kedua opsi. Mari kita mulai dengan Oracle.sol .

Untuk men-deploy contract kita akan menggunakan Remix , ya bisa juga menggunakan tools seperti Hardhat atau Truffle , tapi di panduan ini saya akan melihat contoh Remix .

Untuk menerapkan kontrak Oracle.sol , salin kode berikut:

// SPDX-License-Identifier: MIT
pragma solidity 0.6.6;
import "@chainlink/contracts/src/v0.6/Oracle.sol";

Selanjutnya, buka tab deployment, dan pilih lingkungan yang diinginkan, misalnya: Injected provider — Metamask . Sambungkan ke akun yang akan digunakan untuk penerapan dan tentukan jaringan yang diperlukan.

Untuk menerapkannya, pilih kontrak Oracle dan atur parameternya — alamat LINK kontrak di jaringan yang ditentukan ( temukan di dokumentasi Chainlink ) dan klik tombol transaksi.

Penerapan kontrak Oracle.sol di Remix IDE

Selanjutnya, kita perlu memberikan izin ke dompet node kita untuk merekam hasil fungsi oracle. Alamat dompet node terletak di GUI Operator Chainlink di sudut kanan atas halaman beranda. Salin, panggil fungsi kontrak Oracle setFulfillmentPermission , rekatkan ke dalam argumen dan atur nilainya menjadi true .

Memberikan izin kepada node untuk merekam hasil

Itu saja, pada tahap ini Anda telah menerapkan oracle Anda, Anda hanya perlu menghubungkan interaksi dengannya ke kontrak pintar lainnya.

Dan bagaimana dengan kontrak Operator.sol , bagaimana cara menyebarkannya?

OK, untuk melakukan ini, salin kode berikut:

// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
import "@chainlink/contracts/src/v0.7/Operator.sol";

Penyebaran kontrak Operator.sol di Remix IDE

Setelah menerapkan kontrak, seperti sebelumnya dalam kontrak Oracle.sol , kita perlu menambahkan alamat dompet node. Untuk melakukannya, panggil fungsi setAuthorizedSenders dan masukkan alamat dalam format berikut ke dalam argumen: [“address”]

Memberikan izin kepada node untuk merekam hasil

Anda telah menerapkan kontrak oracle Anda dengan sempurna, di artikel selanjutnya saya akan menulis tentang bagaimana kontrak pintar dapat berinteraksi dengan oracle.