I need to check DNS records from a smart contract: a user submits a domain, and I need to verify the DNS record of that domain. It's a trivial API call, and I was planning to use Chainlink for accessing it on-chain. The Any API feature seems the right tool.
However, after carefully reading the doc, it seems to me an overly centralized setup: I'm expected to pick an oracle address from the Chainlink market, and to hardcode it in the contract ("The request should include the oracle address, the job id, the fee, adapter parameters, and the callback function signature"). This doesn't sit right with me. What if that particular oracle goes offline? Or if it starts behaving maliciously?
In the docs, the Off-Chain Reporting model is proposed (the same used for Data Feeds: it aggregates different oracles responses), but I don't see any exposed documentation explaining how to implement it, that isn't price feeds.
Is this something that can be done? If yes, how?