2 个版本
0.1.1 | 2024年5月7日 |
---|---|
0.1.0 | 2024年3月29日 |
#4 in #sv2
660KB
13K SLoC
mining-proxy
运行
proxy-config.toml 文件
当代理启动时,它将在当前工作目录(Linux)中寻找一个 proxy-config.config
文件,如果该文件不存在,代理将崩溃。我们可以使用 -c
选项指定不同的配置文件路径。
配置文件必须是一个有效的 toml 文件,包含以下值
- upstreams: 上游列表(可能是矿池)。上游由以下组成
- channel_kind: 可以是
Group
,Extended
,ExtendedWithDeclarator
。* Group: 代理不与上游打开扩展通道,而是仅将请求从下游代理到上游,代理作为非 HOM 的通道被分组。* Extended: 代理与上游打开扩展通道。当下游请求打开标准通道时,它只是使用与上游的打开扩展通道来为自己打开标准通道。* ExtendedWithDeclarator: 类似于Extended
,但不依赖于池创建新作业。它只是连接到一个 TP 并与池通信,表示它想要工作的作业。 - adress: 上游的 IP 地址
- port: 上游的端口
- pub_key: 上游将使用它来签署上游证书的公钥,这是用于噪声握手的必需项。
- jd_values: 可选值,仅在
channel_kind
是ExtendedWithDeclarator
时需要,由以下组成- address: 我们希望与该上游一起使用的 JD 的 IP 地址
- port: 我们希望与该上游一起使用的 JD 的端口
- pub_key: 我们希望与该上游一起使用的 JD 的公钥
- tp_address: 只有当至少有一个
upstream
在upstreams
中具有类型ExtendedWithDeclarator
时才需要此可选值。地址是否为 TP 的形式[ip:port]
。 - listen_address:
mining-proxy
接受下游连接的地址。 - listen_mining_port:
mining-proxy
接受下游连接的端口。 - max_supported_version:
mining-proxy
不会连接到使用 Sv2 版本高于此处指定的上游(默认为 2)。 - min_supported_version:
mining-proxy
不会连接到使用 Sv2 版本低于此处指定的上游(默认为 2)。 - downstream_share_per_minute: 每分钟下游应产生的份额数。
mining-proxy
将使用此值和预期的下游哈希率(通过penStandardMiningChannel
通信)来计算正确的下游目标。
测试矿工 <-> 代理 <-> 池栈
终端 1
% cd examples/sv2-proxy
% cargo run --bin pool
终端 2:运行挖掘代理
% # For help run `cargo run -- --help`
% cd roles/v2/mining-proxy
% cargo run
终端 3
% cd examples/sv2-proxy
% cargo run --bin mining-device
依赖项
~15–23MB
~276K SLoC