[GH-ISSUE #3323] [Feature Request] 优化建议 #2664

Closed
opened 2026-05-05 13:43:10 -06:00 by gitea-mirror · 4 comments
Owner

Originally created by @hktalent on GitHub (Feb 21, 2023).
Original GitHub issue: https://github.com/fatedier/frp/issues/3323

Describe the feature request

  • p2p协议是去中心的,那就可以不用去配置server ip?
    能否优化直接通过token,对接p2p网络去查找相同token的server ip和端口信息呢?
    也就是token除你现有的功能外,还作为p2p发现彼此连接的关键key

  • 建议默认启用、使用quic,因为这性能最佳
    tls_cert_file = server.crt
    tls_key_file = server.key
    tls_trusted_ca_file = ca.crt
    然后客户端通过匹配token成功后,首次去获取

Describe alternatives you've considered

No response

Affected area

  • Docs
  • Installation
  • Performance and Scalability
  • Security
  • User Experience
  • Test and Release
  • Developer Infrastructure
  • Client Plugin
  • Server Plugin
  • Extensions
  • Others
Originally created by @hktalent on GitHub (Feb 21, 2023). Original GitHub issue: https://github.com/fatedier/frp/issues/3323 ### Describe the feature request * p2p协议是去中心的,那就可以不用去配置server ip? 能否优化直接通过token,对接p2p网络去查找相同token的server ip和端口信息呢? 也就是token除你现有的功能外,还作为p2p发现彼此连接的关键key * 建议默认启用、使用quic,因为这性能最佳 tls_cert_file = server.crt tls_key_file = server.key tls_trusted_ca_file = ca.crt 然后客户端通过匹配token成功后,首次去获取 ### Describe alternatives you've considered _No response_ ### Affected area - [ ] Docs - [ ] Installation - [X] Performance and Scalability - [ ] Security - [ ] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [ ] Server Plugin - [ ] Extensions - [X] Others
gitea-mirror 2026-05-05 13:43:10 -06:00
Author
Owner

@Becods commented on GitHub (Feb 22, 2023):

1.

脱离了的发现服务器p2p客户端就像永远都在布朗运动的质点,发现对方的概率非常小几乎为0

查看不管是Bittorrent还是区块链的实现,你都会发现不管是BT还是区块链都需要一个发现服务器以获取附近的邻居节点

BitTorrent tracker是帮助BitTorrent协议在节点与节点之间做连接的服务器。 BitTorrent客户端下载一开始就要连接到Tracker,从Tracker获得其他客户端IP地址后,才能连接到其他客户端下载。

一个刚起的 geth 节点,没有任何认识的节点,它需要一个“中介机构”(即 bootnode),bootnode 保存了所有连接的节点信息,当有新节点加入时,可以向其推荐 P2P 网络里的其他成员。

至于完全脱离中心服务器的DHT网络,则取决于客户的用户基数,理论上来说基数越大发现速度越快,但是这对于frp来说是不太现实的

从我个人的角度而言,这个阶段不太希望引入各种琐碎的 feature,很容易让项目成为一个大杂烩,既提高开发者的维护成本,也增加了用户的使用成本。最终某些功能可能只有几个人使用,甚至没有人用,但是持续的维护却需要耗费很多精力。

所以,目前可能更多的是希望做减法,专注核心能力,做一些重构。之后能通过插件的方式开放更多的扩展能力出来,可以由有需求的人来完善。

2.

尝试通过 服务端插件 来实现这个扩展能力,理由同上

<!-- gh-comment-id:1439743603 --> @Becods commented on GitHub (Feb 22, 2023): ### 1. 脱离了的`发现服务器`的`p2p客户端`就像永远都在布朗运动的质点,发现对方的概率非常小几乎为0 查看不管是`Bittorrent`还是`区块链`的实现,你都会发现不管是BT还是区块链都需要一个`发现服务器`以获取附近的邻居节点 > BitTorrent tracker是帮助BitTorrent协议在节点与节点之间做连接的服务器。 BitTorrent客户端下载一开始就要连接到Tracker,从Tracker获得其他客户端IP地址后,才能连接到其他客户端下载。 > 一个刚起的 geth 节点,没有任何认识的节点,它需要一个“中介机构”(即 bootnode),bootnode 保存了所有连接的节点信息,当有新节点加入时,可以向其推荐 P2P 网络里的其他成员。 至于完全脱离中心服务器的DHT网络,则取决于客户的用户基数,理论上来说基数越大发现速度越快,但是这对于frp来说是不太现实的 >从我个人的角度而言,这个阶段不太希望引入各种琐碎的 feature,很容易让项目成为一个大杂烩,既提高开发者的维护成本,也增加了用户的使用成本。最终某些功能可能只有几个人使用,甚至没有人用,但是持续的维护却需要耗费很多精力。 >所以,目前可能更多的是希望做减法,专注核心能力,做一些重构。之后能通过插件的方式开放更多的扩展能力出来,可以由有需求的人来完善。 ### 2. 尝试通过 [服务端插件](https://gofrp.org/docs/features/common/server-plugin/) 来实现这个扩展能力,理由同上
Author
Owner

@github-actions[bot] commented on GitHub (Mar 25, 2023):

Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.

<!-- gh-comment-id:1483635487 --> @github-actions[bot] commented on GitHub (Mar 25, 2023): Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.
Author
Owner

@hktalent commented on GitHub (Mar 31, 2023):

@fatedier @Becods 我可以提供中间服务器啊
当然我们还可以加入其他一些协议,例如matrix

Matrix协议是一种开放式的通信协议,用于实现分布式、去中心化的聊天和通信应用,类似于传统的聊天应用程序,如IRC和Slack等。

Matrix协议的一个重要特点是,它不依赖任何单一的服务器或公司。相反,它采用了分布式架构,将聊天数据分布在多个服务器上,这些服务器由不同的实体或组织控制。这意味着Matrix平台在技术上是去中心化的,并具有更高的安全性和稳定性。另外,Matrix协议可通过使用加密技术来确保数据的隐私和安全性。

Matrix协议广泛用于共同协作、即时通信和在线游戏,同时还支持音视频通话和文件共享功能。它与其他常见的聊天协议(如XMPP,IRC等)兼容,这使得各种聊天应用之间可以互联互通。

Matrix协议也有一些开源的客户端和服务器软件,例如Riot.im和Synapse,您可以选择这些软件来构建和托管您自己的Matrix聊天应用。由于Matrix协议的开放性和去中心化特点,它正在成为一个越来越受欢迎的选项,特别是对于那些寻求更加隐私和安全性的人们来说。
<!-- gh-comment-id:1491877428 --> @hktalent commented on GitHub (Mar 31, 2023): @fatedier @Becods 我可以提供中间服务器啊 当然我们还可以加入其他一些协议,例如matrix ``` Matrix协议是一种开放式的通信协议,用于实现分布式、去中心化的聊天和通信应用,类似于传统的聊天应用程序,如IRC和Slack等。 Matrix协议的一个重要特点是,它不依赖任何单一的服务器或公司。相反,它采用了分布式架构,将聊天数据分布在多个服务器上,这些服务器由不同的实体或组织控制。这意味着Matrix平台在技术上是去中心化的,并具有更高的安全性和稳定性。另外,Matrix协议可通过使用加密技术来确保数据的隐私和安全性。 Matrix协议广泛用于共同协作、即时通信和在线游戏,同时还支持音视频通话和文件共享功能。它与其他常见的聊天协议(如XMPP,IRC等)兼容,这使得各种聊天应用之间可以互联互通。 Matrix协议也有一些开源的客户端和服务器软件,例如Riot.im和Synapse,您可以选择这些软件来构建和托管您自己的Matrix聊天应用。由于Matrix协议的开放性和去中心化特点,它正在成为一个越来越受欢迎的选项,特别是对于那些寻求更加隐私和安全性的人们来说。 ```
Author
Owner

@github-actions[bot] commented on GitHub (May 2, 2023):

Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.

<!-- gh-comment-id:1530683222 --> @github-actions[bot] commented on GitHub (May 2, 2023): Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#2664
No description provided.