Skip to content

Commit

Permalink
Merge pull request #104 from plebhash/update-jd-protocol
Browse files Browse the repository at this point in the history
cleanup JD Protocol specs
  • Loading branch information
GitGab19 authored Jan 14, 2025
2 parents e1bbaff + d051cd1 commit 67fcb8f
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 28 deletions.
8 changes: 2 additions & 6 deletions 03-Protocol-Overview.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 3. Protocol Overview

There are technically four distinct (sub)protocols needed in order to fully use all of the features proposed in this document:
There are technically three distinct (sub)protocols needed in order to fully use all of the features proposed in this document:

1. **Mining Protocol**
The main protocol used for mining and the direct successor of Stratum v1.
Expand All @@ -20,10 +20,6 @@ There are technically four distinct (sub)protocols needed in order to fully use
A similarly-framed protocol for getting information about the next block out of Bitcoin Core.
Designed to replace `getblocktemplate` with something much more efficient and easy to implement for those implementing other parts of Stratum v2.

4. **Job Distribution Protocol**
Simple protocol for passing newly-declared work to interested nodes - either proxies or miners directly.
This protocol is left to be specified in a future document, as it is often unnecessary due to the Job Declaration role being a part of a larger Mining Protocol Proxy.

Meanwhile, there are five possible roles (types of software/hardware) for communicating with these protocols.

1. **Mining Device**
Expand Down Expand Up @@ -162,7 +158,7 @@ However, they MUST always set vendor to a string describing the manufacturer/dev

| Field Name | Data Type | Description |
|--------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------|
| protocol | U8 | 0 = Mining Protocol <br>1 = Job Declaration <br>2 = Template Distribution Protocol <br> 3 = Job Distribution Protocol |
| protocol | U8 | 0 = Mining Protocol <br>1 = Job Declaration <br>2 = Template Distribution Protocol |
| min_version | U16 | The minimum protocol version the client supports (currently must be 2) |
| max_version | U16 | The maximum protocol version the client supports (currently must be 2) |
| flags | U32 | Flags indicating optional protocol features the client supports. Each protocol from protocol field as its own values/flags. |
Expand Down
Loading

0 comments on commit 67fcb8f

Please sign in to comment.