-
Notifications
You must be signed in to change notification settings - Fork 0
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
RFC0002 - HOPR packet protocol #4
base: main
Are you sure you want to change the base?
Conversation
📝 WalkthroughWalkthroughThis pull request introduces a new RFC document detailing the HOPR Packet Protocol. The document specifies the packet format, including its Meta packet and Ticket components, and describes the procedures for creating both forward and reply packets. It emphasizes the use of cryptographic primitives, such as elliptic curve cryptography and key derivation functions, and introduces the Proof of Relay mechanism inspired by the Sphinx packet format enhancements. Changes
Sequence Diagram(s)Forward Packet CreationsequenceDiagram
participant Sender
participant Crypto as Cryptography Module
participant Builder as Packet Builder
participant Relay as Relay Node
Sender->>Crypto: Generate shared secret & PoR value
Crypto-->>Sender: Return cryptographic primitives
Sender->>Builder: Build Meta packet with header and payload
Builder-->>Sender: Complete forward packet
Sender->>Relay: Transmit forward packet
Reply Packet Creation (Using SURB)sequenceDiagram
participant Recipient
participant SURB as SURB Generator
participant Builder as Packet Builder
participant Relay as Relay Node
Recipient->>SURB: Request Single Use Reply Block creation
SURB-->>Recipient: Provide SURB
Recipient->>Builder: Construct reply packet using SURB
Builder-->>Recipient: Complete reply packet
Recipient->>Relay: Send reply packet back to sender
Suggested reviewers
Tip ⚡🧪 Multi-step agentic review comment chat (experimental)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (23)
RFC-0002-hopr-packet-protocol/RFC-0002-hopr-packet-protocol.md (23)
1-2
: Markdown Heading Spacing:
The main title (# RFC-0002 HOPR Packet Protocol
) should be surrounded by blank lines according to markdownlint (MD022). Please ensure there is a blank line before and after the heading.
13-14
: Heading and Long Line Formatting in Abstract:
The “## Abstract” heading should be preceded and followed by a blank line (MD022). Also, the abstract text on line 14 exceeds the recommended maximum line length (120 characters); consider breaking it into shorter lines for improved readability.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
13-13: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
14-14: Line length
Expected: 120; Actual: 461(MD013, line-length)
14-14
: Typographical Error:
The word “similiar” appears on line 14. Please correct it to “similar.”🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
14-14: Line length
Expected: 120; Actual: 461(MD013, line-length)
22-22
: Wordiness Reduction:
On line 22, the phrase “in order to allow incentivization of the hops…” is a bit wordy. Consider a more concise alternative such as “to incentivize the hops…”🧰 Tools
🪛 LanguageTool
[style] ~22-~22: Consider a shorter alternative to avoid wordiness.
Context: ...ds additional information for each hop, in order to allow incentivization of the hops (exce...(IN_ORDER_TO_PREMIUM)
🪛 markdownlint-cli2 (0.17.2)
22-22: Line length
Expected: 120; Actual: 317(MD013, line-length)
55-55
: Missing Article in Return Path Definition:
On line 55, the description for return path may benefit from an article. For example, using “a path” or “the path” could improve clarity. Consider rephrasing to “a path that is used to deliver packets in the opposite direction of the forward path.”🧰 Tools
🪛 LanguageTool
[uncategorized] ~55-~55: Possible missing article found.
Context: ...n path*: a path that is used to deliver packet in the opposite direction than *forward...(AI_HYDRA_LEO_MISSING_A)
🪛 markdownlint-cli2 (0.17.2)
55-55: Line length
Expected: 120; Actual: 154(MD013, line-length)
63-63
: Preposition Correction:
On line 63, the sentence “The pseudonym MAY be prefixed with a static prefix. The length such static prefix MUST NOT exceed half of the entire pseudonym's size.” would read more clearly if you insert “of” after “such” (i.e. “such of static prefix”).🧰 Tools
🪛 LanguageTool
[uncategorized] ~63-~63: Possible missing preposition found.
Context: ...efixed with a static prefix. The length such static prefix MUST NOT exceed half of t...(AI_HYDRA_LEO_MISSING_OF)
🪛 markdownlint-cli2 (0.17.2)
63-63: Line length
Expected: 120; Actual: 297(MD013, line-length)
73-73
: Punctuation and Standard Terminology:
On line 73, consider adding a comma after “hard” and standardizing the spelling of “Diffie-Hellman” (with a hyphen) when referring to the “Elliptic Curve Diffie Hellman Problem.”🧰 Tools
🪛 LanguageTool
[uncategorized] ~73-~73: Possible missing comma found.
Context: ...lace, namely: - an Elliptic Curve (EC) group where the Elliptic Curve Diffie Hellman...(AI_HYDRA_LEO_MISSING_COMMA)
[misspelling] ~73-~73: This word is normally spelled with a hyphen.
Context: ...rve (EC) group where the Elliptic Curve Diffie Hellman Problem (ECDLP) is hard. The peer publi...(EN_COMPOUNDS_DIFFIE_HELLMAN)
🪛 markdownlint-cli2 (0.17.2)
73-73: Line length
Expected: 120; Actual: 234(MD013, line-length)
96-96
: Comma for Compound Sentence:
On line 96, a comma is recommended before “but” in the sentence “The Sender pseudonym MUST be randomly generated for each packet but MAY contain a static prefix.”🧰 Tools
🪛 LanguageTool
[uncategorized] ~96-~96: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ST be randomly generated for each packet but MAY contain a static prefix. The forwa...(COMMA_COMPOUND_SENTENCE_2)
115-115
: Numeric Range Formatting:
The notation “1 .. N” on line 115 shows two consecutive dots. Consider reformatting this range either to “1 to N” or “1..N” (with a single dot) for clarity.🧰 Tools
🪛 LanguageTool
[typographical] ~115-~115: Two consecutive dots
Context: ...be a list of Phop_i and Pdst (for i = 1 .. N). For N = 0, the Extended path consis...(DOUBLE_PUNCTUATION)
129-129
: Article for Clarity:
On line 129, the sentence “For path of length N, the length of the list of Shared secrets is N+1.” could be clearer if an article is added (e.g. “the list of shared secrets…”).🧰 Tools
🪛 LanguageTool
[uncategorized] ~129-~129: Possible missing article found.
Context: ...n Alpha and list of SharedSecret_i For path of length N, the length of the list of ...(AI_HYDRA_LEO_MISSING_A)
131-131
: Comma Insertion for Clarity:
On line 131, insert a comma after “In such case” so that it reads “In such case, the computation MUST fail with an error.” This improves readability.🧰 Tools
🪛 LanguageTool
[typographical] ~131-~131: It appears that a comma is missing.
Context: ...untered anywhere during step 3. In such case the computation MUST fail with an error...(DURING_THAT_TIME_COMMA)
🪛 markdownlint-cli2 (0.17.2)
131-131: Line length
Expected: 120; Actual: 194(MD013, line-length)
143-143
: Definite Article Usage:
On line 143, consider adding “the” before “one-way cryptographic hash function” to read “… transformed via the one-way cryptographic hash function …” for improved clarity.🧰 Tools
🪛 LanguageTool
[uncategorized] ~143-~143: Possible missing article found.
Context: ... challenge value MAY be transformed via one-way cryptographic hash function, whose ...(AI_HYDRA_LEO_MISSING_A)
🪛 markdownlint-cli2 (0.17.2)
143-143: Line length
Expected: 120; Actual: 238(MD013, line-length)
150-150
: Comma After Conjunctive Adverb:
On line 150, insert a comma immediately after “Also” so that the sentence begins “Also, here …” to conform with standard punctuation practices.🧰 Tools
🪛 LanguageTool
[uncategorized] ~150-~150: A comma may be missing after the conjunctive/linking adverb ‘Also’.
Context: ... Ticket challenge for the first ticket Also here, both values are EC points, where ...(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
165-165
: Article Addition for Clarity in Component Ordering:
On line 165, consider inserting an article to improve clarity. For example, “The order of these components MAY differ when the packet is serialized…” can help the sentence flow better.🧰 Tools
🪛 LanguageTool
[uncategorized] ~165-~165: Possible missing article found.
Context: ...der of these components MAY differ when packet is serialized to its binary form. The ...(AI_HYDRA_LEO_MISSING_THE)
167-167
: Prepositional Correction:
On line 167, rephrase “depending whether this packet is a forward packet or a reply packet” to “depending on whether this packet is a forward packet or a reply packet.”
193-193
: Clarification of PRG Initialization Instruction:
The instruction “Initialize PRG with SharedSecret_N-i+2” on line 193 might benefit from additional clarity regarding the subject performing the initialization. Please clarify whether this is an imperative for the implementation or a description of the process.🧰 Tools
🪛 LanguageTool
[grammar] ~193-~193: Did you mean “am” or “will be”?
Context: ...ize PRG with SharedSecret_N-i+2 2. If i is equal to 1 - Set HdrExt[0] to EndPre...(PERS_PRONOUN_AGREEMENT)
201-201
: Instruction Clarity in PRG Instance Initialization:
On line 201, consider rephrasing “Initialize new PRG instance with SharedSecret_i” to clarify the action and subject. A slight rewording can enhance understanding.🧰 Tools
🪛 LanguageTool
[uncategorized] ~201-~201: Did you mean “I”?
Context: ...lize new PRG instance with SharedSecret_i - Seek the PRG to position `...(I_LOWERCASE_PREMIUM)
208-208
: Indexing Clarity:
On line 208, the instruction “Copy ID_N-i+2 to HdrExt starting at offset 1” might be unclear regarding the indexing convention. Please verify that the intended recipient and offset are well understood.🧰 Tools
🪛 LanguageTool
[uncategorized] ~208-~208: Did you mean “I”?
Context: ...InfoLen` in HdrExt - Set HdrExt[i] = i - Copy ID_N-i+2 to HdrExt starting a...(I_LOWERCASE_PREMIUM)
223-223
: Comma for Compound Sentence:
On line 223, inserting a comma after “PacketMax bytes” would improve the sentence flow in “… MUST not exceed PacketMax bytes and therefore …”🧰 Tools
🪛 LanguageTool
[uncategorized] ~223-~223: Possible missing comma found.
Context: ...acket payload MUST not exceed PacketMax bytes and therefore the size of the User payl...(AI_HYDRA_LEO_MISSING_COMMA)
🪛 markdownlint-cli2 (0.17.2)
223-223: Line length
Expected: 120; Actual: 147(MD013, line-length)
237-237
: Redundant Phrase Cleanup:
On line 237, the phrase “generated alongside with the SURB” is redundant. It is sufficient to say “generated alongside the SURB.”🧰 Tools
🪛 LanguageTool
[style] ~237-~237: This phrase is redundant. Consider writing “alongside” or “with”.
Context: ...plyOpener. The ReplyOpener is generated alongside with the SURB and is stored at the Sender (i...(ALONGSIDE_WITH)
🪛 markdownlint-cli2 (0.17.2)
237-237: Line length
Expected: 120; Actual: 291(MD013, line-length)
251-251
: Numeric Range Formatting (Return Path):
On line 251, similar to line 115, avoid using two consecutive dots in “for i = 1 .. N.” Consider using a single dot or clear verbal notation such as “for i = 1 to N.”🧰 Tools
🪛 LanguageTool
[typographical] ~251-~251: Two consecutive dots
Context: ...be a list of Phop_i and Psrc (for i = 1 .. N). For N = 0, the Extended return path...(DOUBLE_PUNCTUATION)
312-312
: Punctuation Verification:
On line 312, re-examine the comma usage in the clause “... pseudonym, to identify itself across multiple forward packets.” Verify whether the comma is needed or if the sentence flows better without it.🧰 Tools
🪛 LanguageTool
[uncategorized] ~312-~312: Possible missing comma found.
Context: ... Sender of the forward packet MAY use a fixed random prefix of the pseudonym, to iden...(AI_HYDRA_LEO_MISSING_COMMA)
🪛 markdownlint-cli2 (0.17.2)
312-312: Line length
Expected: 120; Actual: 260(MD013, line-length)
1-362
: Comprehensive Markdown Formatting Review:
Several markdown style issues have been detected throughout the document:
- Blank Lines Around Headings (MD022): Many headings (e.g., “## Abstract”, “### 1.1 Conventions and terminology”, etc.) would benefit from surrounding blank lines.
- Line Length (MD013): Numerous lines exceed the recommended 120 characters; consider wrapping long lines for improved readability.
- Trailing Spaces and Hard Tabs (MD009 & MD010): Ensure that there are no unnecessary trailing spaces or hard tabs, and that list indentations are consistent (see MD030, MD032, MD005).
Addressing these markdownlint recommendations will enhance the document’s clarity and maintainability.
🧰 Tools
🪛 LanguageTool
[style] ~22-~22: Consider a shorter alternative to avoid wordiness.
Context: ...ds additional information for each hop, in order to allow incentivization of the hops (exce...(IN_ORDER_TO_PREMIUM)
[uncategorized] ~53-~53: Possible missing article found.
Context: ...d path*: a path that is used to deliver packet only in the direction from the sender t...(AI_HYDRA_LEO_MISSING_A)
[uncategorized] ~55-~55: Possible missing article found.
Context: ...n path*: a path that is used to deliver packet in the opposite direction than *forward...(AI_HYDRA_LEO_MISSING_A)
[uncategorized] ~63-~63: Possible missing preposition found.
Context: ...efixed with a static prefix. The length such static prefix MUST NOT exceed half of t...(AI_HYDRA_LEO_MISSING_OF)
[uncategorized] ~73-~73: Possible missing comma found.
Context: ...lace, namely: - an Elliptic Curve (EC) group where the Elliptic Curve Diffie Hellman...(AI_HYDRA_LEO_MISSING_COMMA)
[misspelling] ~73-~73: This word is normally spelled with a hyphen.
Context: ...rve (EC) group where the Elliptic Curve Diffie Hellman Problem (ECDLP) is hard. The peer publi...(EN_COMPOUNDS_DIFFIE_HELLMAN)
[uncategorized] ~96-~96: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ST be randomly generated for each packet but MAY contain a static prefix. The forwa...(COMMA_COMPOUND_SENTENCE_2)
[typographical] ~115-~115: Two consecutive dots
Context: ...be a list of Phop_i and Pdst (for i = 1 .. N). For N = 0, the Extended path consis...(DOUBLE_PUNCTUATION)
[uncategorized] ~129-~129: Possible missing article found.
Context: ...n Alpha and list of SharedSecret_i For path of length N, the length of the list of ...(AI_HYDRA_LEO_MISSING_A)
[typographical] ~131-~131: It appears that a comma is missing.
Context: ...untered anywhere during step 3. In such case the computation MUST fail with an error...(DURING_THAT_TIME_COMMA)
[uncategorized] ~143-~143: Possible missing article found.
Context: ... challenge value MAY be transformed via one-way cryptographic hash function, whose ...(AI_HYDRA_LEO_MISSING_A)
[uncategorized] ~150-~150: A comma may be missing after the conjunctive/linking adverb ‘Also’.
Context: ... Ticket challenge for the first ticket Also here, both values are EC points, where ...(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
[uncategorized] ~165-~165: Possible missing article found.
Context: ...der of these components MAY differ when packet is serialized to its binary form. The ...(AI_HYDRA_LEO_MISSING_THE)
[grammar] ~169-~169: The verb ‘depend’ requires the preposition ‘on’ (or ‘upon’).
Context: ...ase. The Header is created differently depending whether this packet is a forward packet...(DEPEND_ON)
[uncategorized] ~182-~182: Did you mean “I”?
Context: ...ual lengths) - Sender pseudonym Let ID_i be a public key identifier of P_i (by u...(I_LOWERCASE_PREMIUM)
[style] ~184-~184: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ndPrefix be a single byte equal to 255. Let RoutingInfoLen be equal to `1 + |ID_i| ...(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~193-~193: Did you mean “am” or “will be”?
Context: ...ize PRG with SharedSecret_N-i+2 2. If i is equal to 1 - Set HdrExt[0] to EndPre...(PERS_PRONOUN_AGREEMENT)
[uncategorized] ~201-~201: Did you mean “I”?
Context: ...lize new PRG instance with SharedSecret_i - Seek the PRG to position `...(I_LOWERCASE_PREMIUM)
[uncategorized] ~208-~208: Did you mean “I”?
Context: ...InfoLen` in HdrExt - Set HdrExt[i] = i - Copy ID_N-i+2 to HdrExt starting a...(I_LOWERCASE_PREMIUM)
[uncategorized] ~223-~223: Possible missing comma found.
Context: ...acket payload MUST not exceed PacketMax bytes and therefore the size of the User payl...(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~237-~237: This phrase is redundant. Consider writing “alongside” or “with”.
Context: ...plyOpener. The ReplyOpener is generated alongside with the SURB and is stored at the Sender (i...(ALONGSIDE_WITH)
[typographical] ~251-~251: Two consecutive dots
Context: ...be a list of Phop_i and Psrc (for i = 1 .. N). For N = 0, the Extended return path...(DOUBLE_PUNCTUATION)
[uncategorized] ~312-~312: Possible missing comma found.
Context: ... Sender of the forward packet MAY use a fixed random prefix of the pseudonym, to iden...(AI_HYDRA_LEO_MISSING_COMMA)
🪛 markdownlint-cli2 (0.17.2)
13-13: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
14-14: Line length
Expected: 120; Actual: 461(MD013, line-length)
20-20: Line length
Expected: 120; Actual: 407(MD013, line-length)
22-22: Line length
Expected: 120; Actual: 317(MD013, line-length)
24-24: Line length
Expected: 120; Actual: 322(MD013, line-length)
28-28: Line length
Expected: 120; Actual: 195(MD013, line-length)
30-30: Line length
Expected: 120; Actual: 159(MD013, line-length)
43-43: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
52-52: Hard tabs
Column: 1(MD010, no-hard-tabs)
55-55: Line length
Expected: 120; Actual: 154(MD013, line-length)
63-63: Line length
Expected: 120; Actual: 297(MD013, line-length)
65-65: Line length
Expected: 120; Actual: 184(MD013, line-length)
73-73: Line length
Expected: 120; Actual: 234(MD013, line-length)
82-82: Line length
Expected: 120; Actual: 261(MD013, line-length)
89-89: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
98-98: Line length
Expected: 120; Actual: 191(MD013, line-length)
104-104: Line length
Expected: 120; Actual: 196(MD013, line-length)
106-106: Line length
Expected: 120; Actual: 170(MD013, line-length)
123-123: Spaces after list markers
Expected: 1; Actual: 2(MD030, list-marker-space)
124-124: Spaces after list markers
Expected: 1; Actual: 2(MD030, list-marker-space)
125-125: Spaces after list markers
Expected: 1; Actual: 2(MD030, list-marker-space)
126-126: Spaces after list markers
Expected: 1; Actual: 2(MD030, list-marker-space)
131-131: Line length
Expected: 120; Actual: 194(MD013, line-length)
135-135: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
135-135: Line length
Expected: 120; Actual: 192(MD013, line-length)
139-139: Line length
Expected: 120; Actual: 147(MD013, line-length)
140-140: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
143-143: Line length
Expected: 120; Actual: 238(MD013, line-length)
147-147: Line length
Expected: 120; Actual: 208(MD013, line-length)
148-148: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
153-153: Line length
Expected: 120; Actual: 137(MD013, line-length)
171-171: Multiple consecutive blank lines
Expected: 1; Actual: 2(MD012, no-multiple-blanks)
177-177: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
182-182: Line length
Expected: 120; Actual: 139(MD013, line-length)
192-192: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
197-197: Line length
Expected: 120; Actual: 151(MD013, line-length)
205-205: Inconsistent indentation for list items at the same level
Expected: 3; Actual: 4(MD005, list-indent)
214-214: Line length
Expected: 120; Actual: 129(MD013, line-length)
218-218: Multiple consecutive blank lines
Expected: 1; Actual: 2(MD012, no-multiple-blanks)
221-221: Line length
Expected: 120; Actual: 256(MD013, line-length)
223-223: Line length
Expected: 120; Actual: 147(MD013, line-length)
228-228: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
232-232: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
233-233: Line length
Expected: 120; Actual: 193(MD013, line-length)
235-235: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
237-237: Line length
Expected: 120; Actual: 291(MD013, line-length)
242-242: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
262-262: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
270-270: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
277-277: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
278-278: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
284-284: Line length
Expected: 120; Actual: 161(MD013, line-length)
291-291: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
294-294: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
304-304: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
308-308: Line length
Expected: 120; Actual: 305(MD013, line-length)
310-310: Line length
Expected: 120; Actual: 150(MD013, line-length)
312-312: Line length
Expected: 120; Actual: 260(MD013, line-length)
325-325: Line length
Expected: 120; Actual: 146(MD013, line-length)
335-335: Line length
Expected: 120; Actual: 142(MD013, line-length)
349-349: Spaces after list markers
Expected: 1; Actual: 2(MD030, list-marker-space)
351-351: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
360-360: Hard tabs
Column: 10(MD010, no-hard-tabs)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
RFC-0002-hopr-packet-protocol/RFC-0002-hopr-packet-protocol.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
RFC-0002-hopr-packet-protocol/RFC-0002-hopr-packet-protocol.md
[style] ~22-~22: Consider a shorter alternative to avoid wordiness.
Context: ...ds additional information for each hop, in order to allow incentivization of the hops (exce...
(IN_ORDER_TO_PREMIUM)
[uncategorized] ~53-~53: Possible missing article found.
Context: ...d path*: a path that is used to deliver packet only in the direction from the sender t...
(AI_HYDRA_LEO_MISSING_A)
[uncategorized] ~55-~55: Possible missing article found.
Context: ...n path*: a path that is used to deliver packet in the opposite direction than *forward...
(AI_HYDRA_LEO_MISSING_A)
[uncategorized] ~63-~63: Possible missing preposition found.
Context: ...efixed with a static prefix. The length such static prefix MUST NOT exceed half of t...
(AI_HYDRA_LEO_MISSING_OF)
[uncategorized] ~73-~73: Possible missing comma found.
Context: ...lace, namely: - an Elliptic Curve (EC) group where the Elliptic Curve Diffie Hellman...
(AI_HYDRA_LEO_MISSING_COMMA)
[misspelling] ~73-~73: This word is normally spelled with a hyphen.
Context: ...rve (EC) group where the Elliptic Curve Diffie Hellman Problem (ECDLP) is hard. The peer publi...
(EN_COMPOUNDS_DIFFIE_HELLMAN)
[uncategorized] ~96-~96: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ST be randomly generated for each packet but MAY contain a static prefix. The forwa...
(COMMA_COMPOUND_SENTENCE_2)
[typographical] ~115-~115: Two consecutive dots
Context: ...be a list of Phop_i and Pdst (for i = 1 .. N). For N = 0, the Extended path consis...
(DOUBLE_PUNCTUATION)
[uncategorized] ~129-~129: Possible missing article found.
Context: ...n Alpha and list of SharedSecret_i For path of length N, the length of the list of ...
(AI_HYDRA_LEO_MISSING_A)
[typographical] ~131-~131: It appears that a comma is missing.
Context: ...untered anywhere during step 3. In such case the computation MUST fail with an error...
(DURING_THAT_TIME_COMMA)
[uncategorized] ~143-~143: Possible missing article found.
Context: ... challenge value MAY be transformed via one-way cryptographic hash function, whose ...
(AI_HYDRA_LEO_MISSING_A)
[uncategorized] ~150-~150: A comma may be missing after the conjunctive/linking adverb ‘Also’.
Context: ... Ticket challenge for the first ticket Also here, both values are EC points, where ...
(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
[uncategorized] ~165-~165: Possible missing article found.
Context: ...der of these components MAY differ when packet is serialized to its binary form. The ...
(AI_HYDRA_LEO_MISSING_THE)
[grammar] ~169-~169: The verb ‘depend’ requires the preposition ‘on’ (or ‘upon’).
Context: ...ase. The Header is created differently depending whether this packet is a forward packet...
(DEPEND_ON)
[uncategorized] ~182-~182: Did you mean “I”?
Context: ...ual lengths) - Sender pseudonym Let ID_i be a public key identifier of P_i (by u...
(I_LOWERCASE_PREMIUM)
[style] ~184-~184: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ndPrefix be a single byte equal to 255. Let RoutingInfoLen be equal to `1 + |ID_i| ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~193-~193: Did you mean “am” or “will be”?
Context: ...ize PRG with SharedSecret_N-i+2 2. If i is equal to 1 - Set HdrExt[0] to EndPre...
(PERS_PRONOUN_AGREEMENT)
[uncategorized] ~201-~201: Did you mean “I”?
Context: ...lize new PRG instance with SharedSecret_i - Seek the PRG to position `...
(I_LOWERCASE_PREMIUM)
[uncategorized] ~208-~208: Did you mean “I”?
Context: ...InfoLen` in HdrExt - Set HdrExt[i] = i - Copy ID_N-i+2 to HdrExt starting a...
(I_LOWERCASE_PREMIUM)
[uncategorized] ~223-~223: Possible missing comma found.
Context: ...acket payload MUST not exceed PacketMax bytes and therefore the size of the User payl...
(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~237-~237: This phrase is redundant. Consider writing “alongside” or “with”.
Context: ...plyOpener. The ReplyOpener is generated alongside with the SURB and is stored at the Sender (i...
(ALONGSIDE_WITH)
[typographical] ~251-~251: Two consecutive dots
Context: ...be a list of Phop_i and Psrc (for i = 1 .. N). For N = 0, the Extended return path...
(DOUBLE_PUNCTUATION)
[uncategorized] ~312-~312: Possible missing comma found.
Context: ... Sender of the forward packet MAY use a fixed random prefix of the pseudonym, to iden...
(AI_HYDRA_LEO_MISSING_COMMA)
🪛 markdownlint-cli2 (0.17.2)
RFC-0002-hopr-packet-protocol/RFC-0002-hopr-packet-protocol.md
13-13: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
14-14: Line length
Expected: 120; Actual: 461
(MD013, line-length)
20-20: Line length
Expected: 120; Actual: 407
(MD013, line-length)
22-22: Line length
Expected: 120; Actual: 317
(MD013, line-length)
24-24: Line length
Expected: 120; Actual: 322
(MD013, line-length)
28-28: Line length
Expected: 120; Actual: 195
(MD013, line-length)
30-30: Line length
Expected: 120; Actual: 159
(MD013, line-length)
43-43: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
52-52: Hard tabs
Column: 1
(MD010, no-hard-tabs)
55-55: Line length
Expected: 120; Actual: 154
(MD013, line-length)
63-63: Line length
Expected: 120; Actual: 297
(MD013, line-length)
65-65: Line length
Expected: 120; Actual: 184
(MD013, line-length)
73-73: Line length
Expected: 120; Actual: 234
(MD013, line-length)
82-82: Line length
Expected: 120; Actual: 261
(MD013, line-length)
89-89: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
98-98: Line length
Expected: 120; Actual: 191
(MD013, line-length)
104-104: Line length
Expected: 120; Actual: 196
(MD013, line-length)
106-106: Line length
Expected: 120; Actual: 170
(MD013, line-length)
123-123: Spaces after list markers
Expected: 1; Actual: 2
(MD030, list-marker-space)
124-124: Spaces after list markers
Expected: 1; Actual: 2
(MD030, list-marker-space)
125-125: Spaces after list markers
Expected: 1; Actual: 2
(MD030, list-marker-space)
126-126: Spaces after list markers
Expected: 1; Actual: 2
(MD030, list-marker-space)
131-131: Line length
Expected: 120; Actual: 194
(MD013, line-length)
135-135: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
135-135: Line length
Expected: 120; Actual: 192
(MD013, line-length)
139-139: Line length
Expected: 120; Actual: 147
(MD013, line-length)
140-140: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
143-143: Line length
Expected: 120; Actual: 238
(MD013, line-length)
147-147: Line length
Expected: 120; Actual: 208
(MD013, line-length)
148-148: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
153-153: Line length
Expected: 120; Actual: 137
(MD013, line-length)
171-171: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
177-177: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
182-182: Line length
Expected: 120; Actual: 139
(MD013, line-length)
192-192: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
197-197: Line length
Expected: 120; Actual: 151
(MD013, line-length)
205-205: Inconsistent indentation for list items at the same level
Expected: 3; Actual: 4
(MD005, list-indent)
214-214: Line length
Expected: 120; Actual: 129
(MD013, line-length)
218-218: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
221-221: Line length
Expected: 120; Actual: 256
(MD013, line-length)
223-223: Line length
Expected: 120; Actual: 147
(MD013, line-length)
228-228: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
232-232: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
233-233: Line length
Expected: 120; Actual: 193
(MD013, line-length)
235-235: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
237-237: Line length
Expected: 120; Actual: 291
(MD013, line-length)
242-242: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
262-262: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
270-270: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
277-277: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
278-278: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
284-284: Line length
Expected: 120; Actual: 161
(MD013, line-length)
291-291: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
294-294: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
304-304: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
308-308: Line length
Expected: 120; Actual: 305
(MD013, line-length)
310-310: Line length
Expected: 120; Actual: 150
(MD013, line-length)
312-312: Line length
Expected: 120; Actual: 260
(MD013, line-length)
325-325: Line length
Expected: 120; Actual: 146
(MD013, line-length)
335-335: Line length
Expected: 120; Actual: 142
(MD013, line-length)
349-349: Spaces after list markers
Expected: 1; Actual: 2
(MD030, list-marker-space)
351-351: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
360-360: Hard tabs
Column: 10
(MD010, no-hard-tabs)
WIP
Summary by CodeRabbit