Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
区块链架构
2 b$ {# D6 J) s1 M$ B$ y& P* d/ o6 DStorj 仅使用 ERC20 的 Token 来标识其存储节点的贡献,而平台本身没有区块链的支持。因此其客户端(Client/User)与存储节点(Storage Node/Miner)之间的交易是通过中心化的服务节点(Satellite)来完成。因此严格的说,Storj 并不是一个公链项目,是基于以太坊上一个应用。Filecoin 和 PPIO 则都拥有自己的链,并且不仅实现了价值在链上的流通,而且交易和证明也在链上完成,是真正意义上的基于区块链的存储和分发平台。2 ?. [5 x" w# C# u. z' X. Z0 S
#1 共识算法
& c- H0 ^5 i$ Y) E1 I+ n' C. ^. WFilecoin 在设计上一开始就是去中心化的,发明了一种叫做 EC 的共识算法。Storj 没有自身的共识算法,使用的是以太坊公链的算法。PPIO 在完全去中心化阶段将使用 VRF 和 BFT 结合的方式,比较类似于 Difinity 公链的机制。而 PPIO 在前期为了简化技术难度,采用比较中心化的 DPoS 共识算法。
8 l* l/ p1 N, \: E1 ]5 ~#2 存储证明算法
( A& w! n) g0 n& _1 v4 A9 m在普通的公链项目中,共识算法和证明算法是一体的,如 PoW,PoS 等;而在去中心化存储项目中,这部分难度非常大,我专门将存储证明算法单独拿出来单独分析。
0 I: W1 l3 a( Y% }
9 b% W+ P# m1 dFilecoin 支持 PoRep(复制证明)和 PoSt(时空证明)。复制证明是指实际产生一次网络复制后所取得的证明;时空证明是一个文件占据了一定的空间,保存了一定的时间所产生的证明。Filecoin 是这两个证明的算法的提出者,在 Filecoin 的白皮书里,这两个证明算法的过程占据了 70% 以上的篇幅。6 a0 _0 |3 a$ d5 d) F
2 q) m/ G& m0 w3 f$ n$ x
Storj 的白皮上透露的其采用的证明是 PoS(存储证明),从白皮书上看,不如 PoRep 和 PoSt 那么严谨。2 x% R1 E. g" ?0 Y2 p: N& Y$ H
  @8 t# p( n& `2 m
