翻译笔记:视频讲解 Corda 核心概念 – Oracles

翻译整理自 Corda 官方核心概念 Oracles 介绍视频,视频如下

  • Contract code 仅仅是一个方法,但是它不能基于任何非确定性(non-determinism)的资源
  • 所有相关方必须能够独立地确认一个 transaction 并且得到唯一的结论(不会因为在不同的时间做验证得到不同的结果,或者根据掌握的信息多少会获得不同的结果,等等)
  • 如果一个 contract code 在一次验证后判断出 transaction 是有效的,但是在下一次的验证中(被另外一方去验证)是无效的话,那这个共享的账本就失去了它的一致性
  • 在提议和确认一个 transaction 的时候可以使用 Oracles
  • 需要使用 flows 来同 Oracles 进行沟通
  • 在一个 transaction 中可能需要多个外部的事实(external facts)
  • 在一个 transaction 中可以使用多个 Oracles
  • 在创建一个 transaction 提议的时候,Oracle 很可能会提供事实,然后在确认的时候会证明这些事实

Oracle 可以提供的事实的例子

  • 今天的 overnight indexed swap rates 是多少
  • 当前的无风险利率是多少?比如从 Filts, T-bills 等等获取的信息
  • 合作方的权限和权力的确定方法是什么
  • 时间,日期和日历的问题,比如节假日和开放时间
  • 该 option contract 的当前价值是什么
  • Oracle 可以提供任何的外部事实数据

两种实现 Oracles 的方式

  • Using commands:通常用于少量或者常规要改变得数据,适用于那些因为 licensing 而商业敏感的数据
    • 事实(facts)可以独立地被创建或者是从一个提供事实的 Oracle service 那里查询出来
    • 这个事实会被放进 transaction 内部的 command 里
    • 该 Oracle 的公钥会被添加到 command 的签名者列表中,那么该 Oracle 就会变成主要签名者中的一员
  • Using attachments:通常用于大量的数据,并且特别是因为长期不会改变的数据,并不适用于 licensed facts
    • 事实是通过向 Oracle 发出查询被创建的
    • 事实会以一个被签名了的附件的方式被传回,然后可以把这个附件添加到 transaction 中
    • 这个附件可以被其他的 transaction 重用,而不需要再去查询 Oracle 了

发表评论

电子邮件地址不会被公开。 必填项已用*标注