Pentingnya Sistem Mesin Oracle dalam Blockchain dan Mekanisme Implementasi Chainlink
Mesin Oracle adalah infrastruktur dasar yang penting dalam bidang Blockchain, yang dapat menyediakan informasi eksternal untuk kontrak pintar di dalam rantai. Sebagai middleware yang menghubungkan kontrak pintar dan dunia luar Blockchain, Mesin Oracle memainkan peran yang sangat penting, dengan fungsi utama untuk menyediakan data bagi kontrak pintar di dalam Blockchain.
Sebagai contoh, jika kita menerapkan sebuah kontrak pintar di jaringan Ethereum yang memerlukan data volume perdagangan minyak mentah pada suatu hari tertentu. Karena kontrak pintar itu sendiri tidak dapat mengakses data dunia nyata di luar rantai secara langsung, maka perlu menggunakan Mesin Oracle untuk mewujudkan fungsi ini. Dalam kasus ini, kontrak pintar akan mencatat volume perdagangan minyak mentah pada tanggal yang diperlukan ke dalam log peristiwa. Selanjutnya, proses di luar rantai akan dimulai untuk memantau dan berlangganan log peristiwa ini. Ketika mendeteksi permintaan dalam transaksi, proses tersebut akan meng-upload informasi volume perdagangan minyak mentah pada tanggal yang ditentukan ke dalam kontrak pintar dengan mengajukan transaksi di dalam rantai dan memanggil metode terkait dari kontrak.
Chainlink adalah proyek Mesin Oracle dengan pangsa pasar terbesar di bidang Blockchain saat ini. Ini adalah sistem Mesin Oracle terdesentralisasi yang dirancang untuk menyediakan data yang dihasilkan di dunia nyata kepada Blockchain dengan cara yang paling aman. Chainlink membangun ekosistem yang didorong oleh insentif ekonomi melalui token LINK berdasarkan prinsip dasar Mesin Oracle. Mesin Oracle Chainlink perlu dipicu melalui transfer token LINK, di mana LINK adalah kontrak ERC677 di jaringan Ethereum. Fungsionalitas Mesin Oracle yang diimplementasikan berdasarkan token LINK ERC677 termasuk dalam mode permintaan/respons.
Standar token ERC677 adalah usulan Chainlink untuk memenuhi kebutuhan layanan Mesin Oracle. Ini menambahkan metode transferAndCall di atas standar ERC20, menggabungkan pembayaran dan permintaan layanan menjadi satu. Ketika pengguna melakukan transfer melalui transferAndCall, selain fungsi transfer ERC20, juga akan memeriksa apakah alamat penerima adalah alamat kontrak, jika ya, maka memanggil metode onTokenTransfer di alamat tersebut.
Dalam implementasi Chainlink, ketika konsumen mesin oracle menggunakan metode transferAndCall untuk membayar biaya dan meminta layanan, metode onTokenTransfer dari kontrak oracle akan melakukan serangkaian pemeriksaan keamanan terlebih dahulu. Ini termasuk memverifikasi apakah transfer adalah token LINK, memeriksa apakah panjang data melebihi batas, serta memverifikasi pemilih fungsi, dan lain-lain. Setelah pemeriksaan berhasil, metode oracleRequest dari kontrak oracle saat ini akan dipanggil melalui deleGatecall.
Metode oracleRequest akan menghasilkan sebuah requestId unik, mengatur waktu kedaluwarsa, dan menambahkan informasi terkait ke dalam pemetaan commitments. Yang paling penting, ia akan mengeluarkan sebuah peristiwa OracleRequest, yang berisi data permintaan, menggunakan representasi objek biner ringkas CBOR( dan pengkodean format ).
Node di luar rantai akan mendengarkan peristiwa OracleRequest ini. Ketika permintaan baru terdeteksi, node akan menguraikan informasi dalam peristiwa tersebut, mendapatkan data yang diperlukan melalui panggilan API, dan kemudian mengirimkan data ke dalam rantai dengan memanggil metode fulfillOracleRequest dari kontrak oracle. Metode ini akan melakukan serangkaian verifikasi, dan kemudian memanggil fungsi callback dari kontrak peminta, mengembalikan hasilnya kepada kontrak konsumen.
Bagi pengembang, jika hanya perlu menggunakan harga pasangan koin yang sudah ada, dapat langsung menggunakan Price Feed yang disediakan oleh Chainlink ( yang juga disebut sebagai Aggregator ). Setiap pasangan perdagangan memiliki Price Feed tersendiri, yang sebenarnya adalah kontrak AggregatorProxy. Kontrak-kontrak ini menyediakan beberapa metode kueri, termasuk mendapatkan akurasi harga, deskripsi, versi, dan data harga terbaru, dll. Dalam sebagian besar skenario aplikasi, kontrak mungkin hanya perlu membaca harga terbaru, yaitu memanggil metode latestRoundData ().
Perlu dicatat bahwa pasangan perdagangan yang dihargai dalam USD biasanya memiliki akurasi harga yang disatukan menjadi 8 digit, yang menyederhanakan masalah penanganan akurasi antar token yang berbeda. Desain ini memungkinkan pengembang untuk lebih mudah menggunakan data harga waktu nyata dalam kontrak pintar, tanpa perlu menangani panggilan API yang rumit dan konversi format data.
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.
13 Suka
Hadiah
13
7
Bagikan
Komentar
0/400
DegenWhisperer
· 9jam yang lalu
Lian Ke sangat bagus, hanya saja agak mahal.
Lihat AsliBalas0
MidnightSnapHunter
· 9jam yang lalu
Chainlink cukup dapat diandalkan ya
Lihat AsliBalas0
HalfPositionRunner
· 9jam yang lalu
Merasa link masih harus naik
Lihat AsliBalas0
GweiTooHigh
· 9jam yang lalu
link sudah naik lagi, kan? Tidak perlu menebak.
Lihat AsliBalas0
SelfRugger
· 9jam yang lalu
link bull canggih Beli saja sudah selesai
Lihat AsliBalas0
GweiWatcher
· 9jam yang lalu
Sungguh enak, harga feed ini memang sangat berguna.
Chainlink: Mesin Oracle bagaimana menghubungkan Blockchain dengan dunia nyata
Pentingnya Sistem Mesin Oracle dalam Blockchain dan Mekanisme Implementasi Chainlink
Mesin Oracle adalah infrastruktur dasar yang penting dalam bidang Blockchain, yang dapat menyediakan informasi eksternal untuk kontrak pintar di dalam rantai. Sebagai middleware yang menghubungkan kontrak pintar dan dunia luar Blockchain, Mesin Oracle memainkan peran yang sangat penting, dengan fungsi utama untuk menyediakan data bagi kontrak pintar di dalam Blockchain.
Sebagai contoh, jika kita menerapkan sebuah kontrak pintar di jaringan Ethereum yang memerlukan data volume perdagangan minyak mentah pada suatu hari tertentu. Karena kontrak pintar itu sendiri tidak dapat mengakses data dunia nyata di luar rantai secara langsung, maka perlu menggunakan Mesin Oracle untuk mewujudkan fungsi ini. Dalam kasus ini, kontrak pintar akan mencatat volume perdagangan minyak mentah pada tanggal yang diperlukan ke dalam log peristiwa. Selanjutnya, proses di luar rantai akan dimulai untuk memantau dan berlangganan log peristiwa ini. Ketika mendeteksi permintaan dalam transaksi, proses tersebut akan meng-upload informasi volume perdagangan minyak mentah pada tanggal yang ditentukan ke dalam kontrak pintar dengan mengajukan transaksi di dalam rantai dan memanggil metode terkait dari kontrak.
Chainlink adalah proyek Mesin Oracle dengan pangsa pasar terbesar di bidang Blockchain saat ini. Ini adalah sistem Mesin Oracle terdesentralisasi yang dirancang untuk menyediakan data yang dihasilkan di dunia nyata kepada Blockchain dengan cara yang paling aman. Chainlink membangun ekosistem yang didorong oleh insentif ekonomi melalui token LINK berdasarkan prinsip dasar Mesin Oracle. Mesin Oracle Chainlink perlu dipicu melalui transfer token LINK, di mana LINK adalah kontrak ERC677 di jaringan Ethereum. Fungsionalitas Mesin Oracle yang diimplementasikan berdasarkan token LINK ERC677 termasuk dalam mode permintaan/respons.
Standar token ERC677 adalah usulan Chainlink untuk memenuhi kebutuhan layanan Mesin Oracle. Ini menambahkan metode transferAndCall di atas standar ERC20, menggabungkan pembayaran dan permintaan layanan menjadi satu. Ketika pengguna melakukan transfer melalui transferAndCall, selain fungsi transfer ERC20, juga akan memeriksa apakah alamat penerima adalah alamat kontrak, jika ya, maka memanggil metode onTokenTransfer di alamat tersebut.
Dalam implementasi Chainlink, ketika konsumen mesin oracle menggunakan metode transferAndCall untuk membayar biaya dan meminta layanan, metode onTokenTransfer dari kontrak oracle akan melakukan serangkaian pemeriksaan keamanan terlebih dahulu. Ini termasuk memverifikasi apakah transfer adalah token LINK, memeriksa apakah panjang data melebihi batas, serta memverifikasi pemilih fungsi, dan lain-lain. Setelah pemeriksaan berhasil, metode oracleRequest dari kontrak oracle saat ini akan dipanggil melalui deleGatecall.
Metode oracleRequest akan menghasilkan sebuah requestId unik, mengatur waktu kedaluwarsa, dan menambahkan informasi terkait ke dalam pemetaan commitments. Yang paling penting, ia akan mengeluarkan sebuah peristiwa OracleRequest, yang berisi data permintaan, menggunakan representasi objek biner ringkas CBOR( dan pengkodean format ).
Node di luar rantai akan mendengarkan peristiwa OracleRequest ini. Ketika permintaan baru terdeteksi, node akan menguraikan informasi dalam peristiwa tersebut, mendapatkan data yang diperlukan melalui panggilan API, dan kemudian mengirimkan data ke dalam rantai dengan memanggil metode fulfillOracleRequest dari kontrak oracle. Metode ini akan melakukan serangkaian verifikasi, dan kemudian memanggil fungsi callback dari kontrak peminta, mengembalikan hasilnya kepada kontrak konsumen.
Bagi pengembang, jika hanya perlu menggunakan harga pasangan koin yang sudah ada, dapat langsung menggunakan Price Feed yang disediakan oleh Chainlink ( yang juga disebut sebagai Aggregator ). Setiap pasangan perdagangan memiliki Price Feed tersendiri, yang sebenarnya adalah kontrak AggregatorProxy. Kontrak-kontrak ini menyediakan beberapa metode kueri, termasuk mendapatkan akurasi harga, deskripsi, versi, dan data harga terbaru, dll. Dalam sebagian besar skenario aplikasi, kontrak mungkin hanya perlu membaca harga terbaru, yaitu memanggil metode latestRoundData ().
Perlu dicatat bahwa pasangan perdagangan yang dihargai dalam USD biasanya memiliki akurasi harga yang disatukan menjadi 8 digit, yang menyederhanakan masalah penanganan akurasi antar token yang berbeda. Desain ini memungkinkan pengembang untuk lebih mudah menggunakan data harga waktu nyata dalam kontrak pintar, tanpa perlu menangani panggilan API yang rumit dan konversi format data.