web3中的ipfs

什么是web3:

是基于区块链技术的分布式网络,主要目标是建立一个去中心化与信任化的互联网

去中心化以及是信任化

区块链:

将所有的交易记录和什么护具存储在分布式网络中,每一个node都有完整的数据副本

任何一个node修改都需要得到其他节点的认可,确保数据的真实性和和可信度

web3有一些关键技术和标准,例如以太坊,IPFS,ENS,ERC标准等

以太坊:以太币

是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币

IPFS:

IPFS是一种旨在创建持久且分布式存储和共享文件的网络传输协议。不同于传统的HTTP协议,IPFS使用内容寻址而非位置寻址,这意味着文件是根据其内容而不是存储它们的服务器位置来识别的。这种方式提高了文件的安全性和分发效率。

ENS:

ENS是以太坊上的域名服务,功能类似于传统互联网中的DNS(域名系统)。它允许用户将以太坊地址转换为人类可读的名称,使得发送和接收资金或者与智能合约交互变得更加简单。

ERC:

ERC标准是一系列由以太坊社区提出的规范和建议,旨在标准化智能合约的设计和实现。最著名的ERC标准是ERC-20,它定义了在以太坊上发行代币的标准接口,极大地促进了代币的互操作性和流动性。

web3拥有跨平台的特性

IPFS:

是一个面向全球的,点对点的分布式文件系统,目的是取代目前互联网的超文本传输协议HTTP

也就是p2p(点对点)

特点:

  1. 信息永久存储,不会出现404错误

  2. 可以存储任何类型的文件,即使某一个节点将信息删除之后,只要存储文件的网络依旧存在那么它依然可以正确的访问

  3. ipfs会将存储的文件做一次哈希运算,只有文件内容完全相同,他们的哈希才会一样,因此这极大的减少了资源冗余的问题,极大的提高了网络空间的利用率。

  4. IPFS的网络上运行着一条区块链,也就是用来存储互联网文件的哈希值表,一个文件上传到IPFS的网络中,IPFS系统就会对文件内容生成一个唯一的哈希值。如果要访问资源,直接通过该哈希值进行访问。

理解:在IPFS网络中,每一个设备(可能是客户端,可能是服务器,也可能是其他的设备),都会存在一个IP(但是这个IP与IPFS是毫无关系的,这个IP指的是DNS自动获取的IP),这个IP包含着一个节点,在这个节点当中存在一个DHT(哈希值表),也只会存储部分的哈希值表,但是上面的也不全部正确,因为我的电脑是使用的DNS获取的IP地址,那么也就说明我的IP地址是会变化的,但是其中的节点是不会变化的,举个例子,也就是你有一套房子(IP),节点就是你的名字,DHT也就是你拥有的物品,不论你搬家到哪里,你依旧是你,你的身份是唯一的,你的身份换个名称叫做公钥(ID)这个公钥是不会变的。

那么,在IPFS网络当中,我怎么知道DHT中谁有我想要的数据呢?

在这里有一个XOR机制,在这个机制中,他会去问

也就是说,当我想要一份数据的时候,XOR会自动的向其他的节点进行询问,举个例子就是我先公钥一碗米,那么这个我会先看自己是否有这碗米,如果没有,那XOR就会像邻居去问有没有,如果邻居也没有,那么他就会像其他邻居一个一个进行询问,最后要到这碗米

在这个过程中的专业术语

CID:对应着例子当中的米,专业名称叫做,内容标识符,他是通过哈希进行计算的,所以他是唯一的

换句话说:

当我需要一个CID,那么DHT会咋i自己本地查看是否缓存这个CID,如果没有的话,那么就会启用Kademlia协议 来像其他节点发送请求,那么我们怎么知道最先要向谁发送请求呢,这个时候使用的是XOR机制,XOR是一种距离算法,它值得并不是实际的距离(物理距离),而是会使用特定的逻辑距离进行询问。最终得到提供者,Provider Node,(你再找到这个提供者之后,要么拿到完整的数据,要么就知道究竟谁有)你找他之后,拿到自己想要的数据,你在使用过后,你的本地是会有这份数据的缓存的,其他人再想要也是可以找你的。

XOR是怎么进行查找的

因为每一个节点或者CID都存在一个ID(要么是二进制,要么是字符串表示)

使用XOR(异或运算)可以计算出两个ID之间的逻辑距离

距离越小,说明你可能想要的数据就有很大的可能存储在这里

ENS:可以理解为IP地址中的DNS,将域名转化为人类可以看懂,并是以 .enh 结尾

你可能感兴趣的:(web3,去中心化,区块链)