杂记 去中心化系统介绍

article/2025/9/24 19:53:13

一、去中心化系统概述

        去中心化系统(Decentralized System)是一类没有任何中央协调或管理单元的系统。换句话说,没有一个单一的中央服务器来协调或管理系统。与集中式系统相比,分散式系统既有优点也有缺点,因此您为系统选择这两种拓扑原型中的哪一种取决于您需要或想要的优点中的哪一种。

        去中心化系统可以分为两类:

        分散式服务器系统

        对等 (P2P) 系统

二、分散式服务器系统

分散式服务器系统是客户端-服务器系统的服务器端分散的系统。例如,去中心化数据库,如 Cassandra 或 MongoDB。

分散式服务器系统通常仅分散整个系统的服务器部分。整体架构仍然是客户端-服务器架构——系统中的一些节点是客户端,而其他节点是服务器。

        分散式服务器系统的示例有:

        Apache Cassandra

        MongoDB

        Amazon DynamoDB 

三、对等系统

        对等系统 (P2P),有时也称为对等网络,是网络中的所有节点既是客户端又是服务器的系统。每个节点(对等点)既作为服务器向其他节点(对等点)提供服务,又作为客户端从其他节点使用该服务。因此,对等系统中的所有节点都是彼此的对等节点——意味着功能和角色相同。下图显示了一个完全去中心化的系统,其中所有节点都具有相同级别的功能和权限。这就是为什么他们经常被称为同伴——彼此平等。

         P2P 网络和 P2P 网络算法和拓扑的示例有:

        Chord (algorithm)

        Kademlia (algorithm)

        Polymorph polyring (algorithm)

        Dandelion - 目标是提供强大的、可证明的匿名性保证。

        Gnutella - 一种文件共享协议,它定义了分布式节点通过对等 (P2P) 网络进行通信的方式。

四、区块链系统

        比特币、以太坊、LBRY 等区块链系统也使用 P2P 网络进行通信和协作。他们这样做是因为区块链系统(如数据库)保持分布式状态,因此区块链系统中的节点需要就该状态是什么达成共识。

        注意:一些区块链系统的节点并不都执行完全相同的工作/角色。例如,一些节点是“验证者节点”,而其他节点是“钱包节点”等。这样的区块链系统可能被归类为去中心化服务器系统,而不是纯粹的 P2P 系统。然而,重要的不是你给给定区块链系统的分类。重要的是你了解它是如何工作的。

五、去中心化系统的好处

        与集中式系统相比,分散式系统可以有一些好处——取决于这些分散式系统的设计方式。

        更大的弹性

        一个设计良好的去中心化系统可以比中心化系统具有更大的弹性,因为去中心化系统没有可以导致整个系统崩溃的单点故障。如果去中心化系统中的一个节点崩溃,系统中的其他节点可以接管。

        水平可扩展性

        一个设计良好的去中心化系统通常可以很好地水平扩展——这意味着通过向网络添加更多节点(计算机)来扩展,而不是让每个节点使用更强大的硬件(垂直扩展)。

        降低硬件成本

        P2P 网络有时可以直接在最终用户设备(计算机、电话、控制台等)上独占运行。在这些情况下,最终用户正在贡献运行系统所需的硬件。因此,创建 P2P 网络的软件的创建者可以节省大量的硬件成本。他们很可能无法实现零硬件成本——但可能比他们必须为运行系统所用的所有硬件付费的情况要少得多。

六、去中心化系统挑战

        在去中心化系统中实现某些类型的功能比在集中式系统中更具挑战性。

        去中心化共识

        去中心化系统的最大挑战之一是就共享状态达成共识——如果系统中的多个节点可以启动对该状态的更改。“状态”通常是指存储在与数据库(即分散式数据库)相对应的数据中的一些数据。

        如果去中心化系统中的两个或多个节点都试图改变同一个逻辑对象的状态,那么系统需要以某种方式确定应该以什么顺序应用状态改变。

        想象一下,如果系统中的两个节点都想在共享状态下更改同一“客户”的“名称”。如果第一个节点想要将名称更改为“Satoshi”,而第二个节点想要将名称更改为“Vitalik” - 客户最终会使用哪个名称?这种情况如下所示:

         去中心化共识,有时也称为分布式共识,是一个广泛的话题,并且有几种不同的方法来实现它。

        广播、组播、路由和查找

        根据分散系统的拓扑结构,向网络中的所有节点或节点的子集有效和高效地广播或多播消息可能具有挑战性。实际上,我的意思是确保所有预期的节点都实际接收到消息。高效我的意思是没有节点不止一次地接收消息。一些分散式广播的模型可能能够保证一个但不能保证另一个。

        在系统中执行有效的消息路由和节点或数据查找时也存在类似问题。您如何有效地发现系统中还有哪些其他节点?如果该对象仅存储在系统中的一个节点上,您如何有效地查找该对象的位置?

        分散系统使用的拓扑对这些问题有很大影响。您可能必须设计系统的拓扑以满足您的特定需求,而不是为所有用例使用相同的通用拓扑。


