美文网首页
Storj简介

Storj简介

作者: 平凡啊菜 | 来源:发表于2018-10-07 23:18 被阅读82次

    Storj

    image

    状态:live

    Storj旨在构建一个抗审查、抗监控或不会停机的云存储平台,是第一个去中心化、端到端的加密云存储平台之一。

    Storj由一系列相互连接的部件共同组成了一个统一的系统。每个用户与这个系统的各个部分进行交互体验,导致了他们对 Storj到底是什么会有各自不同的认识:对于一个家庭用户来说,在共享存储空间的时候,并不需要拥有任何网桥或协议知识;而对于开发者来说,在使用Storj API时,也不需要知道家庭用户的任何私人信息。说了这么多,Storj到底是个什么东西?实际上,它是一个协议,是一套软件,是那些设计、构建和使用它的人。

    Storj协议

    Storj的核心技术是一个可执行的、点对点存储合约,即两个人(或计算机)在不认识对方的情况下,同意使用定量的存储来换取金钱。我们称计算机销售空间为"农场主",计算机购买空间为"租户"。农场主和租户进行会面、就某个协议进行谈判,最后,租户将数据上传到农场主处存储。

    合约&审核

    合约有一个固定的有效期,在有效期内,租户会定期检查农场主是否还存储着数据。而农场主会回应一个加密证明,告诉租户他们还存储着数据。最后,租户向农场主支付他收到并核实的每一个加密证明。这一“质疑—证明—付款”的过程称为"审计",即租户审查农场主的存储。待合约有效期到期,农场主和租户就可以重新就协议进行谈判,或者结束这一合约。

    虽然核心技术支持任何支付手段,但这其中也有几种较为理想的支付方式。ACH 或 SEPA等传统支付系统并不适合在每次审计时支付,因为这些支付手段速度很慢、很难验证、费用昂贵。Storj 协议的理想支付方式是加密货币的微支付通道,这种微支付允许非常小的支付,可以立即进行审查,并且费用很低,这样一来,支付和审计可以密切的进行配合。

    Storj强制执行遵循一个很简单的模式: 如果农场主没有进行审计,即离线状态,或者不能证明仍然存储着数据,那么租户就没有必要付钱。毕竟,租户没有享受付费服务。同样的,如果租户离线、或者没有按时付款,农场主就可以删除数据,再与别人签订新的合约。只要双方都遵循合约条款,就会享受到各自应有的权益。

    将付款直接与审计配对,可以最大限度地减少了与陌生人打交道的风险。如果文件在合约期内丢失,租户只需要支付实际服务的费用,审计就保证了这一点。这时候,租户就需要重新找一个新的农场主,但是并不需要支付大量的费用。如果合约期内租户消失或停止向农场主付款,农场主已经收到了以前所有服务的费用,在这个时候,农场主仅仅是少了了一笔最新的审计费用和找新租户购买这个存储空间的时间而已。

    Storj网络

    为了使租户和农场主相互见面,合约和谈判系统就构建在一个分布式哈希表(DHT)上。DHT 本质上是自发组织一堆节点到一个有用的网络上的一种方式。在这里,我们使用的是 Kademlia 改进算法。

    与其让某个中央服务器对每个节点进行注册,协调所有的合约,还不如让农场主和租户将他们的合约分发给广大节点组。如果对这合约感兴趣,节点就很容联系到提供合约的人。通过这种方式,农场主和租户可以找到大量潜在的合作伙伴,还能够在这个无许可市场上购买或出售存储空间。

    为了寻找合作伙伴,节点可以签署一个不完整的合约,将其发布到网络上。网络上的其他节点也可以订阅某些他们感兴趣的合约类型,并对这些发布的报价作出回应,这个模型就是“发布—订阅”。通过这种方式,节点可以很容易找到其感兴趣的合约,并将合约转发给他们认为可能感兴趣的其他节点。

    最后,合约和网络就形成了我们所说的 Storj 协议。它描述了网络上节点的表现,即:节点之间如何进行通信、如何协商和执行合约以及在分布式系统上购买和销售存储空间所需的一切。任何人都可以用任何他们喜欢的方式来实现 Storj 协议。

    Storj工具集

    协议包含了安全制作存储所需的一切工具,但是也缺少了很多东西。为了对租户有用,系统需要可用性、带宽以及任何其他服务级协议承诺。而农场主需要管理功能,以避免使用过多的资源和自动化功能部署到多个主机上。我们并不是要将所有这些特性都放在核心协议中,而是选择在一个额外的软件层中解决这一问题。为了让这个网络变得有用和易于交互,Storj 公司发布了两个工具:Storj Share 和 Bridge。

    StorjShare

    StorjShare 是农场客户端,允许用户在任何机器上轻松的构建和运行一个农场。Storjshare 为用户提供了命令行界面(CLI) ,还可以实现自动化。不仅如此,它还允许用户设置参数,如共享的存储空间、存储位置和支付地址。另外,它还可以处理合约谈判、审计响应和所有其他网络通信。

    Storj还发布了一个 StorjShare 图形用户界面(GUI) ,便于非技术用户使用。任何人都可以下载 StorjShare GUI,在里边填写一些字段,加入网络。StorjShare GUI是命令行界面的一个包装,在初始设置之后,用户很少需要与 StorjShare GUI 交互。他们要做的就是设置、最小化,然后让它在后台运行。

    如果用户参与到数据收集中,StorjShare 也将收集系统勘测数据。这些数据可能包括硬盘容量、使用状况以及网络连接质量等信息。StorjShare将勘测数据送到Storj,Storj 开发者就可以用这些数据对网络和软件进行改进。在不久的将来,使用StorjShare ,人们甚至可以选择特殊的服务和项目。

    Bridge

    为了帮助租户有效的使用网络,Storj 还创建了 Bridge。将 Bridge 部署到生产服务器上,来处理合约谈判、审计、支付、可用性及其他一些需求。通过使用应用程序编程接口(API)和客户端扩展和存储资源,Bridge 公开了这些服务。而客户端可以集成到其他应用程序中,这样一来,无需成为网络的一部分,任何应用程序都可以使用 Bridge 服务器,存储 Storj 网络上的数据。

    就像它的名字那样,Bridge 就是一座通向去中心化 Storj 网络的中心桥梁。就像与任何其他对象存储交互一样,它允许传统应用程序与 Storj 网络进行交互。它提炼了所有 p2p 通信和存储协议谈判的复杂性,以推动和拉动请求。然而,与大多数对象存储不同的是,Bridge 并不会直接存在对象里,而是引用对象。它将指针存储到分布式网络上对象的位置,并审计这些对象所需的信息。理想情况下,数据并不会通过Bridge进行传输,而是直接传输给网络上的农场主。

    Bridge客户端使客户更加高效的使用网络。文件在进入网络时进行加密,保护了租户的隐私和安全。为了确保可用性,它会破坏文件,使用擦除编码,并将碎片分散到多个农场主头上。然后,客户端与 Bridge 进行通信,管理网络上每个分片位置,并帮助用户在本地管理他们的加密密钥。Bridge 客户端的初始实现是一个 Node.js 包,后续,它致力于使用其他多种语言实现。

    Storj API

    Storj的核心服务是一个对象存储,类似于 Amazon S3。这个对象存储由一组公共Bridge节点管理。基础设施用来洽谈合约、管理交易及审计工作等等。用户并不需要知道自己使用的是分布式网络,就可以通过Bridge客户端与Bridge交互。这个 API 是为可用性设计的,因此,所有复杂的事情都可以在幕后处理,以提供一个平滑、可扩展的开发体验。

    Bridge根据与农场主的历史交流做出决策。Storj 使用它的性能数据、自我报告勘测数据,以便在网络中智能地分发数据。另外,Storj 也优化了正常运行时间和快速检索。

    Bridge客户端和Storj 应用也有账户管理功能。另外,图形用户界面也有利于用户体验。Storj 认为,大部分开发者都忽视了用户体验(UX),在设计产品时,他们就考虑到了简单性和可用性。Storj 旨在为用户提供一个单一优雅的用户体验,而不是提供普通的云计算和存储服务。

    Storj使用 Storj API 想为这些开发者创建一个理想的工具:他们更在乎代码质量和快速迭代,为小型团队、快速扩展的产品和单个开发人员提供工具和支持。Storj希望构建一个对象存储平台,以便开发者可以集中精力开发喜欢的项目。

    赞赏是最真诚的认可

    相关文章

      网友评论

          本文标题:Storj简介

          本文链接:https://www.haomeiwen.com/subject/yknraftx.html