构建当前互联网堆栈缺失的协议:用于实时数据的去中心化发布/订阅网络

近期在共识会议上推出 Streamr 市场后,我们开发团队下一个战略重点是构建Streamr网络的二次迭代,我们在Transmission#7 中也宣布过这个计划。Streamr 网络也是我们近期总结 (retreat) 的关键主题之一。这篇文章将解释为什么这一层对于我们实时数据去中心化的总体目标,以及制定实施路线图(以及未来的挑战)来说如此重要。

Streamr 网络是什么?

Streamr网络是一个可扩展的实时消息传递系统,该网络能够让物联网传感器、联网汽车等应用程序和设备以及几乎所有“智能”小工具提供他们生成的数据,以及监听来自其它应用程序和设备传入的数据。

该网络采用发布/订阅模式。流(有时也称为主题)产生的消息将会传递给实时监听该流的所有订阅者。它有点像为机器服务的即时通讯工具,在 IM Lingo 中支持“群组聊天”(多对多)、“频道聊天”(一对多)以及“私人聊天”(一对一)的消息传递模式。

此种发布/订阅网络对于应用程序开发人员来说具有以下优势:

* 数据生产者只是“即发即弃”。无需设置可能危及安全性的 API、数据孤岛或开放端口。只需将新数据点发送到网络即可。这样一来,集成就变得非常容易。

* 数据消费者仅需监听即可。他们不需要知道数据源的位置、访问数据源的 IP 地址,或者如何与它们进行交互。他们也不需要打开服务器端口。消费者只需连接到网络,订阅自己需要的东西,并对传输进来的消息做出反应即可。

Streamr网络提供的应用程序示例是我们自己的编辑器获奖Streamr 市场,除此之外您也可以通过API或客户端库在自己的应用程序中使用它。(JS available、Java、Go 和Python 库正处于开发过程中,如果您想通过工作客户端库来提供帮助,请与我们联系)。

这样的协议难道不存在吗 ?

其实不是,在 TCP / IP 堆栈(互联网的基础协议套件)上没有在全球范围内提供这样的消息传递模式。目前,即时通讯、金融市场数据交付、多人游戏或由数据驱动的物联网应用等程序的开发人员都需要使用自己的基础架构或采用能提供所需消息传递和存储功能的中心化云服务。

我们相信 Streamr 的网络不仅有用,而且绝对必不可少。我们认为这是当前互联网缺失的数据协议。

如果使用自己的基础架构,即使是最简单的应用程序,开发人员也必须承担相当高的成本。这会减少竞争,降低创造能力。使用中心化云服务的后果是,世界上大部分数据最终都会被少数互联网巨头掌控,这样他们拥有的权力会让消费者的隐私不再安全

那么,在广泛使用的模式中,这种结构缺陷为何在过去的至少 20年内仍未得到解决?这是因为,现有的诸如 IP 多播之类的广播协议缺乏对互联网服务提供商和大型商业玩家的激励机制。 此外,由于技术限制,这些协议很难扩展到潜在的数百万接收者。

而这种结构性赤字会变得愈加明显,因为消费者对实时数据经济的需求即将爆发。连接到互联网的设备数量有望达到数千亿台,而每台设备都会产生数据。所有这些信息都需要进行安全传输、存储,并能够提供给他人,以创建一个由数据驱动的价值生态系统。

从这个角度来看,我们相信 Streamr 的网络不仅有用,而且绝对必不可少。我们认为这是当前互联网缺失的数据协议。

Streamr构建基础设施以支持百万辆互联的智能汽车  

Streamr 如何解决可扩展性和经济激励的问题?

Streamr 通过使用对等 (P2P) 网络架构来解决广播消息传递协议的可扩展性问题。从技术上来讲,您可能会将其视为实时数据流的 BitTorrent,而非静态文件。随着网络中节点数量的增加,网络吞吐量可以实现线性扩展。

Streamr 通过使用加密货币、加密验证和博弈论来激励人们和组织在网络中运行节点(称为代理节点),以此来解决经济激励问题。Streamr DATAcoin,或者 DATA,它是一种加密令牌,能够在 Streamr 生态系统中表示价值,它在以太坊区块链上是 ERC-20 令牌。伴随区块链用于价值结算、身份以及权限控制,而数据本身则保留在可扩展的 Streamr 网络中。

代理节点为网络提供带宽和存储,并通过网络用户交费获得DATA。从某种意义上讲,运行代理节点与挖矿相当,但是节点并不是解决CPU / GPU 限制的人为问题或浪费能源问题,而是提供有用的网络资源,通过使用 Streamr 协议共同产生可用于应用程序的消息传输服务。

P2P 结构和激励机制共同实现了去中心化。这意味着网络在没有任何中央方的情况下也可以运行,我们不会控制您的数据或从中牟取利益。

这符合 Streamr 的总体目标:确保世界上的实时数据由生产它的人掌控。

目前也存在一些去中心化发布/订阅协议,例如以太坊堆栈中的 Whisper 和 IPFS 堆栈中IPFS pubsub,但它们非常简单且具有实验性,并不适合于实现大规模的机器数据经济。

