Blockchain ekosisteminde, Oracle Makine, akıllı sözleşmeler ile dış dünya arasında bir köprü olarak kritik bir altyapı rolü oynamaktadır. Temel işlevi, blockchain üzerindeki akıllı sözleşmelere dış veri sağlamaktır.
Örneğin, Ethereum ağı üzerinde belirli bir gün için ham petrol ticaret hacmi verilerini elde etmesi gereken bir akıllı sözleşme dağıttığımızda, sözleşmenin kendisi doğrudan zincir dışındaki gerçek dünya bilgilerine erişemediğinden, bu durumda bir Oracle Makine müdahalesine ihtiyaç vardır. Bu durumda, akıllı sözleşme gerekli tarih bilgisini olay günlüğüne yazar. Ardından, zincir dışı bir izleme süreci bu olaya abone olmak için başlatılacaktır. İlgili talep tespit edildiğinde, bu süreç zincir üzerindeki bir işlem göndererek, sözleşmenin belirli bir yöntemini çağırarak belirtilen tarihe ait ham petrol ticaret hacmi verilerini akıllı sözleşmeye aktaracaktır.
Birçok Oracle Makine çözümü arasında, Chainlink merkeziyetsiz özellikleri ve piyasa payı ile öne çıkmaktadır. LINK tokeni aracılığıyla ekonomik teşvik odaklı bir ekosistem oluşturarak, gerçek dünya verilerini blockchain'e en güvenli ve güvenilir şekilde sağlamayı garanti eder. Chainlink Oracle Makine'lerinin tetikleme mekanizması, LINK tokeninin transferi ile gerçekleştirilir ve LINK, Ethereum ağına dayalı ERC677 standart sözleşmesidir.
ERC677 standard, transferAndCall yöntemini ERC20'nin üzerine ekleyerek, Oracle Makine iş senaryolarının özel gereksinimlerini karşılayan bu yenilik, ödeme ve hizmet talebinin entegrasyonunu sağlar. Kullanıcı transferAndCall'ı kullanarak transfer işlemi gerçekleştirdiğinde, standart ERC20 transfer işlemi dışında, alıcının bir sözleşme adresi olup olmadığını kontrol eder; eğer öyleyse, bu adresin onTokenTransfer yöntemini çağırır.
Chainlink'in tasarımında, oracle sözleşmesinin onTokenTransfer yöntemi bir dizi güvenlik kontrolü gerçekleştirmektedir. Bu kontroller, transferin LINK tokeni olup olmadığını doğrulamayı, veri uzunluğunun uyumlu olup olmadığını kontrol etmeyi ve function selector'ü doğrulamayı içerir. Bu doğrulamalardan sonra, sözleşme benzersiz bir requestId oluşturur, talebin son kullanma süresini ayarlar ve OracleRequest olayını tetikler. Bu olay, talebin ayrıntılı verilerini içerir ve CBOR (Concise Binary Object Representation) kodlama formatını kullanır.
Off-chain düğüm, OracleRequest olayını aldıktan sonra, istek bilgilerini çözümler, gerekli verileri almak için API çağrısı yapar ve ardından oracle sözleşmesinin fulfillOracleRequest yöntemini çağırarak verileri zincire gönderir. Bu süreç, verilerin geçerliliğini ve güvenliğini sağlamak için bir dizi doğrulama adımını içerir. Sonunda, oracle sözleşmesi istek sahibinin sözleşmesinin geri çağırma fonksiyonunu çağırarak veri talebi ve yanıt sürecini tamamlar.
Geliştiriciler için Chainlink, daha kullanışlı bir fiyat Oracle Makine hizmeti de sunmaktadır. Her ticaret çifti, aslında AggregatorProxy sözleşmesinin bir örneği olan bağımsız bir Price Feed'e (diğer adıyla Agregatör) sahiptir. Bu sözleşmeler, geliştiricilerin ihtiyaç duyduğu fiyat verilerini kolayca alabilmesi için decimals(), description(), version(), getRoundData() ve latestRoundData() gibi yöntemler sunmaktadır.
Çoğu uygulama senaryosunda, sözleşmelerin en son fiyatı okumaları gerekmektedir. Bu, latestRoundData() metodunu çağırarak gerçekleştirilebilir. USD cinsinden fiyatlandırılan işlem çiftlerinin fiyat hassasiyetinin genellikle 8 basamakta birleştirildiğine dikkat etmek gerekir; bu, farklı tokenlar arasındaki hassasiyet işlem karmaşıklığını basitleştirir.
Bu tasarım sayesinde, Chainlink yalnızca esnek bir Oracle Makine hizmeti sunmakla kalmıyor, aynı zamanda geliştiricilere pratik bir fiyat verisi erişim yolu sağlıyor, bu da blok zinciri uygulamaları ile dış dünya verileri arasındaki etkileşimi büyük ölçüde basitleştiriyor.
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.
18 Likes
Reward
18
3
Share
Comment
0/400
MysteriousZhang
· 21h ago
Oracle Makine hâlâ Galaksi AE'ye sormaktan daha iyi değil.
Chainlink Oracle Makine teknolojisi analizi: akıllı sözleşmeler ile gerçek dünya arasındaki köprü
Oracle Makine Teknolojisi Analizi: Chainlink Örneği
Blockchain ekosisteminde, Oracle Makine, akıllı sözleşmeler ile dış dünya arasında bir köprü olarak kritik bir altyapı rolü oynamaktadır. Temel işlevi, blockchain üzerindeki akıllı sözleşmelere dış veri sağlamaktır.
Örneğin, Ethereum ağı üzerinde belirli bir gün için ham petrol ticaret hacmi verilerini elde etmesi gereken bir akıllı sözleşme dağıttığımızda, sözleşmenin kendisi doğrudan zincir dışındaki gerçek dünya bilgilerine erişemediğinden, bu durumda bir Oracle Makine müdahalesine ihtiyaç vardır. Bu durumda, akıllı sözleşme gerekli tarih bilgisini olay günlüğüne yazar. Ardından, zincir dışı bir izleme süreci bu olaya abone olmak için başlatılacaktır. İlgili talep tespit edildiğinde, bu süreç zincir üzerindeki bir işlem göndererek, sözleşmenin belirli bir yöntemini çağırarak belirtilen tarihe ait ham petrol ticaret hacmi verilerini akıllı sözleşmeye aktaracaktır.
Birçok Oracle Makine çözümü arasında, Chainlink merkeziyetsiz özellikleri ve piyasa payı ile öne çıkmaktadır. LINK tokeni aracılığıyla ekonomik teşvik odaklı bir ekosistem oluşturarak, gerçek dünya verilerini blockchain'e en güvenli ve güvenilir şekilde sağlamayı garanti eder. Chainlink Oracle Makine'lerinin tetikleme mekanizması, LINK tokeninin transferi ile gerçekleştirilir ve LINK, Ethereum ağına dayalı ERC677 standart sözleşmesidir.
ERC677 standard, transferAndCall yöntemini ERC20'nin üzerine ekleyerek, Oracle Makine iş senaryolarının özel gereksinimlerini karşılayan bu yenilik, ödeme ve hizmet talebinin entegrasyonunu sağlar. Kullanıcı transferAndCall'ı kullanarak transfer işlemi gerçekleştirdiğinde, standart ERC20 transfer işlemi dışında, alıcının bir sözleşme adresi olup olmadığını kontrol eder; eğer öyleyse, bu adresin onTokenTransfer yöntemini çağırır.
Chainlink'in tasarımında, oracle sözleşmesinin onTokenTransfer yöntemi bir dizi güvenlik kontrolü gerçekleştirmektedir. Bu kontroller, transferin LINK tokeni olup olmadığını doğrulamayı, veri uzunluğunun uyumlu olup olmadığını kontrol etmeyi ve function selector'ü doğrulamayı içerir. Bu doğrulamalardan sonra, sözleşme benzersiz bir requestId oluşturur, talebin son kullanma süresini ayarlar ve OracleRequest olayını tetikler. Bu olay, talebin ayrıntılı verilerini içerir ve CBOR (Concise Binary Object Representation) kodlama formatını kullanır.
Off-chain düğüm, OracleRequest olayını aldıktan sonra, istek bilgilerini çözümler, gerekli verileri almak için API çağrısı yapar ve ardından oracle sözleşmesinin fulfillOracleRequest yöntemini çağırarak verileri zincire gönderir. Bu süreç, verilerin geçerliliğini ve güvenliğini sağlamak için bir dizi doğrulama adımını içerir. Sonunda, oracle sözleşmesi istek sahibinin sözleşmesinin geri çağırma fonksiyonunu çağırarak veri talebi ve yanıt sürecini tamamlar.
Geliştiriciler için Chainlink, daha kullanışlı bir fiyat Oracle Makine hizmeti de sunmaktadır. Her ticaret çifti, aslında AggregatorProxy sözleşmesinin bir örneği olan bağımsız bir Price Feed'e (diğer adıyla Agregatör) sahiptir. Bu sözleşmeler, geliştiricilerin ihtiyaç duyduğu fiyat verilerini kolayca alabilmesi için decimals(), description(), version(), getRoundData() ve latestRoundData() gibi yöntemler sunmaktadır.
Çoğu uygulama senaryosunda, sözleşmelerin en son fiyatı okumaları gerekmektedir. Bu, latestRoundData() metodunu çağırarak gerçekleştirilebilir. USD cinsinden fiyatlandırılan işlem çiftlerinin fiyat hassasiyetinin genellikle 8 basamakta birleştirildiğine dikkat etmek gerekir; bu, farklı tokenlar arasındaki hassasiyet işlem karmaşıklığını basitleştirir.
Bu tasarım sayesinde, Chainlink yalnızca esnek bir Oracle Makine hizmeti sunmakla kalmıyor, aynı zamanda geliştiricilere pratik bir fiyat verisi erişim yolu sağlıyor, bu da blok zinciri uygulamaları ile dış dünya verileri arasındaki etkileşimi büyük ölçüde basitleştiriyor.