2 个版本

0.1.1 2024 年 5 月 7 日
0.1.0 2024 年 3 月 29 日

网络编程 中排名第 1303

MIT/Apache

790KB
16K SLoC

SV1 到 SV2 翻译器代理

此代理设计用于位于 SV1 下游角色(通常是运行 SV1 固件的采矿设备)和 SV2 上游角色(通常是具有扩展通道支持的 SV2 钓鱼服务器)之间。

最典型的配置是

<--- Most Downstream ----------------------------------------- Most Upstream --->

+---------------------------------------------------+  +------------------------+
|                     Mining Farm                   |  |      Remote Pool       |
|                                                   |  |                        |
|  +-------------------+     +------------------+   |  |   +-----------------+  |
|  | SV1 Mining Device | <-> | Translator Proxy | <------> | SV2 Pool Server |  |
|  +-------------------+     +------------------+   |  |   +-----------------+  |
|                                                   |  |                        |
+---------------------------------------------------+  +------------------------+

设置

配置文件

tproxy-config-local-jdc-example.tomltproxy-config-local-pool-example.toml 是翻译器代理的配置文件示例。

配置文件包含以下信息

  1. SV2 上游连接信息,包括 SV2 钓鱼池的公钥权威机构(upstream_authority_pubkey)和 SV2 钓鱼池的连接地址(upstream_address)和端口(upstream_port)。
  2. SV1 下游套接字信息,包括监听 IP 地址(downstream_address)和端口(downstream_port)。
  3. 翻译器代理实现者想要支持的 SRI 版本的最高和最低版本(max_supported_versionmin_supported_version)。目前唯一可用的版本是 2
  4. 翻译器代理实现者希望使用的期望最小extranonce2大小(min_extranonce2_size)。extranonce2的大小最终由SV2上游角色决定,但如果指定的大小满足SV2上游角色的要求,则应优先考虑此配置文件中指定的大小。
  5. 下游难度参数,如
  • 将连接到翻译器代理的最低效采矿设备的算力(hashes/s)(min_individual_miner_hashrate
  • 采矿设备应发送到翻译器代理的每分钟份额数(shares_per_minute)。
  1. 上游难度参数,如
  • 在将通道算力更新到池之前需要经过的秒数(channel_diff_update_interval
  • 所有SV1下游角色的预估总算力(channel_nominal_hashrate

运行

roles/translator/config-examples中有两个文件

  • tproxy-config-local-jdc-example.toml,它假设使用作业声明协议并且本地部署了JD客户端
  • tproxy-config-local-pool-example.toml,它假设不使用作业声明协议,并且本地部署了池
cd roles/translator/config-examples/
cargo run -- -c tproxy-config-local-jdc-example.toml

依赖项

~21–35MB
~492K SLoC