天玄技术文档
  • 平台介绍
    • 天玄区块链
    • 版本信息
  • 快速开始
    • 快速搭建天玄链
      • 硬件要求
      • 软件要求
      • 构建节点安装包
      • 安装并启动节点
    • 应用部署示例
  • 安装手册
    • 天玄链
      • 打包可执行文件
      • 安装
      • 配置说明
      • 证书说明
      • 日志说明
    • 天玄网关
      • 安装
      • 配置说明
  • 应用开发手册
    • 创建和使用账户
    • 智能合约
    • Java SDK
      • 快速入门
      • 配置说明
      • 远程调用接口
    • 天玄链功能接口列表
  • 系统架构
    • 整体架构
    • 天玄链交易流程
    • 数据结构&编码
    • 核心模块
      • 共识算法
      • P2P网络
      • 交易并行
      • 存储
      • 流水线执行
      • CA机制
      • 网关
      • 虚拟机
      • 密码
  • 社区
    • 团队介绍
    • 合作伙伴
    • 社群入口
Powered by GitBook
On this page
  • 概述
  • 详细设计
  • 区块链节点标识
  • 管理网络连接
  • 消息收发
  1. 系统架构
  2. 核心模块

P2P网络

概述

天玄 P2P 模块提供高效、通用、安全以及节点发现的网络通信基础功能,支持区块链消息的 RPC 调用,单播、片内广播和全局广播。主要功能:

  • 区块链节点标识

    通过区块链节点标识唯一标识一个区块链节点 (nodeId) ,在区块链网络上通过区块链节点标识对区块链节点进行唯一区分确认。

  • 管理网络连接

    维持区块链网络上区块链节点间的 TCP 长连接,自动断开异常连接,自动发起重连。

  • 消息收发

    在区块链网络的区块链节点间,进行消息的 RPC 调用,单播、片内广播和全局广播。

详细设计

区块链节点标识

区块链节点标识由椭圆曲线算法的公钥生成,每个区块链节点必须有唯一的椭圆曲线密钥对,区块链节点标识在区块链网络中唯一标识一个区块链节点。

通常情况下,一个节点要加入区块链网络,至少要准备三个文件:

  • node.key 节点密钥,EC/ED/SM 等格式

  • node.crt 节点证书,由 CA 颁发

  • ca.crt CA 证书,CA 机构提供

管理网络连接

区块链节点间,会自动发起和维持 TCP 长连接,在系统故障、网络异常时,主动发起重连,区块链节点间建立连接时,会使用 CA 证书进行认证。

连接建立流程

建立 TLS 链接既是为了验证节点身份的合法性,又为后续新节点发送入网请求做准备。建立TLS链接的步骤如下:

  • 节点利用密钥文件 node.key 和 chain.crt 初始化 SSLContext。

  • 节点发送 TLS 链接请求给共识节点,请求建立连接。

  • 当双向身份认证通过后,TLS 链接建立成功,新节点与共识节点可以进行通信。

消息收发

区块链节点间消息支持单播、组播和广播

  • RPC 调用,会想单一区块链节点发送消息,并同步等待响应结果

  • 单播,单个区块链节点向单个区块链节点发送消息,通过区块链节点 ID 区分

  • 片内广播,单个区块链节点向同一分片内的区块链节点发送消息

  • 全局广播,单个区块链节点向所有区块链节点发送消息

单播流程

区块链节点 A 区块链节点B根据节点 ID ,筛选在线节点发送消息消息回包区块链节点A区块链节点 B 。

片内广播

区块链节点 A 会依据自身所在分片,获取所有相同分片的 Peer 节点,逐个发起单播流程

全局广播

区块链节点A获取所有的区块链节点,阻隔发起单播流程

RPC调用

区块链节点A区块链节点B根据节点ID,会发起一个有rpc 标识的消息单播发送,节点B收到该rpc消息后,会依据具体的消息,将处理结果返回节点A。

Previous共识算法Next交易并行

Last updated 8 months ago