Analisis teknologi mesin Oracle Chainlink: Jembatan penghubung antara Blockchain dan dunia nyata

robot
Pembuatan abstrak sedang berlangsung

Analisis Teknologi Mesin Oracle: Contoh Chainlink

Dalam ekosistem blockchain, Mesin Oracle memainkan peran infrastruktur yang krusial, yang menyediakan informasi eksternal untuk kontrak pintar di atas rantai. Sebagai jembatan yang menghubungkan kontrak pintar dan dunia luar blockchain, fungsi utama Mesin Oracle adalah menyediakan data untuk kontrak pintar.

Misalnya, anggaplah kita membuat kontrak pintar di jaringan Ethereum yang membutuhkan data volume perdagangan minyak mentah untuk suatu hari. Karena kontrak pintar itu sendiri tidak dapat langsung mendapatkan data dunia nyata yang berada di luar rantai, maka diperlukan Mesin Oracle untuk mewujudkannya. Dalam kasus ini, kontrak pintar akan mencatat volume perdagangan minyak mentah untuk tanggal yang diperlukan ke dalam log peristiwa. Kemudian, proses di luar rantai akan memulai untuk memantau dan berlangganan log peristiwa ini. Ketika mendeteksi permintaan dalam transaksi, proses tersebut akan meng-upload informasi volume perdagangan minyak mentah untuk tanggal yang ditentukan ke dalam kontrak pintar dengan mengajukan transaksi di dalam rantai, memanggil metode terkait dari kontrak.

Mesin Oracle详解系列之 Chainlink(上)

Ringkasan Chainlink

Dalam bidang mesin oracle blockchain, Chainlink memiliki pangsa pasar terbesar. Chainlink adalah proyek mesin oracle terdesentralisasi yang berfungsi untuk menyediakan data dunia nyata ke blockchain dengan cara yang aman dan dapat diandalkan. Chainlink membangun ekosistem siklus yang saling menguntungkan di sekitar token LINK melalui insentif ekonomi, berdasarkan prinsip dasar mesin oracle. Mesin oracle Chainlink perlu diaktifkan melalui transfer token LINK, yang merupakan kontrak ERC677 di jaringan Ethereum. Fungsi mesin oracle yang diselesaikan dengan token LINK ERC677 berada dalam mode permintaan/respons.

Mesin Oracle详解系列之 Chainlink(上)

Mekanisme transferAndCall token ERC677

Chainlink dalam merancang kerangka Mesin Oracle, mempertimbangkan terlebih dahulu bagaimana pengguna membayar biaya kepada Mesin Oracle yang menyediakan layanan. Karena token ERC20 standar tidak dapat memenuhi kebutuhan pembayaran setelah layanan diberikan, Chainlink mengusulkan standar ERC677 yang sesuai untuk skenario layanan Mesin Oracle.

ERC677 menambahkan metode transferAndCall di atas standar ERC20. Metode ini menggabungkan pembayaran dan permintaan layanan menjadi satu, memenuhi kebutuhan skenario bisnis Mesin Oracle. Ketika pengguna melakukan transfer transferAndCall, selain transfer ERC20, juga akan memeriksa apakah alamat penerima adalah alamat kontrak, jika ya, maka akan memanggil metode onTokenTransfer alamat tersebut.

Perlu dicatat bahwa sebelum meminta layanan Mesin Oracle, pengguna perlu memastikan terlebih dahulu apakah Mesin Oracle tersebut dapat dipercaya, karena Mesin Oracle perlu menarik biaya di muka sebelum memberikan layanan.

Mesin Oracle

Penanganan permintaan mesin oracle di blockchain

Saat konsumen Mesin Oracle menggunakan metode transferAndCall untuk membayar biaya dan meminta layanan, metode onTokenTransfer dalam kontrak Mesin Oracle akan terlebih dahulu melakukan serangkaian pemeriksaan keamanan. Pemeriksaan ini termasuk memverifikasi apakah transfer adalah token LINK, menentukan apakah panjang data melebihi batas, memeriksa apakah pemilih fungsi benar, dan lain-lain.

Setelah semua pemeriksaan keamanan berhasil, kontrak akan memanggil metode oracleRequest dari kontrak oracle melalui deleGatecall. Metode ini akan menghasilkan requestId yang unik, mengatur waktu kedaluwarsa, dan menyimpan informasi terkait ke dalam pemetaan commitments. Terakhir, ia akan mengeluarkan sebuah peristiwa OracleRequest, yang berisi data permintaan, dengan menggunakan format pengkodean CBOR (Concise Binary Object Representation).

Mesin Oracle

Respons Node Off-Chain

Setelah node off-chain mendengarkan peristiwa OracleRequest, node tersebut akan menganalisis informasi spesifik dari permintaan tersebut, dan melalui panggilan API jaringan mendapatkan data yang diperlukan. Kemudian, node akan memanggil metode fulfillOracleRequest dari kontrak oracle untuk mengirimkan data ke on-chain.

Metode fulfillOracleRequest akan terlebih dahulu melakukan serangkaian pemeriksaan, termasuk memverifikasi izin pemanggil, memeriksa validitas permintaan, dan lain-lain. Setelah pemeriksaan berhasil, ia akan mencatat jumlah yang dapat ditarik, menghapus permintaan tersebut dari peta commitments, dan memanggil fungsi callback kontrak peminta.

Mesin Oracle

Contoh Mesin Oracle Harga

Sebagai contoh dari metode requestEthereumPrice dalam kontrak TestnetConsumer yang disediakan oleh Chainlink, metode ini mengimplementasikan fungsi untuk mendapatkan harga perdagangan ETH/USD dari API yang ditentukan. Ini mengeluarkan permintaan dengan memanggil metode sendChainlinkRequestTo, yang memicu metode onTokenTransfer dari kontrak oracle.

Node off-chain setelah mendapatkan informasi permintaan, akan memanggil API untuk mendapatkan data harga, kemudian mengirimkan data ke on-chain melalui metode fulfillOracleRequest. Akhirnya, data akan dikembalikan kepada kontrak konsumen melalui fungsi callback.

Bagi pengembang, jika hanya perlu menggunakan harga pasangan koin yang sudah ada, bisa langsung menggunakan Price Feed yang disediakan oleh Chainlink (yaitu AggregatorProxy). Setiap pasangan perdagangan memiliki Price Feed terpisah, yang menyediakan beberapa metode kueri, termasuk mendapatkan presisi harga, deskripsi pasangan perdagangan, data harga terbaru, dan lainnya.

Dalam sebagian besar skenario aplikasi, kontrak mungkin hanya perlu membaca harga terbaru, yaitu dengan memanggil metode latestRoundData. Biasanya, harga pasangan perdagangan yang dihitung dalam USD memiliki presisi yang seragam yaitu 8 desimal, yang menyederhanakan masalah pengolahan presisi token yang berbeda.

Mesin Oracle详解系列之 Chainlink(上)

LINK4.7%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 4
  • Posting ulang
  • Bagikan
Komentar
0/400
SerumSquirtervip
· 07-23 08:30
Data harga memang tidak murah
Lihat AsliBalas0
ShitcoinConnoisseurvip
· 07-21 00:45
link adalah cinta sejati saya, bukan?
Lihat AsliBalas0
MercilessHalalvip
· 07-21 00:30
link必naik 等着hasilkan uang
Lihat AsliBalas0
DeFiDoctorvip
· 07-21 00:27
Ancaman virus data eksternal besar, disarankan Node melakukan pemeriksaan kesehatan secara berkala
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)