什么是PP.io?
PP.io是我和Bill发起的存储项目,目的在于为开发者提供一个去中心化的存储和分发平台,能做到更便宜,更高速,更隐私。
当然做去中心化存储的项目也有好几个,FileCoin,SiaCoin,MaidSafe等,但是仔细看看他们流出的资料,官网,白皮书,文章以及各个社区的言论,可以看出他们注重这几点,完全去中心化,安全性,完全的社区化治理,几乎像比特币一样地宣传区块链精神,以便于把币的价值通过共识做起来。甚至可以说,这些项目都是把存储项目纯粹当作区块链项目来做得, 但是这样能把去中心化存储做好吗?
首先要定义,什么是“做好去中心化存储”?
首先,去中心化存储也是数据的网络存储,数据存储和比特币等数字货币其实是不同的。
数字货币是钱,钱对安全性的要求非常高。每当我支付出一笔钱出去,我手上的钱就会变少,而钱支付的快和慢不是那么重要。
数据网络存储是使用场景,在互联网上到处都需要数据存储。对于个人用户而言,苹果的iCloud,Google Drive, 微软的OneDrive就是数据存储;而对于开发者而言,AWS S3和微软的Axure就是对开发者的存储服务。存储是真正需要使用的产品,所以服务质量非常重要,贵了,慢了,数据丢了,网盘服务关停了,都有可能是用户不使用的理由。在这个场景下,存储价格合理,服务质量高,就非常重要了。所以存储价格合理,服务质量高,才是真正地做好去中心化存储。
可以再看看前面提到的几个项目,他们输出的资料、官网、白皮书、文章中几乎没有提到过服务质量(QoS)。甚至在社区里还有人抱怨,去中心化存储的价格相对于传统云存储的价格,不但没有变低,反而还高了很多。
再仔细一想,去中心化存储是现在才出现的吗?其实不是,早就有了,如BitTorrent,Emule以及我之前设计的PPTV (数据早就存在很多节点上,并且广阔地部署在全网,然后相互免费共享)。它们本质就是去中心化存储。
所以我在设计PP.io项目的时候,想法和Filecoin、SiaCoin等几个项目有很大的不同。我是把传统P2P项目的精髓结合区块链项目的特点来做,提出以用户服务质量为导向的去中心化存储项目。 也因为如此,PP.io项目的实施过程并上来就直接完全去中心,而要经历3个阶段,”强中心“、”弱中心“、”完全去中心“。
你没有看错,我们没有一开始就直接完全去中心。这不同于现在的区块链项目。下面详细说一下,我是怎么思考的。
首先我的观点:区块链解决的是信任问题,不是数据存储问题。所以我在设计PP.io的时候,不会将存储文件放在链上,在链上只存放资产,合约,证明等和激励相关的信息。数据存放在分散的存储节点节点上,使用P2P存储技术来分配和调度,不存入区块链,数据是可以被所有者删除的,但也只能被数据所有者删除。就像比特币,只有所有者能发起转账一样。
从本质上来说,PP.io拥有两个系统:
  1. 一个是分布式存储系统,是由P2P存储技术构建,以Qos为导向,目标是做出不低于AWS S3的Qos(服务质量)
  2. 另外一个是区块链系统,是由区块链技术构建,以经济激励为导向,目标是做出良性的市场经济,让真正价廉物美的服务商获得收益

图1:分布式存储系统 和 区块链系统

这里,我解释一下我说的“中心”是什么意思。
首先,我在设计PP.io的时候,存储方面从头到尾都是去中心的,数据永远存放在去中心化的网络中。但是一个高效的P2P系统并不是只有存储节点,还有一些中心化的服务器。这些服务器是用于管理大量的索引信息,跟踪信息等,让节点之间相互发现对方,让节点之间相互协调。就像Bitorrent系统中的Tracker服务器角色。这些服务器是不存放数据的,但是如果没有这些中心化服务器,P2P网络会变得非常低效。PP.io系统中也存在这样的角色,这就是我所谓的“中心”。
简单地说,区块链,激励,存储都是始终去中心的, 只有类似于Bittorrent的Tracker角色,才需要经历3个阶段。
这里,我先详细介绍一下PP.io中的存储角色:
  1. 用户节点:PP.io的消费者,通过消耗一定的PP.io Coin,来获得存储或下载数据的服务。
  2. 发布源节点:发布内容服务的节点,属于一种特殊的用户节点,它们通常不下线,且能够长期提供下载服务;发布源节点类似于IPFS
  3. 存储节点:通过提供存储空间和带宽服务来获得PP.io Coin激励的节点。
  4. 检索调度节点:可同时提供检索和调度两种服务, 并可获得PP.io Coin激励的节点,检索功能方便为用户快速定位到指定数据的位置,调度功能管理数据的上传和下载,并根据供需关系调整存储数据副本的流动。
  5. 监督节点:承担存储证明中的验证任务并可获得激励的节点,监督节点确认存储节点的总存储容量,验证用户数据存储下载,检查存储时空和下载带宽的有效性;
