PP.io的三个阶段,“强中心”——“弱中心”——“去中心”

时间:2022-10-28 15:48:02
什么是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. 另外一个是区块链系统,是由区块链技术构建,以经济激励为导向,目标是做出良性的市场经济,让真正价廉物美的服务商获得收益
PP.io的三个阶段,“强中心”——“弱中心”——“去中心”

图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的支付。
这个阶段,区块链只有一条主链。主链上我们只存放资产信息,也就是用户有多少币,相应的转账记录。
PP.io的三个阶段,“强中心”——“弱中心”——“去中心”

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

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

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

“去中心”阶段
这个阶段,所有节点都是去中心化的。这是PP.io的最终状态,之前在”弱中心“状态下联盟部署的节点,如检索调度节点,监督节点在这个阶段就没有接入限制了,任何人都可以加入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. centos为用户增加ssh key

    linux增加用户,为用户增加key 可以用  ssh-keygen -t rsa 添加ssh的key,会得到public_key和自己的private_key 然后这个key可以用在任何用户上 ad ...

  2. IEnumerable、GetEnumerator、IEnumerator的理解

    概念文字性的东西,我们就不说了,这里我们来点具体的实例第呀: 实例一: using System; using System.Collections; using System.Collections ...

  3. 盒模型结构——3D盒模型

  4. ubuntu16.04 安装网易云音乐

    最爱的播放器 网易云音乐 哈哈,刚刚折腾了双系统,立马开始了软件安装. 网易云音乐从官网下载对应的 64 位版本,我下载的是 netease-cloud-music_1.0.0_amd64_ubunt ...

  5. Oracle 动态视图6 V$PROCESS

    一.视图包含当前系统oracle运行的所有进程信息.常用于将session与进程(oracle进程,操作系统进程)之间建立联系. Column Datatype Description ADDR RA ...

  6. [Struts2学习笔记] -- 环境配置

    在创建好WebProject后,就可以开始进行Struts2的环境配置,可以到Struts2官网下载,本环境使用struts-2.3.24.1版本. 首先导入必要的jar包到WebProject的/W ...

  7. 烧录口被初始化为普通IO

    烧录口被初始化为普通IO后如果复位端没有的烧录口会导致不能识别烧录器不能下载与调试,因为程序一开始就把端口初始化了,烧录器不能识别,添加复位端口到烧录器(前提是你的烧录器有复位端). 有了复位段之后, ...

  8. php安全

    1.会话安全性 会话固化 一种获取有效回话标识符的方法,他将运行恶意用户通过强制使用回话ID来轻松模拟一个真实用户 攻击方法:<a href="http://a.com/index.p ...

  9. lsof fuser

    使用fuser 或 lsof在一个挂载点中查找已打开的文件 fuser -mv /usr 查看有哪些进程在运行/usr中资源 sync fuser -km /media/usbdisk U盘无法卸载

  10. 从零一起学Spring Boot之LayIM项目长成记(一) 初见 Spring Boot

    项目背景 之前写过LayIM的.NET版后端实现,后来又写过一版Java的.当时用的是servlet,websocket和jdbc.虽然时间过去很久了,但是仍有些同学在关注.偶然间我听说了Spring ...