|
1 | 1 | # Stratum V2 Protocol Specification
|
2 | 2 | This repository contains the Stratum V2 protocol specification.
|
3 | 3 |
|
4 |
| -- [0. Abstract](./00-Abstract.md#0-abstract) |
5 |
| -- [1. Motivation](./01-Motivation.md#1-motivation) |
6 |
| -- [2. Design Goals](./02-Design-Goals.md#2-design-goals) |
7 |
| -- [3. Protocol Overview](./03-Protocol-Overview.md#3-protocol-overview) |
| 4 | +- [0. Abstract](./00-Abstract.md) |
| 5 | +- [1. Motivation](./01-Motivation.md) |
| 6 | +- [2. Design Goals](./02-Design-Goals.md) |
| 7 | +- [3. Protocol Overview](./03-Protocol-Overview.md) |
8 | 8 | - [3.1 Data Types Mapping](./03-Protocol-Overview.md#31-data-types-mapping)
|
9 | 9 | - [3.2 Framing](./03-Protocol-Overview.md#32-framing)
|
10 |
| - - [3.3 Protocol Security](./03-Protocol-Overview.md#33-protocol-security) |
11 |
| - - [3.3.1 Motivation for Authenticated Encryption with Associated Data](./03-Protocol-Overview.md#331-motivation-for-authenticated-encryption-with-associated-data) |
12 |
| - - [3.3.2 Motivation for Using the Noise Protocol Framework](./03-Protocol-Overview.md#332-motivation-for-using-the-noise-protocol-framework) |
13 |
| - - [3.3.3 Authenticated Key Agreement Handshake](./03-Protocol-Overview.md#333-authenticated-key-agreement-handshake) |
14 |
| - - [3.3.4 Signature Noise Message](./03-Protocol-Overview.md#334-signature-noise-message) |
15 |
| - - [3.3.5 Certificate Format](./03-Protocol-Overview.md#335-certificate-format) |
16 |
| - - [3.3.6 URL Scheme and Pool Authority Key](./03-Protocol-Overview.md#336-url-scheme-and-pool-authority-key) |
17 |
| - - [3.4 Reconnecting Downstream Nodes](./03-Protocol-Overview.md#34-reconnecting-downstream-nodes) |
18 |
| - - [3.5 Protocol Extensions](./03-Protocol-Overview.md#35-protocol-extensions) |
19 |
| - - [3.6 Error Codes](./03-Protocol-Overview.md#36-error-codes) |
20 |
| - - [3.7 Common Protocol Messages](./03-Protocol-Overview.md#37-common-protocol-messages) |
21 |
| - - [3.7.1 SetupConnection (Client -> Server)](./03-Protocol-Overview.md#371-setupconnection-client---server) |
22 |
| - - [3.7.2 SetupConnection.Success (Server -> Client)](./03-Protocol-Overview.md#372-setupconnectionsuccess-server---client) |
23 |
| - - [3.7.3 SetupConnection.Error (Server -> Client)](./03-Protocol-Overview.md#373-setupconnectionerror-server---client) |
24 |
| - - [3.7.4 ChannelEndpointChanged (Server -> Client)](./03-Protocol-Overview.md#374-channelendpointchanged-server---client) |
25 |
| -- [4. Mining Protocol](./04-Mining-Protocol.md#4-mining-protocol) |
26 |
| - - [4.1 Channels](./04-Mining-Protocol.md#41-channels) |
27 |
| - - [4.1.1 Standard Channels](./04-Mining-Protocol.md#411-standard-channels) |
28 |
| - - [4.1.2 Extended Channels](./04-Mining-Protocol.md#412-extended-channels) |
29 |
| - - [4.1.3 Group Channels](./04-Mining-Protocol.md#413-group-channels) |
30 |
| - - [4.1.4 Future Jobs](./04-Mining-Protocol.md#414-future-jobs) |
31 |
| - - [4.2 Hashing Space Distribution](./04-Mining-Protocol.md#42-hashing-space-distribution) |
32 |
| - - [4.3 Mining Protocol Messages](./04-Mining-Protocol.md#43-mining-protocol-messages) |
33 |
| - - [4.3.1 SetupConnection Flags for Mining Protocol](./04-Mining-Protocol.md#431-setupconnection-flags-for-mining-protocol) |
34 |
| - - [4.3.2 OpenStandardMiningChannel (Client -> Server)](./04-Mining-Protocol.md#432-openstandardminingchannel-client---server) |
35 |
| - - [4.3.3 OpenStandardMiningChannel.Success (Server -> Client)](./04-Mining-Protocol.md#433-openstandardminingchannelsuccess-server---client) |
36 |
| - - [4.3.4 OpenExtendedMiningChannel (Client -> Server)](./04-Mining-Protocol.md#434-openextendedminingchannel-client---server) |
37 |
| - - [4.3.5 OpenExtendedMiningChannel.Success (Server -> Client)](./04-Mining-Protocol.md#435-openextendedminingchannelsuccess-server---client) |
38 |
| - - [4.3.6 OpenMiningChannel.Error (Server -> Client)](./04-Mining-Protocol.md#436-openminingchannelerror-server---client) |
39 |
| - - [4.3.7 UpdateChannel (Client -> Server)](./04-Mining-Protocol.md#437-updatechannel-client---server) |
40 |
| - - [4.3.8 UpdateChannel.Error (Server -> Client)](./04-Mining-Protocol.md#438-updatechannelerror-server---client) |
41 |
| - - [4.3.9 CloseChannel (Client -> Server, Server -> Client)](./04-Mining-Protocol.md#439-closechannel-client---server-server---client) |
42 |
| - - [4.3.10 SetExtranoncePrefix (Server -> Client)](./04-Mining-Protocol.md#4310-setextranonceprefix-server---client) |
43 |
| - - [4.3.11 SubmitSharesStandard (Client -> Server)](./04-Mining-Protocol.md#4311-submitsharesstandard-client---server) |
44 |
| - - [4.3.12 SubmitSharesExtended (Client -> Server)](./04-Mining-Protocol.md#4312-submitsharesextended-client---server) |
45 |
| - - [4.3.13 SubmitShares.Success (Server -> Client)](./04-Mining-Protocol.md#4313-submitsharessuccess-server---client) |
46 |
| - - [4.3.14 SubmitShares.Error (Server -> Client)](./04-Mining-Protocol.md#4314-submitshareserror-server---client) |
47 |
| - - [4.3.15 NewMiningJob (Server -> Client)](./04-Mining-Protocol.md#4315-newminingjob-server---client) |
48 |
| - - [4.3.16 NewExtendedMiningJob (Server -> Client)](./04-Mining-Protocol.md#4316-newextendedminingjob-server---client) |
49 |
| - - [4.3.17 SetNewPrevHash (Server -> Client, broadcast)](./04-Mining-Protocol.md#4317-setnewprevhash-server---client-broadcast) |
50 |
| - - [4.3.18 SetCustomMiningJob (Client -> Server)](./04-Mining-Protocol.md#4318-setcustomminingjob-client---server) |
51 |
| - - [4.3.19 SetCustomMiningJob.Success (Server -> Client)](./04-Mining-Protocol.md#4319-setcustomminingjobsuccess-server---client) |
52 |
| - - [4.3.20 SetCustomMiningJob.Error (Server -> Client)](./04-Mining-Protocol.md#4320-setcustomminingjoberror-server---client) |
53 |
| - - [4.3.21 SetTarget (Server -> Client)](./04-Mining-Protocol.md#4321-settarget-server---client) |
54 |
| - - [4.3.22 Reconnect (Server -> Client)](./04-Mining-Protocol.md#4322-reconnect-server---client) |
55 |
| - - [4.3.23 SetGroupChannel (Server -> Client)](./04-Mining-Protocol.md#4323-setgroupchannel-server---client) |
56 |
| -- [5. Job Negotiation Protocol](./05-Job-Negotiation-Protocol.md#5-job-negotiation-protocol) |
57 |
| - - [5.1 Job Negotiation Protocol Messages](./05-Job-Negotiation-Protocol.md#51-job-negotiation-protocol-messages) |
58 |
| - - [5.1.1 SetupConnection Flags for Job Negotiation Protocol](./05-Job-Negotiation-Protocol.md#511-setupconnection-flags-for-job-negotiation-protocol) |
59 |
| - - [5.1.2 AllocateMiningJobToken (Client -> Server)](./05-Job-Negotiation-Protocol.md#512-allocateminingjobtoken-client---server) |
60 |
| - - [5.1.3 AllocateMiningJobToken.Success (Server -> Client)](./05-Job-Negotiation-Protocol.md#513-allocateminingjobtokensuccess-server---client) |
61 |
| - - [5.1.4 CommitMiningJob (Client -> Server)](./05-Job-Negotiation-Protocol.md#514-commitminingjob-client---server) |
62 |
| - - [5.1.5 CommitMiningJob.Success (Server -> Client)](./05-Job-Negotiation-Protocol.md#515-commitminingjobsuccess-server---client) |
63 |
| - - [5.1.6 CommitMiningJob.Error (Server->Client)](./05-Job-Negotiation-Protocol.md#516-commitminingjoberror-server-client) |
64 |
| - - [5.1.7 IdentifyTransactions (Server->Client)](./05-Job-Negotiation-Protocol.md#517-identifytransactions-server-client) |
65 |
| - - [5.1.8 IdentifyTransactions.Success (Client->Server)](./05-Job-Negotiation-Protocol.md#518-identifytransactionssuccess-client-server) |
66 |
| - - [5.1.9 ProvideMissingTransactions (Server->Client)](./05-Job-Negotiation-Protocol.md#519-providemissingtransactions-server-client) |
67 |
| - - [5.1.10 ProvideMissingTransactions.Success (Client->Server)](./05-Job-Negotiation-Protocol.md#5110-providemissingtransactionssuccess-client-server) |
68 |
| -- [6. Template Distribution Protocol](./06-Template-Distribution-Protocol.md#6-template-distribution-protocol) |
69 |
| - - [6.1 CoinbaseOutputDataSize (Client -> Server)](./06-Template-Distribution-Protocol.md#61-coinbaseoutputdatasize-client---server) |
70 |
| - - [6.2 NewTemplate (Server -> Client)](./06-Template-Distribution-Protocol.md#62-newtemplate-server---client) |
71 |
| - - [6.3 SetNewPrevHash (Server -> Client)](./06-Template-Distribution-Protocol.md#63-setnewprevhash-server---client) |
72 |
| - - [6.4 RequestTransactionData (Client -> Server)](./06-Template-Distribution-Protocol.md#64-requesttransactiondata-client---server) |
73 |
| - - [6.5 RequestTransactionData.Success (Server->Client)](./06-Template-Distribution-Protocol.md#65-requesttransactiondatasuccess-server-client) |
74 |
| - - [6.6 RequestTransactionData.Error (Server->Client)](./06-Template-Distribution-Protocol.md#66-requesttransactiondataerror-server-client) |
75 |
| - - [6.7 SubmitSolution (Client -> Server)](./06-Template-Distribution-Protocol.md#67-submitsolution-client---server) |
76 |
| -- [7. Message Types](./07-Message-Types.md#7-message-types) |
77 |
| -- [8. Extensions](./08-Extensions.md#8-extensions) |
78 |
| -- [9. Discussion](./09-Discussion.md#9-discussion) |
79 |
| - - [9.1 Speculative Mining Jobs](./09-Discussion.md#91-speculative-mining-jobs) |
80 |
| - - [9.2 Rolling `nTime`](./09-Discussion.md#92-rolling-ntime) |
81 |
| - - [9.2.1 Hardware nTime rolling](./09-Discussion.md#921-hardware-ntime-rolling) |
82 |
| - - [9.3 Notes](./09-Discussion.md#93-notes) |
83 |
| - - [9.4 Usage Scenarios](./09-Discussion.md#94-usage-scenarios) |
84 |
| - - [9.4.1 End Device (v2 ST)](./09-Discussion.md#941-end-device-v2-st) |
85 |
| - - [9.4.2 Transparent Proxy (v2 any -> v2 any)](./09-Discussion.md#942-transparent-proxy-v2-any---v2-any) |
86 |
| - - [9.4.3 Difficulty Aggregating Proxy (v2 any -> v2 EX)](./09-Discussion.md#943-difficulty-aggregating-proxy-v2-any---v2-ex) |
87 |
| - - [9.4.4 Proxy (v1 -> v2)](./09-Discussion.md#944-proxy-v1---v2) |
88 |
| - - [9.4.5 Proxy (v2 -> v1)](./09-Discussion.md#945-proxy-v2---v1) |
89 |
| - - [9.5. FAQ](./09-Discussion.md#95-faq) |
90 |
| - - [9.5.1 Why is the protocol binary?](./09-Discussion.md#951-why-is-the-protocol-binary) |
91 |
| - - [9.6 Terminology](./09-Discussion.md#96-terminology) |
92 |
| - - [9.7 Open Questions / Issues](./09-Discussion.md#97-open-questions--issues) |
| 10 | + - [3.3 Reconnecting Downstream Nodes](./03-Protocol-Overview.md#33-reconnecting-downstream-nodes) |
| 11 | + - [3.4 Protocol Extensions](./03-Protocol-Overview.md#34-protocol-extensions) |
| 12 | + - [3.5 Error Codes](./03-Protocol-Overview.md#35-error-codes) |
| 13 | + - [3.6 Common Protocol Messages](./03-Protocol-Overview.md#36-common-protocol-messages) |
| 14 | + - [3.6.1 SetupConnection (Client -> Server)](./03-Protocol-Overview.md#361-setupconnection-client---server) |
| 15 | + - [3.6.2 SetupConnection.Success (Server -> Client)](./03-Protocol-Overview.md#362-setupconnectionsuccess-server---client) |
| 16 | + - [3.6.3 SetupConnection.Error (Server -> Client)](./03-Protocol-Overview.md#363-setupconnectionerror-server---client) |
| 17 | + - [3.6.4 ChannelEndpointChanged (Server -> Client)](./03-Protocol-Overview.md#364-channelendpointchanged-server---client) |
| 18 | +- [4. Protocol Security](./04-Protocol-Security.md) |
| 19 | + - [4.1 Motivation for Authenticated Encryption with Associated Data](./04-Protocol-Security.md#41-motivation-for-authenticated-encryption-with-associated-data) |
| 20 | + - [4.2 Motivation for Using the Noise Protocol Framework](./04-Protocol-Security.md#42-motivation-for-using-the-noise-protocol-framework) |
| 21 | + - [4.3 Choice of cryptographic primitives](./04-Protocol-Security.md#43-choice-of-cryptographic-primitives) |
| 22 | + - [4.3.1 Elliptic Curve](./04-Protocol-Security.md#431-elliptic-curve) |
| 23 | + - [4.3.1.1 EC point encoding remarks](./04-Protocol-Security.md#4311-ec-point-encoding-remarks) |
| 24 | + - [4.3.2 Hash function](./04-Protocol-Security.md#432-hash-function) |
| 25 | + - [4.3.3 Cipher function for authenticated encryption](./04-Protocol-Security.md#433-cipher-function-for-authenticated-encryption) |
| 26 | + - [4.4 Cryptographic operations](./04-Protocol-Security.md#44-cryptographic-operations) |
| 27 | + - [4.4.1 CipherState object](./04-Protocol-Security.md#441-cipherstate-object) |
| 28 | + - [4.4.2 Handshake Operation](./04-Protocol-Security.md#442-handshake-operation) |
| 29 | + - [4.5 Authenticated Key Agreement Handshake](./04-Protocol-Security.md#45-authenticated-key-agreement-handshake) |
| 30 | + - [4.5.1 Handshake Act 1: Noise protocol proposal](./04-Protocol-Security.md#451-handshake-act-1-noise-protocol-proposal) |
| 31 | + - [4.5.2 Handshake Act 2: Noise protocol choice](./04-Protocol-Security.md#452-handshake-act-2-noise-protocol-choice) |
| 32 | + - [4.5.3 Handshake Act 3: NX-handshake part 1 `-> e`](./04-Protocol-Security.md#453-handshake-act-3-nx-handshake-part-1---e) |
| 33 | + - [4.5.4 Handshake Act 4: NX-handshake part 2 `<- e, ee, s, es, SIGNATURE_NOISE_MESSAGE`](./04-Protocol-Security.md#454-handshake-act-4-nx-handshake-part-2---e-ee-s-es-signature_noise_message) |
| 34 | + - [4.5.5 Server authentication](./04-Protocol-Security.md#455-server-authentication) |
| 35 | + - [4.5.5.1 Signature structure](./04-Protocol-Security.md#4551-signature-structure) |
| 36 | + - [4.5.6 Transport message encryption and format](./04-Protocol-Security.md#456-transport-message-encryption-and-format) |
| 37 | + - [4.6 URL Scheme and Pool Authority Key](./04-Protocol-Security.md#46-url-scheme-and-pool-authority-key) |
| 38 | + - [4.7 References](./04-Protocol-Security.md#47-references) |
| 39 | +- [5. Mining Protocol](./05-Mining-Protocol.md) |
| 40 | + - [5.1 Channels](./05-Mining-Protocol.md#51-channels) |
| 41 | + - [5.1.1 Standard Channels](./05-Mining-Protocol.md#511-standard-channels) |
| 42 | + - [5.1.2 Extended Channels](./05-Mining-Protocol.md#512-extended-channels) |
| 43 | + - [5.1.3 Group Channels](./05-Mining-Protocol.md#513-group-channels) |
| 44 | + - [5.1.4 Future Jobs](./05-Mining-Protocol.md#514-future-jobs) |
| 45 | + - [5.2 Hashing Space Distribution](./05-Mining-Protocol.md#52-hashing-space-distribution) |
| 46 | + - [5.3 Mining Protocol Messages](./05-Mining-Protocol.md#53-mining-protocol-messages) |
| 47 | + - [5.3.1 SetupConnection Flags for Mining Protocol](./05-Mining-Protocol.md#531-setupconnection-flags-for-mining-protocol) |
| 48 | + - [5.3.2 OpenStandardMiningChannel (Client -> Server)](./05-Mining-Protocol.md#532-openstandardminingchannel-client---server) |
| 49 | + - [5.3.3 OpenStandardMiningChannel.Success (Server -> Client)](./05-Mining-Protocol.md#533-openstandardminingchannelsuccess-server---client) |
| 50 | + - [5.3.4 OpenExtendedMiningChannel (Client -> Server)](./05-Mining-Protocol.md#534-openextendedminingchannel-client---server) |
| 51 | + - [5.3.5 OpenExtendedMiningChannel.Success (Server -> Client)](./05-Mining-Protocol.md#535-openextendedminingchannelsuccess-server---client) |
| 52 | + - [5.3.6 OpenMiningChannel.Error (Server -> Client)](./05-Mining-Protocol.md#536-openminingchannelerror-server---client) |
| 53 | + - [5.3.7 UpdateChannel (Client -> Server)](./05-Mining-Protocol.md#537-updatechannel-client---server) |
| 54 | + - [5.3.8 UpdateChannel.Error (Server -> Client)](./05-Mining-Protocol.md#538-updatechannelerror-server---client) |
| 55 | + - [5.3.9 CloseChannel (Client -> Server, Server -> Client)](./05-Mining-Protocol.md#539-closechannel-client---server-server---client) |
| 56 | + - [5.3.10 SetExtranoncePrefix (Server -> Client)](./05-Mining-Protocol.md#5310-setextranonceprefix-server---client) |
| 57 | + - [5.3.11 SubmitSharesStandard (Client -> Server)](./05-Mining-Protocol.md#5311-submitsharesstandard-client---server) |
| 58 | + - [5.3.12 SubmitSharesExtended (Client -> Server)](./05-Mining-Protocol.md#5312-submitsharesextended-client---server) |
| 59 | + - [5.3.13 SubmitShares.Success (Server -> Client)](./05-Mining-Protocol.md#5313-submitsharessuccess-server---client) |
| 60 | + - [5.3.14 SubmitShares.Error (Server -> Client)](./05-Mining-Protocol.md#5314-submitshareserror-server---client) |
| 61 | + - [5.3.15 NewMiningJob (Server -> Client)](./05-Mining-Protocol.md#5315-newminingjob-server---client) |
| 62 | + - [5.3.16 NewExtendedMiningJob (Server -> Client)](./05-Mining-Protocol.md#5316-newextendedminingjob-server---client) |
| 63 | + - [5.3.17 SetNewPrevHash (Server -> Client, broadcast)](./05-Mining-Protocol.md#5317-setnewprevhash-server---client-broadcast) |
| 64 | + - [5.3.18 SetCustomMiningJob (Client -> Server)](./05-Mining-Protocol.md#5318-setcustomminingjob-client---server) |
| 65 | + - [5.3.19 SetCustomMiningJob.Success (Server -> Client)](./05-Mining-Protocol.md#5319-setcustomminingjobsuccess-server---client) |
| 66 | + - [5.3.20 SetCustomMiningJob.Error (Server -> Client)](./05-Mining-Protocol.md#5320-setcustomminingjoberror-server---client) |
| 67 | + - [5.3.21 SetTarget (Server -> Client)](./05-Mining-Protocol.md#5321-settarget-server---client) |
| 68 | + - [5.3.22 Reconnect (Server -> Client)](./05-Mining-Protocol.md#5322-reconnect-server---client) |
| 69 | + - [5.3.23 SetGroupChannel (Server -> Client)](./05-Mining-Protocol.md#5323-setgroupchannel-server---client) |
| 70 | +- [6. Job Negotiation Protocol](./06-Job-Negotiation-Protocol.md) |
| 71 | + - [6.1 Job Negotiation Protocol Messages](./06-Job-Negotiation-Protocol.md#61-job-negotiation-protocol-messages) |
| 72 | + - [6.1.1 SetupConnection Flags for Job Negotiation Protocol](./06-Job-Negotiation-Protocol.md#611-setupconnection-flags-for-job-negotiation-protocol) |
| 73 | + - [6.1.2 AllocateMiningJobToken (Client -> Server)](./06-Job-Negotiation-Protocol.md#612-allocateminingjobtoken-client---server) |
| 74 | + - [6.1.3 AllocateMiningJobToken.Success (Server -> Client)](./06-Job-Negotiation-Protocol.md#613-allocateminingjobtokensuccess-server---client) |
| 75 | + - [6.1.4 CommitMiningJob (Client -> Server)](./06-Job-Negotiation-Protocol.md#614-commitminingjob-client---server) |
| 76 | + - [6.1.5 CommitMiningJob.Success (Server -> Client)](./06-Job-Negotiation-Protocol.md#615-commitminingjobsuccess-server---client) |
| 77 | + - [6.1.6 CommitMiningJob.Error (Server->Client)](./06-Job-Negotiation-Protocol.md#616-commitminingjoberror-server-client) |
| 78 | + - [6.1.7 IdentifyTransactions (Server->Client)](./06-Job-Negotiation-Protocol.md#617-identifytransactions-server-client) |
| 79 | + - [6.1.8 IdentifyTransactions.Success (Client->Server)](./06-Job-Negotiation-Protocol.md#618-identifytransactionssuccess-client-server) |
| 80 | + - [6.1.9 ProvideMissingTransactions (Server->Client)](./06-Job-Negotiation-Protocol.md#619-providemissingtransactions-server-client) |
| 81 | + - [6.1.10 ProvideMissingTransactions.Success (Client->Server)](./06-Job-Negotiation-Protocol.md#6110-providemissingtransactionssuccess-client-server) |
| 82 | +- [7. Template Distribution Protocol](./07-Template-Distribution-Protocol.md) |
| 83 | + - [7.1 CoinbaseOutputDataSize (Client -> Server)](./07-Template-Distribution-Protocol.md#71-coinbaseoutputdatasize-client---server) |
| 84 | + - [7.2 NewTemplate (Server -> Client)](./07-Template-Distribution-Protocol.md#72-newtemplate-server---client) |
| 85 | + - [7.3 SetNewPrevHash (Server -> Client)](./07-Template-Distribution-Protocol.md#73-setnewprevhash-server---client) |
| 86 | + - [7.4 RequestTransactionData (Client -> Server)](./07-Template-Distribution-Protocol.md#74-requesttransactiondata-client---server) |
| 87 | + - [7.5 RequestTransactionData.Success (Server->Client)](./07-Template-Distribution-Protocol.md#75-requesttransactiondatasuccess-server-client) |
| 88 | + - [7.6 RequestTransactionData.Error (Server->Client)](./07-Template-Distribution-Protocol.md#76-requesttransactiondataerror-server-client) |
| 89 | + - [7.7 SubmitSolution (Client -> Server)](./07-Template-Distribution-Protocol.md#77-submitsolution-client---server) |
| 90 | +- [8. Message Types](./08-Message-Types.md) |
| 91 | +- [9. Extensions](./09-Extensions.md) |
| 92 | +- [10. Discussion](./10-Discussion.md#10-discussion) |
| 93 | + - [10.1 Speculative Mining Jobs](./10-Discussion.md#101-speculative-mining-jobs) |
| 94 | + - [10.2 Rolling `nTime`](./10-Discussion.md#102-rolling-ntime) |
| 95 | + - [10.2.1 Hardware nTime rolling](./10-Discussion.md#1021-hardware-ntime-rolling) |
| 96 | + - [10.3 Notes](./10-Discussion.md#103-notes) |
| 97 | + - [10.4 Usage Scenarios](./10-Discussion.md#104-usage-scenarios) |
| 98 | + - [10.4.1 End Device (v2 ST)](./10-Discussion.md#1041-end-device-v2-st) |
| 99 | + - [10.4.2 Transparent Proxy (v2 any -> v2 any)](./10-Discussion.md#1042-transparent-proxy-v2-any---v2-any) |
| 100 | + - [10.4.3 Difficulty Aggregating Proxy (v2 any -> v2 EX)](./10-Discussion.md#1043-difficulty-aggregating-proxy-v2-any---v2-ex) |
| 101 | + - [10.4.4 Proxy (v1 -> v2)](./10-Discussion.md#1044-proxy-v1---v2) |
| 102 | + - [10.4.5 Proxy (v2 -> v1)](./10-Discussion.md#1045-proxy-v2---v1) |
| 103 | + - [10.5. FAQ](./10-Discussion.md#105-faq) |
| 104 | + - [10.5.1 Why is the protocol binary?](./10-Discussion.md#1051-why-is-the-protocol-binary) |
| 105 | + - [10.6 Terminology](./10-Discussion.md#106-terminology) |
| 106 | + - [10.7 Open Questions / Issues](./10-Discussion.md#107-open-questions--issues) |
93 | 107 |
|
94 | 108 | ## Authors
|
95 | 109 |
|
|
0 commit comments