什么是 CorDapp?

CorDapps(Corda 分布式应用 Corda Distributed Applications)是在 Corda 平台上运行的分布式应用程序。CorDapp 的目标是允许节点间达成协议来更新账本。为了实现这个目标,Corda 定义了可以由 Corda 节点所有者通过 RPC 调用的 flows:

CorDapps 由以下的核心组件组成:

  • States,定义了要达成协议的事实(阅读 Corda 核心概念 – States
  • Contracts,定义了构成有效账本更新的内容(阅读 Corda 核心概念 – Contracts
  • Service,在节点中提供了长期的 utilities
  • 序列化白名单 Serialisation whitelists,限制了你的节点会接收什么样的信息

每个 CorDapp 是安装在节点等级的,而不是整个网络都是使用一个 CorDapp。例如,一个节点的所有者可能选择安装一个债券交易的 CorDapp,包含了以下的组件:

  • 一个 BondState,用来体现以共享的事实存(shared facts)形式存在于账本上的债券
  • 一个 BondContract,用来证明哪些涉及到 Bondstate 的账本更新是有效的
  • 三个 flows:
    • 一个 IssueBondFlow,允许新的 BondState 可以被初始化发行到账本中
    • 一个 TradeBondFlow,允许对于一个已经存在的 BondState 在账本中进行购买和出售
    • 一个 ExitBondFlow,允许将一个已经存在的 BondState 从账本中清理掉

当安装完这个 CorDapp 之后,节点的所有者便能够通过 CorDapp 定义的 flows 来同意关于发行、出售、购买和清理债券的一些列账本更新了。