Corda技术核心概念之流(Flow)

概要

 

  • 流(Flow)自动化更新账单过程
  • 节点之间的交流仅仅是发生在这些有流(Flow)的上下文,并且是点对点的方式
  • 流(Flow)提供自动化普通任务

 

 

动机(Motivation)

 

Corda网络使用点对点的方式进行交流而不是全局广播。这也就是说对应的账单更新需要网络参与者来确定需要什么样的信息,又以怎样的顺序发送到对方。

如下是一个交互例子描述:

   1,Alice 创建一个交易并签名,并发送给Bob

   2,Bob接收到交易,进行验证,签名,然后又发送给Alice

   3,Alice验证交易,并验证Bob的签名

   4,在这个网络上的其他节点,甚至根本就不知道发生了这样一次交易

 

 

流框架(The flow framework)

 

这些步骤不需要手动确切地指定,Corda使用flow自动化处理。一个流其实是一系列的步骤,这些步骤告诉节点怎样去更新账单,比如发行一分资产或者结算一个贸易。

如下就是一个flow的顺序,涉及到上面所提到的一个简单的账单更新:

 

 

运行流(Running flows)

 

一旦一个业务逻辑过程压缩到流(flow)中并安装在节点中(节点是CorDapp的一部分),这个节点的拥有者,在任何的时间,通过使用RPC调用来指导节点开始这个业务逻辑过程。这个流把网络,I/O和并发问题从节点的拥有者处分离开。

节点的所有活动都发生在这些流的上下文中。不像合约,流不在一个沙箱中执行,也就是说节点能够执行的行为比如网络,I/O和在流的执行过程中随意使用资源。

 

 

Inter-node communication

节点通过在流之间传递信息进行交流。这些节点有一个或者多个流类,这些流类注册为接收其他流信息并进行响应。

假设,Alice与Bob都是网络上的节点,Alice与Bob达成一个更新账单的协议。为了与Bob进行交流,Alice必须:

  • 开始一个流,并且Bob必须注册为响应这个流
  • 在这个流的上下文中给Bob发送一条信息
  • Bob将会开始他注册的对方的流(启动可以响应Alice信息的流)

现在,一个连接已经建立起来了。Alice和Bob可以来回地进行一些进行传递和交流,这些步骤都是严格的(Flow指定了步骤)。

 

 

子流(Subflows)

 

流可以被加强,通过在一个流的上下文中开启一个子处理过程。这个被开启的子处理过程就叫做子流(subflow)。这个父流需要等到子流返回后,方可继续执行。

 

 

流库(The flow library)

 

Corda提供了一个流的库来处理普通任务,也就意味着开发者在普通处理过程的背后不需要进行流定义,比如:

  • 公证和记录交易

  • 从参与者聚集签名
  • 验证交易链

 

 

并发(Concurrency)

 

流框架运行节点在一次有很多流活动。这些流可能会持续几天,节点重启甚至更新。

无论任何时候进入到一个阻塞状态的时候,就把流序列化到磁盘上,由此实现流持久。(比如当他们等待I/O或者网络调用)。而不是等待流不是出于阻塞状态,节点在其他工作计划中的流立即开始工作,仅仅返回流的最原始状态在随后的某个日期。

 

 

 

Corda: 分布式账本 由恒生研究院旗下区 块链技术社51chain真诚翻译 原著 :麦克 . 赫恩 2016年 11月 29日 一种 具有 节点间 最小 信任机制的 信任机制的 无中心数据库技术 中心数据库技术 中心数据库技术 ,允 许创建一个 全球 的分布式账本。 这样的 账本在金融、 贸易账本在金融、 贸易账本在金融、 贸易账本在金融、 贸易账本在金融、 贸易账本在金融、 贸易账本在金融、 贸易账本在金融、 贸易账本在金融、 贸易供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 供应链跟踪和更多领域都有许用场合。我们提交的 Corda,是一种去中心的全球数据库技术,它详细描述了如何 是一种去中心的全球数据库技术,它详细描述了如何 是一种去中心的全球数据库技术,它详细描述了如何 是一种去中心的全球数据库技术,它详细描述了如何 是一种去中心的全球数据库技术,它详细描述了如何 是一种去中心的全球数据库技术,它详细描述了如何 是一种去中心的全球数据库技术,它详细描述了如何 是一种去中心的全球数据库技术,它详细描述了如何 实现一个去中心的应用开发平台目标。 在《 Corda:介绍》 一文中,我们 一文中,我们 阐述 了它的高层描阐述 了它的高层描阐述 了它的高层描阐述 了它的高层描,并提供详细的技术讨论。 并提供详细的技术讨论。 并提供详细的技术讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值