0

In a Private Ethereum Smart Contract, can we do an external API call just to notify (without needing the external api response to update the state) without using Oraclize?

Understand Oraclize is required for external API calls like those internet ones. If one only needs an api call to notify an external system that this step is completed, how would one achieve this without the need of Oraclize?

Thank you.

Nathan Aw

0

Have a look over here for deeper explanation of How do oracle services work under the hood?

If I understand the question correctly, then you can design a more specific Oracle suitable for your own purpose. Since you're not contemplating a general-purpose utility service it can be less abstract. On a private chain, paying for gas might not even be a concern and probably isn't.

Even on a private chain in which all participants know and trust each other, the issue is still that Ethereum nodes need to be able to independently compute the state, now, and in the future. This is why it is impossible and will likely remain impossible to describe an API in a smart contract.

A solution to this problem is to create a trusted external entity, the Oracle, that will check the API and then faithfully report findings to the contract in the form of a signed transaction. In this manner, the contract provides an immutable history of things the Oracle said and, by extension, what the contract did.

The Oracle obviously has to be something accepted as trustworthy by other participants. Since you are talking about private chains, it follows that the trust model is not a group of nodes that neither know or necessarily trust each other. It's something else that the participants are meant to find suitable for purpose.

In an similar way, the Oracle can potentially be anything or any process capable of observing the external data source and signing transactions to record what it witnesses. In most cases, trust in the overall system will correspond to trust in the Oracle itself. There is a great deal of latitude in the implementation details.

You can think along the lines a highly available service with a signing account and privileges inside contracts. Any such software will do, but it should probably be quite transparent and open to inspection by participants to assist with establishing trust, especially if the Oracle's observations will have non-trivial material consequences.

Hope it helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.