Oracle Makine Sisteminin Blok Zinciri İçindeki Önemi ve Chainlink'in Uygulama Mekanizması
Oracle Makine, Blok Zinciri alanındaki kritik altyapıdır, zincir üstü akıllı sözleşmelere dış bilgi sağlayabilir. Akıllı sözleşmeler ile Blok Zinciri dış dünyası arasında bir ara katman olarak, Oracle Makine hayati bir rol oynamaktadır, ana işlevi Blok Zinciri üzerindeki akıllı sözleşmelere veri sağlamaktır.
Bir örnek vermek gerekirse, eğer Ethereum ağı üzerinde bir günün ham petrol işlem hacmi verilerini almak için bir akıllı sözleşme dağıttıysak. Akıllı sözleşmenin kendisi doğrudan zincir dışındaki gerçek dünya verilerine erişemediğinden, bu işlevi gerçekleştirmek için bir Oracle Makine aracılığıyla gereklidir. Bu durumda, akıllı sözleşme gerekli tarihin ham petrol işlem hacmini olay günlüğüne yazacaktır. Ardından, zincir dışı bir süreç bu olay günlüğünü izlemek ve abone olmak için başlatılacaktır. İşlemdeki isteği dinlediğinde, bu süreç zincir üzerindeki bir işlemi göndererek sözleşmenin ilgili yöntemlerini çağıracak ve belirtilen tarihin ham petrol işlem hacmi bilgilerini akıllı sözleşmeye yükleyecektir.
Chainlink, şu anda Blok Zinciri alanında pazar payı en büyük Oracle Makine projesidir. En güvenli şekilde Blok Zinciri'ne gerçek dünyada üretilen verileri sağlamak amacıyla merkeziyetsiz bir Oracle sistemi olarak tasarlanmıştır. Chainlink, temel Oracle Makine prensipleri üzerine inşa edilen ekonomik teşvik odaklı bir iyi niyet ekosistemi oluşturmak için LINK token'ını kullanmaktadır. Chainlink Oracle Makinesi, LINK token'ının transferi ile tetiklenmektedir ve LINK, Ethereum ağı üzerindeki ERC677 sözleşmesidir. LINK ERC677 token'ı temelinde gerçekleştirilen Oracle Makine işlevi, istek/yanıt modeline aittir.
ERC677 token standardı, Chainlink'in Oracle Makine hizmet senaryolarını karşılamak için önerdiği bir standarttır. Bu standart, standart ERC20'nin üzerine transferAndCall yöntemini ekleyerek, ödeme ve hizmet talebini birleştirir. Kullanıcı transferAndCall ile transfer gerçekleştirdiğinde, ERC20'nin transfer işlevinin yanı sıra, alıcı adresinin bir sözleşme adresi olup olmadığını kontrol eder; eğer öyleyse, o adresin onTokenTransfer yöntemini çağırır.
Chainlink'in uygulamasında, oracle tüketicisi transferAndCall yöntemini kullanarak ödeme yaptığında ve hizmet talep ettiğinde, oracle sözleşmesinin onTokenTransfer yöntemi önce bir dizi güvenlik kontrolü gerçekleştirir. Bu, transferin LINK tokeni olup olmadığını doğrulamayı, veri uzunluğunun sınırı aşmadığını kontrol etmeyi ve fonksiyon seçimcilerini doğrulamayı içerir. Kontroller geçtikten sonra, mevcut oracle sözleşmesinin oracleRequest yöntemini çağırmak için deleGatecall kullanılır.
oracleRequest yöntemi, benzersiz bir requestId oluşturacak, süre aşımını ayarlayacak ve ilgili bilgileri commitments haritasına ekleyecektir. En önemlisi, istek verilerini içeren bir OracleRequest olayı yayımlayacaktır; bu olay, CBOR( biçiminde kodlanmış ) biçiminde basit ikili nesne temsilini kullanır.
Ağ dışı düğümler bu OracleRequest olaylarını dinleyecek. Yeni bir istek algılandığında, düğüm olay içindeki bilgiyi ayrıştıracak, gerekli verileri almak için API çağrısı yapacak ve ardından oracle sözleşmesinin fulfillOracleRequest yöntemini çağırarak verileri zincire iletecek. Bu yöntem bir dizi doğrulama gerçekleştirecek ve ardından talep eden sözleşmenin geri çağırma fonksiyonunu çağırarak sonucu tüketici sözleşmesine iletecek.
Geliştiriciler için, eğer yalnızca mevcut piyasa fiyatlarını kullanmaları gerekiyorsa, Chainlink tarafından sağlanan Price Feed( ayrıca Aggregator) olarak da bilinir. Her ticaret çifti için ayrı bir Price Feed bulunmaktadır, gerçekte bu bir AggregatorProxy sözleşmesidir. Bu sözleşmeler, fiyat hassasiyeti, açıklama, versiyon ve en güncel fiyat verileri gibi birçok sorgulama yöntemini sağlar. Çoğu uygulama senaryosunda, sözleşme yalnızca en güncel fiyatı okumak için latestRoundData() yöntemini çağırmak isteyebilir.
Dikkate değer olan, USD cinsinden fiyatlandırılan işlem çiftlerinin fiyat hassasiyetinin genellikle 8 haneli olarak standartlaştırılmasıdır; bu, farklı tokenlar arasındaki hassasiyet işleme sorununu basitleştirmektedir. Bu tasarım, geliştiricilerin karmaşık API çağrıları ve veri formatı dönüşümleri ile uğraşmadan akıllı sözleşmelerde gerçek zamanlı fiyat verilerini daha kolay bir şekilde kullanmalarını sağlamaktadır.
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.
14 Likes
Reward
14
8
Share
Comment
0/400
staking_gramps
· 4h ago
Link'i bir kez daha yükleyelim mi?
View OriginalReply0
DegenWhisperer
· 16h ago
Chainker gerçekten harika ama biraz pahalı.
View OriginalReply0
MidnightSnapHunter
· 16h ago
Chainlink oldukça güvenilir.
View OriginalReply0
HalfPositionRunner
· 16h ago
Link'in daha da yükseliş yapması gerektiğini düşünüyorum.
View OriginalReply0
GweiTooHigh
· 16h ago
link yine mi yükseldi? Tahmin etmeye gerek yok.
View OriginalReply0
SelfRugger
· 16h ago
link boğa Al, iş tamam.
View OriginalReply0
GweiWatcher
· 16h ago
Gerçekten harika, bu fiyat feed gerçekten çok kullanışlı.
Chainlink: Oracle Makine nasıl Blok Zinciri'ni gerçek dünya ile bağlar
Oracle Makine Sisteminin Blok Zinciri İçindeki Önemi ve Chainlink'in Uygulama Mekanizması
Oracle Makine, Blok Zinciri alanındaki kritik altyapıdır, zincir üstü akıllı sözleşmelere dış bilgi sağlayabilir. Akıllı sözleşmeler ile Blok Zinciri dış dünyası arasında bir ara katman olarak, Oracle Makine hayati bir rol oynamaktadır, ana işlevi Blok Zinciri üzerindeki akıllı sözleşmelere veri sağlamaktır.
Bir örnek vermek gerekirse, eğer Ethereum ağı üzerinde bir günün ham petrol işlem hacmi verilerini almak için bir akıllı sözleşme dağıttıysak. Akıllı sözleşmenin kendisi doğrudan zincir dışındaki gerçek dünya verilerine erişemediğinden, bu işlevi gerçekleştirmek için bir Oracle Makine aracılığıyla gereklidir. Bu durumda, akıllı sözleşme gerekli tarihin ham petrol işlem hacmini olay günlüğüne yazacaktır. Ardından, zincir dışı bir süreç bu olay günlüğünü izlemek ve abone olmak için başlatılacaktır. İşlemdeki isteği dinlediğinde, bu süreç zincir üzerindeki bir işlemi göndererek sözleşmenin ilgili yöntemlerini çağıracak ve belirtilen tarihin ham petrol işlem hacmi bilgilerini akıllı sözleşmeye yükleyecektir.
Chainlink, şu anda Blok Zinciri alanında pazar payı en büyük Oracle Makine projesidir. En güvenli şekilde Blok Zinciri'ne gerçek dünyada üretilen verileri sağlamak amacıyla merkeziyetsiz bir Oracle sistemi olarak tasarlanmıştır. Chainlink, temel Oracle Makine prensipleri üzerine inşa edilen ekonomik teşvik odaklı bir iyi niyet ekosistemi oluşturmak için LINK token'ını kullanmaktadır. Chainlink Oracle Makinesi, LINK token'ının transferi ile tetiklenmektedir ve LINK, Ethereum ağı üzerindeki ERC677 sözleşmesidir. LINK ERC677 token'ı temelinde gerçekleştirilen Oracle Makine işlevi, istek/yanıt modeline aittir.
ERC677 token standardı, Chainlink'in Oracle Makine hizmet senaryolarını karşılamak için önerdiği bir standarttır. Bu standart, standart ERC20'nin üzerine transferAndCall yöntemini ekleyerek, ödeme ve hizmet talebini birleştirir. Kullanıcı transferAndCall ile transfer gerçekleştirdiğinde, ERC20'nin transfer işlevinin yanı sıra, alıcı adresinin bir sözleşme adresi olup olmadığını kontrol eder; eğer öyleyse, o adresin onTokenTransfer yöntemini çağırır.
Chainlink'in uygulamasında, oracle tüketicisi transferAndCall yöntemini kullanarak ödeme yaptığında ve hizmet talep ettiğinde, oracle sözleşmesinin onTokenTransfer yöntemi önce bir dizi güvenlik kontrolü gerçekleştirir. Bu, transferin LINK tokeni olup olmadığını doğrulamayı, veri uzunluğunun sınırı aşmadığını kontrol etmeyi ve fonksiyon seçimcilerini doğrulamayı içerir. Kontroller geçtikten sonra, mevcut oracle sözleşmesinin oracleRequest yöntemini çağırmak için deleGatecall kullanılır.
oracleRequest yöntemi, benzersiz bir requestId oluşturacak, süre aşımını ayarlayacak ve ilgili bilgileri commitments haritasına ekleyecektir. En önemlisi, istek verilerini içeren bir OracleRequest olayı yayımlayacaktır; bu olay, CBOR( biçiminde kodlanmış ) biçiminde basit ikili nesne temsilini kullanır.
Ağ dışı düğümler bu OracleRequest olaylarını dinleyecek. Yeni bir istek algılandığında, düğüm olay içindeki bilgiyi ayrıştıracak, gerekli verileri almak için API çağrısı yapacak ve ardından oracle sözleşmesinin fulfillOracleRequest yöntemini çağırarak verileri zincire iletecek. Bu yöntem bir dizi doğrulama gerçekleştirecek ve ardından talep eden sözleşmenin geri çağırma fonksiyonunu çağırarak sonucu tüketici sözleşmesine iletecek.
Geliştiriciler için, eğer yalnızca mevcut piyasa fiyatlarını kullanmaları gerekiyorsa, Chainlink tarafından sağlanan Price Feed( ayrıca Aggregator) olarak da bilinir. Her ticaret çifti için ayrı bir Price Feed bulunmaktadır, gerçekte bu bir AggregatorProxy sözleşmesidir. Bu sözleşmeler, fiyat hassasiyeti, açıklama, versiyon ve en güncel fiyat verileri gibi birçok sorgulama yöntemini sağlar. Çoğu uygulama senaryosunda, sözleşme yalnızca en güncel fiyatı okumak için latestRoundData() yöntemini çağırmak isteyebilir.
Dikkate değer olan, USD cinsinden fiyatlandırılan işlem çiftlerinin fiyat hassasiyetinin genellikle 8 haneli olarak standartlaştırılmasıdır; bu, farklı tokenlar arasındaki hassasiyet işleme sorununu basitleştirmektedir. Bu tasarım, geliştiricilerin karmaşık API çağrıları ve veri formatı dönüşümleri ile uğraşmadan akıllı sözleşmelerde gerçek zamanlı fiyat verilerini daha kolay bir şekilde kullanmalarını sağlamaktadır.