如今的 Streamr 网络是什么,路线图又是什么 ?

Streamr 网络的第一个版本已经启动,并正在运行中。您可以看到,它为 Streamr 市场、编辑器和用户创建的应用程序提供支持。目前,该网络每天处理数千万个数据点。现有系统已经提供了发布/订阅消息传递功能,以及用于连接到应用程序的 API。长远来看,这个功能接近我们想要实现的目标 - 然而,我们需要进行大规模的改进才能实现去中心。

下面,我将详细介绍我们现在所处的位置,以及我们目前设想的未来网络的主要版本。总的来说,我们遵循渐进式去中心化的原则,这样,我们就可以随时维护一个功能齐全的平台,新的版本会越来越多地放弃对网络的控制。

我们以最喜欢的爵士钢琴家命名我们的网络里程碑:Monk、Corea、Brubeck 和 Tatum。

Monk(当前版本)

当前的网络利用了开源大数据框架,如 Apache KafkaApache Cassandra。这些框架虽然是去中心化的,并且具有可扩展性,但它们不是去中心化系统的构建块,因为这些框架依赖于所有受信任的节点。必须设计一个去中心化系统来容忍不可信和具有潜在恶意的行为者。

一般来说,Monk 缺少以下三个主要组件,因此可以让网络去中心化:

1. P2P 网络:网络拓扑和消息流必须发生于没有中央服务器控制的情况下。

2. 端到端加密:数据将通过去中心化网络中不受信任的节点,这意味着所有非公共数据都需要端到端加密以保证数据隐私。

3. 激励计划:运行节点的用户需要因此而获得奖励。相反,不必要的行为必须得到抑制。

以下三个主要版本将重点实现上述三个主要功能其中之一。

Corea (WIP)

当前的 Monk 网络将会被实现 P2P 网络拓扑并扩展 Monk 中Streamr 协议的网络所替换。由于尚未建立必要的加密机制和激励机制,Corea 网络中的所有节点仍将由我们运行。但是,这一更新会为网络架构去中心化做好准备。

到目前为止,我们已经完成了研究并构建了一些原型来决定采用哪些路径和技术。我们通过使用 libp2p 来获取一些潜在有用的功能,如 DHTs 和 即用 NAT 遍历。我们决定把节点写在 JS 中,这样,我们主要的竞争者是 Go。如果 Go能够带来性能优势或能够提供更成熟的库,我们有可能会在以后进行语言切换或创建并行实现。目前,JS 加速了开发,因为许多协议和 API 代码都可以从 Monk 网络的数据API 中重新使用。

就内部而言,我们希望在 6-9 个月内可以切换到 Corea。

Brubeck

这一版本添加了端到端加密和密钥分发机制。因此,受信方(例如,我们的合作伙伴或选定的社区成员)可以在生产网络中运行节点。在这个阶段,还没有激励机制来阻止不良行为,因此节点需要被信任。端到端加密提供了数据隐私,首次允许去中心化控制网络(即使它尚未达到完全信任)。

Tatum

在这个高级阶段,任何人都可以参与网络运行,包括意图不诚实的人。该版本增加了节点激励机制(表现良好赚取DATA,表现不良丢失 DATA),以实现网络的进一步去中心化,并能够在需要的时候继续运行,且完全独立于其创建者。

从 Brubeck 到 Tatum 的更新最为困难,并且最为耗时。在我们开始研究 Tatum 时,由于空间上的一些障碍已经被其它基础设施所解决,因此我们的研究将更加方便。以下是几个令人兴奋的发展示例,包括用于侧链缩放的 Plasma ,用于BFT 共识的Tendermint,以及几种区块链间协议,它们慢慢朝着向生产准备的方向发展。

从左到右:上个月在 Streamr retreat (总结) 中的Juha、Aapeli、Jarmo、Kare 和 Henri。

我们一直在寻找可以应用的技术,以求更好地实现我们的目标。作为一般经验法则,我们的目标是提供支持、保持合作,并在现有最佳技术和生态系统(如以太坊)的基础上进行构建。

因此,所有这些都是令人兴奋的东西,它们必定会吸引那些热爱软件开发和架构、热衷于去中心化,或者喜欢大数据和物联网的人。接下来的三个季度将非常有趣,敬请期待更多更新。如果您此时还没有这样做,为什么不立即开始使用当前的网络、市场和编辑器应用程序?

关注 Streamr 的 Twittersub-Reddit,或在 Telegram 上联系我们。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,891评论 2 89
  • 家长与孩子之间的良好关系,对促进孩子的学习有至关重要的作用。 我有意识地了解过初中、高中的孩子,他们认为初三、高三...
    一夜春风cf阅读 363评论 4 11
  • 我一个在云南生活的同学截了一幅图给我,昆明持续低温,在一堆三十多度的城市里显得十分扎眼。她说雨下得她都快发霉了。 ...
    崴呀原来是小白阅读 268评论 0 0
  • 我叔叔是一个很精明的生意人,今年过年回家我跟他说要跟他学习,他跟我说起一次寻找店面的经历。他在北京为了寻找合适的店...
    宁洁阅读 100评论 0 1