---
title: "ఆరకిల్స్"
description: "ఆరకిల్స్ ఎథీరియం స్మార్ట్ కాంట్రాక్ట్‌లకు వాస్తవ ప్రపంచ డేటాకు ప్రాప్యతను అందిస్తాయి, వినియోగదారుల కోసం మరిన్ని వినియోగ సందర్భాలను మరియు ఎక్కువ విలువను అన్‌లాక్ చేస్తాయి."
lang: te
authors: ["పాట్రిక్ కాలిన్స్"]
---

ఆరకిల్స్ అనేవి స్మార్ట్ కాంట్రాక్ట్‌ల కోసం బ్లాక్‌చైన్‌కు ఆఫ్‌చైన్ డేటా మూలాలను అందుబాటులో ఉంచే డేటా ఫీడ్‌లను ఉత్పత్తి చేసే అప్లికేషన్‌లు. ఎథీరియం-ఆధారిత స్మార్ట్ కాంట్రాక్ట్‌లు అప్రమేయంగా బ్లాక్‌చైన్ నెట్‌వర్క్ వెలుపల నిల్వ చేయబడిన సమాచారాన్ని యాక్సెస్ చేయలేవు కాబట్టి ఇది అవసరం.

ఆఫ్‌చైన్ డేటాను ఉపయోగించి అమలు చేసే సామర్థ్యాన్ని స్మార్ట్ కాంట్రాక్ట్‌లకు ఇవ్వడం వికేంద్రీకృత అప్లికేషన్‌ల (dapps) ప్రయోజనాన్ని మరియు విలువను విస్తరిస్తుంది. ఉదాహరణకు, ఆన్‌చైన్ అంచనా మార్కెట్‌లు వినియోగదారు అంచనాలను ధృవీకరించడానికి ఉపయోగించే ఫలితాల గురించి సమాచారాన్ని అందించడానికి ఆరకిల్స్‌పై ఆధారపడతాయి. తదుపరి అమెరికా అధ్యక్షుడు ఎవరు అవుతారనే దానిపై ఆలిస్ 20 ETH పందెం వేసిందని అనుకుందాం. ఆ సందర్భంలో, ఎన్నికల ఫలితాలను నిర్ధారించడానికి మరియు ఆలిస్ చెల్లింపుకు అర్హురాలా కాదా అని నిర్ణయించడానికి అంచనా మార్కెట్ dappకి ఒక ఆరకిల్ అవసరం.

## ముందస్తు అవసరాలు {#prerequisites}

