Această lucrare tehnică ghidează dezvoltatorii prin procesul detaliat de integrare a #RedStone Oracles într-o aplicație descentralizată.
Acest document va acoperi fazele de configurare, integrare și testare, asigurându-se că dezvoltatorii pot valorifica aceste capabilități în DApp-urile lor.
1. Introducere
RedStone Oracles oferă o soluție descentralizată pentru accesarea datelor în timp real în cadrul aplicațiilor blockchain. Ei utilizează o rețea de furnizori de date și blockchain-ul Arweave pentru stocarea datelor, asigurând atât integritatea, cât și permanența. Acest ghid va detalia pașii necesari pentru integrarea acestor oracole, de la instalarea inițială până la personalizarea și testarea avansată.
![](https://public.bnbstatic.com/image/pgc/202406/a664e085780a2dda6dec10915a88be31.png)
2. Cerințe de configurare
Înainte de a începe procesul de integrare, asigurați-vă că sunt îndeplinite următoarele cerințe preliminare:
Node.js și npm instalate pe mașina dvs. de dezvoltare.
O înțelegere de bază a Solidity și a contractelor inteligente.
Familiaritate cu JavaScript și instrumente de dezvoltare #Ethereum cum ar fi Hardhat sau Foundry.
3. Instalare
Instalare pachet Node:
npm instalează @redstone-finance/evm-connector
Configurare turnătorie:
Utilizatorii Foundry trebuie să instaleze dependențe prin submodulele git:forge install redstone-finance/redstone-oracles-monorepo
forge install OpenZeppelin/openzeppelin-contracts@v4.9.5Actualizarea remapărilor în Foundry:
Adăugați căi la remappings.txt:echo „@redstone-finance/evm-connector/dist/contracts/=lib/redstone-oracles-monorepo/packages/evm-connector/contracts/
@openzeppelin/contracts=lib/openzeppelin-contracts/contracts/" >> remappings.txt
4. Integrare Smart Contract
![](https://public.bnbstatic.com/image/pgc/202406/6829364cd83a2b9f37891f3a79e5f387.png)
Moșteniți din contractele de bază:
Contractul dvs. ar trebui să se extindă de la unul dintre contractele de bază ale RedStone pentru a utiliza datele Oracle:import „@redstone-finance/evm-connector/contracts/data-services/MainDemoConsumerBase.sol”;
contract YourContractName extinde MainDemoConsumerBase {
// Codul contractului suplimentar aici
}Colectare de date:
Implementați funcții pentru a prelua și gestiona datele oracle în cadrul contractului dvs.:funcția fetchOracleData(bytes32 dataIdentifier) returnează public (uint256) {
uint256 dataValue = getOracleNumericValueFromTxMsg(dataIdentifier);
returnează dataValue;
}
5. Integrare front-end
Configurarea Wrapper-ului Ethers.js:
Integrați conectorul RedStone EVM cu ethers.js pentru a interacționa cu contractul inteligent:const { WrapperBuilder } = require("@redstone-finance/evm-connector");
const ethers = require("eteri");
let provider = new ethers.providers.JsonRpcProvider();
let contract = noi eteri.Contract(contractAddress, contractABI, provider);
let wrappedContract = WrapperBuilder.wrap(contract).usingDataService({
dateFeeds: ["ETH", "BTC"]
});
![](https://public.bnbstatic.com/image/pgc/202406/2ba441390f34b8f14cb7029ab26bba1c.jpg)
Interacțiunea cu contractele:
Utilizați contractul împachetat pentru a apela funcții așa cum ați proceda în mod normal:funcția asincronă callContractFunction() {
let result = await wrappedContract.fetchOracleData("ETH");
console.log(`Date Oracle: ${rezultat}`);
}
6. Testare și implementare
Testare cască:
Utilizați Hardhat pentru a simula interacțiunile și a testa răspunsul contractului la datele oracle:const { astept } = require("chai");
descrie("Teste de integrare Oracle", function () {
it("ar trebui să preia corect datele Oracle", funcția asincronă () {
const data = await wrappedContract.fetchOracleData("ETH");
așteaptă(date).să fie.un('număr');
});
});Implementare:
Implementați-vă contractele într-o rețea live după testare amănunțită:truffle migrate --network mainnet
7. Concluzie
Integrarea RedStone Oracles în DApp îmbunătățește semnificativ capacitatea acestuia de a interacționa cu datele în timp real în mod eficient și sigur. Urmând acest ghid pas cu pas, dezvoltatorii pot asigura o integrare robustă, valorificând soluțiile Oracle avansate bazate pe blockchain RedStone pentru lansarea aplicațiilor descentralizate.