PPIO 也使用了 PoRep 和 PoSt 这两种更为严谨的算法。另外 PPIO 还自创了 PoD(下载证明), 主要用于对多点下载数据的证明,这种算法对流媒体传输比较友好。PPIO 在白皮书中还提过一种 LPoC(轻量级容量证明算法),来做存储节点的冷启动。不过后来官方已经决定取消 LPoC了,原因是因为 LPoC 并不产生有价值的服务,而是像 BurstCoin 一样,在对硬盘资源做无畏地消耗,这点不符合做 PPIO 项目的初衷。7 ]4 Z$ G8 K: `6 \

( D( p# ?( d0 m$ b
% d' y6 q6 ?4 D" @! ^  J: a& |7 D9 d- L

6 l/ ]9 Y! q$ y& @5 A- l/ j3 ~#3 区块链架构; {1 a- k2 q  n* X% b. i
PPIO 设计主链加多个合约链的架构,合约链相当于侧链。采用这样设计有两个主要原因:5 N5 I" m% A- M6 m2 U! Q

! z- R- [( B0 ~% e% T3 u: \为了让性能有更好的扩展。一条链性能不够的时候,可以有多条链来扩展,侧链本身相当于做了 Sharding 技术。* P* d( z+ e& Y  U  n
4 e* L* m. [2 T, x
为了不同地区的内容管理的合规性考虑。PPIO 的定位是公司,考虑要遵守不同国家的法律,可能需要不同国家部署独立的合约链,可以支持实现的合约细节上有些不一样。, b& c' D& q) J; v# V

( {8 ?) ]$ n3 F' u9 s6 z* r# u# z' t  ^% W5 j" @2 k3 [' x
#4 上链信息
; {/ p" C" t; P6 I' X% R传说中区块链中一旦数据写入区块(这个过程也被称为上链),就不能删除,不可篡改。事实确实如此,区块链本质就是分布式数据库,全世界千万台机器都同步和认可了的信息,是不能删改的了。所以一提到存储区块链,大家的直觉就是既然需要存储的数据内容上链了,是不是存储的内容也就不能删除、不可修改。答案是否定的。Filecoin,Storj,PPIO 都没有将实际存储的内容写入区块链。所以说,实际存储的数据是可以删除和修改的。% P/ U7 A( P; N* p" |3 S7 M2 k
那么存储在这三个公链上的信息是什么呢?
; W/ y4 r! x+ d( t/ Y' `" U; P3 w5 K" Q. @. n+ n: |7 l# |
Storj 是基于 ETH 公链实现的,上链的信息都写在 ETH 上的 Stroj 合约里面,这是著名 ERC20 合约,所以说上链的只有资产和交易。1 h% x( p* g. w1 u( `1 {

; K1 g1 B5 P  o: k' _Filecoin 除了资产和交易外,还上链了证明信息。Filecoin 的合约则全部在链下完成,不上链。
) L) t, P% u. n
* }# j8 H# z% m; z' \/ I$ Q; [! l( w
PPIO 不仅仅上链了资产、交易、证明,还上链了合约。
' x/ l1 f4 J) Y0 h2 O3 q6 I- x4 P! G- r3 O9 Z4 K
  T0 K3 ~% u9 R
传输技术. y: E' F! ^' Y) C& z! c0 R( N
#1 重叠网络0 S: E6 q0 I2 A$ r" L+ O( p
$ y! h) S$ F+ j2 g
PPIO 支持重叠网络(Overlay网络),每个存储节点(Storage Node/Miner)都会将与自己物理连接较快的存储节点作为自己的邻居,在数据传递和信息交互过程,充分发挥临近节点的优势,使得网络效率大大提高。8 u' L! p% h) }* `, T6 m" p
# Z9 x$ m6 e% Y5 ?4 g1 V4 C
Storj 目前并未设计类似支付网关的功能。3 a  j% A$ V- U2 T- l

0 s# M$ r2 n1 _1 c  q& D9 BFilecoin 中本身也没有提供类似支付网关的功能。但这一功能有可能通过第三方开发者在上层实现。
/ m4 e' P  i( [) l, d7 W
! N% p3 [/ g1 l( Z9 o5 k2 u5 {% t
6 z4 j. f) ]5 c. ~! E  h& A: s0 s) `
#2 流媒体传输的优化
. z9 g, S2 [- T+ ]1 x- f. Y
) d5 Y9 u. k8 IFilecoin 和 Storj 都是针对文件下载,没有考虑对流媒体做特别的处理。( m, m# R' N) t& M" M0 P7 r. e: n

, h* p0 m  ]% S" X9 fPPIO 实现了针对流媒体的由数据来驱动的特别下载算法,从而保证实时流媒体的流畅播放。
$ D% u6 A9 k3 F5 O3 `2 r% O  d. `+ C1 H. w. [( b( p8 Z

: ^/ V. s0 D0 O7 F# ~0 t/ ~# I#3 P4P 技术的支持
! a1 g7 F# a  h6 S5 {全称 Proactive Network Provider Participation for P2P,在加强相同服务供应商(ISP)内网络流量的同时,降低了骨干网络传输压力和运营成本,从而也提高了 P2P 文件的传输性能。与 P2P 随机挑选节点的方式不同,P4P 模式可以协调网络拓扑数据,有效选择节点,从而提高网络路由效率。
0 M( ?$ c1 o2 L( kPPIO 团队之前在做 PPTV 的时候有个丰富地和运营商打交道的经历,采用了 P4P 的技术,Filecoin 和 Storj 在设计上没有考虑 P4P。. M& O; `5 K# P, p/ Z" \, M
#4 热门内容的自适应调度( |2 d9 K" g5 M* u# J. t
PPIO 支持 P2P-CDN。在 P2P-CDN 里面,热门内容的自适应调度是非常重要的,也是提高服务质量(QoS)的重要手段。热门内容的自适应调度就是当一个文件在网络中变得受欢迎之后,系统会自动触发调度机制,让更多的存储节点存储这个文件。这样的设计既能提高用户体验,也能提高更多存储节点的收益。反之,当很受欢迎的文件失去热度之后,系统则会自适应地减少存储此文件的存储节点的数量。这样就形成一种动态的平衡。PPIO 在热门内容调度算法上下了很大的功夫。Filecoin 和 Storj 目前看还没有设计类似机制。
; Q: G! s  I( p# a7 F7 E" b/ c* f+ r6 }/ C& f( T9 D
存储技术
- O4 i9 r/ V- |+ b, Q/ s#1 纠删技术: S8 n4 z' m" l/ ^9 _5 G" T
PPIO 实现的是全副本和纠删并存的方式;Storj 是纯纠删码模式;Filecoin 也许不考虑这个问题。4 L  Q2 j+ ^% I
要理解这个问题,首先要明白纠删码对存储系统来说非常重要。通过纠删技术能够大大地降数据的不丢失率,专业的指标叫做耐用性(Durability)。纠删技术是把文件适当扩大后,分割成 n 份,只要有其中的 k 份,就能恢复出完整的文件。如果把这 n 个分片分别放在不同的机器上,即使有 n-k 台机器下线也不会影响文件恢复。$ a5 V# S' _' U+ p, p. {! C7 x. X  q
因为 PPIO 的定位是存储与分发,所以在上层对于文件的分片设计了纠删码和全副本双模式。全副本主要用于做分发,因为全副本传输是能够保证获取数据的效率,最快拿到数据。而纠删是能够更好地保证数据不丢失的。即使在矿工数量很不稳定,采用纠删码技术也可以在很少冗余的情况,做到很高的耐用性(俗称11个9)。+ u  T. d1 T7 ]/ U5 p
#2 基于 Overlay 网络存储节点优先选择
4 f* q' l" _+ Y  e/ [0 G存储节点的选择,可类比为 BitTorrent 下载中 Tracker 的功能,专门配合资源和用户。! e( i. }) ^% ~8 f! t1 \

8 m: n" k# X& JPPIO 设计了基于网络距离来优先选择存储节点的算法。这一算法是多维度的,不仅考虑了网络距离(有重叠网络中得到的),还要考虑价格、承诺时间、节点稳定性、节点信用值等历史情况。但网络距离是第一考量因素。
$ T* n/ h' Z5 `; z
$ J1 H$ c8 M" J: A
Filecoin 的定位是基础设施,存储和证明是配套的。Filecoin 的供给端和需求端完全是链下自行匹配的,有签名和证明就能获得奖励。也就是说,整个 Filecoin 设计上没有一个类似于 BitTorrent Tracker 的角色用来匹配资源和矿工之间的关系。  i: c$ E# A- M: p& b

6 O7 l: G8 w; p' N8 @0 jStorj 在这一点没有透露太多的细节。但这个问题 Storj 一定考虑过的,因为每一个 P2P 项目都要考虑节点的选择问题。6 p' y: E3 O  z+ m0 D% b( t

3 o4 J' L  V  h0 _& _/ }* }- z

9 s) O4 V6 v7 P5 I9 E( ^% O以上就是这三个项目的八大异同点,用一张图为大家总结:+ e; ]! @0 R* W, B& h& _
' m! i' P- N, f6 y  e2 m5 s* T6 I+ e
如果你有更多问题,欢迎给我们留言,或加入 PPIO 开发者社区,直接和我们的核心开发团队面对面。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

真无牙泛 初中生
  • 粉丝

    1

  • 关注

    0

  • 主题

    26