1. IPFS点滴资讯首页
  2. 实战操作

IPFS👽和MerkleForest

IPFS👽和MerkleForest

什么是IPFS?

IPFS是Inter Planetary File System的缩写。它是一种点对点的分布式文件系统,可以使Web更快,更安全,更开放。要从当前版本的Web转移到Web的分布式版本,我们需要IPFS。本质上,目标是取代HTTP。

但是,嘿,为什么要取代HTTP呢?

  1. 疯狂的带宽成本: 目前的Web使用 HTTP基于一个单一的客户端-服务器模型。总是必须接近中央服务器以下载任何类型的文件。想象一下,如果你能从你附近的节点获得相同文件的位数?您可以使用更少的带宽更快地下载文件。通过视频传输,P2P方法可以节省60%的带宽成本。

IPFS可以高效地分发大量数据。零重复意味着节省存储空间。

2. 404如此吓坏常见!:网页的平均寿命为100天。之后,人们可以期待看到404消息。现在的网络是如此脆弱。链接一直在破碎。它和烧书一样好。

IPFS提供历史版本控制(如git),可以轻松设置弹性网络以镜像数据。

3. 集中式基础设施,呃:我们数据的所有功能都在主服务器上。如果崩溃了,我们就完成了。如果Twitter破裂,我们就不能发推文了。如果Facebook崩溃了,那么它已经破了哈哈。

IPFS仍然忠实于开放式和扁平化网络的最初愿景,但提供了使该愿景成为现实的技术。

4. 离线是新的在线:在发展中国家,在自然灾害期间,临时不良网络,我们该怎么办?坐吧?我们使用的网络是20世纪。我们可以做得更好。

IPFS支持创建具有多种弹性的网络,无论是否具有Internet骨干网连接,都可实现持久可用性。


IPFS如何运作?(简单来说)

因此,如果您想要检索数据结构或使用IPFS将文件保存在Web上,则根本不会访问中央服务器。您要求网络中的同行为您提供该文件的路径。您的同伴会给您一些称为该文件的“加密哈希”的内容。它是该文件的唯一指纹。

假设你想得到/foo/bar/baz.png,它的加密哈希是WmXGTaGWTx1uUtfSb2sBAvArMEVLK4rQEc4g5bv7wwdz1U。(这可以使用SHA1,SHA2或任何其他算法生成)。你通过这个链接上网了。

IPFS👽和MerkleForest

维基百科已经开始使用IPFS:

URL的格式为:https//ipfs.io/ipfs/QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX/wiki/Anasayfa.html


关于Merkle Trees的一点点

关于Merkle链接的研究论文可以在这里找到。Ralph Merkle是Merkle数据结构背后的大脑。

可以在这里找到Merkle树的美丽插图

C ++中Merkle Tree的基本实现

#include <stdio.h> 
#include <stdlib.h> 
#include <iterator> 
#include <vector> 

using namespace std; 

//哈希函数。                                                                                                                                                                                                                                                                                                                                                
int multiplyThem(int a,int b){ 
  return a * b; 
} 

int addThem(int a,int b){ 
  return a + b; 
} 

class Merkle { 
private:
  vector <int> values; 
  int(* hasher)(int,int); 

上市:
  Merkle(int(* f)(int,int)){ 
    this-> hasher = f; 
  } 

  int size(){ 
    return values.size(); 
  } 

  void add(int value){ 
    values.push_back(value); 
  } 

  int root(){ 
    vector <int> current; 

    current = getHashedParents(this-> values); 
    while(current.size()!= 1){ 
      current = getHashedParents(current); 
    } 
    return current [0]; 
  } 

private:
  vector <int> getHashedParents(const vector <int>&children){ 
    vector <int> result; 

    for(int i = 0; i <children.size();){ 
      int a = children [i],b = children [i]; 
      if(++ i <children.size()){
        b =儿童[i ++]; 
      } 
      int hash = this-> hasher(a,b); 
      printf(“hash(%d,%d)=>%d”,a,b,hash); 
      result.push_back(散列); 
    } 
    printf(“\ n”); 
    返回结果; 
  } 
}; 

int main(int argc,char ** argv){ 
    Merkle merkle(multiplyThem); 
    merkle.add(1); 
    merkle.add(2); 
    merkle.add(3); 
    merkle.add(4); 
    merkle.add(5); 

    printf(“Merkle Root =%d \ n \ n”,merkle.root()); 

    merkle = Merkle(addThem); 
    merkle.add(1); 
    merkle.add(2); 
    merkle.add(3); 
    merkle.add(4); 
    merkle.add(5);

    printf(“Merkle Root =%d \ n \ n”,merkle.root()); 
    返回0; 
}

IPFS的核心是IPLD。

IPLD是Inter Planetary Linked Data的缩写。文件/数据结构使用Merkle链接相互链接。

IPFS👽和MerkleForest

(Merkle DAG是什么?它是一个Merkle指向的非循环图。它类似于Merkle树。但是,Merkle DAG不需要平衡,它的非叶节点可以包含数据。)

在IPFS中,两个节点之间的链接采用加密哈希的形式。由于Merkle DAG数据结构,这是可能的。Merkle DAG为IPFS提供了许多有用的属性,包括:

  1. 内容寻址:所有内容都由其加密哈希(包括链接)唯一标识。
  2. 防篡改:所有内容均通过校验和进行验证。如果数据被篡改或损坏,IPFS会检测到它,因为哈希值会发生变化。
  3. 无重复:保存完全相同内容的所有对象都相等(即它们的哈希值相等),并且只存储一次。

只要将merkle root赠送给某人,您就可以将大量数据移交给该人。因为,merkle root基本上保留了它下面所有块的签名。

系统的互操作性也可以存在于merkle森林中,其中每棵树代表一个单独的merkle树。在森林中,一棵树可以是比特币,一棵可以是以太币,一种可以是常规的SQL数据库。因此,为了在这些树之间交换信息,这些基于内容的加密散列函数是有效的。而不是发送整个文件,只发送哈希。想象一下,使用以太坊进行某些交易,并在交易中添加Git页面。

目前这种系统用于:

  1. 比特币
  2. 复仇
  3. 混帐
  4. Bit Torrent

还有更多,但这些是主要的。


点对点科技简介

点对点科技深耘IPFS与Filecoin技术,坚持区块链技术改变未来的信念。点对点 IPFS 数据中心是目前国内技术领先,性价比高、保障优的投资标的。自建杭州数据中心,合作数据中心分布于上海、宁波、河北、香港、斯德哥尔摩(瑞典)等地。点对点数据中心具有优秀的硬件配置与目前国内优质的网络节点资源。点对点科技力求将IPFS爱好者升级为IPFS领军者与受益者,让IPFS颠覆传统互联网,共同开启 WEB 3.0时代。

想了解更多区块链知识吗?关注我吧!

Filecoin测试网二阶段昨日重启,点对点出块第一! | 点滴资讯

原创文章,作者:mestery,如若转载,请注明出处:http://ipfsdrop.com/tech/ipfs-and-merkleforest/

发表评论

电子邮件地址不会被公开。 必填项已用*标注