Dalam ekosistem blockchain, Mesin Oracle berperan sebagai jembatan antara kontrak pintar di dalam rantai dan dunia luar, memainkan peran infrastruktur yang sangat penting. Fungsi inti dari Mesin Oracle adalah menyediakan data eksternal untuk kontrak pintar di blockchain.
Sebagai contoh, jika kita mengdeploy sebuah kontrak pintar di jaringan Ethereum yang memerlukan data volume perdagangan minyak mentah untuk hari tertentu, karena kontrak itu sendiri tidak dapat mengakses data dunia nyata di luar rantai secara langsung, maka diperlukan Mesin Oracle untuk mewujudkannya. Proses spesifiknya adalah: kontrak pintar akan menulis kebutuhan volume perdagangan minyak mentah untuk tanggal yang diinginkan ke dalam log peristiwa, kemudian proses di luar rantai akan mendengarkan dan berlangganan peristiwa ini. Ketika permintaan terkait terdeteksi, proses tersebut akan memanggil metode tertentu dari kontrak dengan cara mengajukan transaksi di dalam rantai, untuk mengupload informasi volume perdagangan minyak mentah untuk tanggal yang ditentukan ke dalam kontrak pintar.
Di antara banyak proyek mesin oracle, sebuah proyek mesin oracle terdesentralisasi menempati peringkat teratas dalam pangsa pasar. Proyek ini berkomitmen untuk menyediakan data dunia nyata ke blockchain dengan cara yang paling aman. Selain mewujudkan prinsip dasar mesin oracle, proyek ini juga membangun ekosistem siklus baik di sekitar token asli, memastikan keberlanjutan sistem melalui insentif ekonomi. Dalam sistem ini, pemicu mesin oracle perlu diwujudkan melalui transfer token asli, dan fungsi mesin oracle yang berbasis token ini termasuk dalam mode permintaan/respons.
Proyek ini menggunakan standar token homogen yang diperbaiki, yang menambahkan metode transferAndCall di atas standar ERC20. Metode ini dengan cerdik menggabungkan pembayaran dan permintaan layanan menjadi satu, dengan baik memenuhi kebutuhan skenario bisnis mesin oracle. Ketika pengguna memanggil transferAndCall untuk melakukan transfer, selain transfer ERC20 biasa, juga akan memeriksa apakah alamat penerima adalah alamat kontrak, jika ya, maka akan memanggil metode onTokenTransfer dari alamat tersebut.
Dalam kontrak Mesin Oracle, metode onTokenTransfer pertama-tama akan memverifikasi apakah transfer menggunakan token yang ditentukan, kemudian memeriksa keabsahan data permintaan. Setelah serangkaian pemeriksaan keamanan, kontrak akan menghasilkan ID permintaan yang unik, mengatur waktu kedaluwarsa, dan merekam informasi terkait dalam pemetaan commitments. Yang paling penting, kontrak akan mengeluarkan sebuah acara yang berisi data permintaan, yang dienkode dalam format objek biner ringan.
Node off-chain setelah menerima permintaan, akan memanggil metode fulfillOracleRequest untuk merespons permintaan tersebut. Metode ini pertama-tama akan melakukan serangkaian verifikasi, termasuk memeriksa otorisasi pemanggil, validitas permintaan, dan lain-lain. Setelah verifikasi berhasil, jumlah token yang dapat ditarik akan dicatat, dan ID permintaan tersebut akan dihapus dari peta commitments. Terakhir, jika sisa gas cukup, fungsi callback dari kontrak pemohon akan dipanggil.
Dalam fungsi callback, akan memverifikasi kembali validitas permintaan dan memproses data yang dikembalikan berdasarkan kebutuhan spesifik. Misalnya, untuk mesin oracle harga, mungkin akan memperbarui data harga saat ini.
Bagi pengembang, suatu proyek mesin oracle juga menyediakan antarmuka pencarian harga yang lebih mudah. Setiap pasangan perdagangan memiliki agregator harga independen, pengembang dapat langsung memanggil antarmuka ini untuk mendapatkan data harga terbaru, tanpa perlu menentukan URL sumber data sendiri. Antarmuka ini biasanya mencakup fungsi seperti ketepatan pencarian, deskripsi, versi, data historis, dan data terbaru, yang secara signifikan menyederhanakan proses pengembangan.
Perlu dicatat bahwa dalam sebagian besar skenario aplikasi, kontrak mungkin hanya perlu membaca harga terbaru. Selain itu, untuk pasangan perdagangan yang dinyatakan dalam dolar AS, akurasi harga biasanya diseragamkan menjadi 8 digit, yang menghindari masalah dalam menangani perbedaan akurasi token yang berbeda.
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.
8 Suka
Hadiah
8
5
Bagikan
Komentar
0/400
StableNomad
· 07-05 02:11
Mesin Oracle benar-benar tak terpisahkan
Lihat AsliBalas0
PositionPhobia
· 07-04 19:56
Jika kamu ingin naik atau turun, aku akan terpeleset dulu
Mesin Oracle teknologi: jembatan antara smart contract dan dunia nyata
Analisis Kedalaman Teknologi Mesin Oracle
Dalam ekosistem blockchain, Mesin Oracle berperan sebagai jembatan antara kontrak pintar di dalam rantai dan dunia luar, memainkan peran infrastruktur yang sangat penting. Fungsi inti dari Mesin Oracle adalah menyediakan data eksternal untuk kontrak pintar di blockchain.
Sebagai contoh, jika kita mengdeploy sebuah kontrak pintar di jaringan Ethereum yang memerlukan data volume perdagangan minyak mentah untuk hari tertentu, karena kontrak itu sendiri tidak dapat mengakses data dunia nyata di luar rantai secara langsung, maka diperlukan Mesin Oracle untuk mewujudkannya. Proses spesifiknya adalah: kontrak pintar akan menulis kebutuhan volume perdagangan minyak mentah untuk tanggal yang diinginkan ke dalam log peristiwa, kemudian proses di luar rantai akan mendengarkan dan berlangganan peristiwa ini. Ketika permintaan terkait terdeteksi, proses tersebut akan memanggil metode tertentu dari kontrak dengan cara mengajukan transaksi di dalam rantai, untuk mengupload informasi volume perdagangan minyak mentah untuk tanggal yang ditentukan ke dalam kontrak pintar.
Di antara banyak proyek mesin oracle, sebuah proyek mesin oracle terdesentralisasi menempati peringkat teratas dalam pangsa pasar. Proyek ini berkomitmen untuk menyediakan data dunia nyata ke blockchain dengan cara yang paling aman. Selain mewujudkan prinsip dasar mesin oracle, proyek ini juga membangun ekosistem siklus baik di sekitar token asli, memastikan keberlanjutan sistem melalui insentif ekonomi. Dalam sistem ini, pemicu mesin oracle perlu diwujudkan melalui transfer token asli, dan fungsi mesin oracle yang berbasis token ini termasuk dalam mode permintaan/respons.
Proyek ini menggunakan standar token homogen yang diperbaiki, yang menambahkan metode transferAndCall di atas standar ERC20. Metode ini dengan cerdik menggabungkan pembayaran dan permintaan layanan menjadi satu, dengan baik memenuhi kebutuhan skenario bisnis mesin oracle. Ketika pengguna memanggil transferAndCall untuk melakukan transfer, selain transfer ERC20 biasa, juga akan memeriksa apakah alamat penerima adalah alamat kontrak, jika ya, maka akan memanggil metode onTokenTransfer dari alamat tersebut.
Dalam kontrak Mesin Oracle, metode onTokenTransfer pertama-tama akan memverifikasi apakah transfer menggunakan token yang ditentukan, kemudian memeriksa keabsahan data permintaan. Setelah serangkaian pemeriksaan keamanan, kontrak akan menghasilkan ID permintaan yang unik, mengatur waktu kedaluwarsa, dan merekam informasi terkait dalam pemetaan commitments. Yang paling penting, kontrak akan mengeluarkan sebuah acara yang berisi data permintaan, yang dienkode dalam format objek biner ringan.
Node off-chain setelah menerima permintaan, akan memanggil metode fulfillOracleRequest untuk merespons permintaan tersebut. Metode ini pertama-tama akan melakukan serangkaian verifikasi, termasuk memeriksa otorisasi pemanggil, validitas permintaan, dan lain-lain. Setelah verifikasi berhasil, jumlah token yang dapat ditarik akan dicatat, dan ID permintaan tersebut akan dihapus dari peta commitments. Terakhir, jika sisa gas cukup, fungsi callback dari kontrak pemohon akan dipanggil.
Dalam fungsi callback, akan memverifikasi kembali validitas permintaan dan memproses data yang dikembalikan berdasarkan kebutuhan spesifik. Misalnya, untuk mesin oracle harga, mungkin akan memperbarui data harga saat ini.
Bagi pengembang, suatu proyek mesin oracle juga menyediakan antarmuka pencarian harga yang lebih mudah. Setiap pasangan perdagangan memiliki agregator harga independen, pengembang dapat langsung memanggil antarmuka ini untuk mendapatkan data harga terbaru, tanpa perlu menentukan URL sumber data sendiri. Antarmuka ini biasanya mencakup fungsi seperti ketepatan pencarian, deskripsi, versi, data historis, dan data terbaru, yang secara signifikan menyederhanakan proses pengembangan.
Perlu dicatat bahwa dalam sebagian besar skenario aplikasi, kontrak mungkin hanya perlu membaca harga terbaru. Selain itu, untuk pasangan perdagangan yang dinyatakan dalam dolar AS, akurasi harga biasanya diseragamkan menjadi 8 digit, yang menghindari masalah dalam menangani perbedaan akurasi token yang berbeda.