http://chatgpt.dhexx.cn/article/ftxJ5mda.shtml

相关文章

什么是去中心化?

去中心化是一种现象或结构,其只能出现在拥有众多用户或众多节点的系统中,每个用户都可连接并影响其他节点。通俗地讲,就是每个人都是中心,每个人都可以连接并影响其他节点,这种扁平化、开源化、平等化的现象或结构&…

“去中心化”到底是什么?

“去中心化”到底是什么? 如今在区块链的世界中,当大家分析一个新项目的时候,必然会提问到:“这个项目是否去中心化?” “去中心化”可以说是区块链中最有代表性的一个词,但不可思议的是,也是…

应用密码学:位移密码极简(凯撒密码)

应用密码学:位移密码极简 位移密码、凯撒密码(K3) 目录 应用密码学:位移密码极简原理加密解密 原理 根据字母映射表将26个字母转换为整数0-25且逐一对应,如下表 根据映射表将明文转换为数字,再整体向前或向后移动固定位数&…

密码学笔记——凯撒密码

凯撒密码 简介 凯撒密码是使用的单表代换,相信大家在平时接触过凯撒密码的在线加密解密,既然接触过,那肯定见到过”偏移量“这个字眼,下面就通俗说一下: 凯撒密码的基本原理就是把一个字母通过移动一定的位数变成另…

python基础编程小实例4——恺撒密码

编程语言:python3.9 题目 恺撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D&#xff0…

使用java语言实现移位密码加密过程

使用java语言实现移位密码加密过程 一、凯撒密码(移位密码)二、运行软件三、代码1.加密2.解密3.运行四、运行结果1.加密结果2.解密结果一、凯撒密码(移位密码) 在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知…

恺撒加密简记

恺撒加密简记 介绍代码如下参考链接 介绍 恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向…

凯撒密码(移位加密)

简介: 移位加密是一种古典的替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。 例如:当偏移量是3的时候,所有的字母A将被替换成D,B替换成E&…

C语言凯撒密码字母向后偏移三位,凯撒加密解密(java字母移位)

1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a—w之间通过加3之后再转化为字符型输出,x—z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出。解密就是将字符数据转化为ASC码表中的数字,d—z之间通过减去3之后再转化为字符型输出,a—c之间通过转化为ASC…

古典恺撒移位密码破解

1. cipher text bmjs dtz uqfd ymj lfrj tk ymwtsjx dtz bns tw dtz inj ymjwj nx st rniiqj lwtzsi 刚看到需要解密的文本,就觉得它很像移位密码,于是开始试了一下。 源代码: 求最大公因数:Arithmetic.java public class Arit…

移位密码(凯撒密码)

一、移位密码(凯撒密码) 移位密码是一种简单的加密方法,它通过将明文中的每个字符按照一定规则向左或向右移动若干位来生成密文。移位密码通常使用偏移量来确定每个字符移动的位数。 二、加密解密 1. 移位加密 移位加密算法将明文中的每个字符按照一定规则向左或…

凯撒密码(移位密码)

凯撒密码(移位密码) 移位密码是一种古典密码,实际上是替换密码的一个特例,它有很严格的数学定义 // 移位密码 import java.util.Scanner;public class Caesar {public static void main(String[] args) {System.out.println(&q…

大端模式和小端模式

一.概念 大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端; 小端模式(Little-endian):低位字节排放在…

数据存储:大端和小端

目录 字节序 大端和小端 大端小端测试 写入测试 字节码文件的大小端 前面说到,像C/C这类语言编写的程序,它们被编译后,直接转换成了对应平台上的可被CPU直接运行的机器指令,转换之后,原本语言中的数据结构&#x…

大端和小端传输字节序

大端和小端 在计算机中是以字节为单位,每一个地址对应一个字节,一个字节8bit。在C中,除了8bit的char以外,还有16bit的short,32位的int,64位long,当然具体要由编译器决定,可以通过si…

大端字节序和小端字节序

字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。 -- 转自:字节序_百度百科 (baidu.com) 在几乎所有的平台上,多字节对象都被存储为连续的字节序列。例如在 C 语言中,一…

简单理解大端小端

大端和小端是计算机写内存的习惯。就如人类写文章时的顺序一般,现代人从左往右,古人却是竖书成行(自上而下写满一行后,再自右向左换行。);有些计算机规定从左往右写内存,有些规定从右往左写内存…

java 为什么用大端_Java中的大端和小端

Java整型的字节序是() A.Little-Endian(小端) B.Big-Endian(大端) C.由运行程序的CPU决定 D.由编译程序的CPU决定 对于大小端,我估计肯定有很多开发人员跟我一样都没听过 由于Java是跨平台的,JVM为我们屏蔽了大量的底层细节和复杂性,导致在平…

存储模型:大端和小端

前言: 计算机操作系统中存储信息都是以字节为单位,每个地址单元对应 1 个字节。 1 个字节为 8 bits,对于某些32 位处理器而言,char类型数据占用 1 个字节的空间,short 占用2个字节,int 占用4个字节。而这…

操作系统之大端小端

1. 什么是大端,什么是小端: 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地…