Corda 核心概念:节点 Node

原文地址:https://docs.corda.net/key-concepts-node.html

概要

  • 一个节点是指运行着 Corda 软件的具有唯一标识的一个 JVM 运行时
  • 节点对于外部世界包含两个接口:
    • 网络层,用来同其他的节点通信
    • RPC,为了跟节点的所有者通信
  • 节点的功能是通过在 plugin registry 里安装 CorDapps 方式来扩展的

节点架构 Node Architecture

Corda 中的节点指的是在网络中具有唯一标识的运行着 Corda 服务和应用的 JVM 运行时环境。

下边是节点的内部架构图:
节点架构图
架构中的核心元素包括:

  • 存储数据的持久化层
  • 同其他节点沟通的网络接口
  • 同节点的所有者进行沟通的 RPC 接口
  • 允许节点的 flows 来调用节点其他服务的 service hub
  • plugin registry 用来通过安装 CorDapps 来扩展节点

持久层 Persistence layer

持久层包含两部分:

  • 账本 Vault,节点用来存储过去和当前 states 数据
  • 存储服务 storage service,用来存储 transaction, attachment 和 flow checkpoints

节点的所有者可以通过使用 RPC 接口来查询节点的 storage。

网络接口 Network interface

同网络中的其他节点进行沟通是节点自己来处理的,作为运行一个 flow 的一部分。节点的所有者不会直接地同网络中其他的节点进行交互。

RPC 接口

节点的所有者是通过使用 Remote Procedure Calls(RPC) 来跟节点进行交互的。

Service Hub

内部的,节点可以在 flow 的执行过程中访问丰富的服务来协助更新账本。主要的服务包括:

  • 网络中的其他节点以及提供什么服务的信息
  • 访问 vault 和 storage service 的内容
  • 访问和生成节点的公钥私钥对
  • 节点本身的信息
  • 当前的时间

The CorDapp provider

CorDapp provider 是新的 CorDapps 被安装的地方,来扩展节点的行为。

节点默认会安装一些 CorDapps 来处理一些常见的任务,比如:

  • 从合作方那边获得交易和附件信息
  • 更新合约
  • 向交易其他放广播同意的账本更新信息,这样其他节点也会更新为相同的账本信息

排空节点模式 Draining mode

为了执行一次干净的关闭节点操作,没有正在执行的 flows 非常重要,也就是说应该没有任何的 checkpoints 被持久化。节点能够被设置为排空状态,在这个状态中:

  • 通过 RPC 要求的启动新的 flows 的命令会被拒绝
  • 预约的 flows 会被忽略
  • 初始化 P2P 的会话消息将不会被处理,意味着 peers 将不能够初始化新的 flows
  • 其他所有的活动还会照常进行,来确保正在执行的 flows 的数量在不断减少。

但他们的数量 - 可以通过 RPC 来进行监控 - 达到0,那么就是安全的了,可以进行关闭节点的操作了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值