其他去中心化存储,如FileCoin, MaidSafe,都没有单独的监督节点角色,都要用他们的矿工节点兼做监督节点。我们核算了矿工节点的性能,如果承担监督工作,会有大量的密码学工作,就会要求所有矿工配置更高。FileCoin里面的矿工作用,有点类似PP.io里面的存储节点,我们PP.io为了降低存储节点的门槛,将提供存储服务的角色和监督角色分开,所以将监督节点独立出来了。
差不多介绍了基本信息后,我该详细介绍PP.io未来发展的3个阶段了。
“强中心”阶段 "Strong center" phase
这些节点是去中心化的:用户节点,发布源节点,存储节点。
这些节点是中心化的:检索调度节点,监督节点。
除此之外,我们还有一个结算中心,也是中心化的。负责计算节点之间的Token的支付。
这个阶段,区块链只有一条主链。主链上我们只存放资产信息,也就是用户有多少币,相应的转账记录。

图2:“强中心”阶段的架构图

其实,StorJ现在也处于这个状态,它的分布式存储是自己做得,它的激励直接使用的是以太坊上的ERC20代币。它是靠中心化统计,然后每个月按时给矿工发工资的方式来激励的。
“弱中心”阶段
这些节点是去中心化的:用户节点,发布源节点,存储节点
这些节点是联盟部署的:检索调度节点,监督节点。
联盟部署就是必须有PP.io的许可才能加入并部署这样节点。这样做的目地是使用人为的方式来避免这些节点作恶,从而降低这个阶段的开发难度。
之前的结算中心服务器,在这阶段演化成了一组侧链,每条侧链上有多个节点交替产生区块。由出块节点做结算,其他节点对结算的结果做验证。侧链和主链之间分别做共识,侧链和主链之间通过预言机机制来通讯。
这条侧链我们称为合约链。如果这条侧链的性能不够,可以分裂出多条合约链。
这个阶段,区块链只有一条主链和多条合约链构成,资产,合约,证明均写在区块链上。但是合约链相关的节点是必须有授权才能部署的,简单地说,合约链处于联盟链状态。

图3:“弱中心”阶段的架构图

“去中心”阶段
这个阶段,所有节点都是去中心化的。这是PP.io的最终状态,之前在”弱中心“状态下联盟部署的节点,如检索调度节点,监督节点在这个阶段就没有接入限制了,任何人都可以加入PP.io网络并进行部署这些节点。
这个阶段,区块链依然保持一条主链和多条合约链构成。合约链也不在是联盟链,变成了公链。区块链共识算法也会在这段阶段实现最终共识算法。

图4:“去中心” 阶段的架构图

这里我详细解释了PP.io的三个阶段。这篇文章我先说到这里,可能你有不少问题。不要着急,下一篇文章我会讲解为什么要把PP.io设计成三个阶段。
 
文章作者:Wayne Wong
转载请注明出处
如果有关于区块链学习的交流,可以通过下面的方式联系我:
加我微信,注意备注: 区块链
wechat:omnigeeker

