假设我有一个智能契约,它使用Chainlink的“调用任何外部API”功能从外部URL获取一些数据。我的理解是,每个status完全节点运行每个智能契约来验证状态;它这样做是为了验证最新的块。但是,如果在一个完整节点运行契约和另一个节点运行契约之间,通过调用tha外部API返回的数据会发生变化。然后,似乎不同的完整节点对于智能契约会得到不同的结果,从而导致不一致的状态。为什么不发生这种事?
发布于 2021-12-10 18:05:16
因为甲骨文的反应被储存在链上。
您是对的,如果获取外部数据是验证过程的一部分,那么没有节点能够达成共识。因此,Chainlink oracle网络将数据放在事务中的链上,然后与其他事务进行相同的验证过程。
您可以更多地了解Chainlink的基本请求模型外观,但这基本上就是为什么不可能将oracle系统内置到块链中的原因。
https://stackoverflow.com/questions/70130661
复制相似问题