Tek nokta arızasını önlemek için bazı Oracle Makine hizmetleri dağıtık tasarım kullanmaktadır. BTC Dolar fiyatı sunan bir hizmet örneği olarak, belirli bir ünlü Oracle Makine platformu, kullanıcılara hizmet sunmak için 31 fiyat kaynağını bir araya getirmiştir.
Bu agregatörün sözleşme kaynak kodu Ethereum blok gezgininde görüntülenebilir. Sözleşmedeki transmitters yöntemini çağırarak, bu agregatörün içerdiği tüm zincir dışı Oracle Makine'leri görebilirsiniz.
Her bir zincir dışı Oracle Makine, kullanıcıların isteği üzerine fiyat verilerini sağlamak için transmit yöntemini çağırabilir. Bu zincir dışı Oracle Makine'ler, (EOA) adlı dış mülkiyete sahip hesaplardan oluşmakta olup, yalnızca BTC/USD agregatörüne fiyat verileri sağlamakla kalmaz, aynı zamanda diğer agregatörler için de fiyat verileri sağlayabilir, örneğin ETH/USD.
Zincir üzerindeki sözleşmelerin işleme süreci genel olarak aşağıdaki gibidir:
Öncelikle mevcut sözleşme durumunu okuyun ve bir dizi kontrol gerçekleştirin.
Kontrol geçtikten sonra bazı hazırlıklar yapın.
Ardından ecrecover() kullanarak her imza verisini doğrulayın, _report için hash değerinin doğru olup olmadığını kontrol edin. Ayrıca imzalayanın rolünün Signer olup olmadığını ve imzanın tekrarlanabilirliğini kontrol edin.
Son olarak, gözlemlerin sıralı olup olmadığını kontrol edin. Sıralanan gözlemler arasından medyanı seçin ve medyanın alt ve üst iki eşik değeri aşmadığından emin olun. Sorun yoksa, s_transmissions içinde bu Oracle Makine'nin cevabını kaydedin. Ayrıca, cevabı doğrulamanız da gerekmektedir.
Burada, bir dizi çağrı sonucunda nihayetinde belirli bir fiyat Oracle Makine sözleşmesinin validate metodunu çağıracak. Anahtar nokta, her iki taraftaki Oracle Makine tarafından verilen fiyat sapmasının kabul edilebilir bir aralıkta olup olmadığını karşılaştırmaktır.
( Feed Kaydı
Esneklik artırmak ve yönetişim maliyetlerini azaltmak için bazı platformlar Feed Registry'yi tanıttı. Bu, PriceFeeds'in bir toplayıcısı olarak düşünülebilir ve birden fazla priceFeed'i bir araya getirmiştir. Bununla, kullanıcılar kendi priceFeed'lerini ayarlamak zorunda kalmadan doğrudan Feed Registry üzerinden fiyat verilerini okuyabilirler.
![Oracle Makine detay serisi - Chainlink (2. bölüm)])https://img-cdn.gateio.im/webp-social/moments-28d519adb5b491a0596a00eed45731eb.webp###
( Alım-Satım Mekanı
Fiyat Oracle Makinesi'nin fiyatı genellikle birden fazla katmanlı veri toplama yoluyla elde edilir ve bu, esasen veri kaynağı toplama, düğüm işletmecisi toplama ve Oracle Makine ağı toplama olmak üzere üç katmanı içerir.
En temel fiyat verileri, başlıca merkezi ve merkeziyetsiz ticaret platformlarından gelmektedir. Bazı özel veri toplama hizmet sağlayıcıları, bu platformlardan ham fiyat verilerini toplamakta ve bunları işleyip birleştirmekte, örneğin işlem hacmi, likidite ve zaman farkı gibi faktörlere göre ağırlıklı hesaplamalar yapmaktadır. Bu, birinci düzey veri kaynağı toplanmasıdır.
İkinci katman, düğüm operatörlerinin bir araya gelmesidir. Her düğüm operatörü, çekirdek yazılımı çalıştırmakta ve birden fazla bağımsız veri toplama hizmet sağlayıcısından fiyat verileri almakta, ortalamasını almakta, anormal değerleri ayıklamakta ve API kesinti sürelerini dışarıda bırakmaktadır.
Son katman, tüm Oracle Makine ağının bir araya gelmesidir. Yaygın bir yöntem, yanıt düğümü sayısı belirli bir değere ulaştığında verilerin medyanını almaktır.
Fiyat güncellemeleri genellikle sapma eşiği veya kalp atışı eşiği gibi iki tetikleyici parametreden birini karşılamalıdır. Farklı fiyat kaynaklarının bu iki parametre değeri farklı olabilir.
Genel olarak, bazı tanınmış Oracle Makine platformlarının fiyat Oracle'ı entegrasyonu kolay ve güvenliği yüksektir, ancak fiyat güncelleme mekanizmasındaki sapma eşiği nedeniyle güncellemeler yavaş gerçekleşmektedir ve fiyat güncellemelerine karşı çok duyarlı olmayan uygulamalar için uygundur. Bu da sınırlılıklarını ortaya koymakta ve her senaryoya uygun olmamaktadı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.
21 Likes
Reward
21
8
Share
Comment
0/400
CryptoFortuneTeller
· 08-05 03:20
31 kaynak yeterli mi? Biraz endişeliyim.
View OriginalReply0
CountdownToBroke
· 08-05 02:38
Bu şey gerçekten Klip Kuponlar tarafından kaçınılabilir mi?
View OriginalReply0
WealthCoffee
· 08-02 23:24
Dağıtık, ilginç! Sonunda insanların yüz ifadelerine bakmak zorunda kalmadım.
View OriginalReply0
HashBrownies
· 08-02 07:13
31 veri kaynağı, yine de yeterince fazla hissetmiyorum~
View OriginalReply0
RektDetective
· 08-02 07:08
Tüm gün kurumların pantolonunu çıkardığını izliyorum, ne kadar daha izleyeceğim?
View OriginalReply0
GasFeeCrier
· 08-02 07:00
Aman Tanrım, başım döndü, gas küçük prensi
View OriginalReply0
NFTArchaeologis
· 08-02 06:57
On-chain kodlar, mühürlü yazılar kadar zarif bir şekilde okunuyor.
View OriginalReply0
MEV_Whisperer
· 08-02 06:56
Bu kadar çok şeyi bir araya getirmek ne işe yarar, yine de doğru değil.
Dağıtık fiyat Oracle Makine sistemi: Çok katmanlı agregasyon ve Feed Registry optimizasyonu
Dağıtık fiyat Oracle Makine sistemi
Tek nokta arızasını önlemek için bazı Oracle Makine hizmetleri dağıtık tasarım kullanmaktadır. BTC Dolar fiyatı sunan bir hizmet örneği olarak, belirli bir ünlü Oracle Makine platformu, kullanıcılara hizmet sunmak için 31 fiyat kaynağını bir araya getirmiştir.
Bu agregatörün sözleşme kaynak kodu Ethereum blok gezgininde görüntülenebilir. Sözleşmedeki transmitters yöntemini çağırarak, bu agregatörün içerdiği tüm zincir dışı Oracle Makine'leri görebilirsiniz.
Her bir zincir dışı Oracle Makine, kullanıcıların isteği üzerine fiyat verilerini sağlamak için transmit yöntemini çağırabilir. Bu zincir dışı Oracle Makine'ler, (EOA) adlı dış mülkiyete sahip hesaplardan oluşmakta olup, yalnızca BTC/USD agregatörüne fiyat verileri sağlamakla kalmaz, aynı zamanda diğer agregatörler için de fiyat verileri sağlayabilir, örneğin ETH/USD.
Zincir üzerindeki sözleşmelerin işleme süreci genel olarak aşağıdaki gibidir:
Öncelikle mevcut sözleşme durumunu okuyun ve bir dizi kontrol gerçekleştirin.
Kontrol geçtikten sonra bazı hazırlıklar yapın.
Ardından ecrecover() kullanarak her imza verisini doğrulayın, _report için hash değerinin doğru olup olmadığını kontrol edin. Ayrıca imzalayanın rolünün Signer olup olmadığını ve imzanın tekrarlanabilirliğini kontrol edin.
Son olarak, gözlemlerin sıralı olup olmadığını kontrol edin. Sıralanan gözlemler arasından medyanı seçin ve medyanın alt ve üst iki eşik değeri aşmadığından emin olun. Sorun yoksa, s_transmissions içinde bu Oracle Makine'nin cevabını kaydedin. Ayrıca, cevabı doğrulamanız da gerekmektedir.
Burada, bir dizi çağrı sonucunda nihayetinde belirli bir fiyat Oracle Makine sözleşmesinin validate metodunu çağıracak. Anahtar nokta, her iki taraftaki Oracle Makine tarafından verilen fiyat sapmasının kabul edilebilir bir aralıkta olup olmadığını karşılaştırmaktır.
( Feed Kaydı
Esneklik artırmak ve yönetişim maliyetlerini azaltmak için bazı platformlar Feed Registry'yi tanıttı. Bu, PriceFeeds'in bir toplayıcısı olarak düşünülebilir ve birden fazla priceFeed'i bir araya getirmiştir. Bununla, kullanıcılar kendi priceFeed'lerini ayarlamak zorunda kalmadan doğrudan Feed Registry üzerinden fiyat verilerini okuyabilirler.
![Oracle Makine detay serisi - Chainlink (2. bölüm)])https://img-cdn.gateio.im/webp-social/moments-28d519adb5b491a0596a00eed45731eb.webp###
( Alım-Satım Mekanı
Fiyat Oracle Makinesi'nin fiyatı genellikle birden fazla katmanlı veri toplama yoluyla elde edilir ve bu, esasen veri kaynağı toplama, düğüm işletmecisi toplama ve Oracle Makine ağı toplama olmak üzere üç katmanı içerir.
En temel fiyat verileri, başlıca merkezi ve merkeziyetsiz ticaret platformlarından gelmektedir. Bazı özel veri toplama hizmet sağlayıcıları, bu platformlardan ham fiyat verilerini toplamakta ve bunları işleyip birleştirmekte, örneğin işlem hacmi, likidite ve zaman farkı gibi faktörlere göre ağırlıklı hesaplamalar yapmaktadır. Bu, birinci düzey veri kaynağı toplanmasıdır.
İkinci katman, düğüm operatörlerinin bir araya gelmesidir. Her düğüm operatörü, çekirdek yazılımı çalıştırmakta ve birden fazla bağımsız veri toplama hizmet sağlayıcısından fiyat verileri almakta, ortalamasını almakta, anormal değerleri ayıklamakta ve API kesinti sürelerini dışarıda bırakmaktadır.
Son katman, tüm Oracle Makine ağının bir araya gelmesidir. Yaygın bir yöntem, yanıt düğümü sayısı belirli bir değere ulaştığında verilerin medyanını almaktır.
Fiyat güncellemeleri genellikle sapma eşiği veya kalp atışı eşiği gibi iki tetikleyici parametreden birini karşılamalıdır. Farklı fiyat kaynaklarının bu iki parametre değeri farklı olabilir.
Genel olarak, bazı tanınmış Oracle Makine platformlarının fiyat Oracle'ı entegrasyonu kolay ve güvenliği yüksektir, ancak fiyat güncelleme mekanizmasındaki sapma eşiği nedeniyle güncellemeler yavaş gerçekleşmektedir ve fiyat güncellemelerine karşı çok duyarlı olmayan uygulamalar için uygundur. Bu da sınırlılıklarını ortaya koymakta ve her senaryoya uygun olmamaktadır.
![Oracle Makine详解系列之 Chainlink(下)])https://img-cdn.gateio.im/webp-social/moments-cec5b2c5581a3e9abce8f2d60b1980b1.webp###