Bu teknik belge, geliştiricilere #RedStone Oracles'ı merkezi olmayan bir uygulamaya entegre etmenin ayrıntılı süreci boyunca rehberlik eder.

Bu belge kurulum, entegrasyon ve test aşamalarını kapsayacak ve geliştiricilerin bu yetenekleri DApp'lerinde kullanabilmelerini sağlayacak.

1. Giriş

RedStone Oracle'lar, blockchain uygulamaları içindeki gerçek zamanlı verilere erişim için merkezi olmayan bir çözüm sunar. Veri depolama için veri sağlayıcılardan oluşan bir ağ ve Arweave blok zincirini kullanarak hem bütünlüğü hem de kalıcılığı sağlarlar. Bu kılavuz, ilk kurulumdan gelişmiş özelleştirme ve testlere kadar bu oracle'ları entegre etmek için gerekli adımları ayrıntılı olarak açıklayacaktır.

Kaynak: RedStone Oracles

2. Kurulum Gereksinimleri

Entegrasyon sürecine başlamadan önce aşağıdaki ön koşulların karşılandığından emin olun:

  • Geliştirme makinenizde Node.js ve npm yüklü.

  • Sağlamlığın ve akıllı sözleşmelerin temel anlayışı.

  • JavaScript ve #Ethereum Hardhat veya Foundry gibi geliştirme araçlarına aşinalık.

3. Kurulum

  • Düğüm Paketi Kurulumu:

    npm @redstone-finance/evm-connector'ı kurun

  • Dökümhane Kurulumu:
    Foundry kullanıcılarının bağımlılıkları git alt modülleri aracılığıyla yüklemeleri gerekir:

    forge kurulumu redstone-finance/redstone-oracles-monorepo
    OpenZeppelin/openzeppelin-contracts@v4.9.5'i kurun

  • Dökümhanedeki Yeniden Eşlemelerin Güncellenmesi:
    remappings.txt dosyasına yollar ekleyin:

    echo "@redstone-finance/evm-connector/dist/contracts/=lib/redstone-oracles-monorepo/packages/evm-connector/contracts/
    @openzeppelin/contracts=lib/openzeppelin-contracts/contracts/" >> remappings.txt

4. Akıllı Sözleşme Entegrasyonu

Kaynak: RedStone Oracles
  • Temel Sözleşmelerden Miras:
    Sözleşmeniz, Oracle verilerini kullanmak için RedStone'un temel sözleşmelerinden birini kapsamalıdır:

    import "@redstone-finance/evm-connector/contracts/data-services/MainDemoConsumerBase.sol";

    sözleşme YourContractName MainDemoConsumerBase'i genişletiyor {
    // Ek sözleşme kodu burada
    }

  • Veri işleniyor:
    Sözleşmeniz dahilinde Oracle verilerini almak ve işlemek için işlevler uygulayın:

    function fetchOracleData(bytes32 dataIdentifier) ​​public şunu döndürür: (uint256) {
    uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
    veriDeğerini döndür;
    }

5. Ön Uç Entegrasyonu

  • Ethers.js Sarmalayıcısını Ayarlama:
    Akıllı sözleşmeyle etkileşim kurmak için RedStone EVM bağlayıcısını eters.js ile entegre edin:

    const { WrapperBuilder } = require("@redstone-finance/evm-connector");
    const eterler = require("eterler");

    let sağlayıcı = new ethers.providers.JsonRpcProvider();
    let sözleşme = yeni eterler.Contract(sözleşmeAdresi, sözleşmeABI, sağlayıcı);

    let sarmalanmışContract = WrapperBuilder.wrap(sözleşme).usingDataService({
    veri Akışları: ["ETH", "BTC"]
    });

Kaynak: RedStone Oracles
  • Sözleşmelerle Etkileşim:
    İşlevleri normalde yaptığınız gibi çağırmak için sarılmış sözleşmeyi kullanın:

    eşzamansız işlev callContractFunction() {
    let sonuç = wait WrappedContract.fetchOracleData("ETH");
    console.log(`Oracle Verisi: ${sonuç}`);
    }

6. Test Etme ve Dağıtım

  • Baret Testi:
    Etkileşimleri simüle etmek ve sözleşmenin Oracle verilerine yanıtını test etmek için Hardhat'ı kullanın:

    const { beklenti } = require("chai");

    define("Oracle Entegrasyon Testleri", function () {
    it("Oracle verilerini doğru şekilde getirmeli", async function () {
    const data = wait WrappedContract.fetchOracleData("ETH");
    wait(data).to.be.a('sayı');
    });
    });

  • Dağıtım:
    Kapsamlı testlerden sonra sözleşmelerinizi canlı bir ağa dağıtın:

    yer mantarı geçişi --ağ ana ağı

7. Karar

RedStone Oracle'ları DApp'inize entegre etmek, gerçek zamanlı verilerle verimli ve güvenli bir şekilde etkileşim kurma yeteneğini önemli ölçüde artırır. Geliştiriciler, bu adım adım kılavuzu izleyerek, merkezi olmayan uygulamaları başlatmak için RedStone'un gelişmiş blockchain tabanlı oracle çözümlerinden yararlanarak sağlam bir entegrasyon sağlayabilirler.

$ETH