V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
e3rp4y
V2EX  ›  分享创造

发布你的服务到 Meepo 网络!

  •  
  •   e3rp4y ·
    PeerXu · 2021-07-07 00:11:31 +08:00 · 2056 次点击
    这是一个创建于 1268 天前的主题,其中的信息可能已经有所发展或是发生改变。
    # 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 主页了解更多!

    17 条回复    2021-07-14 15:44:12 +08:00
    learningman
        1
    learningman  
       2021-07-07 00:59:50 +08:00 via Android
    想法挺好,但是这个 star 数我感觉这辈子都连不上网络了
    e3rp4y
        2
    e3rp4y  
    OP
       2021-07-07 09:12:45 +08:00
    @learningman 哈哈哈, 没事的, 有需要的人自然会选择这种方式的.
    mightofcode
        3
    mightofcode  
       2021-07-07 12:05:52 +08:00
    这是做什么用的呢?
    e3rp4y
        4
    e3rp4y  
    OP
       2021-07-07 12:38:08 +08:00
    @mightofcode 去中心化, 简易地发布服务!
    例如在家开了个 minecraft 私服, 这时候就可以用 Meepo 来分享给朋友一起游玩.
    例如在家运行了一个 nas 服务, 那么就可以用 Meepo 在其他地方访问.
    等等, 等等...
    oneisall8955
        5
    oneisall8955  
       2021-07-09 16:04:42 +08:00
    有点意思!支持,如果出 gui 客户端会好很多
    e3rp4y
        6
    e3rp4y  
    OP
       2021-07-09 16:48:02 +08:00
    @oneisall8955 哈哈哈, 只能敬请期待了!
    xarthur
        7
    xarthur  
       2021-07-10 08:52:23 +08:00 via iPhone
    有点意思,nat 穿透是自己实现的吗?自组网用的是 Pubsub ?
    e3rp4y
        8
    e3rp4y  
    OP
       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
        9
    xarthur  
       2021-07-11 12:21:48 +08:00 via iPhone
    @e3rp4y 有点意思。
    不过这东西不就是 IPFS 的嘛😂
    e3rp4y
        10
    e3rp4y  
    OP
       2021-07-12 00:23:01 +08:00
    @xarthur IPFS 专注 FS.
    如果硬要说跟 IPFS 旗下的 libp2p 有点接近, 但是又不是完全接近.
    因为 libp2p 只提供了一个接口规范, 而很多实现其实还是依赖具体的组件实现的.
    Meepo 目标是实现开箱即用的软件, 目标是发布服务.
    Aether
        11
    Aether  
       2021-07-13 16:53:55 +08:00
    @e3rp4y 这个和 IPFS 的区别,所谓的“发布服务”是指?就是文本的发布,是这个意思吗?
    Aether
        12
    Aether  
       2021-07-13 17:04:21 +08:00
    @e3rp4y

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

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

    不知道这些理解对不对,见笑。
    e3rp4y
        13
    e3rp4y  
    OP
       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
        14
    e3rp4y  
    OP
       2021-07-13 23:36:18 +08:00
    @Aether
    "让我想想,这感觉更像是搭建了一个 vpn 的私网?把自己本机上的服务自动暴露给私网,是这样吗?(比如,我看到 serve 的时候并不需要指定服务。)其次,在 teleport 获取服务环境,感觉很复杂。"
    e3rp4y
        15
    e3rp4y  
    OP
       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
        16
    no1xsyzy  
       2021-07-14 10:48:51 +08:00
    其实和 .onion 和 .i2p 是一类吧
    相比这两个有什么优势呢?(不考虑上述两个承载的工具有公网出口)
    e3rp4y
        17
    e3rp4y  
    OP
       2021-07-14 15:44:12 +08:00
    @no1xsyzy
    tor 嘛, 为了隐匿性, 性能就无法保障.
    但是 .mpo 端对端(p2p)的, 对隐匿性并没有很强的要求, 只要能够建立连接, 那么速度就取决于两端.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5497 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:16 · PVG 15:16 · LAX 23:16 · JFK 02:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.