ipfs opera,ipfs post
chanong
|什么是发布订阅?
发布-订阅模式首先由Apple 在Mac OS 中引入。
消息发送者(发布者)不会直接向接收者(订阅者)发送消息。相反,消息被分组为类别,并且发送者不知道或不需要知道接收者的存在。接收者只需订阅一个或多个消息类即可接收消息,并且不知道发布者的存在。另外,你不需要知道。 (https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)
我的一个写代码的朋友很熟悉观察者模式。这类似于软件设计模式中的观察者模式。但这并不完全相同。 Pubsub 比Observer 耦合更松散。这里我就不详细比较两者的区别了。如果您有兴趣,请自行google一下。
pubsub 功能目前是ipfs 的实验性功能。如果要启用pubsub 功能,则必须在启动ipfs 守护进程时指定参数: --enable-pubsub-experiment。
下面通过一个具体的例子来说明如何使用ipfs pubsub?
1 搭建两个IPFS节点A和B
如果您还不知道如何构建节点,请参阅之前的文章《如何在IPFS网络里面上传一张图片》。
A(编辑者本地节点):
IPFS 节点ID: QmTrRNgt6M9syRq8ZqM4o92Fgh6avK8v862n2QZLyDPywY
IPFS地址:192.168.162.129(保护您的隐私,不使用公共IP)
B(亚马逊AWS):
IPFS地址:13.231.198.154
IPFS节点地址;/ip4/13.231.198.154/tcp/4001/ipfs/QmXL2h6Y51BHZMaypzjCnNc1MiVk2H5EZJWgAuRkLanaK
2 启动节点B
ipfs 守护进程--enable-pubsub-experiment
(注意这里需要使用参数--enable-pubsub-experiment)
3 作为简单演示,直接连接节点A和B。
3.1 删除节点A上的所有引导地址
ipfs bootstrap rm 全部
3.2 将Node B添加到Node A作为bootstrap节点
ipfs引导添加/ip4/13.231.198.154/tcp/4001/ipfs/QmXL2h6Y51BHZMaypzjCnNc1MiVk2H5EZXXSWgAuRkLanaK
4 启动节点A
5.使用pubsub函数
5.1 在节点A上打开一个新的命令行并运行它。
ipfs pubsub sub 飞未来
该语句表示节点A已经订阅了消息主题flytofuture。所有发送到该消息主题的消息都会被节点A 接收。
5.2 向Node B的消息主题flytofuture发送消息。
ipfs pubsub pub Flytofuture “您好,这是飞向未来的IPFS 指南!”
此时,您应该在节点A 的命令行上看到消息输出。 “IPFS指南你好,飞向未来!”
跨不同网络、不同区域的两个IPFS节点通过pubsub功能进行通信。
事实上,pubsub功能不仅限于两个直接连接的节点,还可以通过中间节点进行传递。
示例:有A、B、C 三个节点。
A 链接到B
B 连接到C
A 和C 没有直接连接。
A 仍然可以订阅接收来自C 的消息。这在一些复杂的网络环境中非常有用,比如一些不适合NAT的网络环境。
使用pubsub 相关命令。
ipfs pubsub ls -- 列出该节点订阅的所有主题。 ipfs pubsubpeers -- 列出连接到该节点且启用了pubsub 功能的节点。 ipfs pubsub pub -- 发布数据到相应的主题。 ipfs pubsub sub -- 订阅主题。 pubsub 函数有很多用途,开发者可以发挥自己的想象力,基于此类函数构建自己的应用程序。
目前,IPFS 有两个基于pubsub 功能构建的基准应用程序。
Orbit-db: 分布式数据库Orbit: 点对点聊天工具








