Even if I just want to read data I still need permission?
contract uses Oracle data in a permissioned manner so as to prohibit on-chain parasitic behavior by 3rd parties.
What does it mean by parasitic? I either connect to my own node or through some provider like Infura. I already have access to the data anyways. Since reads are not transactions, they are not broadcasted. In the end I’m limited only by the bandwidth of my own node or the limits set by Infura.
If a 3rd party contract want to do it in a permission-less way, then if it’s just reading data, the scenario is the same as above. If it’s reading data from the feed to make a transactions, the call will be included in the gas costs of the transaction.
So how exactly this “parasitic” behavior would occur?
Am I missing something?
In the end, I can still peek into the events generated by the contract and they have the information I need (e.g.:
LogValue). I just need to get the latest one, which would essentially be the current value returned by
peek AFAIK. I know that events are not stored on-chain, only their bloom filters, but they are still living in the archive nodes.
I don’t have a contract. My intention was to consume this directly from a frontend application. I know there are centralized APIs that provide USD/ETH prices, but the whole idea is not to depend upon centralized 3rd parties.
My team used to read from Etherscan API, but looks like they recently changed something in their server and now they don’t allow CORS, which broke some of our apps.