Oracle Makine sisteminin Blok Zinciri teknolojisindeki ana rolü
Oracle Makine, Blok Zinciri alanında önemli bir altyapıdır ve zincir üzerindeki akıllı sözleşmelere dış bilgi sağlayabilir. Akıllı sözleşmeler ile zincir dışı dünya arasında bir ara katman olarak, Oracle Makine, Blok Zinciri ekosisteminde vazgeçilmez bir rol oynamaktadır; temel işlevi, akıllı sözleşmelerin ihtiyaç duyduğu dış veriyi sağlamaktır.
Bir örnek vermek gerekirse, eğer Ethereum üzerinde belirli bir günde petrol ticaret hacmi verilerini almak için bir akıllı sözleşme dağıttıysak. Akıllı sözleşmenin kendisi zincir dışındaki gerçek dünya verilerine doğrudan erişemediğinden, bu işlevi gerçekleştirmek için bir Oracle Makine'ye ihtiyaç vardır. Belirli süreç şudur: Akıllı sözleşme, gerekli tarihin petrol ticaret hacmini olay günlüğüne yazacak, ardından zincir dışı bir işlem bu olay günlüğünü izlemek için başlatılacak. İlgili talep algılandığında, bu işlem, sözleşmenin ilgili yöntemini çağırmak için zincir üzerindeki bir işlem gönderme yoluyla, belirli tarihe ait petrol ticaret hacmi bilgisini akıllı sözleşmeye iletecektir.
Birçok Oracle Makine projesi arasında, Chainlink en büyük pazar payını elinde bulunduruyor. Chainlink, blok zincirine gerçek dünya verilerini en güvenli ve güvenilir şekilde sağlamak için tasarlanmış merkeziyetsiz bir Oracle Makine ağıdır. Temel Oracle Makine işlevlerini gerçekleştirmenin ötesinde, Chainlink LINK token'ı etrafında ekonomik teşvikler yoluyla olumlu bir döngü oluşturan bir ekosistem inşa etmiştir. Chainlink ağında, Oracle Makine hizmetleri LINK token'ının transferiyle tetiklenmesi gerekmektedir ve LINK, Ethereum üzerinde bir ERC677 token'ıdır. LINK token'ı temelinde gerçekleştirilen Oracle Makine işlevleri, istek/yanıt modeline dayanmaktadır.
ERC677 standardı, ERC20'nin temelinde transferAndCall yöntemini ekleyerek, ödeme ve hizmet taleplerini bir araya getirir ve Oracle Makine iş senaryolarının ihtiyaçlarını daha iyi karşılar. Kullanıcı transferAndCall çağrısını yaptığında, normal ERC20 transferinin yanı sıra, alıcı adres bir sözleşme adresiyse, bu adresin onTokenTransfer yöntemini de çağırır.
Zincir üzerindeki oracle talep sürecinde, oracle tüketicisi transferAndCall yöntemini kullanarak ücret ödediğinde ve hizmet talep ettiğinde, oracle sözleşmesinin onTokenTransfer yöntemi önce bir dizi güvenlik kontrolü gerçekleştirecek, bunlar arasında transferin LINK tokeni olup olmadığını doğrulama, talep verileri uzunluğunun uygunluğunu kontrol etme, function selector'ü doğrulama gibi işlemler yer alacak. Bu kontrollerden sonra, deleGatecall aracılığıyla oracle sözleşmesinin oracleRequest yöntemine çağrı yapılacaktır.
oracleRequest yöntemi, benzersiz bir requestId oluşturacak, talep süresi ayarlayacak ve ilgili bilgileri commitments haritasına kaydedecektir. En önemlisi, talep verilerini içeren bir OracleRequest olayı yayınlayacaktır. Bu olaydaki veriler genellikle CBOR( format kodlamasıyla, zincir dışı düğümlerin çözümlemesi için uygun olan ) biçiminde temsil edilmektedir.
Dış düğümler, isteklere yanıt verirken fulfillOracleRequest yöntemini çağırır. Bu yöntem öncelikle bir dizi doğrulama yapar, çağrının yetkisini kontrol eder, isteğin geçerliliğini doğrular vb. Doğrulama başarılı olduktan sonra, çekilebilir token miktarını günceller, ilgili taahhüt kayıtlarını siler ve nihayetinde isteği yapan sözleşmenin geri çağırma fonksiyonunu çağırır.
Geliştiriciler için, mevcut kripto para birimi çiftlerinin fiyat verilerini kullanmak gerekiyorsa, doğrudan Chainlink tarafından sağlanan Price Feed arayüzünü çağırabilirler. Her işlem çifti için ayrı bir Price Feed ( ayrıca Aggregator ) olarak da bilinir ve aslında bir AggregatorProxy sözleşmesidir. Bu arayüzler, fiyat hassasiyetini, tanımını, sürüm numarasını ve en son fiyat verilerini alma gibi işlevler sunar. Çoğu uygulama senaryosunda, sözleşme yalnızca en son fiyatı okumak zorunda olabilir, latestRoundData () yöntemini çağırarak elde edilebilir. Dikkate değer bir nokta, ABD doları cinsinden fiyatlandırılan işlem çiftlerinin genellikle standart bir 8 haneli hassasiyet kullanmasıdır, bu da farklı tokenler arasındaki hassasiyet işleme sorununu basitleştirir.
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.
Oracle Makine Sistemi: Blok Zinciri ve Gerçek Dünya Arasındaki Temel Köprü
Oracle Makine sisteminin Blok Zinciri teknolojisindeki ana rolü
Oracle Makine, Blok Zinciri alanında önemli bir altyapıdır ve zincir üzerindeki akıllı sözleşmelere dış bilgi sağlayabilir. Akıllı sözleşmeler ile zincir dışı dünya arasında bir ara katman olarak, Oracle Makine, Blok Zinciri ekosisteminde vazgeçilmez bir rol oynamaktadır; temel işlevi, akıllı sözleşmelerin ihtiyaç duyduğu dış veriyi sağlamaktır.
Bir örnek vermek gerekirse, eğer Ethereum üzerinde belirli bir günde petrol ticaret hacmi verilerini almak için bir akıllı sözleşme dağıttıysak. Akıllı sözleşmenin kendisi zincir dışındaki gerçek dünya verilerine doğrudan erişemediğinden, bu işlevi gerçekleştirmek için bir Oracle Makine'ye ihtiyaç vardır. Belirli süreç şudur: Akıllı sözleşme, gerekli tarihin petrol ticaret hacmini olay günlüğüne yazacak, ardından zincir dışı bir işlem bu olay günlüğünü izlemek için başlatılacak. İlgili talep algılandığında, bu işlem, sözleşmenin ilgili yöntemini çağırmak için zincir üzerindeki bir işlem gönderme yoluyla, belirli tarihe ait petrol ticaret hacmi bilgisini akıllı sözleşmeye iletecektir.
Birçok Oracle Makine projesi arasında, Chainlink en büyük pazar payını elinde bulunduruyor. Chainlink, blok zincirine gerçek dünya verilerini en güvenli ve güvenilir şekilde sağlamak için tasarlanmış merkeziyetsiz bir Oracle Makine ağıdır. Temel Oracle Makine işlevlerini gerçekleştirmenin ötesinde, Chainlink LINK token'ı etrafında ekonomik teşvikler yoluyla olumlu bir döngü oluşturan bir ekosistem inşa etmiştir. Chainlink ağında, Oracle Makine hizmetleri LINK token'ının transferiyle tetiklenmesi gerekmektedir ve LINK, Ethereum üzerinde bir ERC677 token'ıdır. LINK token'ı temelinde gerçekleştirilen Oracle Makine işlevleri, istek/yanıt modeline dayanmaktadır.
ERC677 standardı, ERC20'nin temelinde transferAndCall yöntemini ekleyerek, ödeme ve hizmet taleplerini bir araya getirir ve Oracle Makine iş senaryolarının ihtiyaçlarını daha iyi karşılar. Kullanıcı transferAndCall çağrısını yaptığında, normal ERC20 transferinin yanı sıra, alıcı adres bir sözleşme adresiyse, bu adresin onTokenTransfer yöntemini de çağırır.
Zincir üzerindeki oracle talep sürecinde, oracle tüketicisi transferAndCall yöntemini kullanarak ücret ödediğinde ve hizmet talep ettiğinde, oracle sözleşmesinin onTokenTransfer yöntemi önce bir dizi güvenlik kontrolü gerçekleştirecek, bunlar arasında transferin LINK tokeni olup olmadığını doğrulama, talep verileri uzunluğunun uygunluğunu kontrol etme, function selector'ü doğrulama gibi işlemler yer alacak. Bu kontrollerden sonra, deleGatecall aracılığıyla oracle sözleşmesinin oracleRequest yöntemine çağrı yapılacaktır.
oracleRequest yöntemi, benzersiz bir requestId oluşturacak, talep süresi ayarlayacak ve ilgili bilgileri commitments haritasına kaydedecektir. En önemlisi, talep verilerini içeren bir OracleRequest olayı yayınlayacaktır. Bu olaydaki veriler genellikle CBOR( format kodlamasıyla, zincir dışı düğümlerin çözümlemesi için uygun olan ) biçiminde temsil edilmektedir.
Dış düğümler, isteklere yanıt verirken fulfillOracleRequest yöntemini çağırır. Bu yöntem öncelikle bir dizi doğrulama yapar, çağrının yetkisini kontrol eder, isteğin geçerliliğini doğrular vb. Doğrulama başarılı olduktan sonra, çekilebilir token miktarını günceller, ilgili taahhüt kayıtlarını siler ve nihayetinde isteği yapan sözleşmenin geri çağırma fonksiyonunu çağırır.
Geliştiriciler için, mevcut kripto para birimi çiftlerinin fiyat verilerini kullanmak gerekiyorsa, doğrudan Chainlink tarafından sağlanan Price Feed arayüzünü çağırabilirler. Her işlem çifti için ayrı bir Price Feed ( ayrıca Aggregator ) olarak da bilinir ve aslında bir AggregatorProxy sözleşmesidir. Bu arayüzler, fiyat hassasiyetini, tanımını, sürüm numarasını ve en son fiyat verilerini alma gibi işlevler sunar. Çoğu uygulama senaryosunda, sözleşme yalnızca en son fiyatı okumak zorunda olabilir, latestRoundData () yöntemini çağırarak elde edilebilir. Dikkate değer bir nokta, ABD doları cinsinden fiyatlandırılan işlem çiftlerinin genellikle standart bir 8 haneli hassasiyet kullanmasıdır, bu da farklı tokenler arasındaki hassasiyet işleme sorununu basitleştirir.