PP.io的三个阶段,“强中心”——“弱中心”——“去中心”的更多相关文章

  1. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目异同

    Filecoin,Storj 以及 PPIO 这三个存储公链的设计思路是不一样的,没有优劣之分,写这篇文章也并不是为了争论各项目的好坏对错.去中心化存储是一个长期商业赛道,不同团队在同一个赛道上往不同 ...

  2. 一切为了落地,为什么要把PP.io设计成三个阶段!

    之前的一篇文章,我讲解了PP.io的三个阶段:“强中心”,“弱中心”,“去中心”.今天来解释下,我为什么要分三个阶段逐步实现PP.io去中心化存储网络: 简单地说,就是在区块链不可能三角理论中,我暂时 ...

  3. 为什么比特币和以太坊未必真得比EOS更去中心化?

    在区块链行业里,有两派人一直在争论:一个是以比特币和以太坊为首的社群,另一个是以EOS为首的社群.这两群人一直在争论谁才是真正的未来,双方都认为自己这边更有未来.其中EOS抗争的重点就是100万TPS ...

  4. 一种去中心化的manager设计思路

    通常,我们设计游戏引擎时,或者管理器时,都会由管理器产出各种产品,一旦有新产品要加,就要修改管理器,来增加相应的生成代码. 这从设计上来看有两个问题: 1,管理器参数需要有个类型,在管理器中用if e ...

  5. PPIO去中心化存储的了解和记录

    目录 介绍 FileCoin P2P技术给去中心化云存储的好处 剩余资源的再次使用 市场竞争会激发民间的智慧 PPIO的2种冗余模式 全副本模式 纠删副本模式 为什么PPIO要设计支付代理节点? 一些 ...

  6. OC:面向对象的编程思想、基本的知识点总结、强,弱引用

    OC 面向对象 和 面向过程 参考 面向过程:使用步骤划分功能,然后用函数一步一步的调用 面向对象:OOP (Object Oriented Programming) 使用功能来简化问题, 面向对象语 ...

  7. 上线啦,PP.io!

    经过我们PPIO团队成员们在20天零13小时零14分的辛勤努力下,我们的官网终于上线了!   是的,14年前我们就是东半球第一个P2P技术团队.我们的征程始于2004年春天一个温暖的午后.寝室里笨拙的 ...

  8. IM 去中心化概念模型与架构设计

    今天打算写写关于 IM 去中心化涉及的架构模型变化和设计思路,去中心化的概念就是说用户的访问不是集中在一个数据中心,这里的去中心是针对数据中心而言的. 站在这个角度而言,实际上并非所有的业务都能做去中 ...

  9. 去中心化类微博应用 mastodon

    一句话重点,去中心,没监管,自己对自己信息做主,没人随便删你消息的分布式社交应用 mastodon. 建了一个实例, https://cncs.io 来专门讨论计算机相关信息,欢迎大家注册来玩.已有用 ...

随机推荐

  1. Annotations

    一.介绍 注解,可以将注解看成一种特殊的接口.是一种特殊种类的元数据,它能够关联Java语言中不同元素和结构.有意思的是,在Java生态系统中大多数使用样板XML描述符的地方,注解在消除这些XML描述 ...

  2. 【CUDA】Windows 下常用函数头文件

    CUDA 函数 头文件 __global__ __device__ #include <cuda_runtime.h> threadIdx #include <device_laun ...

  3. Django框架(三)

    六.Django的视图层 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML ...

  4. python画箱线图

    # -*- coding: utf-8 -*- """ Created on Wed Jun 14 13:00:11 2017 @author: Miao "& ...

  5. configure、make 和 make install 的区别

    Linux编译安装中configure.make和make install各自的作用 ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GC ...

  6. django中的ORM介绍和字段及字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  7. PFM 图片格式

    PFM  图片格式 参考:   https://linux.die.net/man/5/pfm 1. 描述 本文档描述了Netpbm转换器pamtopfm(1)和pfmtopam(1)所理解的PFM图 ...

  8. LNMP(一)

    第二十课LNMP(一) 目录 一.LNMP架构介绍 二.MySQL安装 三.PHP安装 四.Nginx介绍 五.Nginx安装 六.扩展 一.LNMP架构介绍 之前已经学习过LAMP架构,与LAMP相 ...

  9. python面向对象基本概念(OOP)

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  10. springcloud学习总结

    最近花了一周的时间对springcloud的常用组件进行了一些入门级的了解,也破天荒的积极起来用博客进行了学习的记录,只是希望以后用的时候能对自己有所帮助,也希望给跟我一样对springcloud毫无 ...