Mesin Oracle adalah infrastruktur dasar yang penting dalam bidang blockchain, yang fungsi utamanya adalah menyediakan data eksternal untuk kontrak pintar. Sebagai jembatan yang menghubungkan kontrak pintar dan dunia nyata, mesin oracle memainkan peran yang tak tergantikan dalam ekosistem blockchain.
Sebagai contoh, jika kita menerapkan kontrak pintar di Ethereum yang perlu mendapatkan volume perdagangan minyak mentah pada tanggal tertentu, karena kontrak itu sendiri tidak dapat mengakses data luar rantai secara langsung, maka kita perlu menggunakan Mesin Oracle. Proses spesifiknya adalah: kontrak pintar mencatat informasi yang diperlukan ke dalam log acara, proses di luar rantai mendengarkan dan merespons permintaan ini, lalu mengirimkan data yang diperlukan ke kontrak pintar melalui transaksi di dalam rantai.
Di antara banyak proyek Mesin Oracle, Chainlink menonjol dengan karakteristik desentralisasi dan pangsa pasar yang signifikan. Chainlink membangun mekanisme insentif ekonomi melalui token LINK, menciptakan ekosistem yang saling menguntungkan. Fitur inti dari sistem ini adalah pola permintaan/respons yang berbasis token LINK.
Chainlink menggunakan standar ERC677, yang merupakan perluasan dari ERC20, menambahkan metode transferAndCall. Metode ini menggabungkan pembayaran dan permintaan layanan, lebih baik memenuhi kebutuhan bisnis Mesin Oracle. Ketika pengguna memanggil transferAndCall untuk melakukan transfer, selain transfer ERC20 biasa, juga akan memicu metode onTokenTransfer dari kontrak penerima.
Dalam kontrak oracle Chainlink, metode onTokenTransfer terlebih dahulu akan melakukan serangkaian pemeriksaan keamanan, termasuk memverifikasi token yang ditransfer, panjang data, dan pemilih fungsi, dll. Setelah pemeriksaan, kontrak akan menghasilkan requestId yang unik, mengatur waktu kedaluwarsa, dan memicu peristiwa OracleRequest. Peristiwa ini mencakup rincian permintaan, seperti format data, alamat callback, dll.
Setelah node off-chain mendengarkan peristiwa OracleRequest, ia akan menganalisis informasi permintaan, mendapatkan data yang diperlukan melalui API, dan kemudian memanggil metode fulfillOracleRequest dari kontrak oracle untuk mengirimkan data ke blockchain. Metode ini akan melakukan serangkaian verifikasi, kemudian memanggil fungsi callback dari kontrak peminta, menyelesaikan seluruh proses layanan mesin oracle.
Untuk pengembang, Chainlink juga menyediakan layanan mesin oracle harga yang lebih mudah. Setiap pasangan perdagangan memiliki Price Feed (yaitu AggregatorProxy) yang sesuai, pengembang dapat langsung memanggil kontrak ini untuk mendapatkan data harga terbaru, tanpa perlu menentukan URL sumber data sendiri. Dalam sebagian besar skenario aplikasi, cukup memanggil metode latestRoundData() untuk mendapatkan harga terbaru.
Perlu dicatat bahwa pasangan perdagangan yang dihargai dalam USD biasanya memiliki akurasi harga yang diseragamkan menjadi 8 digit, yang menyederhanakan proses penanganan harga berbagai token.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Analisis Teknologi Mesin Oracle Chainlink: Jembatan yang Menghubungkan smart contract dengan Dunia Nyata
Analisis Teknologi Mesin Oracle: Contoh Chainlink
Mesin Oracle adalah infrastruktur dasar yang penting dalam bidang blockchain, yang fungsi utamanya adalah menyediakan data eksternal untuk kontrak pintar. Sebagai jembatan yang menghubungkan kontrak pintar dan dunia nyata, mesin oracle memainkan peran yang tak tergantikan dalam ekosistem blockchain.
Sebagai contoh, jika kita menerapkan kontrak pintar di Ethereum yang perlu mendapatkan volume perdagangan minyak mentah pada tanggal tertentu, karena kontrak itu sendiri tidak dapat mengakses data luar rantai secara langsung, maka kita perlu menggunakan Mesin Oracle. Proses spesifiknya adalah: kontrak pintar mencatat informasi yang diperlukan ke dalam log acara, proses di luar rantai mendengarkan dan merespons permintaan ini, lalu mengirimkan data yang diperlukan ke kontrak pintar melalui transaksi di dalam rantai.
Di antara banyak proyek Mesin Oracle, Chainlink menonjol dengan karakteristik desentralisasi dan pangsa pasar yang signifikan. Chainlink membangun mekanisme insentif ekonomi melalui token LINK, menciptakan ekosistem yang saling menguntungkan. Fitur inti dari sistem ini adalah pola permintaan/respons yang berbasis token LINK.
Chainlink menggunakan standar ERC677, yang merupakan perluasan dari ERC20, menambahkan metode transferAndCall. Metode ini menggabungkan pembayaran dan permintaan layanan, lebih baik memenuhi kebutuhan bisnis Mesin Oracle. Ketika pengguna memanggil transferAndCall untuk melakukan transfer, selain transfer ERC20 biasa, juga akan memicu metode onTokenTransfer dari kontrak penerima.
Dalam kontrak oracle Chainlink, metode onTokenTransfer terlebih dahulu akan melakukan serangkaian pemeriksaan keamanan, termasuk memverifikasi token yang ditransfer, panjang data, dan pemilih fungsi, dll. Setelah pemeriksaan, kontrak akan menghasilkan requestId yang unik, mengatur waktu kedaluwarsa, dan memicu peristiwa OracleRequest. Peristiwa ini mencakup rincian permintaan, seperti format data, alamat callback, dll.
Setelah node off-chain mendengarkan peristiwa OracleRequest, ia akan menganalisis informasi permintaan, mendapatkan data yang diperlukan melalui API, dan kemudian memanggil metode fulfillOracleRequest dari kontrak oracle untuk mengirimkan data ke blockchain. Metode ini akan melakukan serangkaian verifikasi, kemudian memanggil fungsi callback dari kontrak peminta, menyelesaikan seluruh proses layanan mesin oracle.
Untuk pengembang, Chainlink juga menyediakan layanan mesin oracle harga yang lebih mudah. Setiap pasangan perdagangan memiliki Price Feed (yaitu AggregatorProxy) yang sesuai, pengembang dapat langsung memanggil kontrak ini untuk mendapatkan data harga terbaru, tanpa perlu menentukan URL sumber data sendiri. Dalam sebagian besar skenario aplikasi, cukup memanggil metode latestRoundData() untuk mendapatkan harga terbaru.
Perlu dicatat bahwa pasangan perdagangan yang dihargai dalam USD biasanya memiliki akurasi harga yang diseragamkan menjadi 8 digit, yang menyederhanakan proses penanganan harga berbagai token.