IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

来源:IPFS方得社区  作者:Niharika Singh  时间:2018-10-26

什么是IPFS?

  IPFS是InterPlanetary File System的缩写。它是一种点对点的可以使Web更快,更安全,更开放的分布式文件系统。我们需要用IPFS把当前版本的Web切换成分布式版本Web。实际上,IPFS的目标是取代HTTP。

为什么要取代HTTP呢?

  1、疯狂的带宽成本:

当前使用HTTP的Web基于一个单一的客户端——服务器模型,它下载任何类型的文件都必须通过中央服务器。想象一下,如果你能从你附近的节点获得相同文件,那么你就可以使用更少的带宽更快地下载文件。在视频传输方面,P2P方法可以节省60%的带宽成本。

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

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

  2、404出现得过于频繁:

  网页的平均寿命为100天。在那(100天)之后,人们查看网页就可以期待看到404出现了。现在的网络是如此脆弱,链接总是过期和无效,这就好比把书本给焚烧掉一般(不能保存信息)。

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

IPFS提供历史版本保留(如git),可以轻松地为数据镜像设置可恢复网络。

  3、中心化的基础设施:

  我们的所有数据都存储在主服务器上。如果服务器崩溃了,我们就完了。如果Twitter崩溃了,我们就不能发推文了。如果Facebook崩溃了,好吧,它足够崩溃了哈哈。

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

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

  4、离线是新的在线:

  在发展中国家,在自然灾害期间,面对临时性的不良网络,我们该怎么办?只是干坐着等吗?我们使用的网络是20世纪的,我们可以做得更好。

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

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

IPFS如何运作?

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

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

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

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

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

  URL的格式为:

  https//ipfs.io/ipfs/QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX/wiki/Anasayfa.html

关于Merkle Trees的一小节

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

  这里能够找到关于什么是Merkle树的说明。

  Merkle Tree在C 中的基本实现。

  #include

  #include

  #include

  #include

  using namespace std;

  // Hashing functions.

  int multiplyThem(int a, int b) {

  return a*b;

  }

  int addThem(int a, int b) {

  return a b;

  }

  class Merkle {

  private:

  vector values;

  int (*hasher)(int, int);

  public:

  Merkle(int (*f)(int,int)) {

  this->hasher = f;

  }

  int size() {

  return values.size();

  }

  void add(int value) {

  values.push_back(value);

  }

  int root() {

  vector current;

  current = getHashedParents(this->values);

  while (current.size() != 1) {

  current = getHashedParents(current);

  }

  return current[0];

  }

  private:

  vector getHashedParents(const vector &children) {

  vector result;

  for (int i=0; i < children.size(); ) {

  int a = children[i], b = children[i];

  if ( i < children.size()) {

  b = children[i ];

  }

  int hash = this->hasher(a,b);

  printf("hash(%d, %d)=>%d ", a, b, hash);

  result.push_back(hash);

  }

  printf("n");

  return result;

  }

  };

  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 = %dnn", merkle.root());、

  merkle = Merkle(addThem);

  merkle.add(1);

  merkle.add(2);

  merkle.add(3);

  merkle.add(4);

  merkle.add(5);

  printf("Merkle Root = %dnn", merkle.root());

  return 0;

  }

IPFS的核心是IPLD

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

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

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

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

内容寻址

1.:所有内容都使用加密哈希作为唯一标识,包括链接也是一样。

防篡改

2.:所有内容均通过校验结果进行验证。如果数据被篡改或损坏,IPFS会检测到它,因为哈希值会发生变化。

无重复

3.:所有保存完全相同内容的对象都相等(即它们的哈希值相等),并且只存储一次。

Me

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

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

  目前这种系统用于: Bitcoin Ethereum Git Bit Torrent 还有更多,但最重要的是:

  立即开始使用IPFS!

  入门| IPFS文档

  如果你还没有安装,请安装IPFS。在本教程期间安装IPFS,如果您有任何疑问,请随时访问...ipfs.io

  再重申一次,它将成为一项突破性技术,将Web从Web2.0推向Web3.0。

IPFS将成为一项突破性技术,将Web从Web2.0推向Web3.0

 

您可能喜欢
Copyright © 2017 iIPFS.cn IPFS/FileCoin资讯站