Mesin Oracle Sistem: Jembatan antara smart contract dan dunia nyata
Dalam ekosistem blockchain, Mesin Oracle memainkan peran yang sangat penting. Ini berfungsi sebagai sistem middleware yang dapat menyediakan informasi eksternal untuk smart contract di dalam blockchain, sehingga menghubungkan dunia blockchain dengan dunia nyata. Fungsi inti Mesin Oracle adalah menyediakan data eksternal yang diperlukan untuk smart contract.
Misalnya, anggaplah kita membuat sebuah smart contract di jaringan Ethereum yang memerlukan data volume transaksi minyak mentah pada hari tertentu. Karena smart contract itu sendiri tidak dapat secara langsung mengakses data dunia nyata yang berada di luar rantai, maka diperlukan Mesin Oracle untuk mewujudkannya. Dalam hal ini, smart contract akan menulis volume transaksi minyak mentah untuk tanggal yang diperlukan ke dalam log acara. Selanjutnya, proses di luar rantai akan memulai untuk memantau dan berlangganan log acara ini. Ketika mendeteksi permintaan dalam transaksi, proses tersebut akan mengajukan transaksi di dalam rantai, memanggil metode terkait dari kontrak, dan mengunggah informasi volume transaksi minyak mentah untuk tanggal yang ditentukan ke dalam smart contract.
Chainlink: Solusi Mesin Oracle Utama
Dalam pasar blockchain saat ini, Chainlink adalah proyek mesin oracle dengan pangsa pasar tertinggi. Sebagai sistem mesin oracle terdesentralisasi, Chainlink bertujuan untuk menyediakan data yang dihasilkan di dunia nyata ke blockchain dengan cara yang paling aman. Di atas prinsip dasar mesin oracle, Chainlink membangun ekosistem yang didorong oleh insentif ekonomi di sekitar token LINK.
Pemicu Mesin Oracle Chainlink perlu dilakukan melalui transfer token LINK. LINK adalah kontrak ERC677 di jaringan Ethereum, dan fungsi Mesin Oracle yang didasarkan pada token LINK ERC677 termasuk dalam mode permintaan/respons.
mekanisme transferAndCall dari token ERC677
Chainlink dalam merancang kerangka Mesin Oracle, pertama-tama mempertimbangkan bagaimana pengguna membayar biaya layanan kepada Mesin Oracle. Karena token ERC20 standar tidak dapat memenuhi kebutuhan "menyediakan layanan setelah pembayaran", 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, memenuhi kebutuhan skenario bisnis Mesin Oracle. Ketika pengguna melakukan transferAndCall, selain transfer ERC20, juga akan memeriksa apakah alamat penerima adalah alamat kontrak; jika ya, maka akan memanggil metode onTokenTransfer di 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 memungut biaya sebelum memberikan layanan.
proses permintaan mesin oracle di blockchain
Ketika konsumen Mesin Oracle menggunakan metode transferAndCall untuk membayar biaya dan meminta layanan, metode onTokenTransfer dalam kontrak Mesin Oracle akan melakukan serangkaian pemeriksaan keamanan. Ini termasuk memverifikasi apakah transfer adalah token LINK, memeriksa apakah panjang data melebihi batas, memverifikasi apakah data mengandung pemilih fungsi yang benar, dan sebagainya.
Setelah pemeriksaan berhasil, kontrak Mesin Oracle akan menghasilkan sebuah requestId yang unik, dan menyimpan informasi terkait permintaan ke dalam peta commitments. Terakhir, kontrak akan memicu sebuah peristiwa OracleRequest, yang berisi data rinci permintaan tersebut.
mekanisme respons node off-chain
Setelah node off-chain mendengarkan peristiwa OracleRequest, node tersebut akan menganalisis informasi spesifik dari permintaan, dan mendapatkan data yang diperlukan melalui pemanggilan API. Selanjutnya, node tersebut akan memanggil metode fulfillOracleRequest dalam kontrak Oracle dengan cara mengajukan transaksi, untuk mengirimkan data ke on-chain.
Metode ini akan melakukan serangkaian verifikasi, termasuk memeriksa apakah pemanggil adalah node yang diotorisasi, memverifikasi keabsahan ID permintaan, dan lain-lain. Setelah verifikasi berhasil, kontrak akan mencatat jumlah token yang dapat diambil, dan menghapus ID permintaan tersebut dari peta komitmen.
Akhirnya, kontrak akan memanggil fungsi callback dari kontrak peminta, untuk mengembalikan data kepada kontrak konsumen. Untuk Mesin Oracle harga, ini biasanya melibatkan pembaruan data harga saat ini.
Penggunaan Sederhana Mesin Oracle Harga
Bagi pengembang, jika hanya perlu menggunakan data harga pasangan koin yang sudah ada, tanpa perlu menentukan URL API sendiri, dapat langsung menggunakan Price Feed yang disediakan oleh Chainlink. Setiap pasangan perdagangan memiliki Price Feed yang independen ( juga disebut sebagai Aggregator ), yang sebenarnya adalah kontrak AggregatorProxy.
Kontrak-kontrak ini biasanya menyediakan beberapa metode query utama berikut:
decimals(): Mengembalikan jumlah desimal dari data harga
description(): Kembalikan nama pasangan perdagangan
version(): Menunjukkan jenis Aggregator yang ditunjuk oleh Proxy
getRoundData(_roundId): Mengambil data harga historis berdasarkan ID putaran
latestRoundData(): Mendapatkan data harga terbaru
Dalam sebagian besar skenario aplikasi, kontrak mungkin hanya perlu membaca harga terbaru, yaitu memanggil metode latestRoundData(). Parameter answer yang dikembalikan oleh metode tersebut adalah harga terbaru.
Perlu dicatat bahwa sebagian besar aplikasi membaca harga token dalam satuan USD. Dalam kasus ini, akurasi data harga biasanya disatukan menjadi 8 desimal, yang menyederhanakan masalah pengolahan akurasi antara token yang berbeda.
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.
13 Suka
Hadiah
13
8
Bagikan
Komentar
0/400
Anon32942
· 07-15 12:05
Mesin Oracle ini saya mengerti! Saya menyimpan sedikit link
Analisis Mendalam Chainlink: Bagaimana Mesin Oracle Menghubungkan Blockchain dengan Dunia Nyata
Mesin Oracle Sistem: Jembatan antara smart contract dan dunia nyata
Dalam ekosistem blockchain, Mesin Oracle memainkan peran yang sangat penting. Ini berfungsi sebagai sistem middleware yang dapat menyediakan informasi eksternal untuk smart contract di dalam blockchain, sehingga menghubungkan dunia blockchain dengan dunia nyata. Fungsi inti Mesin Oracle adalah menyediakan data eksternal yang diperlukan untuk smart contract.
Misalnya, anggaplah kita membuat sebuah smart contract di jaringan Ethereum yang memerlukan data volume transaksi minyak mentah pada hari tertentu. Karena smart contract itu sendiri tidak dapat secara langsung mengakses data dunia nyata yang berada di luar rantai, maka diperlukan Mesin Oracle untuk mewujudkannya. Dalam hal ini, smart contract akan menulis volume transaksi minyak mentah untuk tanggal yang diperlukan ke dalam log acara. Selanjutnya, proses di luar rantai akan memulai untuk memantau dan berlangganan log acara ini. Ketika mendeteksi permintaan dalam transaksi, proses tersebut akan mengajukan transaksi di dalam rantai, memanggil metode terkait dari kontrak, dan mengunggah informasi volume transaksi minyak mentah untuk tanggal yang ditentukan ke dalam smart contract.
Chainlink: Solusi Mesin Oracle Utama
Dalam pasar blockchain saat ini, Chainlink adalah proyek mesin oracle dengan pangsa pasar tertinggi. Sebagai sistem mesin oracle terdesentralisasi, Chainlink bertujuan untuk menyediakan data yang dihasilkan di dunia nyata ke blockchain dengan cara yang paling aman. Di atas prinsip dasar mesin oracle, Chainlink membangun ekosistem yang didorong oleh insentif ekonomi di sekitar token LINK.
Pemicu Mesin Oracle Chainlink perlu dilakukan melalui transfer token LINK. LINK adalah kontrak ERC677 di jaringan Ethereum, dan fungsi Mesin Oracle yang didasarkan pada token LINK ERC677 termasuk dalam mode permintaan/respons.
mekanisme transferAndCall dari token ERC677
Chainlink dalam merancang kerangka Mesin Oracle, pertama-tama mempertimbangkan bagaimana pengguna membayar biaya layanan kepada Mesin Oracle. Karena token ERC20 standar tidak dapat memenuhi kebutuhan "menyediakan layanan setelah pembayaran", 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, memenuhi kebutuhan skenario bisnis Mesin Oracle. Ketika pengguna melakukan transferAndCall, selain transfer ERC20, juga akan memeriksa apakah alamat penerima adalah alamat kontrak; jika ya, maka akan memanggil metode onTokenTransfer di 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 memungut biaya sebelum memberikan layanan.
proses permintaan mesin oracle di blockchain
Ketika konsumen Mesin Oracle menggunakan metode transferAndCall untuk membayar biaya dan meminta layanan, metode onTokenTransfer dalam kontrak Mesin Oracle akan melakukan serangkaian pemeriksaan keamanan. Ini termasuk memverifikasi apakah transfer adalah token LINK, memeriksa apakah panjang data melebihi batas, memverifikasi apakah data mengandung pemilih fungsi yang benar, dan sebagainya.
Setelah pemeriksaan berhasil, kontrak Mesin Oracle akan menghasilkan sebuah requestId yang unik, dan menyimpan informasi terkait permintaan ke dalam peta commitments. Terakhir, kontrak akan memicu sebuah peristiwa OracleRequest, yang berisi data rinci permintaan tersebut.
mekanisme respons node off-chain
Setelah node off-chain mendengarkan peristiwa OracleRequest, node tersebut akan menganalisis informasi spesifik dari permintaan, dan mendapatkan data yang diperlukan melalui pemanggilan API. Selanjutnya, node tersebut akan memanggil metode fulfillOracleRequest dalam kontrak Oracle dengan cara mengajukan transaksi, untuk mengirimkan data ke on-chain.
Metode ini akan melakukan serangkaian verifikasi, termasuk memeriksa apakah pemanggil adalah node yang diotorisasi, memverifikasi keabsahan ID permintaan, dan lain-lain. Setelah verifikasi berhasil, kontrak akan mencatat jumlah token yang dapat diambil, dan menghapus ID permintaan tersebut dari peta komitmen.
Akhirnya, kontrak akan memanggil fungsi callback dari kontrak peminta, untuk mengembalikan data kepada kontrak konsumen. Untuk Mesin Oracle harga, ini biasanya melibatkan pembaruan data harga saat ini.
Penggunaan Sederhana Mesin Oracle Harga
Bagi pengembang, jika hanya perlu menggunakan data harga pasangan koin yang sudah ada, tanpa perlu menentukan URL API sendiri, dapat langsung menggunakan Price Feed yang disediakan oleh Chainlink. Setiap pasangan perdagangan memiliki Price Feed yang independen ( juga disebut sebagai Aggregator ), yang sebenarnya adalah kontrak AggregatorProxy.
Kontrak-kontrak ini biasanya menyediakan beberapa metode query utama berikut:
Dalam sebagian besar skenario aplikasi, kontrak mungkin hanya perlu membaca harga terbaru, yaitu memanggil metode latestRoundData(). Parameter answer yang dikembalikan oleh metode tersebut adalah harga terbaru.
Perlu dicatat bahwa sebagian besar aplikasi membaca harga token dalam satuan USD. Dalam kasus ini, akurasi data harga biasanya disatukan menjadi 8 desimal, yang menyederhanakan masalah pengolahan akurasi antara token yang berbeda.