发布你的服务到 Meepo 网络!

2021-07-07 00:11:31 +08:00
 e3rp4y
# on linux
$ sudo snap install meepo

# on macOS
$ brew install PeerXu/tap/meepo
$ meepo serve

$ curl -x socks5h://127.0.0.1:12341 http://61x3lztpltjn60h2m99861eyz4nixaeraxprnkc9p767a3lsi65.mpo/
Welcome to Meepo Network!

想了解更多的用法?

欢迎来Meepo 主页了解更多!

2055 次点击
所在节点    分享创造
17 条回复
learningman
2021-07-07 00:59:50 +08:00
想法挺好,但是这个 star 数我感觉这辈子都连不上网络了
e3rp4y
2021-07-07 09:12:45 +08:00
@learningman 哈哈哈, 没事的, 有需要的人自然会选择这种方式的.
mightofcode
2021-07-07 12:05:52 +08:00
这是做什么用的呢?
e3rp4y
2021-07-07 12:38:08 +08:00
@mightofcode 去中心化, 简易地发布服务!
例如在家开了个 minecraft 私服, 这时候就可以用 Meepo 来分享给朋友一起游玩.
例如在家运行了一个 nas 服务, 那么就可以用 Meepo 在其他地方访问.
等等, 等等...
oneisall8955
2021-07-09 16:04:42 +08:00
有点意思!支持,如果出 gui 客户端会好很多
e3rp4y
2021-07-09 16:48:02 +08:00
@oneisall8955 哈哈哈, 只能敬请期待了!
xarthur
2021-07-10 08:52:23 +08:00
有点意思,nat 穿透是自己实现的吗?自组网用的是 Pubsub ?
e3rp4y
2021-07-11 02:52:56 +08:00
@xarthur NAT 穿透技术采用 pion[1], 使用 Golang 实现的 WebRTC 库.
自组网现在是一个全广播方式实现, 迟点会改为某种 DHT 算法[2][3]的变体实现.

[1] https://github.com/pion/webrtc
[2] https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf
[3] http://www.bittorrent.org/beps/bep_0005.html
xarthur
2021-07-11 12:21:48 +08:00
@e3rp4y 有点意思。
不过这东西不就是 IPFS 的嘛😂
e3rp4y
2021-07-12 00:23:01 +08:00
@xarthur IPFS 专注 FS.
如果硬要说跟 IPFS 旗下的 libp2p 有点接近, 但是又不是完全接近.
因为 libp2p 只提供了一个接口规范, 而很多实现其实还是依赖具体的组件实现的.
Meepo 目标是实现开箱即用的软件, 目标是发布服务.
Aether
2021-07-13 16:53:55 +08:00
@e3rp4y 这个和 IPFS 的区别,所谓的“发布服务”是指?就是文本的发布,是这个意思吗?
Aether
2021-07-13 17:04:21 +08:00
@e3rp4y

让我想想,这感觉更像是搭建了一个 vpn 的私网?把自己本机上的服务自动暴露给私网,是这样吗?(比如,我看到 serve 的时候并不需要指定服务。)其次,在 teleport 获取服务环境,感觉很复杂。

所以,发布的时候直接把服务和某个 ID 绑定是否会更好? Meepo ID 直接等于服务 URI 。在整体上这似乎更符合一直以来的设计原则。发起者更精确把控自己暴露的服务,并且不介意稍微复杂的配置(总是假设提供服务的人具备更完备的知识);使用者更傻瓜,只要 meepo ID,就可以直接连上服务,使用如同本地请求。

不知道这些理解对不对,见笑。
e3rp4y
2021-07-13 20:25:58 +08:00
@Aether
第一个问题: "这个和 IPFS 的区别,所谓的“发布服务”是指?就是文本的发布,是这个意思吗?"
IPFS 主要的目的是分享文件, 所以 IPFS 是一个 FileSystem, 当然现在越来越强大了.

第二个描述, 是的, 你的理解是正确的.
在开始实现 Meepo 的时候, teleport 命令的调用者, 就是发布服务的人, 为了实现内网穿透访问自己的服务.
而随着进一步开发, 感受到了 MeepoID 带来的便捷性.
所以现在, 只需要把 Meepo 服务启动起来.
那么就可以直接访问对应的服务了.

例如我自己就部署了一个 HTTP 服务.
在 Linux 或 macOS 的环境下, 把 Meepo 运行起来.
在终端输入:

curl -x socks5h://127.0.0.1:12341 http://61x3lztpltjn60h2m99861eyz4nixaeraxprnkc9p767a3lsi65.mpo/

就可以获取到对应的内容.
e3rp4y
2021-07-13 23:36:18 +08:00
@Aether
"让我想想,这感觉更像是搭建了一个 vpn 的私网?把自己本机上的服务自动暴露给私网,是这样吗?(比如,我看到 serve 的时候并不需要指定服务。)其次,在 teleport 获取服务环境,感觉很复杂。"
e3rp4y
2021-07-13 23:45:29 +08:00
不小心直接发出去了.

"让我想想,这感觉更像是搭建了一个 vpn 的私网?把自己本机上的服务自动暴露给私网,是这样吗?(比如,我看到 serve 的时候并不需要指定服务。)其次,在 teleport 获取服务环境,感觉很复杂。"

搭建了一个 vpn 的私网这个看法我认为还是有点点偏差的.

其实知道 MeepoID 和(dstAddr, dstPort), 就可以访问具体的服务.

就像知道"/ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme", 这个路径就可以访问 IPFS 的文件一样,
都是在现有的协议上扩展更高层的协议.

IPFS 比较激进, 选择了一种叫做 multiaddr 的地址定义, 当然这也是有好处的, 可以描述更多的内容.

而 Meepo 选择了相对温和一点的方式, 以现有的 IP 协议为基础, 再在上面扩展功能.

例如 Meepo 支持 SOCKS5 代理, 就可以通过上面展示的例子, 直接把 MeepoID 转换成域名来访问发布的服务.
no1xsyzy
2021-07-14 10:48:51 +08:00
其实和 .onion 和 .i2p 是一类吧
相比这两个有什么优势呢?(不考虑上述两个承载的工具有公网出口)
e3rp4y
2021-07-14 15:44:12 +08:00
@no1xsyzy
tor 嘛, 为了隐匿性, 性能就无法保障.
但是 .mpo 端对端(p2p)的, 对隐匿性并没有很强的要求, 只要能够建立连接, 那么速度就取决于两端.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/787983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX