区块链网络技术基础学习笔记

简介: 对区块链网络层的对等网络、节点类型、数据传播协议、通信机制等概念的简单介绍,此文章为博主的学习笔记仅供大家参考。

一、 对等网络

对等网络又称 P2P 网络。

二、节点类型

  • 全节点(Full Node)

所有节点都会参与校验和广播交易及区块信息,且会发现和维持与其他节点的连接。有些节点会包含完整的区块链数据库,包括所有交易数据,这种节点也称为全节点(Full Node)。

  • SPV 节点或轻节点(Lightweight Node)

一些节点只存储了区块链数据库的一部分,一般只存储区块头而不存储交易数据,这样的节点也称为 SPV 节点或轻节点(Lightweight Node)。

三、 数据传播协议

1、建立初始连接
一个新节点如果要加入到区块链网络,一般需要建立 TCP 连接,即三次握手(Three-Way Handshake)。

2、 地址广播及发现
节点在加入区块链网络以后,需要与其他相邻节点建立联系,广播自己的地址,让其他网络的节点知道自己的节点信息。

3、 区块链同步
在区块链 P2P 网络中,每一个节点保存和维护一份区块链信息,但是由于新区块的产生是分布式的,因此每个节点的区块信息并不是最新的,为保证全网的一致 性,节点需要进行同步信息。

4、交易传播
一笔新交易产生时,会先被广播到区块链网络中的其它参与节点。节点将交易 单广播至全网,每个节点会将数笔未验证的交易 Hash 值收集到区块中,每个区块可以包含数百笔或上千笔交易。最快完成 POW 的节点,会将自己的区块传播给其他节点。

5、 检测节点存活
发送 ping 消息,用于检测节点是否存活; 响应 pong 消息,返回 pong 消息,告诉对方节点还存活。

6、 Gossip 协议:“八卦版”区块链通信协议
每个节点可能知道所有其他节点,也可能仅知道几个邻居节点,只要这些节可以通过网络连通,最终他们的状态都是一致的,因此 Gossip 天然具有分布式容错的优点。

四、通信机制

1、RPC
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。

2、HTTP 连接
HTTP 协议即超文本传送协议(Hypertext Transfer Protocol ),是 Web 联网的基础,也是手机联网常用的协议之一,HTTP 协议是建立在 TCP 协议之上的一种应用。

3、 SOCKET
Socket 是通信的基石,是支持 TCP/IP 协议的网络通信的基本操作单元。应用层可以和传输层通过 Socket 接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

五、消息序列化协议

1、XML
XML(Extensible Markup Language)是一种常用的序列化和反序列化协议, 具有以下优缺点:

  • 优点:
  1. 具有人机可读性好可指定元素或特性的名称
  • 缺点:
  1. 序列化数据只包含数据本身以及类的结构,不包括类型标识和程序集信息
  2. 类必须有一个将由 XmlSerializer 序列化的默认构造函数
  3. 只能序列化公共属性和字段不能序列化方法
  4. 文件庞大,文件格式复杂,传输占带宽
  • 场景:
  1. 当做配置文件存储数据实时数据转换

2、JSON
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。
JSON 采用与编程语言无 关的文本格式,但是也使用了类 C 语言(包括 C, C++, C#, Java,JavaScript, Perl, Python 等)的习惯,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

  • 优点:
  1. 前后兼容性高
  2. 数据格式比较简单,易于读写
  3. 序列化后数据较小,可扩展性好,兼容性好
  4. 与 XML 相比,其协议比较简单,解析速度比较快
  • 缺点:
  1. 数据的描述性比 XML 差
  2. 不适合性能要求为 ms 级别的情况
  3. 额外空间开销比较大
  • 场景:
  1. 跨防火墙访问
  2. 可调式性要求高的情况
  3. 基于 Web browser 的 Ajax请求
  4. 传输数据量相对小,实时性要求相对低(例如秒级别)的服务

3、Protobuf
Protocol buffers 由谷歌开源而来,在谷歌内部久经考验。它将数据结构 以.proto 文件进行描述,通过代码生成工具可以生成对应数据结构的 POJO 对象和Protobuf 相关的方法和属性。其特性适合于远程调用。

相关文章
|
11天前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
75 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
4月前
|
存储 算法 网络虚拟化
【计算机网络】学习笔记,第三篇:数据链路层
现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。在 PPPoE 弹出的窗口中键入在网络运营商购买的用户名和密码,就可以进行宽带上网了 利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间,也是使用 RJ-45 和 5 类线(即以太网使用的网线)进行连接的,并且也是使用 PPPoE 弹出的窗口进行拨号连接的
73 5
|
9天前
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
20 0
|
2月前
|
安全 物联网 区块链
未来已来:探索区块链、物联网与虚拟现实的融合趋势网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【8月更文挑战第30天】本文将带领读者穿梭于新兴技术如区块链、物联网(IoT)和虚拟现实(VR)的发展浪潮之中,揭示这些技术如何相互交织,共同塑造我们的未来。我们将从技术的基本原理出发,逐步深入到它们的应用场景,并探讨它们如何在未来形成一股不可逆转的融合趋势。通过深入浅出的分析,本文旨在为读者提供一个关于这些技术发展趋势的全景视图,同时激发思考它们将如何影响我们的生活和工作方式。
|
2月前
|
机器学习/深度学习 自然语言处理 并行计算
【深度学习+面经】Transformer 网络学习笔记
Transformer模型的核心概念、优缺点以及在多个领域的应用,并提供了针对Transformer架构的面试问题及答案。
124 2
|
4月前
|
供应链 安全 区块链
区块链模块化:构建灵活、可扩展的未来网络
**区块链模块化**拆分系统为独立模块,提升**可扩展性**和**安全性**,增强**灵活性**,适应不同场景需求,如跨链互操作、行业定制和公共服务。模块化设计促进系统**定制化**,支持快速迭代,是区块链技术发展和创新的关键趋势。
|
3月前
|
机器学习/深度学习 物联网 区块链
未来触手可及:探索区块链、物联网和虚拟现实的革新之路探索深度学习中的卷积神经网络(CNN)
随着科技的飞速发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正不断重塑我们的工作和生活方式。本文将深入探讨这些技术的最新发展趋势,分析它们如何在不同行业实现应用革新,并预测其未来的融合潜力。我们将从技术的基本原理出发,通过案例研究,揭示它们在现实世界中的创新应用场景,并讨论面临的挑战与机遇。 在机器学习领域,卷积神经网络(CNN)已成为图像识别和处理的基石。本文深入探讨了CNN的核心原理、架构以及在多个领域的应用实例,旨在为读者提供从理论到实践的全面理解。
|
4月前
|
算法 安全 区块链
在区块链中,共识机制是确保网络一致性的核心要素
**区块链的共识机制**是保证网络一致性的关键,涉及工作量证明(PoW)、权益证明(PoS)等算法。节点通过验证交易和解决数学难题来确认新区块,防止双重支付和篡改。共识确保去中心化网络的安全性、可靠性和信任,即使部分节点故障,系统仍能正常运行。
|
4月前
|
供应链 安全 区块链
区块链模块化:构建灵活、可扩展的未来网络
**区块链模块化**通过拆分系统为独立模块,如执行、结算、共识和数据层,提升**可扩展性**、**安全性和灵活性**。模块化允许定制化解决方案,适用于跨链互操作、行业特定需求及公共服务,如电子投票和版权保护。此方法降低耦合,增强安全性,为开发者创造更多创新机会,驱动区块链技术的未来发展方向。
|
5月前
|
监控 Java 数据库连接
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
51 3

热门文章

最新文章