Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JD Client README file retouched #800

Merged
merged 15 commits into from
Apr 5, 2024
49 changes: 23 additions & 26 deletions roles/jd-client/README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,35 @@
# JD Client
The JD Client is a Sv2 proxy that support one extended channel upstream and one extended channel
dowstream, and do job declaration. On start it will:

* connect to the jd-server
* connect to the template-provider
* listen for and `OpenExtendedChannel` from downstream
The JD Client receives custom block templates from a Template Provider and declares use of the template with the pool using the Job Declaration Protocol. Further distributes the jobs to Mining Proxy (or Proxies) using the Job Distribution Protocol. ```
* transparently relay the `OpenExtendedChannel` to upstream
After the setup phase it will start to negotiate jobs with upstream and send the negotiated job
downstream, so that everything that is dowstream do not need to know that job is negotiated.
After the setup phase, it will start to negotiate jobs upstream and send the negotiated job
downstream, so that everything downstream does not need to know that the job is negotiated.
plebhash marked this conversation as resolved.
Show resolved Hide resolved

## Setup

### Configuration File
The `proxy-config-example.toml` is a configuration example.

The configuration file contains the following information:

1. The Upstream connection information which includes the SV2 Pool authority public key
(`upstream_authority_pubkey`) and the SV2 Pool connection address (`upstream_address`) and port
(`upstream_port`).
2. The maximum and minimum SV2 versions (`max_supported_version` and `min_supported_version`)
3. The Job Declarator information which includes the Pool JD connection address (`jd_address`) and the Template Provider connection address to which to connect (`tp_address`).
4. Optionally, you may want to verify that your TP connection is authentic. You may get `tp_authority_public_key` from the logs of your TP, for example:
```
# 2024-02-13T14:59:24Z Template Provider authority key: EguTM8URcZDQVeEBsM4B5vg9weqEUnufA8pm85fG4bZd
```
1. The downstream connection information includes connection address (`downstream_address`) and port (`downstream_port`).
plebhash marked this conversation as resolved.
Show resolved Hide resolved
2. The maximum and minimum SRI versions (`max_supported_version` and `min_supported_version`) with size as (`min_extranonce2_size`)
3. In this file there is a withhold (`withhold`) with a boolean value.
plebhash marked this conversation as resolved.
Show resolved Hide resolved
4. The authentication keys for open encrypted connection for the downstream (`authority_public_key`, `authority_secret_key` and `cert_validity_sec`)
plebhash marked this conversation as resolved.
Show resolved Hide resolved
5. The retry that tells JDC the number of times to retry itself after a failure.
plebhash marked this conversation as resolved.
Show resolved Hide resolved
6. The Job Declarator information includes the Template Provider connection address to which to connect (`tp_address`).
7. You may want to verify that your TP connection is authentic. You may get `tp_authority_public_key` from the logs of your.
plebhash marked this conversation as resolved.
Show resolved Hide resolved

plebhash marked this conversation as resolved.
Show resolved Hide resolved
### Run
1. Copy the `jdc-config-example.toml` into `conf/` directory.
2. Edit it with custom desired configuration and rename it `jdc-config.toml`
3. Point the SV1 Downstream Mining Device(s) to the Translator Proxy IP address and port.
4. Run the Translator Proxy:

```
cd roles/translator
```
```
cargo run -p translator_sv2 -- -c conf/jdc-config.toml
```

Run the Job Declarator Client (JDC):
There are two files when you cd into roles/jd-client/config-examples/

1. `jdc-config-hosted-example.toml` connects to the community-hosted roles.
2. `jdc-config-local-example.toml` connects to self-hosted Job Declarator Client (JDC) and Translator Proxy

``` bash
cd roles/jd-client/config-examples/
cargo run -- -c jdc-config-hosted-example.toml
```
Loading