ఈ పేజీ చదివేవారికి [ఎథీరియం](/) ప్రాథమిక అంశాలు, [నోడ్‌లు](/developers/docs/nodes-and-clients/), [ఏకాభిప్రాయ యంత్రాంగాలు](/developers/docs/consensus-mechanisms/) మరియు [EVM](/developers/docs/evm/) గురించి తెలిసి ఉంటుందని భావిస్తుంది. మీకు [స్మార్ట్ కాంట్రాక్ట్‌లు](/developers/docs/smart-contracts/) మరియు [స్మార్ట్ కాంట్రాక్ట్ నిర్మాణం](/developers/docs/smart-contracts/anatomy/), ముఖ్యంగా [ఈవెంట్‌లు](/glossary/#events) గురించి కూడా మంచి అవగాహన ఉండాలి.

## బ్లాక్‌చెయిన్ ఒరాకిల్ అంటే ఏమిటి? {#what-is-a-blockchain-oracle}

ఆరకిల్స్ అనేవి బ్లాక్‌చైన్‌లో నడుస్తున్న స్మార్ట్ కాంట్రాక్ట్‌లకు బాహ్య సమాచారాన్ని (అంటే, ఆఫ్‌చైన్‌లో నిల్వ చేయబడిన సమాచారం) సేకరించే, ధృవీకరించే మరియు ప్రసారం చేసే అప్లికేషన్‌లు. ఆఫ్‌చైన్ డేటాను "లాగడం" మరియు దానిని ఎథీరియంలో ప్రసారం చేయడంతో పాటు, ఆరకిల్స్ బ్లాక్‌చైన్ నుండి బాహ్య సిస్టమ్‌లకు సమాచారాన్ని "పుష్" చేయగలవు, ఉదాహరణకు, వినియోగదారు ఎథీరియం లావాదేవీ ద్వారా రుసుమును పంపిన తర్వాత స్మార్ట్ లాక్‌ని అన్‌లాక్ చేయడం.

ఆరకిల్ లేకుండా, స్మార్ట్ కాంట్రాక్ట్ పూర్తిగా ఆన్‌చైన్ డేటాకు మాత్రమే పరిమితం అవుతుంది.

డేటా మూలం (ఒకటి లేదా బహుళ మూలాలు), ట్రస్ట్ మోడల్‌లు (కేంద్రీకృత లేదా వికేంద్రీకృత) మరియు సిస్టమ్ ఆర్కిటెక్చర్ (తక్షణ-పఠనం, ప్రచురణ-సబ్‌స్క్రైబ్ మరియు అభ్యర్థన-ప్రతిస్పందన) ఆధారంగా ఆరకిల్స్ విభిన్నంగా ఉంటాయి. ఆన్‌చైన్ కాంట్రాక్ట్‌ల (ఇన్‌పుట్ ఆరకిల్స్) ఉపయోగం కోసం అవి బాహ్య డేటాను తిరిగి పొందుతాయా, బ్లాక్‌చైన్ నుండి ఆఫ్‌చైన్ అప్లికేషన్‌లకు (అవుట్‌పుట్ ఆరకిల్స్) సమాచారాన్ని పంపుతాయా లేదా ఆఫ్‌చైన్‌లో (కంప్యూటేషనల్ ఆరకిల్స్) గణన పనులను నిర్వహిస్తాయా అనే దాని ఆధారంగా కూడా మనం ఆరకిల్స్ మధ్య తేడాను గుర్తించవచ్చు.

## స్మార్ట్ కాంట్రాక్ట్‌లకు ఆరకిల్స్ ఎందుకు అవసరం? {#why-do-smart-contracts-need-oracles}

చాలా మంది డెవలపర్‌లు స్మార్ట్ కాంట్రాక్ట్‌లను బ్లాక్‌చైన్‌లోని నిర్దిష్ట చిరునామాల వద్ద నడుస్తున్న కోడ్‌గా చూస్తారు. అయితే, [స్మార్ట్ కాంట్రాక్ట్‌ల యొక్క సాధారణ దృక్పథం](/smart-contracts/) ఏమిటంటే, నిర్దిష్ట షరతులు నెరవేరిన తర్వాత పార్టీల మధ్య ఒప్పందాలను అమలు చేయగల సామర్థ్యం ఉన్న స్వీయ-అమలు సాఫ్ట్‌వేర్ ప్రోగ్రామ్‌లు - అందుకే "స్మార్ట్ కాంట్రాక్ట్‌లు" అనే పదం వచ్చింది.

కానీ ఎథీరియం నిర్ణయాత్మకమైనది (deterministic) కాబట్టి, వ్యక్తుల మధ్య ఒప్పందాలను అమలు చేయడానికి స్మార్ట్ కాంట్రాక్ట్‌లను ఉపయోగించడం అంత సులభం కాదు. [నిర్ణయాత్మక వ్యవస్థ](https://en.wikipedia.org/wiki/Deterministic_algorithm) అనేది ప్రారంభ స్థితి మరియు నిర్దిష్ట ఇన్‌పుట్ ఇచ్చినప్పుడు ఎల్లప్పుడూ ఒకే ఫలితాలను ఉత్పత్తి చేస్తుంది, అంటే ఇన్‌పుట్‌ల నుండి అవుట్‌పుట్‌లను లెక్కించే ప్రక్రియలో ఎటువంటి యాదృచ్ఛికత లేదా వైవిధ్యం ఉండదు.

నిర్ణయాత్మక అమలును సాధించడానికి, బ్లాక్‌చైన్‌లు బ్లాక్‌చైన్‌లో నిల్వ చేయబడిన డేటాను _మాత్రమే_ ఉపయోగించి సాధారణ బైనరీ (నిజం/తప్పు) ప్రశ్నలపై ఏకాభిప్రాయాన్ని చేరుకోవడానికి నోడ్‌లను పరిమితం చేస్తాయి. అటువంటి ప్రశ్నల ఉదాహరణలు:

- “ఖాతా యజమాని (పబ్లిక్ కీ ద్వారా గుర్తించబడినవారు) జత చేయబడిన ప్రైవేట్ కీతో ఈ లావాదేవీపై సంతకం చేశారా?”
- “ఈ ఖాతాలో లావాదేవీని కవర్ చేయడానికి తగినంత నిధులు ఉన్నాయా?”
- “ఈ స్మార్ట్ కాంట్రాక్ట్ సందర్భంలో ఈ లావాదేవీ చెల్లుబాటు అవుతుందా?”, మొదలైనవి.

బ్లాక్‌చైన్‌లు బాహ్య మూలాల నుండి (అంటే, వాస్తవ ప్రపంచం నుండి) సమాచారాన్ని స్వీకరిస్తే, నిర్ణయాత్మకతను సాధించడం అసాధ్యం అవుతుంది, బ్లాక్‌చైన్ స్థితికి మార్పుల చెల్లుబాటుపై నోడ్‌లు అంగీకరించకుండా నిరోధిస్తుంది. సాంప్రదాయ ధర API నుండి పొందిన ప్రస్తుత ETH-USD మారకపు రేటు ఆధారంగా లావాదేవీని అమలు చేసే స్మార్ట్ కాంట్రాక్ట్‌ను ఉదాహరణగా తీసుకోండి. ఈ సంఖ్య తరచుగా మారే అవకాశం ఉంది (API నిలిపివేయబడవచ్చు లేదా హ్యాక్ చేయబడవచ్చు అని ప్రత్యేకంగా చెప్పనవసరం లేదు), అంటే ఒకే కాంట్రాక్ట్ కోడ్‌ను అమలు చేసే నోడ్‌లు వేర్వేరు ఫలితాలకు చేరుకుంటాయి.

ప్రపంచవ్యాప్తంగా వేలాది నోడ్‌లు లావాదేవీలను ప్రాసెస్ చేస్తున్న ఎథీరియం వంటి పబ్లిక్ బ్లాక్‌చైన్‌కు, నిర్ణయాత్మకత చాలా కీలకం. సత్యానికి మూలంగా పనిచేసే కేంద్ర అధికారం లేనందున, ఒకే లావాదేవీలను వర్తింపజేసిన తర్వాత ఒకే స్థితికి చేరుకోవడానికి నోడ్‌లకు యంత్రాంగాలు అవసరం. నోడ్ A స్మార్ట్ కాంట్రాక్ట్ కోడ్‌ను అమలు చేసి ఫలితంగా "3"ని పొంది, అదే లావాదేవీని అమలు చేసిన తర్వాత నోడ్ B "7"ని పొందే సందర్భం ఏకాభిప్రాయం విచ్ఛిన్నం కావడానికి కారణమవుతుంది మరియు వికేంద్రీకృత కంప్యూటింగ్ ప్లాట్‌ఫారమ్‌గా ఎథీరియం విలువను తొలగిస్తుంది.

బాహ్య మూలాల నుండి సమాచారాన్ని లాగడానికి బ్లాక్‌చైన్‌లను రూపొందించడంలో ఉన్న సమస్యను కూడా ఈ దృశ్యం హైలైట్ చేస్తుంది. అయితే, ఆరకిల్స్ ఆఫ్‌చైన్ మూలాల నుండి సమాచారాన్ని తీసుకొని స్మార్ట్ కాంట్రాక్ట్‌లు వినియోగించుకోవడానికి బ్లాక్‌చైన్‌లో నిల్వ చేయడం ద్వారా ఈ సమస్యను పరిష్కరిస్తాయి. ఆన్‌చైన్‌లో నిల్వ చేయబడిన సమాచారం మార్చలేనిది మరియు పబ్లిక్‌గా అందుబాటులో ఉంటుంది కాబట్టి, ఎథీరియం నోడ్‌లు ఏకాభిప్రాయాన్ని విచ్ఛిన్నం చేయకుండా స్థితి మార్పులను లెక్కించడానికి ఆరకిల్ దిగుమతి చేసిన ఆఫ్‌చైన్ డేటాను సురక్షితంగా ఉపయోగించవచ్చు.

దీన్ని చేయడానికి, ఆరకిల్ సాధారణంగా ఆన్‌చైన్‌లో నడుస్తున్న స్మార్ట్ కాంట్రాక్ట్ మరియు కొన్ని ఆఫ్‌చైన్ భాగాలతో రూపొందించబడింది. ఆన్‌చైన్ కాంట్రాక్ట్ ఇతర స్మార్ట్ కాంట్రాక్ట్‌ల నుండి డేటా కోసం అభ్యర్థనలను స్వీకరిస్తుంది, దానిని ఆఫ్‌చైన్ భాగానికి (ఆరకిల్ నోడ్ అని పిలుస్తారు) పంపుతుంది. ఈ ఆరకిల్ నోడ్ డేటా మూలాలను ప్రశ్నించగలదు—ఉదాహరణకు, అప్లికేషన్ ప్రోగ్రామింగ్ ఇంటర్‌ఫేస్‌లను (APIలు) ఉపయోగించి—మరియు అభ్యర్థించిన డేటాను స్మార్ట్ కాంట్రాక్ట్ నిల్వలో నిల్వ చేయడానికి లావాదేవీలను పంపగలదు.

ముఖ్యంగా, బ్లాక్‌చెయిన్ ఒరాకిల్ బ్లాక్‌చైన్ మరియు బాహ్య వాతావరణం మధ్య సమాచార అంతరాన్ని తగ్గిస్తుంది, "హైబ్రిడ్ స్మార్ట్ కాంట్రాక్ట్‌లను" సృష్టిస్తుంది. హైబ్రిడ్ స్మార్ట్ కాంట్రాక్ట్ అనేది ఆన్‌చైన్ కాంట్రాక్ట్ కోడ్ మరియు ఆఫ్‌చైన్ ఇన్‌ఫ్రాస్ట్రక్చర్ కలయిక ఆధారంగా పనిచేస్తుంది. వికేంద్రీకృత అంచనా మార్కెట్‌లు హైబ్రిడ్ స్మార్ట్ కాంట్రాక్ట్‌లకు అద్భుతమైన ఉదాహరణ. ఇతర ఉదాహరణలలో నిర్దిష్ట వాతావరణ పరిస్థితులు సంభవించాయని ఆరకిల్స్ సమితి నిర్ణయించినప్పుడు చెల్లించే పంట బీమా స్మార్ట్ కాంట్రాక్ట్‌లు ఉండవచ్చు.

## ఆరకిల్ సమస్య అంటే ఏమిటి? {#the-oracle-problem}

ఆరకిల్స్ ఒక ముఖ్యమైన సమస్యను పరిష్కరిస్తాయి, కానీ కొన్ని చిక్కులను కూడా పరిచయం చేస్తాయి, ఉదాహరణకు:

- ఇంజెక్ట్ చేయబడిన సమాచారం సరైన మూలం నుండి సంగ్రహించబడిందని లేదా తారుమారు చేయబడలేదని మనం ఎలా ధృవీకరించాలి?

- ఈ డేటా ఎల్లప్పుడూ అందుబాటులో ఉంటుందని మరియు క్రమం తప్పకుండా నవీకరించబడుతుందని మనం ఎలా నిర్ధారించుకోవాలి?

"ఆరకిల్ సమస్య" అని పిలువబడేది స్మార్ట్ కాంట్రాక్ట్‌లకు ఇన్‌పుట్‌లను పంపడానికి బ్లాక్‌చెయిన్ ఒరాకిల్స్‌ను ఉపయోగించడంతో వచ్చే సమస్యలను ప్రదర్శిస్తుంది. స్మార్ట్ కాంట్రాక్ట్ సరిగ్గా అమలు కావడానికి ఆరకిల్ నుండి వచ్చే డేటా సరైనదిగా ఉండాలి. ఇంకా, ఖచ్చితమైన సమాచారాన్ని అందించడానికి ఆరకిల్ ఆపరేటర్‌లను 'విశ్వసించాల్సి' రావడం స్మార్ట్ కాంట్రాక్ట్‌ల 'విశ్వాస రహిత' (trustless) అంశాన్ని బలహీనపరుస్తుంది.

వేర్వేరు ఆరకిల్స్ ఆరకిల్ సమస్యకు వేర్వేరు పరిష్కారాలను అందిస్తాయి, వీటిని మనం తర్వాత విశ్లేషిస్తాము. కింది సవాళ్లను అవి ఎంత బాగా నిర్వహించగలవు అనే దాని ఆధారంగా ఆరకిల్స్ సాధారణంగా మూల్యాంకనం చేయబడతాయి:

1. **ఖచ్చితత్వం**: చెల్లని ఆఫ్‌చైన్ డేటా ఆధారంగా స్మార్ట్ కాంట్రాక్ట్‌లు స్థితి మార్పులను ప్రేరేపించేలా ఆరకిల్ చేయకూడదు. ఆరకిల్ డేటా యొక్క _ప్రామాణికత_ మరియు _సమగ్రతకు_ హామీ ఇవ్వాలి. ప్రామాణికత అంటే డేటా సరైన మూలం నుండి పొందబడింది, అయితే సమగ్రత అంటే ఆన్‌చైన్‌కు పంపబడటానికి ముందు డేటా చెక్కుచెదరకుండా (అంటే, మార్చబడలేదు) ఉంది.

2. **లభ్యత**: స్మార్ట్ కాంట్రాక్ట్‌లు చర్యలను అమలు చేయకుండా మరియు స్థితి మార్పులను ప్రేరేపించకుండా ఆరకిల్ ఆలస్యం చేయకూడదు లేదా నిరోధించకూడదు. అంటే ఆరకిల్ నుండి డేటా అంతరాయం లేకుండా _అభ్యర్థనపై అందుబాటులో_ ఉండాలి.

3. **ప్రోత్సాహక అనుకూలత**: స్మార్ట్ కాంట్రాక్ట్‌లకు సరైన సమాచారాన్ని సమర్పించడానికి ఆరకిల్ ఆఫ్‌చైన్ డేటా ప్రొవైడర్‌లను ప్రోత్సహించాలి. ప్రోత్సాహక అనుకూలతలో _ఆపాదింపు (attributability)_ మరియు _జవాబుదారీతనం (accountability)_ ఉంటాయి. ఆపాదింపు అనేది బాహ్య సమాచారాన్ని దాని ప్రొవైడర్‌కు లింక్ చేయడానికి అనుమతిస్తుంది, అయితే జవాబుదారీతనం డేటా ప్రొవైడర్‌లను వారు ఇచ్చే సమాచారానికి కట్టుబడి ఉండేలా చేస్తుంది, తద్వారా అందించిన సమాచారం నాణ్యత ఆధారంగా వారికి బహుమతి లేదా జరిమానా విధించవచ్చు.

## బ్లాక్‌చెయిన్ ఒరాకిల్ సేవ ఎలా పనిచేస్తుంది? {#how-does-a-blockchain-oracle-service-work}

### వినియోగదారులు {#users}

వినియోగదారులు అంటే నిర్దిష్ట చర్యలను పూర్తి చేయడానికి బ్లాక్‌చైన్‌కు వెలుపల సమాచారం అవసరమయ్యే ఎంటిటీలు (అంటే, స్మార్ట్ కాంట్రాక్ట్‌లు). ఆరకిల్ సేవ యొక్క ప్రాథమిక వర్క్‌ఫ్లో వినియోగదారు ఆరకిల్ కాంట్రాక్ట్‌కు డేటా అభ్యర్థనను పంపడంతో ప్రారంభమవుతుంది. డేటా అభ్యర్థనలు సాధారణంగా కింది ప్రశ్నలలో కొన్నింటికి లేదా అన్నింటికీ సమాధానం ఇస్తాయి:

1. అభ్యర్థించిన సమాచారం కోసం ఆఫ్‌చైన్ నోడ్‌లు ఏ మూలాలను సంప్రదించగలవు?

2. రిపోర్టర్‌లు డేటా మూలాల నుండి సమాచారాన్ని ఎలా ప్రాసెస్ చేస్తారు మరియు ఉపయోగకరమైన డేటా పాయింట్‌లను ఎలా సంగ్రహిస్తారు?

3. డేటాను తిరిగి పొందడంలో ఎన్ని ఆరకిల్ నోడ్‌లు పాల్గొనగలవు?

4. ఆరకిల్ నివేదికలలోని వ్యత్యాసాలను ఎలా నిర్వహించాలి?

5. సమర్పణలను ఫిల్టర్ చేయడంలో మరియు నివేదికలను ఒకే విలువగా సమగ్రపరచడంలో ఏ పద్ధతిని అమలు చేయాలి?

### ఆరకిల్ కాంట్రాక్ట్ {#oracle-contract}

ఆరకిల్ కాంట్రాక్ట్ అనేది ఆరకిల్ సేవ కోసం ఆన్‌చైన్ భాగం. ఇది ఇతర కాంట్రాక్ట్‌ల నుండి డేటా అభ్యర్థనల కోసం వింటుంది, ఆరకిల్ నోడ్‌లకు డేటా ప్రశ్నలను ప్రసారం చేస్తుంది మరియు తిరిగి వచ్చిన డేటాను క్లయింట్ కాంట్రాక్ట్‌లకు ప్రసారం చేస్తుంది. అభ్యర్థిస్తున్న కాంట్రాక్ట్‌కు పంపడానికి సమగ్ర విలువను ఉత్పత్తి చేయడానికి ఈ కాంట్రాక్ట్ తిరిగి వచ్చిన డేటా పాయింట్‌లపై కొంత గణనను కూడా చేయవచ్చు.

డేటా అభ్యర్థన చేస్తున్నప్పుడు క్లయింట్ కాంట్రాక్ట్‌లు కాల్ చేసే కొన్ని ఫంక్షన్‌లను ఆరకిల్ కాంట్రాక్ట్ బహిర్గతం చేస్తుంది. కొత్త ప్రశ్నను స్వీకరించిన తర్వాత, స్మార్ట్ కాంట్రాక్ట్ డేటా అభ్యర్థన వివరాలతో [లాగ్ ఈవెంట్‌ను](/developers/docs/smart-contracts/anatomy/#events-and-logs) విడుదల చేస్తుంది. ఇది లాగ్‌కు సబ్‌స్క్రైబ్ చేయబడిన ఆఫ్‌చైన్ నోడ్‌లకు తెలియజేస్తుంది (సాధారణంగా జేసన్-ఆర్‌పీసీ `eth_subscribe` కమాండ్ లాంటిదాన్ని ఉపయోగించి), వారు లాగ్ ఈవెంట్‌లో నిర్వచించిన డేటాను తిరిగి పొందడానికి ముందుకు వెళతారు.

పెడ్రో కోస్టా రూపొందించిన [ఉదాహరణ ఆరకిల్ కాంట్రాక్ట్](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) కింద ఉంది. ఇది ఇతర స్మార్ట్ కాంట్రాక్ట్‌ల అభ్యర్థనపై ఆఫ్‌చైన్ APIలను ప్రశ్నించగల మరియు అభ్యర్థించిన సమాచారాన్ని బ్లాక్‌చైన్‌లో నిల్వ చేయగల సాధారణ ఆరకిల్ సేవ:

```solidity
pragma solidity >=0.4.21 <0.6.0;

contract Oracle {
  Request[] requests; //కాంట్రాక్ట్‌కు చేసిన అభ్యర్థనల జాబితా
  uint currentId = 0; //పెరుగుతున్న అభ్యర్థన id
  uint minQuorum = 2; //తుది ఫలితాన్ని ప్రకటించడానికి ముందు స్వీకరించాల్సిన కనీస ప్రతిస్పందనల సంఖ్య
  uint totalOracleCount = 3; // హార్డ్‌కోడ్ చేసిన ఆరకిల్ సంఖ్య

  // సాధారణ API అభ్యర్థనను నిర్వచిస్తుంది
  struct Request {
    uint id;                            //అభ్యర్థన id
    string urlToQuery;                  //API url
    string attributeToFetch;            //ప్రతిస్పందనలో తిరిగి పొందాల్సిన json అట్రిబ్యూట్ (కీ)
    string agreedValue;                 //కీ నుండి విలువ
    mapping(uint => string) answers;     //ఆరకిల్స్ అందించిన సమాధానాలు
    mapping(address => uint) quorum;    //సమాధానాన్ని ప్రశ్నించే ఆరకిల్స్ (1=ఆరకిల్ ఓటు వేయలేదు, 2=ఆరకిల్ ఓటు వేసింది)
  }

  //బ్లాక్‌చైన్ వెలుపల ఆరకిల్‌ను ప్రేరేపించే ఈవెంట్
  event NewRequest (
    uint id,
    string urlToQuery,
    string attributeToFetch
  );

  //తుది ఫలితంపై ఏకాభిప్రాయం ఉన్నప్పుడు ప్రేరేపించబడుతుంది
  event UpdatedRequest (
    uint id,
    string urlToQuery,
    string attributeToFetch,
    string agreedValue
  );

  function createRequest (
    string memory _urlToQuery,
    string memory _attributeToFetch
  )
  public
  {
    uint length = requests.push(Request(currentId, _urlToQuery, _attributeToFetch, ""));
    Request storage r = requests[length-1];

    // హార్డ్‌కోడ్ చేసిన ఆరకిల్స్ చిరునామా
    r.quorum[address(0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77)] = 1;
    r.quorum[address(0xb5346CF224c02186606e5f89EACC21eC25398077)] = 1;
    r.quorum[address(0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914)] = 1;

    // బ్లాక్‌చైన్ వెలుపల ఆరకిల్ ద్వారా గుర్తించబడటానికి ఒక ఈవెంట్‌ను ప్రారంభించండి
    emit NewRequest (
      currentId,
      _urlToQuery,
      _attributeToFetch
    );

    // అభ్యర్థన idని పెంచండి
    currentId++;
  }

  //తన సమాధానాన్ని రికార్డ్ చేయడానికి ఆరకిల్ ద్వారా కాల్ చేయబడుతుంది
  function updateRequest (
    uint _id,
    string memory _valueRetrieved
  ) public {

    Request storage currRequest = requests[_id];

    //విశ్వసనీయ ఆరకిల్స్ జాబితాలో ఆరకిల్ ఉందో లేదో తనిఖీ చేయండి
    //మరియు ఆరకిల్ ఇంకా ఓటు వేయకపోతే
    if(currRequest.quorum[address(msg.sender)] == 1){

      //ఈ చిరునామా ఓటు వేసిందని గుర్తు పెట్టడం
      currRequest.quorum[msg.sender] = 2;

      //ఒక స్థానం ఖాళీ అయ్యే వరకు సమాధానాల "అర్రే" ద్వారా మళ్ళించి, తిరిగి పొందిన విలువను సేవ్ చేయండి
      uint tmpI = 0;
      bool found = false;
      while(!found) {
        //మొదటి ఖాళీ స్లాట్‌ను కనుగొనండి
        if(bytes(currRequest.answers[tmpI]).length == 0){
          found = true;
          currRequest.answers[tmpI] = _valueRetrieved;
        }
        tmpI++;
      }

      uint currentQuorum = 0;

      //ఆరకిల్ జాబితా ద్వారా మళ్ళించి, తగినన్ని ఆరకిల్స్ (కనీస కోరమ్) ఉన్నాయో లేదో తనిఖీ చేయండి
      //ప్రస్తుత సమాధానం వలె అదే సమాధానానికి ఓటు వేశాయా
      for(uint i = 0; i < totalOracleCount; i++){
        bytes memory a = bytes(currRequest.answers[i]);
        bytes memory b = bytes(_valueRetrieved);

        if(keccak256(a) == keccak256(b)){
          currentQuorum++;
          if(currentQuorum >= minQuorum){
            currRequest.agreedValue = _valueRetrieved;
            emit UpdatedRequest (
              currRequest.id,
              currRequest.urlToQuery,
              currRequest.attributeToFetch,
              currRequest.agreedValue
            );
          }
        }
      }
    }
  }
}
```

### ఆరకిల్ నోడ్‌లు {#oracle-nodes}

ఆరకిల్ నోడ్ అనేది ఆరకిల్ సేవ యొక్క ఆఫ్‌చైన్ భాగం. ఇది థర్డ్-పార్టీ సర్వర్‌లలో హోస్ట్ చేయబడిన APIల వంటి బాహ్య మూలాల నుండి సమాచారాన్ని సంగ్రహిస్తుంది మరియు స్మార్ట్ కాంట్రాక్ట్‌ల వినియోగం కోసం దానిని ఆన్‌చైన్‌లో ఉంచుతుంది. ఆరకిల్ నోడ్‌లు ఆన్‌చైన్ ఆరకిల్ కాంట్రాక్ట్ నుండి ఈవెంట్‌ల కోసం వింటాయి మరియు లాగ్‌లో వివరించిన పనిని పూర్తి చేయడానికి ముందుకు వెళతాయి.

ఆరకిల్ నోడ్‌ల కోసం ఒక సాధారణ పని ఏమిటంటే API సేవకు [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) అభ్యర్థనను పంపడం, సంబంధిత డేటాను సంగ్రహించడానికి ప్రతిస్పందనను అన్వయించడం, బ్లాక్‌చైన్-చదవగలిగే అవుట్‌పుట్‌గా ఫార్మాట్ చేయడం మరియు ఆరకిల్ కాంట్రాక్ట్‌కు లావాదేవీలో చేర్చడం ద్వారా దానిని ఆన్‌చైన్‌కు పంపడం. సమర్పించిన సమాచారం యొక్క చెల్లుబాటు మరియు సమగ్రతను "ప్రామాణికత రుజువులను" ఉపయోగించి ధృవీకరించడానికి ఆరకిల్ నోడ్ కూడా అవసరం కావచ్చు, వీటిని మనం తర్వాత విశ్లేషిస్తాము.

గ్యాస్ ఖర్చులు మరియు బ్లాక్ పరిమాణ పరిమితుల దృష్ట్యా, ఆన్‌చైన్‌లో అమలు చేయడానికి ఆచరణీయం కాని గణన పనులను నిర్వహించడానికి కంప్యూటేషనల్ ఆరకిల్స్ కూడా ఆఫ్‌చైన్ నోడ్‌లపై ఆధారపడతాయి. ఉదాహరణకు, ఆరకిల్ నోడ్‌కు ధృవీకరించదగిన యాదృచ్ఛిక సంఖ్యను రూపొందించే పనిని అప్పగించవచ్చు (ఉదా., బ్లాక్‌చైన్-ఆధారిత ఆటల కోసం).

## ఆరకిల్ డిజైన్ నమూనాలు {#oracle-design-patterns}

ఆరకిల్స్ _తక్షణ-పఠనం_, _ప్రచురణ-సబ్‌స్క్రైబ్_ మరియు _అభ్యర్థన-ప్రతిస్పందన_ వంటి విభిన్న రకాల్లో వస్తాయి, వీటిలో చివరి రెండు ఎథీరియం స్మార్ట్ కాంట్రాక్ట్‌లలో అత్యంత ప్రాచుర్యం పొందాయి. ఇక్కడ మనం ప్రచురణ-సబ్‌స్క్రైబ్ మరియు అభ్యర్థన-ప్రతిస్పందన నమూనాలను క్లుప్తంగా వివరిస్తాము.

### ప్రచురణ-సబ్‌స్క్రైబ్ ఆరకిల్స్ {#publish-subscribe-oracles}

ఈ రకమైన ఆరకిల్ "డేటా ఫీడ్"ను బహిర్గతం చేస్తుంది, దీనిని ఇతర కాంట్రాక్ట్‌లు సమాచారం కోసం క్రమం తప్పకుండా చదవగలవు. ఈ సందర్భంలో డేటా తరచుగా మారుతుందని భావిస్తున్నారు, కాబట్టి క్లయింట్ కాంట్రాక్ట్‌లు ఆరకిల్ నిల్వలోని డేటాకు నవీకరణల కోసం వినాలి. వినియోగదారులకు తాజా ETH-USD ధర సమాచారాన్ని అందించే ఆరకిల్ ఒక ఉదాహరణ.

### అభ్యర్థన-ప్రతిస్పందన ఆరకిల్స్ {#request-response-oracles}

అభ్యర్థన-ప్రతిస్పందన సెటప్ ప్రచురణ-సబ్‌స్క్రైబ్ ఆరకిల్ అందించిన డేటా కాకుండా ఏకపక్ష డేటాను అభ్యర్థించడానికి క్లయింట్ కాంట్రాక్ట్‌ను అనుమతిస్తుంది. డేటాసెట్ స్మార్ట్ కాంట్రాక్ట్ నిల్వలో నిల్వ చేయడానికి చాలా పెద్దదిగా ఉన్నప్పుడు మరియు/లేదా వినియోగదారులకు ఏ సమయంలోనైనా డేటాలో కొంత భాగం మాత్రమే అవసరమైనప్పుడు అభ్యర్థన-ప్రతిస్పందన ఆరకిల్స్ అనువైనవి.

ప్రచురణ-సబ్‌స్క్రైబ్ నమూనాల కంటే సంక్లిష్టమైనప్పటికీ, అభ్యర్థన-ప్రతిస్పందన ఆరకిల్స్ ప్రాథమికంగా మునుపటి విభాగంలో మనం వివరించినవే. ఆరకిల్ డేటా అభ్యర్థనను స్వీకరించే ఆన్‌చైన్ భాగాన్ని కలిగి ఉంటుంది మరియు ప్రాసెసింగ్ కోసం దానిని ఆఫ్‌చైన్ నోడ్‌కు పంపుతుంది.

డేటా ప్రశ్నలను ప్రారంభించే వినియోగదారులు ఆఫ్‌చైన్ మూలం నుండి సమాచారాన్ని తిరిగి పొందే ఖర్చును భరించాలి. అభ్యర్థనలో పేర్కొన్న కాల్‌బ్యాక్ ఫంక్షన్ ద్వారా ప్రతిస్పందనను తిరిగి ఇవ్వడంలో ఆరకిల్ కాంట్రాక్ట్ ద్వారా అయ్యే గ్యాస్ ఖర్చులను కవర్ చేయడానికి క్లయింట్ కాంట్రాక్ట్ నిధులను కూడా అందించాలి.

## కేంద్రీకృత వర్సెస్ వికేంద్రీకృత ఆరకిల్స్ {#types-of-oracles}

### కేంద్రీకృత ఆరకిల్స్ {#centralized-oracles}

కేంద్రీకృత ఆరకిల్ అనేది ఆఫ్‌చైన్ సమాచారాన్ని సమగ్రపరచడానికి మరియు అభ్యర్థించిన విధంగా ఆరకిల్ కాంట్రాక్ట్ డేటాను నవీకరించడానికి బాధ్యత వహించే ఒకే ఎంటిటీ ద్వారా నియంత్రించబడుతుంది. కేంద్రీకృత ఆరకిల్స్ సత్యం యొక్క ఒకే మూలంపై ఆధారపడతాయి కాబట్టి అవి సమర్థవంతమైనవి. విస్తృతంగా ఆమోదించబడిన సంతకంతో యజమాని ద్వారా నేరుగా యాజమాన్య డేటాసెట్‌లు ప్రచురించబడే సందర్భాల్లో అవి మెరుగ్గా పనిచేయవచ్చు. అయితే, అవి ప్రతికూలతలను కూడా తెస్తాయి:

#### తక్కువ ఖచ్చితత్వ హామీలు {#low-correctness-guarantees}

కేంద్రీకృత ఆరకిల్స్‌తో, అందించిన సమాచారం సరైనదో కాదో నిర్ధారించడానికి మార్గం లేదు. "ప్రసిద్ధ" ప్రొవైడర్లు కూడా మోసపూరితంగా మారవచ్చు లేదా హ్యాక్ చేయబడవచ్చు. ఆరకిల్ పాడైపోతే, చెడు డేటా ఆధారంగా స్మార్ట్ కాంట్రాక్ట్‌లు అమలు చేయబడతాయి.

#### పేలవమైన లభ్యత {#poor-availability}

కేంద్రీకృత ఆరకిల్స్ ఇతర స్మార్ట్ కాంట్రాక్ట్‌లకు ఆఫ్‌చైన్ డేటాను ఎల్లప్పుడూ అందుబాటులో ఉంచుతాయని హామీ లేదు. ప్రొవైడర్ సేవను ఆపివేయాలని నిర్ణయించుకుంటే లేదా హ్యాకర్ ఆరకిల్ యొక్క ఆఫ్‌చైన్ భాగాన్ని హైజాక్ చేస్తే, మీ స్మార్ట్ కాంట్రాక్ట్ డినయల్ ఆఫ్ సర్వీస్ (DoS) దాడికి గురయ్యే ప్రమాదం ఉంది.

#### పేలవమైన ప్రోత్సాహక అనుకూలత {#poor-incentive-compatibility}

కేంద్రీకృత ఆరకిల్స్ తరచుగా డేటా ప్రొవైడర్ ఖచ్చితమైన/మార్చబడని సమాచారాన్ని పంపడానికి పేలవంగా రూపొందించబడిన లేదా ఉనికిలో లేని ప్రోత్సాహకాలను కలిగి ఉంటాయి. ఖచ్చితత్వం కోసం ఆరకిల్‌కు చెల్లించడం నిజాయితీకి హామీ ఇవ్వదు. స్మార్ట్ కాంట్రాక్ట్‌ల ద్వారా నియంత్రించబడే విలువ మొత్తం పెరిగేకొద్దీ ఈ సమస్య పెద్దదవుతుంది.

### వికేంద్రీకృత ఆరకిల్స్ {#decentralized-oracles}

వైఫల్యం యొక్క ఒకే పాయింట్‌లను తొలగించడం ద్వారా కేంద్రీకృత ఆరకిల్స్ యొక్క పరిమితులను అధిగమించడానికి వికేంద్రీకృత ఆరకిల్స్ రూపొందించబడ్డాయి. వికేంద్రీకృత ఆరకిల్ సేవ పీర్-టు-పీర్ నెట్‌వర్క్‌లో బహుళ భాగస్వాములను కలిగి ఉంటుంది, వారు ఆఫ్‌చైన్ డేటాను స్మార్ట్ కాంట్రాక్ట్‌కు పంపే ముందు దానిపై ఏకాభిప్రాయాన్ని ఏర్పరుస్తారు.

వికేంద్రీకృత ఆరకిల్ (ఆదర్శంగా) అనుమతి రహిత, విశ్వాస రహిత మరియు కేంద్ర పార్టీ పరిపాలన నుండి ఉచితంగా ఉండాలి; వాస్తవానికి, ఆరకిల్స్ మధ్య వికేంద్రీకరణ ఒక స్పెక్ట్రమ్‌లో ఉంటుంది. ఎవరైనా పాల్గొనగలిగే సెమీ-వికేంద్రీకృత ఆరకిల్ నెట్‌వర్క్‌లు ఉన్నాయి, కానీ చారిత్రక పనితీరు ఆధారంగా నోడ్‌లను ఆమోదించే మరియు తీసివేసే "యజమాని"తో ఉంటాయి. పూర్తిగా వికేంద్రీకృత ఆరకిల్ నెట్‌వర్క్‌లు కూడా ఉన్నాయి: ఇవి సాధారణంగా స్వతంత్ర బ్లాక్‌చైన్‌లుగా నడుస్తాయి మరియు నోడ్‌లను సమన్వయం చేయడానికి మరియు దుష్ప్రవర్తనను శిక్షించడానికి ఏకాభిప్రాయ యంత్రాంగాలను నిర్వచించాయి.

వికేంద్రీకృత ఆరకిల్స్‌ను ఉపయోగించడం కింది ప్రయోజనాలతో వస్తుంది:

### అధిక ఖచ్చితత్వ హామీలు {#high-correctness-guarantees}

వికేంద్రీకృత ఆరకిల్స్ విభిన్న విధానాలను ఉపయోగించి డేటా యొక్క ఖచ్చితత్వాన్ని సాధించడానికి ప్రయత్నిస్తాయి. తిరిగి వచ్చిన సమాచారం యొక్క ప్రామాణికత మరియు సమగ్రతను ధృవీకరించే రుజువులను ఉపయోగించడం మరియు ఆఫ్‌చైన్ డేటా యొక్క చెల్లుబాటుపై సమిష్టిగా అంగీకరించడానికి బహుళ ఎంటిటీలు అవసరం కావడం ఇందులో ఉన్నాయి.

#### ప్రామాణికత రుజువులు {#authenticity-proofs}

ప్రామాణికత రుజువులు అనేవి బాహ్య మూలాల నుండి తిరిగి పొందిన సమాచారం యొక్క స్వతంత్ర ధృవీకరణను ప్రారంభించే క్రిప్టోగ్రాఫిక్ యంత్రాంగాలు. ఈ రుజువులు సమాచారం యొక్క మూలాన్ని ధృవీకరించగలవు మరియు తిరిగి పొందిన తర్వాత డేటాకు సాధ్యమయ్యే మార్పులను గుర్తించగలవు.

ప్రామాణికత రుజువుల ఉదాహరణలు:

**ట్రాన్స్‌పోర్ట్ లేయర్ సెక్యూరిటీ (TLS) రుజువులు**: ఆరకిల్ నోడ్‌లు తరచుగా ట్రాన్స్‌పోర్ట్ లేయర్ సెక్యూరిటీ (TLS) ప్రోటోకాల్ ఆధారంగా సురక్షిత HTTP కనెక్షన్‌ని ఉపయోగించి బాహ్య మూలాల నుండి డేటాను తిరిగి పొందుతాయి. కొన్ని వికేంద్రీకృత ఆరకిల్స్ TLS సెషన్‌లను ధృవీకరించడానికి (అంటే, నోడ్ మరియు నిర్దిష్ట సర్వర్ మధ్య సమాచార మార్పిడిని నిర్ధారించడానికి) మరియు సెషన్ కంటెంట్‌లు మార్చబడలేదని నిర్ధారించడానికి ప్రామాణికత రుజువులను ఉపయోగిస్తాయి.

**ట్రస్టెడ్ ఎగ్జిక్యూషన్ ఎన్విరాన్‌మెంట్ (TEE) ధృవీకరణలు**: [ట్రస్టెడ్ ఎగ్జిక్యూషన్ ఎన్విరాన్‌మెంట్](https://en.wikipedia.org/wiki/Trusted_execution_environment) (TEE) అనేది దాని హోస్ట్ సిస్టమ్ యొక్క కార్యాచరణ ప్రక్రియల నుండి వేరుచేయబడిన శాండ్‌బాక్స్డ్ కంప్యూటేషనల్ వాతావరణం. గణన వాతావరణంలో నిల్వ చేయబడిన/ఉపయోగించబడిన అప్లికేషన్ కోడ్ లేదా డేటా ఏదైనా సమగ్రత, గోప్యత మరియు మార్చలేనితనాన్ని కలిగి ఉండేలా TEEలు నిర్ధారిస్తాయి. విశ్వసనీయ అమలు వాతావరణంలో అప్లికేషన్ ఉదాహరణ నడుస్తోందని నిరూపించడానికి వినియోగదారులు ధృవీకరణను కూడా రూపొందించవచ్చు.

వికేంద్రీకృత ఆరకిల్స్ యొక్క కొన్ని తరగతులకు TEE ధృవీకరణలను అందించడానికి ఆరకిల్ నోడ్ ఆపరేటర్లు అవసరం. నోడ్ ఆపరేటర్ విశ్వసనీయ అమలు వాతావరణంలో ఆరకిల్ క్లయింట్ యొక్క ఉదాహరణను నడుపుతున్నారని ఇది వినియోగదారుకు నిర్ధారిస్తుంది. TEEలు అప్లికేషన్ యొక్క కోడ్ మరియు డేటాను మార్చకుండా లేదా చదవకుండా బాహ్య ప్రక్రియలను నిరోధిస్తాయి, కాబట్టి, ఆరకిల్ నోడ్ సమాచారాన్ని చెక్కుచెదరకుండా మరియు గోప్యంగా ఉంచిందని ఆ ధృవీకరణలు నిరూపిస్తాయి.

#### సమాచారం యొక్క ఏకాభిప్రాయ-ఆధారిత ధృవీకరణ {#consensus-based-validation-of-information}

స్మార్ట్ కాంట్రాక్ట్‌లకు డేటాను అందించేటప్పుడు కేంద్రీకృత ఆరకిల్స్ సత్యం యొక్క ఒకే మూలంపై ఆధారపడతాయి, ఇది సరికాని సమాచారాన్ని ప్రచురించే అవకాశాన్ని పరిచయం చేస్తుంది. ఆఫ్‌చైన్ సమాచారాన్ని ప్రశ్నించడానికి బహుళ ఆరకిల్ నోడ్‌లపై ఆధారపడటం ద్వారా వికేంద్రీకృత ఆరకిల్స్ ఈ సమస్యను పరిష్కరిస్తాయి. బహుళ మూలాల నుండి డేటాను పోల్చడం ద్వారా, వికేంద్రీకృత ఆరకిల్స్ ఆన్‌చైన్ కాంట్రాక్ట్‌లకు చెల్లని సమాచారాన్ని పంపే ప్రమాదాన్ని తగ్గిస్తాయి.

అయితే, వికేంద్రీకృత ఆరకిల్స్ బహుళ ఆఫ్‌చైన్ మూలాల నుండి తిరిగి పొందిన సమాచారంలో వ్యత్యాసాలను ఎదుర్కోవాలి. సమాచారంలో వ్యత్యాసాలను తగ్గించడానికి మరియు ఆరకిల్ కాంట్రాక్ట్‌కు పంపబడిన డేటా ఆరకిల్ నోడ్‌ల సమిష్టి అభిప్రాయాన్ని ప్రతిబింబిస్తుందని నిర్ధారించడానికి, వికేంద్రీకృత ఆరకిల్స్ కింది యంత్రాంగాలను ఉపయోగిస్తాయి:

##### డేటా ఖచ్చితత్వంపై ఓటింగ్/స్టేకింగ్

కొన్ని వికేంద్రీకృత ఆరకిల్ నెట్‌వర్క్‌లు నెట్‌వర్క్ యొక్క స్థానిక టోకెన్‌ను ఉపయోగించి డేటా ప్రశ్నలకు (ఉదా., "2020 US ఎన్నికల్లో ఎవరు గెలిచారు?") సమాధానాల ఖచ్చితత్వంపై ఓటు వేయడానికి లేదా స్టేక్ చేయడానికి పాల్గొనేవారిని కోరుతాయి. అగ్రిగేషన్ ప్రోటోకాల్ అప్పుడు ఓట్లు మరియు స్టేక్‌లను సమగ్రపరుస్తుంది మరియు మెజారిటీ మద్దతు ఉన్న సమాధానాన్ని చెల్లుబాటు అయ్యేదిగా తీసుకుంటుంది.

మెజారిటీ సమాధానం నుండి వైదొలిగే సమాధానాలు ఉన్న నోడ్‌లు మరింత సరైన విలువలను అందించే ఇతరులకు వారి టోకెన్‌లను పంపిణీ చేయడం ద్వారా జరిమానా విధించబడతాయి. డేటాను అందించే ముందు బాండ్‌ను అందించమని నోడ్‌లను బలవంతం చేయడం నిజాయితీగల ప్రతిస్పందనలను ప్రోత్సహిస్తుంది, ఎందుకంటే వారు రాబడిని పెంచుకోవాలనే ఉద్దేశ్యంతో హేతుబద్ధమైన ఆర్థిక నటులుగా భావించబడతారు.

ఏకాభిప్రాయ వ్యవస్థను మోసం చేయడానికి హానికరమైన నటులు బహుళ గుర్తింపులను సృష్టించే [సిబిల్ దాడుల](/glossary/#sybil-attack) నుండి స్టేకింగ్/ఓటింగ్ వికేంద్రీకృత ఆరకిల్స్‌ను కూడా రక్షిస్తుంది. అయితే, స్టేకింగ్ "ఫ్రీలోడింగ్" (ఇతరుల నుండి సమాచారాన్ని కాపీ చేసే ఆరకిల్ నోడ్‌లు) మరియు "లేజీ వాలిడేషన్" (సమాచారాన్ని స్వయంగా ధృవీకరించకుండా మెజారిటీని అనుసరించే ఆరకిల్ నోడ్‌లు) నిరోధించదు.

##### షెల్లింగ్ పాయింట్ యంత్రాంగాలు

[షెల్లింగ్ పాయింట్](<https://en.wikipedia.org/wiki/Focal_point_(game_theory)>) అనేది గేమ్-థియరీ కాన్సెప్ట్, ఇది ఎటువంటి కమ్యూనికేషన్ లేనప్పుడు బహుళ ఎంటిటీలు ఎల్లప్పుడూ సమస్యకు సాధారణ పరిష్కారానికి డిఫాల్ట్ అవుతాయని ఊహిస్తుంది. డేటా అభ్యర్థనలకు సమాధానాలపై ఏకాభిప్రాయాన్ని చేరుకోవడానికి నోడ్‌లను ఎనేబుల్ చేయడానికి వికేంద్రీకృత ఆరకిల్ నెట్‌వర్క్‌లలో షెల్లింగ్-పాయింట్ యంత్రాంగాలు తరచుగా ఉపయోగించబడతాయి.

దీని కోసం ఒక ప్రారంభ ఆలోచన [SchellingCoin](https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed), ఇది ప్రతిపాదిత డేటా ఫీడ్, ఇక్కడ పాల్గొనేవారు డిపాజిట్‌తో పాటు "స్కేలార్" ప్రశ్నలకు (పరిమాణం ద్వారా వివరించబడిన సమాధానాలు, ఉదా., "ETH ధర ఎంత?") ప్రతిస్పందనలను సమర్పిస్తారు. 25వ మరియు 75వ [శాతం (percentile)](https://en.wikipedia.org/wiki/Percentile) మధ్య విలువలను అందించే వినియోగదారులకు బహుమతి ఇవ్వబడుతుంది, అయితే మధ్యస్థ విలువ నుండి ఎక్కువగా వైదొలిగే వారికి జరిమానా విధించబడుతుంది.

ఈ రోజు SchellingCoin ఉనికిలో లేనప్పటికీ, అనేక వికేంద్రీకృత ఆరకిల్స్—ముఖ్యంగా [మేకర్ ప్రోటోకాల్ యొక్క ఆరకిల్స్](https://docs.makerdao.com/smart-contract-modules/oracle-module)—ఆరకిల్ డేటా యొక్క ఖచ్చితత్వాన్ని మెరుగుపరచడానికి షెల్లింగ్-పాయింట్ యంత్రాంగాన్ని ఉపయోగిస్తాయి. ప్రతి మేకర్ ఆరకిల్ తాకట్టు ఆస్తుల కోసం మార్కెట్ ధరలను సమర్పించే నోడ్‌ల ("రిలేయర్‌లు" మరియు "ఫీడ్‌లు") ఆఫ్‌చైన్ P2P నెట్‌వర్క్‌ను మరియు అందించిన అన్ని విలువల మధ్యస్థాన్ని లెక్కించే ఆన్‌చైన్ "మీడియనైజర్" కాంట్రాక్ట్‌ను కలిగి ఉంటుంది. పేర్కొన్న ఆలస్యం వ్యవధి ముగిసిన తర్వాత, ఈ మధ్యస్థ విలువ అనుబంధిత ఆస్తికి కొత్త సూచన ధర అవుతుంది.

షెల్లింగ్ పాయింట్ యంత్రాంగాలను ఉపయోగించే ఆరకిల్స్ యొక్క ఇతర ఉదాహరణలలో [చైన్‌లింక్ ఆఫ్‌చైన్ రిపోర్టింగ్](https://docs.chain.link/architecture-overview/off-chain-reporting) మరియు [Witnet](https://witnet.io/) ఉన్నాయి. రెండు సిస్టమ్‌లలో, పీర్-టు-పీర్ నెట్‌వర్క్‌లోని ఆరకిల్ నోడ్‌ల నుండి ప్రతిస్పందనలు సగటు లేదా మధ్యస్థం వంటి ఒకే సమగ్ర విలువగా సమగ్రపరచబడతాయి. నోడ్‌ల ప్రతిస్పందనలు సమగ్ర విలువతో ఎంతవరకు సమలేఖనం చేయబడతాయి లేదా వైదొలగుతాయి అనే దాని ఆధారంగా వాటికి బహుమతి లేదా శిక్ష విధించబడుతుంది.

షెల్లింగ్ పాయింట్ యంత్రాంగాలు ఆకర్షణీయంగా ఉంటాయి ఎందుకంటే అవి వికేంద్రీకరణకు హామీ ఇస్తూ ఆన్‌చైన్ ఫుట్‌ప్రింట్‌ను (ఒక లావాదేవీ మాత్రమే పంపాలి) తగ్గిస్తాయి. సగటు/మధ్యస్థ విలువను ఉత్పత్తి చేసే అల్గారిథమ్‌లోకి ఫీడ్ చేయడానికి ముందు సమర్పించిన ప్రతిస్పందనల జాబితాపై నోడ్‌లు సంతకం చేయాలి కాబట్టి రెండోది సాధ్యమవుతుంది.

### లభ్యత {#availability}

వికేంద్రీకృత ఆరకిల్ సేవలు స్మార్ట్ కాంట్రాక్ట్‌లకు ఆఫ్‌చైన్ డేటా యొక్క అధిక లభ్యతను నిర్ధారిస్తాయి. ఆఫ్‌చైన్ సమాచారం యొక్క మూలం మరియు సమాచారాన్ని ఆన్‌చైన్‌కు బదిలీ చేయడానికి బాధ్యత వహించే నోడ్‌లు రెండింటినీ వికేంద్రీకరించడం ద్వారా ఇది సాధించబడుతుంది.

ఇతర కాంట్రాక్ట్‌ల నుండి ప్రశ్నలను అమలు చేయడానికి ఆరకిల్ కాంట్రాక్ట్ బహుళ నోడ్‌లపై (బహుళ డేటా మూలాలపై కూడా ఆధారపడేవారు) ఆధారపడగలదు కాబట్టి ఇది తప్పు-సహనాన్ని (fault-tolerance) నిర్ధారిస్తుంది. మూలం _మరియు_ నోడ్-ఆపరేటర్ స్థాయిలో వికేంద్రీకరణ చాలా కీలకం—ఒకే మూలం నుండి తిరిగి పొందిన సమాచారాన్ని అందించే ఆరకిల్ నోడ్‌ల నెట్‌వర్క్ కేంద్రీకృత ఆరకిల్ వలె అదే సమస్యను ఎదుర్కొంటుంది.

డేటా అభ్యర్థనలకు త్వరగా ప్రతిస్పందించడంలో విఫలమైన నోడ్ ఆపరేటర్‌లను స్లాషింగ్ చేయడానికి స్టేక్-ఆధారిత ఆరకిల్స్‌కు కూడా అవకాశం ఉంది. ఇది తప్పు-సహన మౌలిక సదుపాయాలలో పెట్టుబడి పెట్టడానికి మరియు సకాలంలో డేటాను అందించడానికి ఆరకిల్ నోడ్‌లను గణనీయంగా ప్రోత్సహిస్తుంది.

### మంచి ప్రోత్సాహక అనుకూలత {#good-incentive-compatibility}

ఆరకిల్ నోడ్‌ల మధ్య [బైజాంటైన్](https://en.wikipedia.org/wiki/Byzantine_fault) ప్రవర్తనను నిరోధించడానికి వికేంద్రీకృత ఆరకిల్స్ వివిధ ప్రోత్సాహక డిజైన్‌లను అమలు చేస్తాయి. ప్రత్యేకంగా, అవి _ఆపాదింపు_ మరియు _జవాబుదారీతనం_ సాధిస్తాయి:

1. వికేంద్రీకృత ఆరకిల్ నోడ్‌లు తరచుగా డేటా అభ్యర్థనలకు ప్రతిస్పందనగా అందించే డేటాపై సంతకం చేయాల్సి ఉంటుంది. ఈ సమాచారం ఆరకిల్ నోడ్‌ల చారిత్రక పనితీరును మూల్యాంకనం చేయడంలో సహాయపడుతుంది, తద్వారా వినియోగదారులు డేటా అభ్యర్థనలు చేస్తున్నప్పుడు నమ్మదగని ఆరకిల్ నోడ్‌లను ఫిల్టర్ చేయవచ్చు. Witnet యొక్క [అల్గారిథమిక్ రిప్యుటేషన్ సిస్టమ్](https://docs.witnet.io/intro/about/architecture#algorithmic-reputation-system) ఒక ఉదాహరణ.

2. వికేంద్రీకృత ఆరకిల్స్—ముందుగా వివరించినట్లుగా—నోడ్‌లు సమర్పించే డేటా సత్యంపై వారి విశ్వాసంపై స్టేక్ ఉంచవలసి ఉంటుంది. క్లెయిమ్ తనిఖీ చేయబడితే, నిజాయితీగల సేవకు బహుమతులతో పాటు ఈ స్టేక్ తిరిగి ఇవ్వబడుతుంది. కానీ సమాచారం తప్పుగా ఉన్నట్లయితే అది స్లాషింగ్ చేయబడవచ్చు, ఇది కొంతవరకు జవాబుదారీతనాన్ని అందిస్తుంది.

## స్మార్ట్ కాంట్రాక్ట్‌లలో ఆరకిల్స్ యొక్క అప్లికేషన్‌లు {#applications-of-oracles-in-smart-contracts}

ఎథీరియంలో ఆరకిల్స్ కోసం సాధారణ వినియోగ సందర్భాలు కింద ఇవ్వబడ్డాయి:

### ఆర్థిక డేటాను తిరిగి పొందడం {#retrieving-financial-data}

[వికేంద్రీకృత ఫైనాన్స్](/defi/) (DeFi) అప్లికేషన్‌లు పీర్-టు-పీర్ రుణం ఇవ్వడం, రుణం తీసుకోవడం మరియు ఆస్తుల ట్రేడింగ్‌ను అనుమతిస్తాయి. దీనికి తరచుగా మారకపు రేటు డేటా (క్రిప్టోకరెన్సీల ఫియట్ విలువను లెక్కించడానికి లేదా టోకెన్ ధరలను పోల్చడానికి) మరియు క్యాపిటల్ మార్కెట్ల డేటా (బంగారం లేదా US డాలర్ వంటి టోకనైజ్ చేయబడిన ఆస్తుల విలువను లెక్కించడానికి) సహా విభిన్న ఆర్థిక సమాచారాన్ని పొందడం అవసరం.

ఉదాహరణకు, DeFi లెండింగ్ ప్రోటోకాల్ తాకట్టుగా జమ చేయబడిన ఆస్తుల (ఉదా., ETH) ప్రస్తుత మార్కెట్ ధరలను ప్రశ్నించాలి. ఇది కాంట్రాక్ట్ తాకట్టు ఆస్తుల విలువను నిర్ణయించడానికి మరియు సిస్టమ్ నుండి ఎంత రుణం తీసుకోవచ్చో నిర్ణయించడానికి అనుమతిస్తుంది.

DeFiలో ప్రసిద్ధ "ధరల ఆరకిల్స్" (వాటిని తరచుగా పిలుస్తారు) చైన్‌లింక్ ధరల ఫీడ్‌లు, Compound ప్రోటోకాల్ యొక్క [ఓపెన్ ప్రైస్ ఫీడ్](https://compound.finance/docs/prices), యూనిస్వాప్ యొక్క [టైమ్-వెయిటెడ్ యావరేజ్ ప్రైసెస్ (TWAPs)](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) మరియు [మేకర్ ఆరకిల్స్](https://docs.makerdao.com/smart-contract-modules/oracle-module).

బిల్డర్‌లు ఈ ధరల ఆరకిల్స్‌ను తమ ప్రాజెక్ట్‌లో ఏకీకృతం చేయడానికి ముందు వాటితో వచ్చే హెచ్చరికలను అర్థం చేసుకోవాలి. పేర్కొన్న ధరల ఆరకిల్స్‌లో దేనినైనా ఉపయోగించాలని ప్లాన్ చేస్తున్నప్పుడు పరిగణించవలసిన వాటి గురించి ఈ [కథనం](https://blog.openzeppelin.com/secure-smart-contract-guidelines-the-dangers-of-price-oracles/) వివరణాత్మక విశ్లేషణను అందిస్తుంది.

చైన్‌లింక్ ధరల ఫీడ్‌ని ఉపయోగించి మీ స్మార్ట్ కాంట్రాక్ట్‌లో తాజా ETH ధరను మీరు ఎలా తిరిగి పొందవచ్చో కింద ఒక ఉదాహరణ ఉంది:

```solidity
pragma solidity ^0.6.7;

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";

contract PriceConsumerV3 {

    AggregatorV3Interface internal priceFeed;

    /**
     * నెట్‌వర్క్: Kovan
     * అగ్రిగేటర్: ETH/USD
     * చిరునామా: 0x9326BFA02ADD2366b30bacB125260Af641031331
     */
    constructor() public {
        priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
    }

    /**
     * తాజా ధరను అందిస్తుంది
     */
    function getLatestPrice() public view returns (int) {
        (
            uint80 roundID,
            int price,
            uint startedAt,
            uint timeStamp,
            uint80 answeredInRound
        ) = priceFeed.latestRoundData();
        return price;
    }
}
```

### ధృవీకరించదగిన యాదృచ్ఛికతను రూపొందించడం {#generating-verifiable-randomness}

బ్లాక్‌చైన్-ఆధారిత ఆటలు లేదా లాటరీ పథకాల వంటి కొన్ని బ్లాక్‌చైన్ అప్లికేషన్‌లు సమర్థవంతంగా పనిచేయడానికి అధిక స్థాయి అనూహ్యత మరియు యాదృచ్ఛికత అవసరం. అయితే, బ్లాక్‌చైన్‌ల నిర్ణయాత్మక అమలు యాదృచ్ఛికతను తొలగిస్తుంది.

అసలు విధానం `blockhash` వంటి సూడోరాండమ్ క్రిప్టోగ్రాఫిక్ ఫంక్షన్‌లను ఉపయోగించడం, కానీ ప్రూఫ్-ఆఫ్-వర్క్ అల్గారిథమ్‌ను పరిష్కరించే [మైనర్‌ల ద్వారా వీటిని తారుమారు చేయవచ్చు](https://ethereum.stackexchange.com/questions/3140/risk-of-using-blockhash-other-miners-preventing-attack#:~:text=So%20while%20the%20miners%20can,to%20one%20of%20the%20players.). అలాగే, ఎథీరియం [ప్రూఫ్-ఆఫ్-స్టేక్‌కి మారడం](/roadmap/merge/) అంటే డెవలపర్‌లు ఆన్‌చైన్ యాదృచ్ఛికత కోసం ఇకపై `blockhash`పై ఆధారపడలేరు. బదులుగా బీకన్ చైన్ యొక్క [RANDAO యంత్రాంగం](https://eth2book.info/altair/part2/building_blocks/randomness) యాదృచ్ఛికతకు ప్రత్యామ్నాయ మూలాన్ని అందిస్తుంది.

యాదృచ్ఛిక విలువను ఆఫ్‌చైన్‌లో రూపొందించడం మరియు దానిని ఆన్‌చైన్‌కు పంపడం సాధ్యమే, కానీ అలా చేయడం వినియోగదారులపై అధిక విశ్వాస అవసరాలను విధిస్తుంది. అనూహ్య యంత్రాంగాల ద్వారా విలువ నిజంగా సృష్టించబడిందని మరియు రవాణాలో మార్చబడలేదని వారు నమ్మాలి.

ఆఫ్‌చైన్ గణన కోసం రూపొందించబడిన ఆరకిల్స్ ప్రక్రియ యొక్క అనూహ్యతను ధృవీకరించే క్రిప్టోగ్రాఫిక్ రుజువులతో పాటు ఆన్‌చైన్‌లో ప్రసారం చేసే యాదృచ్ఛిక ఫలితాలను ఆఫ్‌చైన్‌లో సురక్షితంగా రూపొందించడం ద్వారా ఈ సమస్యను పరిష్కరిస్తాయి. ఒక ఉదాహరణ [చైన్‌లింక్ VRF](https://docs.chain.link/docs/chainlink-vrf/) (వెరిఫైయబుల్ రాండమ్ ఫంక్షన్), ఇది అనూహ్య ఫలితాలపై ఆధారపడే అప్లికేషన్‌ల కోసం నమ్మకమైన స్మార్ట్ కాంట్రాక్ట్‌లను రూపొందించడానికి ఉపయోగపడే నిరూపించదగిన సరసమైన మరియు ట్యాంపర్ ప్రూఫ్ రాండమ్ నంబర్ జనరేటర్ (RNG).

### ఈవెంట్‌ల కోసం ఫలితాలను పొందడం {#getting-outcomes-for-events}

ఆరకిల్స్‌తో, వాస్తవ ప్రపంచ ఈవెంట్‌లకు ప్రతిస్పందించే స్మార్ట్ కాంట్రాక్ట్‌లను సృష్టించడం సులభం. ఆఫ్‌చైన్ భాగాల ద్వారా బాహ్య APIలకు కనెక్ట్ అవ్వడానికి మరియు ఆ డేటా మూలాల నుండి సమాచారాన్ని వినియోగించుకోవడానికి కాంట్రాక్ట్‌లను అనుమతించడం ద్వారా ఆరకిల్ సేవలు దీన్ని సాధ్యం చేస్తాయి. ఉదాహరణకు, ముందుగా పేర్కొన్న అంచనా dapp విశ్వసనీయ ఆఫ్‌చైన్ మూలం (ఉదా., అసోసియేటెడ్ ప్రెస్) నుండి ఎన్నికల ఫలితాలను తిరిగి ఇవ్వమని ఆరకిల్‌ను అభ్యర్థించవచ్చు.

వాస్తవ-ప్రపంచ ఫలితాల ఆధారంగా డేటాను తిరిగి పొందడానికి ఆరకిల్స్‌ను ఉపయోగించడం ఇతర నవల వినియోగ సందర్భాలను అనుమతిస్తుంది; ఉదాహరణకు, వికేంద్రీకృత బీమా ఉత్పత్తి సమర్థవంతంగా పనిచేయడానికి వాతావరణం, విపత్తులు మొదలైన వాటి గురించి ఖచ్చితమైన సమాచారం అవసరం.

### స్మార్ట్ కాంట్రాక్ట్‌లను ఆటోమేట్ చేయడం {#automating-smart-contracts}

స్మార్ట్ కాంట్రాక్ట్‌లు స్వయంచాలకంగా అమలు కావు; బదులుగా, బాహ్యంగా స్వంతమైన ఖాతా (EOA) లేదా మరొక కాంట్రాక్ట్ ఖాతా, కాంట్రాక్ట్ కోడ్‌ను అమలు చేయడానికి సరైన ఫంక్షన్‌లను ప్రేరేపించాలి. చాలా సందర్భాలలో, కాంట్రాక్ట్ యొక్క ఫంక్షన్‌లలో ఎక్కువ భాగం పబ్లిక్ మరియు EOAలు మరియు ఇతర కాంట్రాక్ట్‌ల ద్వారా ప్రారంభించబడతాయి.

కానీ కాంట్రాక్ట్‌లో ఇతరులకు ప్రాప్యత లేని _ప్రైవేట్ ఫంక్షన్‌లు_ కూడా ఉన్నాయి;, కానీ అవి dapp యొక్క మొత్తం కార్యాచరణకు కీలకమైనవి. వినియోగదారుల కోసం కాలానుగుణంగా కొత్త NFTలను ముద్రించే `mintERC721Token()` ఫంక్షన్, అంచనా మార్కెట్‌లో చెల్లింపులను ప్రదానం చేసే ఫంక్షన్ లేదా DEXలో స్టేక్ చేసిన టోకెన్‌లను అన్‌లాక్ చేసే ఫంక్షన్ ఉదాహరణలలో ఉన్నాయి.

అప్లికేషన్ సజావుగా నడవడానికి డెవలపర్‌లు అటువంటి ఫంక్షన్‌లను వ్యవధిలో ప్రేరేపించవలసి ఉంటుంది. అయితే, ఇది డెవలపర్‌ల కోసం ప్రాపంచిక పనులపై ఎక్కువ గంటలు కోల్పోవడానికి దారితీయవచ్చు, అందుకే స్మార్ట్ కాంట్రాక్ట్‌ల అమలును ఆటోమేట్ చేయడం ఆకర్షణీయంగా ఉంటుంది.

కొన్ని వికేంద్రీకృత ఆరకిల్ నెట్‌వర్క్‌లు ఆటోమేషన్ సేవలను అందిస్తాయి, ఇవి వినియోగదారు నిర్వచించిన పారామితుల ప్రకారం స్మార్ట్ కాంట్రాక్ట్ ఫంక్షన్‌లను ప్రేరేపించడానికి ఆఫ్‌చైన్ ఆరకిల్ నోడ్‌లను అనుమతిస్తాయి. సాధారణంగా, దీనికి ఆరకిల్ సేవతో లక్ష్య కాంట్రాక్ట్‌ను "నమోదు చేయడం", ఆరకిల్ ఆపరేటర్‌కు చెల్లించడానికి నిధులను అందించడం మరియు కాంట్రాక్ట్‌ను ప్రేరేపించడానికి షరతులు లేదా సమయాలను పేర్కొనడం అవసరం.

చైన్‌లింక్ యొక్క [కీపర్ నెట్‌వర్క్](https://chain.link/keepers) స్మార్ట్ కాంట్రాక్ట్‌లకు సాధారణ నిర్వహణ పనులను విశ్వాసం తగ్గించబడిన మరియు వికేంద్రీకృత పద్ధతిలో అవుట్‌సోర్స్ చేయడానికి ఎంపికలను అందిస్తుంది. మీ కాంట్రాక్ట్‌ను కీపర్-అనుకూలంగా మార్చడం మరియు అప్‌కీప్ సేవను ఉపయోగించడం గురించి సమాచారం కోసం అధికారిక [కీపర్ డాక్యుమెంటేషన్](https://docs.chain.link/docs/chainlink-keepers/introduction/) చదవండి.

## బ్లాక్‌చెయిన్ ఒరాకిల్స్‌ను ఎలా ఉపయోగించాలి {#use-blockchain-oracles}

మీ ఎథీరియం dappలో మీరు ఏకీకృతం చేయగల బహుళ ఆరకిల్ అప్లికేషన్‌లు ఉన్నాయి:

**[చైన్‌లింక్](https://chain.link/)** - _చైన్‌లింక్ వికేంద్రీకృత ఆరకిల్ నెట్‌వర్క్‌లు ఏ బ్లాక్‌చైన్‌లోనైనా అధునాతన స్మార్ట్ కాంట్రాక్ట్‌లకు మద్దతు ఇవ్వడానికి ట్యాంపర్ ప్రూఫ్ ఇన్‌పుట్‌లు, అవుట్‌పుట్‌లు మరియు గణనలను అందిస్తాయి._

**[RedStone ఆరకిల్స్](https://redstone.finance/)** - _RedStone అనేది గ్యాస్-ఆప్టిమైజ్ చేయబడిన డేటా ఫీడ్‌లను అందించే వికేంద్రీకృత మాడ్యులర్ ఆరకిల్. ఇది లిక్విడ్ స్టేకింగ్ టోకెన్‌లు (LSTలు), లిక్విడ్ రీస్టేకింగ్ టోకెన్‌లు (LRTలు) మరియు బిట్‌కాయిన్ స్టేకింగ్ డెరివేటివ్‌ల వంటి అభివృద్ధి చెందుతున్న ఆస్తుల కోసం ధరల ఫీడ్‌లను అందించడంలో ప్రత్యేకత కలిగి ఉంది._

**[Chronicle](https://chroniclelabs.org/)** - _నిజంగా స్కేలబుల్, ఖర్చు-సమర్థవంతమైన, వికేంద్రీకృత మరియు ధృవీకరించదగిన ఆరకిల్స్‌ను అభివృద్ధి చేయడం ద్వారా ఆన్‌చైన్‌లో డేటాను బదిలీ చేయడంలో ఉన్న ప్రస్తుత పరిమితులను Chronicle అధిగమిస్తుంది._

**[Witnet](https://witnet.io/)** - _Witnet అనేది అనుమతి రహిత, వికేంద్రీకృత మరియు సెన్సార్‌షిప్-నిరోధక ఆరకిల్, ఇది బలమైన క్రిప్టో-ఆర్థిక హామీలతో వాస్తవ ప్రపంచ ఈవెంట్‌లకు ప్రతిస్పందించడానికి స్మార్ట్ కాంట్రాక్ట్‌లకు సహాయపడుతుంది._

**[UMA ఆరకిల్](https://uma.xyz)** - _UMA యొక్క ఆప్టిమిస్టిక్ ఆరకిల్ బీమా, ఆర్థిక డెరివేటివ్‌లు మరియు అంచనా మార్కెట్‌లతో సహా విభిన్న అప్లికేషన్‌ల కోసం ఏ రకమైన డేటానైనా త్వరగా స్వీకరించడానికి స్మార్ట్ కాంట్రాక్ట్‌లను అనుమతిస్తుంది._

**[టెల్లార్](https://tellor.io/)** - _టెల్లార్ అనేది మీ స్మార్ట్ కాంట్రాక్ట్‌కు అవసరమైనప్పుడు ఏ డేటానైనా సులభంగా పొందడానికి పారదర్శక మరియు అనుమతి రహిత ఆరకిల్ ప్రోటోకాల్._

**[Band ప్రోటోకాల్](https://bandprotocol.com/)** - _Band ప్రోటోకాల్ అనేది క్రాస్-చైన్ డేటా ఆరకిల్ ప్లాట్‌ఫారమ్, ఇది వాస్తవ-ప్రపంచ డేటా మరియు APIలను స్మార్ట్ కాంట్రాక్ట్‌లకు కలుపుతుంది మరియు సమగ్రపరుస్తుంది._

**[Pyth నెట్‌వర్క్](https://pyth.network/)** - _Pyth నెట్‌వర్క్ అనేది ట్యాంపర్-రెసిస్టెంట్, వికేంద్రీకృత మరియు స్వీయ-స్థిరమైన వాతావరణంలో నిరంతర వాస్తవ-ప్రపంచ డేటాను ఆన్‌చైన్‌లో ప్రచురించడానికి రూపొందించబడిన ఫస్ట్-పార్టీ ఫైనాన్షియల్ ఆరకిల్ నెట్‌వర్క్._

**[API3 DAO](https://api3.org/)** - _API3 DAO స్మార్ట్ కాంట్రాక్ట్‌ల కోసం వికేంద్రీకృత పరిష్కారంలో ఎక్కువ మూల పారదర్శకత, భద్రత మరియు స్కేలబిలిటీని అందించే ఫస్ట్-పార్టీ ఆరకిల్ పరిష్కారాలను అందిస్తోంది_

**[Supra](https://supra.com/)** - పబ్లిక్ (L1లు మరియు L2లు) లేదా ప్రైవేట్ (ఎంటర్‌ప్రైజెస్) అన్ని బ్లాక్‌చైన్‌లను ఇంటర్‌లింక్ చేసే క్రాస్-చైన్ పరిష్కారాల యొక్క నిలువుగా ఏకీకృత టూల్‌కిట్, ఆన్‌చైన్ మరియు ఆఫ్‌చైన్ వినియోగ సందర్భాల కోసం ఉపయోగించగల వికేంద్రీకృత ఆరకిల్ ధరల ఫీడ్‌లను అందిస్తుంది. 

**[Gas నెట్‌వర్క్](https://gas.network/)** - బ్లాక్‌చైన్ అంతటా నిజ-సమయ గ్యాస్ ధర డేటాను అందించే పంపిణీ చేయబడిన ఆరకిల్ ప్లాట్‌ఫారమ్. ప్రముఖ గ్యాస్ ధర డేటా ప్రొవైడర్ల నుండి డేటాను ఆన్‌చైన్‌లోకి తీసుకురావడం ద్వారా, Gas నెట్‌వర్క్ పరస్పర అనుసంధానతను నడపడానికి సహాయపడుతుంది. Gas నెట్‌వర్క్ ఎథీరియం మెయిన్‌నెట్ మరియు అనేక ప్రముఖ L2లతో సహా 35కి పైగా చైన్‌ల కోసం డేటాకు మద్దతు ఇస్తుంది.

**[DIA](https://www.diadata.org/)** - అన్ని ప్రధాన ఆస్తి తరగతులలో 20,000+ ఆస్తుల కోసం ధృవీకరించదగిన డేటా ఫీడ్‌లను అందించే క్రాస్-చైన్ ఆరకిల్ నెట్‌వర్క్. DIA ముడి వాణిజ్య డేటాను నేరుగా 100+ ప్రాథమిక మార్కెట్ల నుండి సేకరిస్తుంది మరియు దానిని ఆన్‌చైన్‌లో లెక్కిస్తుంది, ఏదైనా వినియోగ సందర్భం కోసం అనుకూల కాన్ఫిగరేషన్‌లతో పూర్తి డేటా పారదర్శకత మరియు ధృవీకరణను నిర్ధారిస్తుంది.

**[Stork](https://stork.network)** - Stork అల్ట్రా-తక్కువ జాప్యంతో ధర డేటాను అందిస్తుంది, పర్పెచువల్స్ మార్కెట్‌లు, లెండింగ్ ప్రోటోకాల్‌లు మరియు DeFi పర్యావరణ వ్యవస్థలతో సహా విస్తృత శ్రేణి వినియోగ సందర్భాలకు మద్దతు ఇస్తుంది, జాబితాలో కొత్త ఆస్తులకు వేగంగా మద్దతు ఇస్తుంది.

## మరింత చదవడానికి {#further-reading}

**కథనాలు**

- [బ్లాక్‌చెయిన్ ఒరాకిల్ అంటే ఏమిటి?](https://chain.link/education/blockchain-oracles) — _చైన్‌లింక్_
- [బ్లాక్‌చెయిన్ ఒరాకిల్ అంటే ఏమిటి?](https://medium.com/better-programming/what-is-a-blockchain-oracle-f5ccab8dbd72) — _పాట్రిక్ కాలిన్స్_
- [వికేంద్రీకృత ఆరకిల్స్: సమగ్ర అవలోకనం](https://medium.com/fabric-ventures/decentralised-oracles-a-comprehensive-overview-d3168b9a8841) — _జూలియన్ థెవెనార్డ్_
- [ఎథీరియంలో బ్లాక్‌చెయిన్ ఒరాకిల్‌ను అమలు చేయడం](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) – _పెడ్రో కోస్టా_
- [స్మార్ట్ కాంట్రాక్ట్‌లు API కాల్స్ ఎందుకు చేయలేవు?](https://ethereum.stackexchange.com/questions/301/why-cant-contracts-make-api-calls) — _StackExchange_
- [కాబట్టి మీరు ధరల ఆరకిల్‌ను ఉపయోగించాలనుకుంటున్నారు](https://samczsun.com/so-you-want-to-use-a-price-oracle/) — _samczsun_

**వీడియోలు**

- [ఆరకిల్స్ మరియు బ్లాక్‌చైన్ యుటిలిటీ విస్తరణ](https://youtu.be/BVUZpWa8vpw) — _రియల్ విజన్ ఫైనాన్స్_

**ట్యుటోరియల్స్**

- [Solidityలో ఎథీరియం ప్రస్తుత ధరను ఎలా పొందాలి](https://blog.chain.link/fetch-current-crypto-price-data-solidity/) — _చైన్‌లింక్_
- [ఆరకిల్ డేటాను వినియోగించడం](https://docs.chroniclelabs.org/Developers/tutorials/Remix) — _Chronicle_
- [ఆరకిల్స్ ఛాలెంజ్](https://speedrunethereum.com/challenge/oracles) - _స్పీడ్‌రన్ ఎథీరియం_

**ఉదాహరణ ప్రాజెక్ట్‌లు**

- [Solidityలో ఎథీరియం కోసం పూర్తి చైన్‌లింక్ స్టార్టర్ ప్రాజెక్ట్](https://github.com/hackbg/chainlink-fullstack) — _HackBG_
