findings

command module
v0.0.0-...-53452d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2025 License: AGPL-3.0 Imports: 0 Imported by: 0

README

节点发现服务(Findings)

一个P2P网络,提供各种P2P应用的同类(或异类)节点的发现服务。

作为一个持续运行的公共P2P服务网络,它支持P2P所必须的基础服务:节点的NAT层级探测UDP打洞协助

这个公共服务由区块链应用的币金奖励提供经济驱动力。

这解决了P2P应用初始连接节点信息中心化的问题,可以成为一个P2P世界的基础设施。

功能

  1. 节点间自我组网,维持动态的连接,形成一个P2P网络。
  2. 接受应用节点的登记,包括任意节点(含NAT内网)的UDP连接信息,以及公网节点的TCP连接信息。
  3. 提供任意节点对自身NAT层级,以及NAT生命周期的探测服务。
  4. 提供应用节点的UDP打洞协助,以及对公网TCP服务节点的信息请求。

用法

运行一台本地Findings服务器,该服务器向Findings网络寻找节点创建连接。初始连接节点的信息可能内置于App配置中,如果失效则向Findings网络搜寻(暴力发现)。

应用客户端启动后,向该本地服务器请求其它Findings服务节点,然后申请NAT探测、获取应用TCP服务器、或UDP打洞协助。完成应用自身类型节点的连接和组网。

配置
{
    user_id: "hello" ,      // 身份ID(非群组成员时任意)
    log_root: "",           // 日志根目录,默认采用系统缓存目录
    server_uport: 7788,     // 服务端口(UDP)
    server_tport: 443 ,     // 服务端口(TCP,混入模式)
    remote_uport: 7788,     // 远端端口(UDP),用于暴力发现
    remote_tport: 443 ,     // 远端端口(TCP),用于暴力发现
    shortlist: 100,         // 候选池大小(节点数)
    punch_xpool: 500,       // 应用池大小(每种应用可同时连接的节点数)
    share_xpool: 1000,      // TCP服务器分享池大小
    peers_help: 10,         // 上线协助发送条目数
    peers_punch: 5,         // 打洞协助的最大节点数(一个请求)
    peers_range: 200,       // 节点寻找的范围(基于起点的半径)
    stun_on: true,          // 是否开启NAT探测服务(类型&存活期)
    nat_type: 7080,         // 本地 NAT 类型探测监听端口
    nat_living: 7081,       // 本地 NAT 存活期探测监听端口
    client_only: false,     // 仅以客户端身份运行(私有部署,无服务)
}

注: 如果是 FullC 类型节点提供服务,服务端口由 NAT 映射决定。

测试

(待补充)

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
selfsign
Package selfsign is a test helper that generates self signed certificate.
Package selfsign is a test helper that generates self signed certificate.
utilx
util-X 工具包 收纳一些基础性的加密相关工具函数。
util-X 工具包 收纳一些基础性的加密相关工具函数。
Package cfg 全局配置集
Package cfg 全局配置集

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL