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

rfc0010: Auto path discovery mechanism #3

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

Teebor-Choka
Copy link

@Teebor-Choka Teebor-Choka commented Mar 5, 2025

Summary by CodeRabbit

  • Documentation
    • Added a new document detailing RFC-0010: Network path discovery mechanism.
    • Outlines strategies for dynamic network probing to evaluate link reliability while preserving user anonymity.
    • Discusses the importance of maintaining an accurate network topology and defines key network terms.
    • Highlights Quality of Service (QoS) metrics and various probing strategies for effective communication paths.
    • Specifies telemetry packet content, compatibility, and security considerations related to the probing mechanism.

@Teebor-Choka Teebor-Choka self-assigned this Mar 5, 2025
Copy link

coderabbitai bot commented Mar 5, 2025

📝 Walkthrough

Walkthrough

This pull request introduces the new document rfc0010-network-discovery.md, which outlines RFC-0010. It describes a network path discovery mechanism using the HOPR protocol for dynamic network probing. The document defines key terms, roles (producer, consumer, relayer), and elaborates on probing strategies, Quality of Service considerations, telemetry packet formatting, and necessary infrastructure changes.

Changes

File(s) Summary of Changes
rfc0010-network-discovery.md New RFC document detailing the network path discovery mechanism using the HOPR protocol. It includes definitions, design considerations, probing strategies, telemetry packet structure, and modifications to current infrastructure.

Sequence Diagram(s)

sequenceDiagram
    participant P as Producer
    participant R as RFC-0010 Module
    participant N as Network Node

    P->>R: Initiate network probing process
    R->>N: Dispatch probe requests
    N-->>R: Return probe responses
    R->>R: Aggregate and analyze responses
    R-->>P: Deliver updated network topology and QoS metrics
Loading

Tip

⚡🧪 Multi-step agentic review comment chat (experimental)
  • We're introducing multi-step agentic chat in review comments. This experimental feature enhances review discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments.
    - To enable this feature, set early_access to true under in the settings.

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 15

🧹 Nitpick comments (2)
rfc0010-network-discovery (2)

1-1: Update the RFC title in the heading

The title in the heading uses a placeholder format \<RFC Title\> while the actual title is specified on line 4 as "Network path discovery".

-# RFC-0010: \<RFC Title\>
+# RFC-0010: Network path discovery

9-9: Clean up the version line

The version line contains both the actual version and template commentary. Remove the commented options to improve clarity.

-- **Version:** v0.0.0 (Raw)     #, v1.x.x (Finalized)  
+- **Version:** v0.0.0 (Raw)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ad591cc and 1165f99.

📒 Files selected for processing (1)
  • rfc0010-network-discovery (1 hunks)
🔇 Additional comments (1)
rfc0010-network-discovery (1)

1-79: Overall - Populate template with actual protocol details

This RFC document appears to be primarily a template with minimal customization. While the metadata (title, RFC number, author, dates) has been filled in, the content sections still contain placeholder instructions rather than actual information about the network path discovery protocol.

To make this a substantial RFC proposal, you need to fill in all sections with meaningful content specific to your network path discovery protocol. This will help reviewers understand what you're proposing and provide valuable feedback.

Is this intended to be an initial draft to establish the structure, or did you intend to submit a more complete proposal? I'd be happy to help with developing the content for specific sections if needed.

Comment on lines 28 to 33
Comprehensive description of the proposed solution, including:

- Protocol overview
- Technical details (data formats, APIs, endpoints)
- Supported use cases
- Diagrams (stored in `assets/` and referenced as `![Diagram](assets/diagram-name.png)`)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Replace specification placeholder with actual protocol details

The specification section contains template instructions rather than actual details about the network path discovery protocol.

Replace the placeholders with a comprehensive description of the proposed network path discovery protocol, including protocol overview, technical details, supported use cases, and references to relevant diagrams.

Comment on lines 35 to 42
```mermaid
flowchart LR

A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Replace generic diagram with one specific to network path discovery

The current mermaid diagram appears to be a generic example rather than one specifically relevant to network path discovery.

Replace this generic diagram with one that illustrates the network path discovery protocol. For example:

 ```mermaid
 flowchart LR
 
-A[Hard] -->|Text| B(Round)
-B --> C{Decision}
-C -->|One| D[Result 1]
-C -->|Two| E[Result 2]
+A[Source Node] -->|Discovery Request| B(Intermediate Node 1)
+B --> C(Intermediate Node 2)
+C --> D[Destination Node]
+D -->|Discovery Response| C
+C -->|Discovery Response| B
+B -->|Discovery Response| A

<!-- This is an auto-generated comment by CodeRabbit -->


## Compatibility

Address backward compatibility, migration paths, and impact on existing systems.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Replace compatibility placeholder with actual content

This section contains template instructions rather than actual compatibility considerations.

Replace the placeholder with specific information about how the proposed network path discovery protocol interacts with existing network protocols and systems, and any migration considerations.


## Security Considerations

Identify potential security risks, threat models, and mitigation strategies.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Replace security considerations placeholder with actual content

This section contains template instructions rather than actual security considerations for the network path discovery protocol.

Replace the placeholder with specific security risks and mitigations related to network path discovery, such as information disclosure risks, potential for denial of service attacks, or authentication/authorization requirements.

Comment on lines 74 to 78
Include all relevant references, such as:

- Other RFCs
- Research papers
- External documentation
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Replace references placeholder with actual references

This section contains template instructions rather than actual references related to the network path discovery protocol.

Replace the placeholder with specific references to other RFCs, research papers, or external documentation relevant to network path discovery. If there are no references at this stage, you can state "None at this time."


## Abstract

Provide a brief and clear summary of the RFC, outlining its purpose, context, and scope.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Replace abstract placeholder with actual content

The abstract section contains template instructions rather than the actual abstract content describing the network path discovery protocol.

Replace the placeholder instruction with a brief summary of the network path discovery protocol, including its purpose, context, and scope. For example:

-Provide a brief and clear summary of the RFC, outlining its purpose, context, and scope.
+This RFC proposes a network path discovery protocol that enables automatic detection and mapping of network paths between nodes. It aims to improve network visibility, troubleshooting capabilities, and facilitate more efficient routing decisions in complex network environments.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Provide a brief and clear summary of the RFC, outlining its purpose, context, and scope.
This RFC proposes a network path discovery protocol that enables automatic detection and mapping of network paths between nodes. It aims to improve network visibility, troubleshooting capabilities, and facilitate more efficient routing decisions in complex network environments.


## Terminology

Define key terms, abbreviations, and domain-specific language used throughout the RFC.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Define actual terminology relevant to network path discovery

This section contains a placeholder instruction rather than actual definitions of key terms related to network path discovery.

Replace the placeholder with actual definitions of terms specific to network path discovery. For example:

-Define key terms, abbreviations, and domain-specific language used throughout the RFC.
+- **Path**: A sequence of network nodes and links between a source and destination.
+- **Node**: A network device capable of forwarding packets (e.g., router, switch).
+- **Hop**: A single segment of a path between adjacent nodes.
+- **TTL (Time To Live)**: A field in IP packets that limits their lifetime in the network.
+- **RTT (Round Trip Time)**: The time it takes for a packet to travel from source to destination and back.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Define key terms, abbreviations, and domain-specific language used throughout the RFC.
-Define key terms, abbreviations, and domain-specific language used throughout the RFC.
+**Path**: A sequence of network nodes and links between a source and destination.
+**Node**: A network device capable of forwarding packets (e.g., router, switch).
+**Hop**: A single segment of a path between adjacent nodes.
+**TTL (Time To Live)**: A field in IP packets that limits their lifetime in the network.
+**RTT (Round Trip Time)**: The time it takes for a packet to travel from source to destination and back.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (3)
rfc0010-network-discovery (3)

32-35: ⚠️ Potential issue

Add missing specification content

The specification section appears empty without actual technical details about the network path discovery protocol. This is a critical section of the RFC as it should contain the detailed technical description of how the protocol works.

Based on content in the Design Considerations section, expand this section to include:

  • Detailed protocol flow
  • Message formats
  • Timing considerations
  • Protocol state machine
  • How probing results are collected and used

103-106: 🛠️ Refactor suggestion

Add content to Unresolved Questions section

The Unresolved Questions section is empty. Based on the document, some potential unresolved questions might include:

  1. What is the optimal probing frequency to balance network visibility with overhead?
  2. How should the algorithm adapt to networks of different sizes and topologies?
  3. What metrics are most valuable for path selection in different scenarios?
  4. How can the system detect and respond to adversarial probing attacks?

Adding these or other relevant questions would improve the completeness of the RFC.


11-11: ⚠️ Potential issue

Replace TODO references with actual references or mark as None

The references section in the metadata still contains a TODO marker. Either add specific references relevant to network path discovery or indicate that there are none at this time.

-- **References:** **TODO**
+- **References:** None
🧹 Nitpick comments (2)
rfc0010-network-discovery (2)

49-49: Clarify algorithm description terminology

The phrase "bread and width first" appears to be a typographical error.

-discovery algorithm works in competing modes: bread and width first
+discovery algorithm works in competing modes: breadth and depth first

This would clarify that you're referring to standard graph traversal algorithms.


77-79: Move testing information to a separate section

The TESTING information appears misplaced within the Design Considerations section. Consider moving this to a separate "Testing Considerations" section or to the Unresolved Questions/Future Work sections if it represents work that still needs to be done.

Also, elaborate on how these different graph types (sparsely connected, fully connected) affect the discovery mechanism.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1165f99 and 532e0ad.

📒 Files selected for processing (2)
  • assets/network-discovery-flow.mmd (1 hunks)
  • rfc0010-network-discovery (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • assets/network-discovery-flow.mmd
🔇 Additional comments (9)
rfc0010-network-discovery (9)

38-38: Remove placeholder text from Design Considerations section

Line 38 still contains template instructions rather than actual content.

-Discuss critical design decisions, trade-offs, and justification for chosen approaches over alternatives.

The rest of this section (lines 40-76) contains actual content about the probing mechanism, so this placeholder text should be removed.


52-55: Elaborate on algorithm operation steps

Steps 3 and 4 of the algorithm operations lack sufficient detail:

  2. generate paths for n-hop connections (referential probing = low frequency)
- 3. for sessions prepopulate the cache from 
+ 3. for sessions prepopulate the cache from previously discovered paths
  4. perform higher frequency checks up to X% of the original traffic
+ 5. update path metrics based on probing results

Additionally, specify what "X%" refers to in step 4 - is this a configurable parameter?


114-116: Add actual references or mark section as None

The References section lacks actual content. Either add relevant references to research papers, other RFCs, or documentation that informed this design, or explicitly state "None at this time."

Some potential references could include papers on anonymous routing protocols, network discovery mechanisms, or other HOPR protocol documentation.


15-15: Approve abstract content

The abstract effectively summarizes the purpose of the RFC: describing a mechanism for real-time HOPR network probing to construct optimal anonymous paths.


19-25: Approve motivation section

The motivation section clearly explains the need for network path discovery in the context of anonymous communication, highlighting the importance of:

  1. Constructing viable paths for bidirectional communication
  2. Maintaining anonymity against the target
  3. Adapting to network changes
  4. Enabling the source to probe network properties transparently

This provides a strong justification for the proposed mechanism.


83-83: Approve compatibility section

The compatibility section appropriately addresses how this feature affects the network, noting that it only impacts individual nodes and doesn't require network-wide changes or create backwards compatibility issues.


87-89: Approve security considerations

The security considerations section appropriately identifies potential resource consumption issues and the possibility of adversarial attacks that could drain resources, which are important security considerations for this type of mechanism.


93-98: Approve drawbacks section

The drawbacks section effectively outlines the limitations of the proposed approach, including resource constraints, scalability challenges with large networks, and the need for prior knowledge of targets. This shows a balanced assessment of the solution.


109-112: Approve future work section

The future work section identifies valuable areas for continued research and development, specifically around collecting additional network metrics and developing more sophisticated path generation strategies.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (4)
rfc0010-network-discovery (4)

93-95: Formalize the testing section

The testing section appears to be in note form rather than a formalized part of the RFC. Consider expanding this section with more details or moving it to a different section if it's not meant to be a standalone section.

-TESTING:
-- 2 types of graphs: sparsly connected, fully connected
+## Testing Considerations
+
+Testing of the network discovery mechanism should consider two types of network topologies:
+- Sparsely connected networks (limited connections between nodes)
+- Fully connected networks (high degree of interconnection between nodes)
+
+These different topologies will help validate the effectiveness of the discovery algorithm under varying network conditions.

65-65: Fix typographical error in algorithm description

There's a typographical error in the algorithm description:

-discovery algorithm works in competing modes: bread and width first
+discovery algorithm works in competing modes: breadth and width first

78-81: Improve clarity of telemetry metrics

The telemetry metrics description could be improved for clarity:

-   - iterating counter to verify the mixing property over a path (must be certain mixed attribute)
-   - path identification for attribution
-   - send timestamp for channel latency observations
-- calculate load balancing over paths based on the min stake on the path
+   - Iterating counter: To verify the mixing property over a path (message must contain certain mixed attributes)
+   - Path identifier: For accurate attribution of metrics to specific paths
+   - Timestamp: Included in messages to measure channel latency accurately
+4. Path load balancing metrics: Calculated based on the minimum stake present on nodes within the path

36-38: Add the 'A' article for consistency in terminology definitions

For consistency in the terminology definitions, add the article "A" at the beginning of each definition:

-producer - node originating the messages in the mixnet 
-consumer - node receiving the message in the mixnet
-relayer - node passing the message from one of producer/relayer to one of consumer/relayer
+producer - A node originating the messages in the mixnet 
+consumer - A node receiving the message in the mixnet
+relayer - A node passing the message from one of producer/relayer to one of consumer/relayer
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 532e0ad and cbb0a34.

📒 Files selected for processing (1)
  • rfc0010-network-discovery (1 hunks)
🔇 Additional comments (1)
rfc0010-network-discovery (1)

11-11: References section marked as TODO

The References section is currently marked as "TODO". Before finalizing the RFC, please complete this section with relevant citations or standards that support the network discovery mechanism.

Comment on lines 98 to 101
## Specification



Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Complete the specification section

The Specification section is currently empty. This is a critical section that should detail the protocol design, message formats, algorithms, and procedures. Based on the Design Considerations section, you should formalize the probing mechanism, discovery algorithm, and metrics into a comprehensive specification.

## Specification

### Discovery Protocol Overview
[Provide a high-level overview of the network discovery protocol]

### Message Formats
[Define the structure of probe messages, acknowledgments, and telemetry data]

### Discovery Algorithm
[Formalize the algorithm described in the Design Considerations section]

### Performance Parameters
[Define configurable parameters like probing frequency, cache duration, etc.]

### Implementation Requirements
[Specify what implementers must do to comply with this RFC]

Comment on lines 69 to 71
3. for sessions prepopulate the cache from
4. perform higher frequency checks up to X% of the original traffic

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Clarify algorithm operation points

The algorithm operation points need clarification:

-  3. for sessions prepopulate the cache from 
-  4. perform higher frequency checks up to X% of the original traffic
+  3. for sessions, prepopulate the cache from historical knowledge of successful paths
+  4. perform higher frequency probing checks, limited to X% of the original traffic volume to minimize overhead
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
3. for sessions prepopulate the cache from
4. perform higher frequency checks up to X% of the original traffic
3. for sessions, prepopulate the cache from historical knowledge of successful paths
4. perform higher frequency probing checks, limited to X% of the original traffic volume to minimize overhead

@Teebor-Choka Teebor-Choka force-pushed the kauki/rfc0010/network-discovery branch 2 times, most recently from f808e16 to 3d734dd Compare March 16, 2025 21:06
@Teebor-Choka Teebor-Choka force-pushed the kauki/rfc0010/network-discovery branch 2 times, most recently from 8d02fd4 to 54c0488 Compare March 16, 2025 21:10
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (18)
rfc0010-network-discovery.md (18)

13-16: Address excessive line length in the Abstract.
Line 15 exceeds the recommended 120 characters, which impairs readability. Consider breaking the long sentence into two or more lines.

🧰 Tools
🪛 GitHub Check: validate

[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-19: Improve heading spacing for better markdown compliance.
The “## Notational convention” heading should be surrounded by blank lines per MD022 guidelines.

-## Notational convention
+  
+## Notational convention
🧰 Tools
🪛 GitHub Check: validate

[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


20-23: Punctuate and clarify the Motivation text.
On line 22, a comma is likely missing after “HOPR protocol”. For clarity, consider rewriting the sentence as follows:

- The primary tenet of this network is the HOPR protocol enforcing cryptographic privacy guarantees for the end-to-end communication and hiding the message producer from the message consumer.
+ The primary tenet of this network is the HOPR protocol, enforcing cryptographic privacy guarantees for the end-to-end communication and hiding the message producer from the message consumer.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~22-~22: Possible missing comma found.
Context: ...imary tenet of this network is the HOPR protocol enforcing cryptographic privacy guarant...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 GitHub Check: validate

[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


42-43: Use countable term for nodes in design considerations.
Instead of “a sufficiently large amount of nodes”, use “a sufficiently large number of nodes” since “nodes” are countable.

- - be able to distinguish a sufficiently large amount of nodes in the network to guarantee privacy by the sheer size of the path pool
+ - be able to distinguish a sufficiently large number of nodes in the network to guarantee privacy by the sheer size of the path pool
🧰 Tools
🪛 LanguageTool

[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)

🪛 markdownlint-cli2 (0.17.2)

43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


51-51: Insert a missing comma for clarity.
For improved readability, insert a comma after “network” in the sentence describing uni- and bi-directional communication.

- For uni- and bi-directional communication to react to the changing nature of the network the producer MUST actively probe the network in a **continuous** manner.
+ For uni- and bi-directional communication to react to the changing nature of the network, the producer MUST actively probe the network in a **continuous** manner.
🧰 Tools
🪛 LanguageTool

[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

🪛 markdownlint-cli2 (0.17.2)

51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Correct spelling of 'feasability'.
The word “feasability” on line 53 should be corrected to “feasibility”.

- The measurement traffic itself SHOULD obey economic feasability, i.e. it SHOULD be proportional to the actual traffic...
+ The measurement traffic itself SHOULD obey economic feasibility, i.e. it SHOULD be proportional to the actual traffic...
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


57-69: Standardize bullet list style and fix misspellings in telemetry details.
For consistency with markdownlint rules (e.g., MD004), replace asterisks with dashes throughout the bullet lists in this section. Additionally, on line 63 the word “transfered” should be corrected to “transferred”.

-* MUST contain the path passability
+ - MUST contain the path passability
-  3. telemetry (transfered as a message content)
+  3. telemetry (transferred as a message content)

Ensure that the bullet for load balancing (line 68) follows the same style.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


62-62: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


74-79: Clarify probing mechanism steps.
The descriptions in the “Probing mechanism” section (especially step 4 on line 78) are a bit ambiguous (e.g., “full path bidirectional channel probing for 1-hop”). Consider rephrasing these steps for clarity and consistency.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Line length
Expected: 120; Actual: 141

(MD013, line-length)


87-90: Remove excessive blank lines.
There are multiple consecutive blank lines between lines 87 and 90. Consolidate these to a single blank line for improved formatting.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

88-88: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


89-89: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


90-90: Multiple consecutive blank lines
Expected: 1; Actual: 4

(MD012, no-multiple-blanks)


91-100: Enforce consistency in modifier hyphenation for session-related phrases.
Use “session-specific” (with a hyphen) instead of “session specific” in the relevant list items (lines 96 and 99) to maintain consistency.

-  - to generate session specific paths for session obfuscation
+  - to generate session-specific paths for session obfuscation
- - session incorporation: session level metrics, session specific path probing, session derived cover traffic exploratory flow
+ - session incorporation: session level metrics, session-specific path probing, session derived cover traffic exploratory flow
🧰 Tools
🪛 LanguageTool

[uncategorized] ~96-~96: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~99-~99: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)

🪛 markdownlint-cli2 (0.17.2)

92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


99-99: Line length
Expected: 120; Actual: 125

(MD013, line-length)


146-152: Standardize bullet list style in the Specification section.
Similar to earlier sections, ensure that the list items for the telemetry packet content use a consistent style (preferably dashes).

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

146-146: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


149-149: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


151-151: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


151-151: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


152-152: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


153-156: Clarify the Compatibility statement.
The sentence on line 155 is somewhat wordy. Consider rephrasing it for clarity, e.g.:

"This feature affects only a single node and does not introduce backward incompatibilities."

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

153-153: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


155-155: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


157-162: Refine wording in Security Considerations.
The sentence on line 159 can be improved by removing redundant phrasing. For instance:

- The probing traffic is not free in terms of both the physical resources, as well as the value incurred on various levels of the HOPR protocol stack.
+ The probing traffic is not free in terms of physical resources and the value incurred at various levels of the HOPR protocol stack.
🧰 Tools
🪛 LanguageTool

[grammar] ~162-~162: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)

🪛 markdownlint-cli2 (0.17.2)

158-158: Line length
Expected: 120; Actual: 182

(MD013, line-length)


162-162: Line length
Expected: 120; Actual: 148

(MD013, line-length)


163-169: Correct minor typographical errors in the Drawbacks section.
In drawback item 2, “guarantess” should be corrected to “guarantees”.

- ... offer reasonable guarantess about network visibility.
+ ... offer reasonable guarantees about network visibility.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

164-164: Line length
Expected: 120; Actual: 132

(MD013, line-length)


170-173: Clarify the Alternatives section.
The phrase “consolidate the control over the probing mechanism under the communication source” may be ambiguous. Consider rephrasing for clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~170-~170: Possible missing comma found.
Context: ...wbacks: 1. The probing activity is not free and a careful algorithm must be chosen ...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~171-~171: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

170-170: Line length
Expected: 120; Actual: 155

(MD013, line-length)


171-171: Line length
Expected: 120; Actual: 207

(MD013, line-length)


172-172: Line length
Expected: 120; Actual: 171

(MD013, line-length)


177-183: Enhance the Future Work section with actionable items.
While the Future Work section outlines general directions, consider expanding these points into more actionable items or suggestions to guide further development.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

180-180: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


181-181: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


184-186: Populate the References section.
The References section is currently empty. Please add relevant citations or a note indicating that no references are applicable at this time.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

186-186: Line length
Expected: 120; Actual: 138

(MD013, line-length)


1-186: Address overall markdownlint issues.
There are several markdownlint (MD009, MD013, MD022, MD032, MD012, etc.) warnings throughout the document regarding trailing spaces, line length, heading spacing, list spacing, and extra blank lines. Please review the static analysis hints and pipeline failures to adjust formatting for improved consistency and readability.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~22-~22: Possible missing comma found.
Context: ...imary tenet of this network is the HOPR protocol enforcing cryptographic privacy guarant...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~70-~70: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~70-~70: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[uncategorized] ~96-~96: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~99-~99: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~162-~162: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[uncategorized] ~170-~170: Possible missing comma found.
Context: ...wbacks: 1. The probing activity is not free and a careful algorithm must be chosen ...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~171-~171: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


62-62: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


70-70: Line length
Expected: 120; Actual: 258

(MD013, line-length)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Line length
Expected: 120; Actual: 141

(MD013, line-length)


81-81: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


85-85: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


88-88: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


89-89: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


90-90: Multiple consecutive blank lines
Expected: 1; Actual: 4

(MD012, no-multiple-blanks)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


99-99: Line length
Expected: 120; Actual: 125

(MD013, line-length)


146-146: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


149-149: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


151-151: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


151-151: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


152-152: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


153-153: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


155-155: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


158-158: Line length
Expected: 120; Actual: 182

(MD013, line-length)


162-162: Line length
Expected: 120; Actual: 148

(MD013, line-length)


164-164: Line length
Expected: 120; Actual: 132

(MD013, line-length)


170-170: Line length
Expected: 120; Actual: 155

(MD013, line-length)


171-171: Line length
Expected: 120; Actual: 207

(MD013, line-length)


172-172: Line length
Expected: 120; Actual: 171

(MD013, line-length)


176-176: Line length
Expected: 120; Actual: 182

(MD013, line-length)


180-180: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


181-181: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


186-186: Line length
Expected: 120; Actual: 138

(MD013, line-length)

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 49ed819 and 65b76eb.

📒 Files selected for processing (1)
  • rfc0010-network-discovery.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
rfc0010-network-discovery.md

[uncategorized] ~22-~22: Possible missing comma found.
Context: ...imary tenet of this network is the HOPR protocol enforcing cryptographic privacy guarant...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~70-~70: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~70-~70: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[uncategorized] ~96-~96: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~99-~99: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~162-~162: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[uncategorized] ~170-~170: Possible missing comma found.
Context: ...wbacks: 1. The probing activity is not free and a careful algorithm must be chosen ...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~171-~171: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 GitHub Check: validate
rfc0010-network-discovery.md

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 markdownlint-cli2 (0.17.2)
rfc0010-network-discovery.md

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


62-62: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


70-70: Line length
Expected: 120; Actual: 258

(MD013, line-length)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Line length
Expected: 120; Actual: 141

(MD013, line-length)


81-81: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


85-85: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


88-88: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


89-89: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


90-90: Multiple consecutive blank lines
Expected: 1; Actual: 4

(MD012, no-multiple-blanks)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


99-99: Line length
Expected: 120; Actual: 125

(MD013, line-length)


146-146: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


149-149: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


151-151: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


151-151: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


152-152: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


153-153: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


155-155: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


158-158: Line length
Expected: 120; Actual: 182

(MD013, line-length)


162-162: Line length
Expected: 120; Actual: 148

(MD013, line-length)


164-164: Line length
Expected: 120; Actual: 132

(MD013, line-length)


170-170: Line length
Expected: 120; Actual: 155

(MD013, line-length)


171-171: Line length
Expected: 120; Actual: 207

(MD013, line-length)


172-172: Line length
Expected: 120; Actual: 171

(MD013, line-length)


176-176: Line length
Expected: 120; Actual: 182

(MD013, line-length)


180-180: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


181-181: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


186-186: Line length
Expected: 120; Actual: 138

(MD013, line-length)

🪛 GitHub Actions: RFC Validation Pipeline
rfc0010-network-discovery.md

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🔇 Additional comments (2)
rfc0010-network-discovery.md (2)

101-145: Verify mermaid diagram accuracy.
The mermaid diagram appears to be well formatted. Please ensure it accurately reflects the intended network path relationships.


174-176: Address missing content in the Unresolved Questions section.
This section is currently empty. If there are no unresolved questions, consider removing the section; otherwise, list any open issues or questions.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

176-176: Line length
Expected: 120; Actual: 182

(MD013, line-length)

Comment on lines +49 to +50
The probing traffic and measurement packets MUST be indistinguishible from the ordinary traffic in order to gaurantee recording of proper private message propagation characterstics of the network nodes. Due to dynamic and unstable nature of the decentralized peer-to-peer nature of the mixnet, the message producer SHOULD use a dynamic mechanism for establishing

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Complete the incomplete sentence regarding dynamic mechanism.
Line 49 ends abruptly with “…mechanism for establishing”. Please complete this sentence to describe what mechanism is being established.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)

49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)

Copy link

@coderabbitai coderabbitai bot left a 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

🔭 Outside diff range comments (1)
rfc0010-network-discovery.md (1)

186-188: 🛠️ Refactor suggestion

Complete the References section.
The References section (lines 186–188) appears unfinished. Please either remove the placeholder or add the relevant citation(s) to ensure the document is complete and consistent.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

188-188: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🧹 Nitpick comments (4)
rfc0010-network-discovery.md (4)

15-16: Consider reflowing the Abstract text.
The abstract (line 15) is quite long and exceeds typical line length recommendations. Breaking it into shorter lines or paragraphs would improve readability and maintain consistency with markdown style guidelines.

🧰 Tools
🪛 GitHub Check: validate

[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-18: Improve heading formatting.
Add blank lines before and after headings (e.g., the “## Notational convention” heading on line 17) to conform with markdown formatting standards as suggested by markdownlint.

🧰 Tools
🪛 GitHub Check: validate

[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


167-169: Correct spelling error in the Drawbacks section.
There is a misspelling (“guarantess”) in the drawbacks description. Please correct it to “guarantees” to improve clarity.

🧰 Tools
🪛 LanguageTool

[typographical] ~168-~168: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

167-167: Line length
Expected: 120; Actual: 155

(MD013, line-length)


168-168: Line length
Expected: 120; Actual: 207

(MD013, line-length)


169-169: Line length
Expected: 120; Actual: 171

(MD013, line-length)


1-141: Address markdownlint formatting issues.
Multiple markdownlint issues have been reported throughout the file (e.g., trailing spaces, excessive line lengths, missing blank lines around headings and lists, and multiple consecutive blank lines). It is recommended to reformat the document accordingly for enhanced readability and compliance with style guidelines.

🧰 Tools
🪛 LanguageTool

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~70-~70: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~70-~70: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[uncategorized] ~96-~96: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~99-~99: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


62-62: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


70-70: Line length
Expected: 120; Actual: 258

(MD013, line-length)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Line length
Expected: 120; Actual: 141

(MD013, line-length)


81-81: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


85-85: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


88-88: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


89-89: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


90-90: Multiple consecutive blank lines
Expected: 1; Actual: 4

(MD012, no-multiple-blanks)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


99-99: Line length
Expected: 120; Actual: 125

(MD013, line-length)

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 65b76eb and 54c0488.

📒 Files selected for processing (1)
  • rfc0010-network-discovery.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
rfc0010-network-discovery.md

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~70-~70: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~70-~70: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[uncategorized] ~96-~96: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~99-~99: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~159-~159: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~168-~168: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 GitHub Check: validate
rfc0010-network-discovery.md

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 markdownlint-cli2 (0.17.2)
rfc0010-network-discovery.md

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


62-62: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


70-70: Line length
Expected: 120; Actual: 258

(MD013, line-length)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Line length
Expected: 120; Actual: 141

(MD013, line-length)


81-81: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


85-85: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


88-88: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


89-89: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


90-90: Multiple consecutive blank lines
Expected: 1; Actual: 4

(MD012, no-multiple-blanks)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


99-99: Line length
Expected: 120; Actual: 125

(MD013, line-length)


143-143: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


146-146: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


148-148: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


148-148: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


149-149: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


150-150: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


152-152: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


155-155: Line length
Expected: 120; Actual: 182

(MD013, line-length)


159-159: Line length
Expected: 120; Actual: 148

(MD013, line-length)


161-161: Line length
Expected: 120; Actual: 132

(MD013, line-length)


167-167: Line length
Expected: 120; Actual: 155

(MD013, line-length)


168-168: Line length
Expected: 120; Actual: 207

(MD013, line-length)


169-169: Line length
Expected: 120; Actual: 171

(MD013, line-length)


173-173: Line length
Expected: 120; Actual: 182

(MD013, line-length)


177-177: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


178-178: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


183-183: Line length
Expected: 120; Actual: 138

(MD013, line-length)

🪛 GitHub Actions: RFC Validation Pipeline
rfc0010-network-discovery.md

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🔇 Additional comments (3)
rfc0010-network-discovery.md (3)

10-11: Fix trailing whitespace and update header placeholder.
Please remove the trailing space at the end of line 10 and update the References field on line 11 (currently “TODO”) to either a valid reference or a note indicating that it’s pending.

🧰 Tools
🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


49-50: Complete the incomplete sentence in the Design Considerations section.
The sentence on line 49 ends abruptly with “for establishing” and does not specify what mechanism should be established. Please extend this sentence to clarify the intended mechanism.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)

49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


80-86: Revise the algorithm description.
The algorithm section (lines 80–86) contains nonstandard terminology (“bread and width first”) and an incomplete step on line 85 (“for sessions prepopulate the cache from …”). Consider replacing “bread and width first” with “breadth-first” (if that is the intended meaning) and complete the description for step 3.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

81-81: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


85-85: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

@Teebor-Choka Teebor-Choka force-pushed the kauki/rfc0010/network-discovery branch 3 times, most recently from fc4bded to 27d1cbc Compare March 16, 2025 21:28
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 1

🧹 Nitpick comments (17)
rfc0010-network-discovery.md (17)

15-15: Reduce line length in the Abstract.

This line currently exceeds the recommended 120 characters, which hampers readability. Consider reflowing or breaking the text into shorter lines.

🧰 Tools
🪛 GitHub Check: validate

[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-18: Surround headings with blank lines.

The heading "## Notational convention" (line 17) should be preceded and followed by a blank line to comply with markdown style guidelines.

🧰 Tools
🪛 GitHub Check: validate

[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


20-24: Improve paragraph readability in the Motivation section.

Several lines in this section extend well beyond the suggested length. Breaking these long paragraphs into multiple lines will enhance readability and maintainability.

🧰 Tools
🪛 GitHub Check: validate

[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


51-51: Add missing punctuation in the bi-directional communication sentence.

Consider inserting a comma after “network” to read:
"For uni- and bi-directional communication to react to the changing nature of the network, the producer MUST actively probe the network..."

🧰 Tools
🪛 LanguageTool

[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

🪛 markdownlint-cli2 (0.17.2)

51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


52-52: Correct the spelling of "feasability."

The term “feasability” on this line should be corrected to “feasibility” to ensure proper spelling.


53-53: Hyphenate compound adjective for clarity.

Change “node specific” to “node-specific” for improved clarity and consistency.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


68-70: Clarify sentence structure for enhanced readability.

A comma after introductory clauses could improve clarity in this section. Please review and adjust punctuation where necessary.

🧰 Tools
🪛 LanguageTool

[typographical] ~70-~70: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~70-~70: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)

🪛 markdownlint-cli2 (0.17.2)

70-70: Line length
Expected: 120; Actual: 258

(MD013, line-length)


72-72: Address the lingering TODO.

The TODO on this line (“TODO: could there be a pure p2p transport level mechanism only?”) remains unresolved. Consider either expanding on this point or removing it if it isn’t relevant.


91-100: Improve consistency in the Infrastructure changes section.

Consider hyphenating compound adjectives (e.g., change “session specific” to “session-specific”) for consistency. Also, clarify the first bullet regarding the removal of the channel graph’s quality to ensure the intended meaning is clear.

-   - to generate session specific paths for session obfuscation
+   - to generate session-specific paths for session obfuscation
- - session incorporation: session level metrics, session specific path probing, session derived cover traffic exploratory flow
+ - session incorporation: session-level metrics, session-specific path probing, session-derived cover traffic exploratory flow
🧰 Tools
🪛 LanguageTool

[uncategorized] ~96-~96: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~99-~99: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)

🪛 markdownlint-cli2 (0.17.2)

92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


99-99: Line length
Expected: 120; Actual: 125

(MD013, line-length)


149-153: Refine the formatting of the Telemetry packet content list.

The current indentation and bullet formatting in this section could be improved to better align with markdown standards. Consider removing extra spaces to ensure consistency.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

150-150: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


150-150: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


151-151: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


152-152: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


155-155: Clarify the compatibility description.

The sentence “There is no backwards compatibility or incompatibility…” is ambiguous. It might be clearer to state that this feature does not affect compatibility with existing systems.


159-161: Refine phrasing in the Security Considerations section.

The phrase “in terms of both the physical resources, as well as the value incurred…” can be reworded for clarity. For example, consider:
"The probing traffic incurs costs in physical resources and monetary value at various levels of the HOPR protocol stack."

🧰 Tools
🪛 LanguageTool

[grammar] ~161-~161: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)

🪛 markdownlint-cli2 (0.17.2)

161-161: Line length
Expected: 120; Actual: 148

(MD013, line-length)


169-171: Review the drawbacks section for clarity and accuracy.

  • Replace “unfeasible” with “not feasible” for better readability.
  • Correct “guarantess” to “guarantees.”
🧰 Tools
🪛 LanguageTool

[typographical] ~170-~170: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

169-169: Line length
Expected: 120; Actual: 155

(MD013, line-length)


170-170: Line length
Expected: 120; Actual: 207

(MD013, line-length)


171-171: Line length
Expected: 120; Actual: 171

(MD013, line-length)


174-176: Clarify language in the Alternatives section.

The phrase “hold trustless assumptions” is unclear. Consider rephrasing it to more explicitly convey the intended meaning regarding anonymity and control over the probing mechanism.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

175-175: Line length
Expected: 120; Actual: 182

(MD013, line-length)


177-180: Populate the Unresolved Questions section.

This section is currently empty. Please add any unresolved technical or design questions or remove the section if it is not needed.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

179-179: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


180-180: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


181-188: Enhance the Future Work section with additional details.

While the Future Work section outlines potential areas for improvement, expanding on these points with examples or further explanations could better guide future development efforts.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

185-185: Line length
Expected: 120; Actual: 138

(MD013, line-length)


188-190: Complete the References section.

The References section appears incomplete. Please include full citations or a note indicating that references will be updated in a future revision.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

190-190: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🛑 Comments failed to post (1)
rfc0010-network-discovery.md (1)

57-66: ⚠️ Potential issue

Fix incomplete telemetry list and ensure consistent list formatting.

  • The telemetry list under “The collected telemetry for measured path:” has an incomplete item at index 2 (line 62 is empty).
  • Also, the list uses mixed markers (asterisks and numerals); consider standardizing the bullet style (e.g., using dashes).
-* MUST contain the path passability
-  * path traversability by a single or multiple message
-* COULD be used to provide extra information
-  1. the latency of message propagation over the path 
-  2. 
-  3. telemetry (transfered as a message content)
+ - MUST contain the path passability
+   - path traversability by a single or multiple message
+ - COULD be used to provide extra information
+   1. the latency of message propagation over the path 
+   2. [Provide additional metric or remove this item]
+   3. telemetry (transferred as message content)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

The collected telemetry for measured path:
- MUST contain the path passability
  - path traversability by a single or multiple message
- COULD be used to provide extra information
  1. the latency of message propagation over the path 
  2. [Provide additional metric or remove this item]
  3. telemetry (transferred as message content)
     - iterating counter to verify the mixing property over a path (must be certain mixed attribute)
     - path identification for attribution
     - send timestamp for channel latency observations
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


62-62: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

@Teebor-Choka Teebor-Choka force-pushed the kauki/rfc0010/network-discovery branch from 27d1cbc to ba74981 Compare March 16, 2025 21:30
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🔭 Outside diff range comments (1)
rfc0010-network-discovery.md (1)

181-182: ⚠️ Potential issue

Remove stray text at the end of the document
The text “182” appears to be an extraneous entry at the end (lines 181–182). Please remove or replace this with the appropriate reference details.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

182-182: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🧹 Nitpick comments (14)
rfc0010-network-discovery.md (14)

15-15: Address excessive line length in the Abstract
Line 15 exceeds the recommended 120 characters (actual ≈373). Consider breaking this long sentence into multiple lines or paragraphs to improve readability and comply with markdownlint MD013.

🧰 Tools
🪛 GitHub Check: validate

[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Add a blank line before the heading "Notational convention"
For better readability and to satisfy markdownlint MD022, please insert a blank line before line 17.

🧰 Tools
🪛 GitHub Check: validate

[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md

🪛 markdownlint-cli2 (0.17.2)

17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Reduce line length in the Notational Convention description
Line 18 is very long (≈294 characters). Splitting the text into shorter lines will improve clarity and adhere to markdownlint MD013 guidelines.

🧰 Tools
🪛 GitHub Check: validate

[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Split the lengthy Motivation text for enhanced readability
The text at line 22 is excessively long (≈581 characters). Consider dividing it into multiple lines or sentences so that each line is within the recommended length.

🧰 Tools
🪛 GitHub Check: validate

[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md

🪛 markdownlint-cli2 (0.17.2)

22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


51-51: Refine terminology and punctuation in the bidirectional communication description
In line 51, consider replacing “bi-directional” with “bidirectional” for standard usage. Also, inserting a comma after the introductory clause can improve readability.

🧰 Tools
🪛 LanguageTool

[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

🪛 markdownlint-cli2 (0.17.2)

51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Correct the spelling of "feasability"
In line 53, please change “feasability” to “feasibility” to correct the spelling.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Hyphenate the compound adjective "node specific"
To clarify that the adjective modifies “measurements,” change “node specific” to “node‐specific.”

🧰 Tools
🪛 LanguageTool

[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)

🪛 markdownlint-cli2 (0.17.2)

55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


57-61: Unify list style and fix typo in Telemetry details
The unordered list items in this section use asterisks; for consistency with common markdown style, please use dashes (“-”) instead. Additionally, change “transfered” in line 61 to “transferred.”

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Enhance punctuation in the Telemetry section
Add a comma after the introductory phrase in line 63 to improve readability and ensure correct punctuation.

🧰 Tools
🪛 LanguageTool

[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)

🪛 markdownlint-cli2 (0.17.2)

63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


65-65: Clarify the TODO regarding a potential p2p mechanism
The TODO on line 65 is ambiguous. Please provide additional context or detail on whether a pure p2p transport-level mechanism is under consideration.


129-129: Eliminate redundancy in the Telemetry section heading
The heading “### Telemetry” followed immediately by “Telemetry packet content:” is repetitive. Consider removing one of the redundant elements to streamline the section.

🧰 Tools
🪛 LanguageTool

[duplication] ~129-~129: Possible typo: you repeated a word.
Context: ... up to X% of the original traffic ### Telemetry Telemetry packet content: - iterating counter t...

(ENGLISH_WORD_REPEAT_RULE)

🪛 markdownlint-cli2 (0.17.2)

129-129: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


141-145: Standardize hyphenation in session-related terminology
In lines 141 and 145, “session specific” should be hyphenated as “session-specific” for consistency and clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~141-~141: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~144-~144: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)

🪛 markdownlint-cli2 (0.17.2)

144-144: Line length
Expected: 120; Actual: 125

(MD013, line-length)


151-151: Improve sentence structure in Security Considerations
Revise the sentence on line 151 for parallelism. For example, consider:
“The probing traffic is costly in terms of physical resources and the value incurred across various levels of the HOPR protocol stack.”


157-164: Refine punctuation and phrasing in the Drawbacks list
Review the list items for clarity:

  • In list item 1, a comma after “not free” could ease reading.
  • In list item 2, rephrase the “therefore” clause (e.g., “..., which makes it advisable to cap the algorithm...”) to improve readability.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~161-~161: Possible missing comma found.
Context: ...wbacks: 1. The probing activity is not free and a careful algorithm must be chosen ...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~162-~162: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

161-161: Line length
Expected: 120; Actual: 155

(MD013, line-length)


162-162: Line length
Expected: 120; Actual: 207

(MD013, line-length)


163-163: Line length
Expected: 120; Actual: 171

(MD013, line-length)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0f419dc and 382371c.

📒 Files selected for processing (1)
  • rfc0010-network-discovery.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
rfc0010-network-discovery.md

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[duplication] ~129-~129: Possible typo: you repeated a word.
Context: ... up to X% of the original traffic ### Telemetry Telemetry packet content: - iterating counter t...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~141-~141: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~144-~144: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~153-~153: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[uncategorized] ~161-~161: Possible missing comma found.
Context: ...wbacks: 1. The probing activity is not free and a careful algorithm must be chosen ...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~162-~162: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 GitHub Check: validate
rfc0010-network-discovery.md

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 markdownlint-cli2 (0.17.2)
rfc0010-network-discovery.md

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


71-71: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


72-72: Line length
Expected: 120; Actual: 170

(MD013, line-length)


106-106: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


107-107: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


108-108: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


108-108: Line length
Expected: 120; Actual: 136

(MD013, line-length)


109-109: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


113-113: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


114-114: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


115-115: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


116-116: Line length
Expected: 120; Actual: 141

(MD013, line-length)


121-121: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


125-125: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


128-128: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


129-129: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


131-131: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


131-131: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


132-132: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


133-133: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


135-135: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


137-137: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


144-144: Line length
Expected: 120; Actual: 125

(MD013, line-length)


146-146: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


149-149: Line length
Expected: 120; Actual: 182

(MD013, line-length)


153-153: Line length
Expected: 120; Actual: 148

(MD013, line-length)


155-155: Line length
Expected: 120; Actual: 132

(MD013, line-length)


161-161: Line length
Expected: 120; Actual: 155

(MD013, line-length)


162-162: Line length
Expected: 120; Actual: 207

(MD013, line-length)


163-163: Line length
Expected: 120; Actual: 171

(MD013, line-length)


167-167: Line length
Expected: 120; Actual: 182

(MD013, line-length)


171-171: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


172-172: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


177-177: Line length
Expected: 120; Actual: 138

(MD013, line-length)

🪛 GitHub Actions: RFC Validation Pipeline
rfc0010-network-discovery.md

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🔇 Additional comments (4)
rfc0010-network-discovery.md (4)

10-11: Fix trailing whitespace and update placeholder in the RFC header
The "Supersedes" and "References" fields still exhibit issues—a trailing space in line 10 and a placeholder (“TODO”) in line 11. Please remove the trailing whitespace and update the reference field according to the project’s guidelines.

- - **Supersedes:** None␣
+ - **Supersedes:** None
- - **References:** **TODO**
+ - **References:** [Insert appropriate references or a note indicating pending update]
🧰 Tools
🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


49-49: Complete the incomplete sentence regarding the dynamic mechanism
Line 49 ends abruptly with “…mechanism for establishing”. Please complete this sentence to clearly describe what mechanism is being established.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)

49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


121-121: Revise algorithm terminology
On line 121, replace the nonstandard phrase “bread and width first” with “breadth-first” to align with conventional terminology.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

121-121: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


125-125: Complete the cache prepopulation description
The step in line 125 (“for sessions prepopulate the cache from”) is incomplete. Please specify the source or mechanism for cache prepopulation.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

125-125: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (9)
rfc0010-network-discovery.md (9)

10-11: Fix trailing whitespace and update placeholder in the RFC header.
There is a trailing space at the end of line 10 and the References field still contains the TODO placeholder. Please remove any trailing whitespace and either update the References field with proper citations or add a clarifying note if it is intentionally left as a placeholder.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


51-51: Clarify communication direction terminology.
Reconsider the phrasing “For uni- and bi-directional communication…”—using “unidirectional and bidirectional” may improve clarity and consistency.

🧰 Tools
🪛 LanguageTool

[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)

🪛 markdownlint-cli2 (0.17.2)

51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


65-66: Resolve the TODO regarding transport level mechanism.
The TODO on line 65 ("could there be a pure p2p transport level mechanism only?") remains unresolved. Please complete this thought or remove the placeholder if it is no longer applicable.


76-77: Correct misspelling in topology description.
On line 77, “topologoy reconfiguration” should be corrected to “topology reconfiguration”.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


89-89: Fix possessive pronoun error.
Change “it's results” on line 89 to “its results” to use the correct possessive form.

🧰 Tools
🪛 LanguageTool

[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)

🪛 markdownlint-cli2 (0.17.2)

89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


194-199: Ensure consistent phrasing for session-specific operations.
In lines 196 and 199, the term “session specific” appears without the hyphen. Changing these to “session-specific” would be more consistent. Additionally, consider clarifying what is meant by “new path graph resulting from this (binary option)”.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~196-~196: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~199-~199: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)

🪛 markdownlint-cli2 (0.17.2)

199-199: Line length
Expected: 120; Actual: 125

(MD013, line-length)


212-214: Refine language in the drawbacks section.
On line 213, “guarantess” should be corrected to “guarantees.” Consider rephrasing the sentence for better clarity regarding the limitations of real-time network probing.


165-168: Clarify throughput considerations.
In this section, consider replacing “min stake” with “minimum stake” (line 166) for clarity. It might also help to elaborate on how load balancing is calculated in conjunction with the actual measured throughput.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

165-165: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


165-165: Line length
Expected: 120; Actual: 136

(MD013, line-length)


166-166: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


1-231: Address Markdown formatting issues throughout the document.
Multiple markdownlint warnings have been flagged (e.g., trailing spaces [MD009], excessive line lengths [MD013], missing blank lines around headings [MD022], inconsistent list markers [MD004], and multiple consecutive blank lines [MD012]). Please review these issues and adjust the document formatting accordingly to improve readability and maintain compliance with markdown style guidelines.

🧰 Tools
🪛 LanguageTool

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[typographical] ~69-~69: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...ing mechanism aims to probe the network topology, therefore it SHOULD be guided by the graph networ...

(THUS_SENTENCE)


[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)


[style] ~144-~144: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... O --> E; ``` Loopback probing options with respect to the sender: 1. 1-hop to self: first ord...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~150-~150: Style-wise, it’s not ideal to insert an adverb (‘systematically’) in the middle of an infinitive construction (‘to explore’). Try moving the adverb to avoid split infinitives.
Context: ...ch (BFS) is a graph traversal algorithm used to systematically explore nodes and edges in a graph. It starts at a selected nod...

(SPLIT_INFINITIVE)


[duplication] ~184-~184: Possible typo: you repeated a word.
Context: ... up to X% of the original traffic ### Telemetry Telemetry packet content: - iterating counter t...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~196-~196: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~199-~199: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~208-~208: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~217-~217: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


69-69: Line length
Expected: 120; Actual: 153

(MD013, line-length)


71-71: Line length
Expected: 120; Actual: 211

(MD013, line-length)


73-73: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


79-79: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


83-83: Line length
Expected: 120; Actual: 169

(MD013, line-length)


87-87: Line length
Expected: 120; Actual: 193

(MD013, line-length)


89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


91-91: Line length
Expected: 120; Actual: 293

(MD013, line-length)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


95-95: Line length
Expected: 120; Actual: 299

(MD013, line-length)


98-98: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


102-102: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


104-104: Line length
Expected: 120; Actual: 251

(MD013, line-length)


106-106: Line length
Expected: 120; Actual: 620

(MD013, line-length)


108-108: Line length
Expected: 120; Actual: 224

(MD013, line-length)


110-110: Line length
Expected: 120; Actual: 172

(MD013, line-length)


145-145: Line length
Expected: 120; Actual: 141

(MD013, line-length)


145-145: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


149-149: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


150-150: Line length
Expected: 120; Actual: 284

(MD013, line-length)


152-152: Line length
Expected: 120; Actual: 197

(MD013, line-length)


154-154: Line length
Expected: 120; Actual: 191

(MD013, line-length)


156-156: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


157-157: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


158-158: Line length
Expected: 120; Actual: 260

(MD013, line-length)


160-160: Line length
Expected: 120; Actual: 216

(MD013, line-length)


162-162: Line length
Expected: 120; Actual: 200

(MD013, line-length)


164-164: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


165-165: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


165-165: Line length
Expected: 120; Actual: 136

(MD013, line-length)


166-166: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


170-170: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


171-171: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


172-172: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


174-174: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


176-176: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


180-180: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


183-183: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


184-184: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


186-186: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


186-186: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


187-187: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


188-188: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


190-190: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


192-192: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


199-199: Line length
Expected: 120; Actual: 125

(MD013, line-length)


201-201: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


204-204: Line length
Expected: 120; Actual: 182

(MD013, line-length)


208-208: Line length
Expected: 120; Actual: 148

(MD013, line-length)


210-210: Line length
Expected: 120; Actual: 132

(MD013, line-length)


216-216: Line length
Expected: 120; Actual: 155

(MD013, line-length)


217-217: Line length
Expected: 120; Actual: 207

(MD013, line-length)


218-218: Line length
Expected: 120; Actual: 171

(MD013, line-length)


222-222: Line length
Expected: 120; Actual: 182

(MD013, line-length)


226-226: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


227-227: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 382371c and 5889399.

📒 Files selected for processing (1)
  • rfc0010-network-discovery.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
rfc0010-network-discovery.md

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[typographical] ~69-~69: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...ing mechanism aims to probe the network topology, therefore it SHOULD be guided by the graph networ...

(THUS_SENTENCE)


[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)


[style] ~144-~144: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... O --> E; ``` Loopback probing options with respect to the sender: 1. 1-hop to self: first ord...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~150-~150: Style-wise, it’s not ideal to insert an adverb (‘systematically’) in the middle of an infinitive construction (‘to explore’). Try moving the adverb to avoid split infinitives.
Context: ...ch (BFS) is a graph traversal algorithm used to systematically explore nodes and edges in a graph. It starts at a selected nod...

(SPLIT_INFINITIVE)


[duplication] ~184-~184: Possible typo: you repeated a word.
Context: ... up to X% of the original traffic ### Telemetry Telemetry packet content: - iterating counter t...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~196-~196: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~199-~199: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~208-~208: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~217-~217: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)
rfc0010-network-discovery.md

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


69-69: Line length
Expected: 120; Actual: 153

(MD013, line-length)


71-71: Line length
Expected: 120; Actual: 211

(MD013, line-length)


73-73: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


79-79: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


83-83: Line length
Expected: 120; Actual: 169

(MD013, line-length)


87-87: Line length
Expected: 120; Actual: 193

(MD013, line-length)


89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


91-91: Line length
Expected: 120; Actual: 293

(MD013, line-length)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


95-95: Line length
Expected: 120; Actual: 299

(MD013, line-length)


98-98: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


102-102: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


104-104: Line length
Expected: 120; Actual: 251

(MD013, line-length)


106-106: Line length
Expected: 120; Actual: 620

(MD013, line-length)


108-108: Line length
Expected: 120; Actual: 224

(MD013, line-length)


110-110: Line length
Expected: 120; Actual: 172

(MD013, line-length)


145-145: Line length
Expected: 120; Actual: 141

(MD013, line-length)


145-145: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


149-149: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


150-150: Line length
Expected: 120; Actual: 284

(MD013, line-length)


152-152: Line length
Expected: 120; Actual: 197

(MD013, line-length)


154-154: Line length
Expected: 120; Actual: 191

(MD013, line-length)


156-156: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


157-157: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


158-158: Line length
Expected: 120; Actual: 260

(MD013, line-length)


160-160: Line length
Expected: 120; Actual: 216

(MD013, line-length)


162-162: Line length
Expected: 120; Actual: 200

(MD013, line-length)


164-164: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


165-165: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


165-165: Line length
Expected: 120; Actual: 136

(MD013, line-length)


166-166: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


170-170: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


171-171: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


172-172: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


174-174: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


176-176: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


180-180: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


183-183: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


184-184: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


186-186: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


186-186: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


187-187: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


188-188: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


190-190: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


192-192: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


199-199: Line length
Expected: 120; Actual: 125

(MD013, line-length)


201-201: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


204-204: Line length
Expected: 120; Actual: 182

(MD013, line-length)


208-208: Line length
Expected: 120; Actual: 148

(MD013, line-length)


210-210: Line length
Expected: 120; Actual: 132

(MD013, line-length)


216-216: Line length
Expected: 120; Actual: 155

(MD013, line-length)


217-217: Line length
Expected: 120; Actual: 207

(MD013, line-length)


218-218: Line length
Expected: 120; Actual: 171

(MD013, line-length)


222-222: Line length
Expected: 120; Actual: 182

(MD013, line-length)


226-226: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


227-227: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


232-232: Line length
Expected: 120; Actual: 138

(MD013, line-length)

🪛 GitHub Check: validate
rfc0010-network-discovery.md

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 GitHub Actions: RFC Validation Pipeline
rfc0010-network-discovery.md

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🔇 Additional comments (2)
rfc0010-network-discovery.md (2)

49-49: Complete the sentence and correct spelling errors.
Line 49 ends abruptly with “…mechanism for establishing”. Please complete the sentence to clearly state what mechanism is being established. Also, fix the spelling issues: change “indistinguishible” to “indistinguishable”, “gaurantee” to “guarantee”, and “characterstics” to “characteristics”.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


176-176: Revise algorithm terminology.
The phrase “bread and width first” on line 176 appears to be a mistake. Consider replacing it with “breadth-first” to accurately describe the algorithm.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

176-176: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)

Comment on lines 179 to 181
2. generate paths for n-hop connections (referential probing = low frequency)
3. for sessions prepopulate the cache from
4. perform higher frequency checks up to X% of the original traffic
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Complete the cache prepopulation description.
The statement “for sessions prepopulate the cache from” (line 180) is incomplete. Please complete the description by clarifying what source or data should be used for prepopulating the cache.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

180-180: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

Copy link

@coderabbitai coderabbitai bot left a 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

♻️ Duplicate comments (2)
rfc0010-network-discovery.md (2)

229-231: ⚠️ Potential issue

Incomplete Cache Prepopulation Description

The description in step 3—"for sessions prepopulate the cache from"—is incomplete. Please complete this sentence by specifying the source or mechanism for prepopulating the cache for sessions.

- 3. for sessions prepopulate the cache from 
+ 3. for sessions, prepopulate the cache from [specify the data source or mechanism]
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

230-230: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: ⚠️ Potential issue

Incomplete Sentence and Spelling Corrections in Probing Description

Line 49 is incomplete and contains several spelling issues:

  • “indistinguible” should be “indistinguishable”
  • “gaurantee” should be “guarantee”
  • “characterstics” should be “characteristics”

Additionally, the sentence ends abruptly. Please complete the sentence with a clear description of the mechanism.

- The probing traffic and measurement packets MUST be indistinguible from the ordinary traffic in order to gaurantee recording of proper private message propagation characterstics of the network nodes. Due to dynamic and unstable nature of the decentralized peer-to-peer nature of the mixnet, the message producer SHOULD use a dynamic mechanism for establishing 
+ The probing traffic and measurement packets MUST be indistinguishable from the ordinary traffic in order to guarantee proper recording of message propagation characteristics of the network nodes. Due to the dynamic and unstable nature of the decentralized peer-to-peer mixnet, the message producer SHOULD use a dynamic mechanism for establishing [complete description here].
🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)

49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)

🧹 Nitpick comments (3)
rfc0010-network-discovery.md (3)

51-51: Clarify Communication Typology

The phrasing “uni- and bi-directional communication” could be more clearly expressed as “unidirectional and bidirectional communication.” Additionally, consider inserting a comma after “network” to improve readability.

🧰 Tools
🪛 LanguageTool

[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

🪛 markdownlint-cli2 (0.17.2)

51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


89-89: Typographical Correction in Depth-First Approach Description

There is a typo on line 89: “it's results” should be “its results.”

- ... lies in the fact that it's results can be combined ...
+ ... lies in the fact that its results can be combined ...
🧰 Tools
🪛 LanguageTool

[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)

🪛 markdownlint-cli2 (0.17.2)

89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


1-287: Markdown Formatting and Style Conformance

There are several markdownlint issues throughout the document that affect its readability and consistency. Please address the following:

  • Trailing Spaces (MD009): Remove trailing whitespace (e.g., line 10).
  • Line Length (MD013): Ensure lines do not exceed 120 characters (notably lines 15, 18, 22, etc.).
  • Heading Spacing (MD022): Ensure all headings are surrounded by blank lines.
  • List Styling (MD004 & MD032): Use dashes for unordered list items and ensure lists are formatted with proper surrounding blank lines.

Running a markdown linter and addressing these issues will enhance document clarity.

🧰 Tools
🪛 LanguageTool

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[typographical] ~69-~69: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...ing mechanism aims to probe the network topology, therefore it SHOULD be guided by the graph networ...

(THUS_SENTENCE)


[uncategorized] ~71-~71: A comma might be missing here.
Context: ... used together. With increasing network size it is unrealistic to probe the network ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~97-~97: A comma might be missing here.
Context: ... abstracting the transport interactions completely consists of 3 components: 1. path gener...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~110-~110: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...network size. Loopback probing options with respect to the sender: 1. 1-hop to self: first ord...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~117-~117: Style-wise, it’s not ideal to insert an adverb (‘systematically’) in the middle of an infinitive construction (‘to explore’). Try moving the adverb to avoid split infinitives.
Context: ...ch (BFS) is a graph traversal algorithm used to systematically explore nodes and edges in a graph. It MUST start at the sender...

(SPLIT_INFINITIVE)


[grammar] ~141-~141: Uncountable nouns are usually not used with an indefinite article. Use simply “1-hop probing traffic”.
Context: ...rom the immediate vicinity of A using a 1-hop probing traffic: ``` A -> B -> A A -> C -> A A -> D -> ...

(A_UNCOUNTABLE)


[uncategorized] ~151-~151: Possible missing preposition found.
Context: ...anch before backtracking. It MUST start the current node to explore each branch of ...

(AI_EN_LECTOR_MISSING_PREPOSITION)


[duplication] ~184-~184: Possible typo: you repeated a word.
Context: ... -> E -> A A -> B -> D -> A ``` ###### Average Average values calculated over the differences ...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~185-~185: A comma might be missing here.
Context: ...iple averaged telemetry values over the path it is possible to establish ansemble in...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[typographical] ~194-~194: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...A -> B -> F -> A - A -> B -> A = 545 - 421 = 124ms. #### Next-hop telemetry ...

(DASH_RULE)


[grammar] ~199-~199: You used an adverb (‘possibly’) instead of an adjective, or a noun (‘channel’) instead of another adjective.
Context: ...e used as a source of information for a possibly channel opening and closing strategy responsibl...

(A_RB_NN)


[duplication] ~234-~234: Possible typo: you repeated a word.
Context: ... up to X% of the original traffic ### Telemetry Telemetry packet content: - iterating counter t...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~246-~246: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~249-~249: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~258-~258: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~267-~267: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


69-69: Line length
Expected: 120; Actual: 153

(MD013, line-length)


71-71: Line length
Expected: 120; Actual: 211

(MD013, line-length)


73-73: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


79-79: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


83-83: Line length
Expected: 120; Actual: 169

(MD013, line-length)


87-87: Line length
Expected: 120; Actual: 193

(MD013, line-length)


89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


91-91: Line length
Expected: 120; Actual: 293

(MD013, line-length)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


95-95: Line length
Expected: 120; Actual: 299

(MD013, line-length)


98-98: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


102-102: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


104-104: Line length
Expected: 120; Actual: 251

(MD013, line-length)


106-106: Line length
Expected: 120; Actual: 620

(MD013, line-length)


108-108: Line length
Expected: 120; Actual: 224

(MD013, line-length)


111-111: Line length
Expected: 120; Actual: 141

(MD013, line-length)


111-111: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


115-115: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


116-116: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


117-117: Line length
Expected: 120; Actual: 257

(MD013, line-length)


119-119: Line length
Expected: 120; Actual: 204

(MD013, line-length)


138-138: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


139-139: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


141-141: Line length
Expected: 120; Actual: 158

(MD013, line-length)


142-142: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


142-142: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


148-148: Line length
Expected: 120; Actual: 151

(MD013, line-length)


150-150: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


151-151: Line length
Expected: 120; Actual: 234

(MD013, line-length)


155-155: Line length
Expected: 120; Actual: 349

(MD013, line-length)


174-174: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


175-175: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


177-177: Line length
Expected: 120; Actual: 203

(MD013, line-length)


178-178: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


178-178: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


184-184: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


184-184: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


185-185: Line length
Expected: 120; Actual: 269

(MD013, line-length)


189-189: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


189-189: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


194-194: Line length
Expected: 120; Actual: 148

(MD013, line-length)


196-196: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


197-197: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


198-198: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


199-199: Line length
Expected: 120; Actual: 186

(MD013, line-length)


201-201: Line length
Expected: 120; Actual: 223

(MD013, line-length)


202-202: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


205-205: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


207-207: Line length
Expected: 120; Actual: 152

(MD013, line-length)


209-209: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


210-210: Line length
Expected: 120; Actual: 149

(MD013, line-length)


212-212: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


214-214: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


215-215: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


215-215: Line length
Expected: 120; Actual: 136

(MD013, line-length)


216-216: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


220-220: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


221-221: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


222-222: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


224-224: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


226-226: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


230-230: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


233-233: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


234-234: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


236-236: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


236-236: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


237-237: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


238-238: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


240-240: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


242-242: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


249-249: Line length
Expected: 120; Actual: 125

(MD013, line-length)


251-251: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


254-254: Line length
Expected: 120; Actual: 182

(MD013, line-length)


258-258: Line length
Expected: 120; Actual: 148

(MD013, line-length)


260-260: Line length
Expected: 120; Actual: 132

(MD013, line-length)


266-266: Line length
Expected: 120; Actual: 155

(MD013, line-length)


267-267: Line length
Expected: 120; Actual: 207

(MD013, line-length)


268-268: Line length
Expected: 120; Actual: 171

(MD013, line-length)


272-272: Line length
Expected: 120; Actual: 182

(MD013, line-length)


276-276: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


277-277: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


282-282: Line length
Expected: 120; Actual: 138

(MD013, line-length)


287-287: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5889399 and 40c1526.

📒 Files selected for processing (1)
  • rfc0010-network-discovery.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
rfc0010-network-discovery.md

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[typographical] ~69-~69: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...ing mechanism aims to probe the network topology, therefore it SHOULD be guided by the graph networ...

(THUS_SENTENCE)


[uncategorized] ~71-~71: A comma might be missing here.
Context: ... used together. With increasing network size it is unrealistic to probe the network ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~97-~97: A comma might be missing here.
Context: ... abstracting the transport interactions completely consists of 3 components: 1. path gener...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~110-~110: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...network size. Loopback probing options with respect to the sender: 1. 1-hop to self: first ord...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~117-~117: Style-wise, it’s not ideal to insert an adverb (‘systematically’) in the middle of an infinitive construction (‘to explore’). Try moving the adverb to avoid split infinitives.
Context: ...ch (BFS) is a graph traversal algorithm used to systematically explore nodes and edges in a graph. It MUST start at the sender...

(SPLIT_INFINITIVE)


[grammar] ~141-~141: Uncountable nouns are usually not used with an indefinite article. Use simply “1-hop probing traffic”.
Context: ...rom the immediate vicinity of A using a 1-hop probing traffic: ``` A -> B -> A A -> C -> A A -> D -> ...

(A_UNCOUNTABLE)


[uncategorized] ~151-~151: Possible missing preposition found.
Context: ...anch before backtracking. It MUST start the current node to explore each branch of ...

(AI_EN_LECTOR_MISSING_PREPOSITION)


[duplication] ~184-~184: Possible typo: you repeated a word.
Context: ... -> E -> A A -> B -> D -> A ``` ###### Average Average values calculated over the differences ...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~185-~185: A comma might be missing here.
Context: ...iple averaged telemetry values over the path it is possible to establish ansemble in...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[typographical] ~194-~194: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...A -> B -> F -> A - A -> B -> A = 545 - 421 = 124ms. #### Next-hop telemetry ...

(DASH_RULE)


[grammar] ~199-~199: You used an adverb (‘possibly’) instead of an adjective, or a noun (‘channel’) instead of another adjective.
Context: ...e used as a source of information for a possibly channel opening and closing strategy responsibl...

(A_RB_NN)


[duplication] ~234-~234: Possible typo: you repeated a word.
Context: ... up to X% of the original traffic ### Telemetry Telemetry packet content: - iterating counter t...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~246-~246: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~249-~249: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~258-~258: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~267-~267: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)
rfc0010-network-discovery.md

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 170

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


69-69: Line length
Expected: 120; Actual: 153

(MD013, line-length)


71-71: Line length
Expected: 120; Actual: 211

(MD013, line-length)


73-73: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


79-79: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


83-83: Line length
Expected: 120; Actual: 169

(MD013, line-length)


87-87: Line length
Expected: 120; Actual: 193

(MD013, line-length)


89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


91-91: Line length
Expected: 120; Actual: 293

(MD013, line-length)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


95-95: Line length
Expected: 120; Actual: 299

(MD013, line-length)


98-98: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


102-102: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


104-104: Line length
Expected: 120; Actual: 251

(MD013, line-length)


106-106: Line length
Expected: 120; Actual: 620

(MD013, line-length)


108-108: Line length
Expected: 120; Actual: 224

(MD013, line-length)


111-111: Line length
Expected: 120; Actual: 141

(MD013, line-length)


111-111: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


115-115: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


116-116: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


117-117: Line length
Expected: 120; Actual: 257

(MD013, line-length)


119-119: Line length
Expected: 120; Actual: 204

(MD013, line-length)


138-138: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


139-139: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


141-141: Line length
Expected: 120; Actual: 158

(MD013, line-length)


142-142: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


142-142: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


148-148: Line length
Expected: 120; Actual: 151

(MD013, line-length)


150-150: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


151-151: Line length
Expected: 120; Actual: 234

(MD013, line-length)


155-155: Line length
Expected: 120; Actual: 349

(MD013, line-length)


174-174: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


175-175: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


177-177: Line length
Expected: 120; Actual: 203

(MD013, line-length)


178-178: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


178-178: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


184-184: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


184-184: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


185-185: Line length
Expected: 120; Actual: 269

(MD013, line-length)


189-189: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


189-189: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


194-194: Line length
Expected: 120; Actual: 148

(MD013, line-length)


196-196: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


197-197: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


198-198: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


199-199: Line length
Expected: 120; Actual: 186

(MD013, line-length)


201-201: Line length
Expected: 120; Actual: 223

(MD013, line-length)


202-202: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


205-205: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


207-207: Line length
Expected: 120; Actual: 152

(MD013, line-length)


209-209: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


210-210: Line length
Expected: 120; Actual: 149

(MD013, line-length)


212-212: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


214-214: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


215-215: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


215-215: Line length
Expected: 120; Actual: 136

(MD013, line-length)


216-216: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


220-220: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


221-221: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


222-222: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


224-224: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


226-226: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


230-230: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


233-233: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


234-234: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


236-236: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


236-236: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


237-237: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


238-238: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


240-240: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


242-242: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


249-249: Line length
Expected: 120; Actual: 125

(MD013, line-length)


251-251: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


254-254: Line length
Expected: 120; Actual: 182

(MD013, line-length)


258-258: Line length
Expected: 120; Actual: 148

(MD013, line-length)


260-260: Line length
Expected: 120; Actual: 132

(MD013, line-length)


266-266: Line length
Expected: 120; Actual: 155

(MD013, line-length)


267-267: Line length
Expected: 120; Actual: 207

(MD013, line-length)


268-268: Line length
Expected: 120; Actual: 171

(MD013, line-length)


272-272: Line length
Expected: 120; Actual: 182

(MD013, line-length)


276-276: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


277-277: Multiple consecutive blank lines
Expected: 1; Actual: 3

(MD012, no-multiple-blanks)


282-282: Line length
Expected: 120; Actual: 138

(MD013, line-length)

🪛 GitHub Check: validate
rfc0010-network-discovery.md

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 GitHub Actions: RFC Validation Pipeline
rfc0010-network-discovery.md

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🔇 Additional comments (1)
rfc0010-network-discovery.md (1)

10-11: RFC Header Cleanup: Trailing Whitespace and Reference Placeholder

Trailing whitespace is present on line 10 and the References field still contains a placeholder (“TODO”). This is similar to previous feedback. Please remove any trailing spaces and update or remove the placeholder in the References field.

- - **Supersedes:** None␣
+ - **Supersedes:** None
- - **References:** **TODO**
+ - **References:** [Insert appropriate references or a note indicating a pending update]
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

Copy link

@coderabbitai coderabbitai bot left a 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 (6)
rfc0010-network-discovery.md (6)

65-65: Unresolved TODO Regarding Pure P2P Mechanism
Line 65 contains a TODO note:

“TODO: could there be a pure p2p transport level mechanism only?”
Consider expanding this note with additional context or a decision on whether to explore this possibility. If it’s meant to spark further discussion, a clarifying comment could help.


152-156: Fenced Code Block Lacks Language Identifier (BFA Probing Pattern)
The code block displaying the BFA probing pattern (lines 152–156) does not specify a language. Adding a language (e.g. using “text” instead of “”) will improve syntax highlighting and readability in markdown renderers.

- ```
- A -> B -> A
- A -> C -> A
- A -> D -> A
- ```
+ ```text
+ A -> B -> A
+ A -> C -> A
+ A -> D -> A
+ ```
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

152-152: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


152-152: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


187-192: Fenced Code Block Lacks Language Identifier (DFA Probing Pattern)
Similarly, the fenced code block for the DFA probing pattern (lines 187–192) would benefit from an explicit language identifier for clarity. Consider, for example, using “text” instead of “” if no specific language is targeted.

- ```
- A -> B -> F -> A
- A -> C -> F -> E -> A
- A -> B -> D -> A
- ```
+ ```text
+ A -> B -> F -> A
+ A -> C -> F -> E -> A
+ A -> B -> D -> A
+ ```
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

187-187: Line length
Expected: 120; Actual: 203

(MD013, line-length)


188-188: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


188-188: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


280-280: Typo in Drawbacks Section
On line 280, “guarantess” is used where “guarantees” is intended.

- ... can offer reasonable guarantess about network visibility.
+ ... can offer reasonable guarantees about network visibility.
🧰 Tools
🪛 LanguageTool

[typographical] ~280-~280: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

280-280: Line length
Expected: 120; Actual: 207

(MD013, line-length)


10-300: General Markdown Formatting and Style Issues
Multiple markdownlint warnings were detected throughout the document (e.g., trailing spaces, overly long lines, missing blank lines around headings and lists). Addressing these issues will improve the document’s readability and adherence to best practices. Consider running an automated markdown linter to fix:

  • Trailing whitespace (e.g., line 10)
  • Excessive line lengths (e.g., lines 15, 22, 24, etc.)
  • Proper spacing around headings and lists (e.g., lines 17, 25, 32)
🧰 Tools
🪛 LanguageTool

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[typographical] ~69-~69: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...ing mechanism aims to probe the network topology, therefore it SHOULD be guided by the graph networ...

(THUS_SENTENCE)


[uncategorized] ~71-~71: A comma might be missing here.
Context: ... used together. With increasing network size it is unrealistic to probe the network ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~97-~97: A comma might be missing here.
Context: ... abstracting the transport interactions completely consists of 3 components: 1. path gener...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~110-~110: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...network size. Loopback probing options with respect to the sender: 1. immediate 0-hop: observe...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~127-~127: Style-wise, it’s not ideal to insert an adverb (‘systematically’) in the middle of an infinitive construction (‘to explore’). Try moving the adverb to avoid split infinitives.
Context: ...ch (BFS) is a graph traversal algorithm used to systematically explore nodes and edges in a graph. It MUST start at the sender...

(SPLIT_INFINITIVE)


[grammar] ~151-~151: Uncountable nouns are usually not used with an indefinite article. Use simply “1-hop probing traffic”.
Context: ...rom the immediate vicinity of A using a 1-hop probing traffic: ``` A -> B -> A A -> C -> A A -> D -> ...

(A_UNCOUNTABLE)


[uncategorized] ~161-~161: Possible missing preposition found.
Context: ...anch before backtracking. It MUST start the current node to explore each branch of ...

(AI_EN_LECTOR_MISSING_PREPOSITION)


[uncategorized] ~195-~195: A comma might be missing here.
Context: ...iple averaged telemetry values over the path it is possible to establish ansemble in...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[typographical] ~204-~204: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...A -> B -> F -> A - A -> B -> A = 545 - 421 = 124ms. #### Throughput considera...

(DASH_RULE)


[grammar] ~217-~217: You used an adverb (‘possibly’) instead of an adjective, or a noun (‘channel’) instead of another adjective.
Context: ...e used as a source of information for a possibly channel opening and closing strategy responsibl...

(A_RB_NN)


[duplication] ~232-~232: Possible typo: you repeated a word.
Context: ...on the per message basis. #### Probing telemetry Telemetry data pertains to the content of the pro...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~236-~236: Possible typo: you repeated a word.
Context: ...er to verify the mixing property over a path - path identification for attribution - time...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~248-~248: Consider using “except” or “except for”
Context: ...ment The network probing functionality, with the exception of the PTT mechanism, should be fully impl...

(WITH_THE_EXCEPTION_OF)


[uncategorized] ~255-~255: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~258-~258: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~269-~269: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~280-~280: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 168

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


69-69: Line length
Expected: 120; Actual: 153

(MD013, line-length)


71-71: Line length
Expected: 120; Actual: 211

(MD013, line-length)


73-73: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


79-79: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


83-83: Line length
Expected: 120; Actual: 169

(MD013, line-length)


87-87: Line length
Expected: 120; Actual: 193

(MD013, line-length)


89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


91-91: Line length
Expected: 120; Actual: 293

(MD013, line-length)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


95-95: Line length
Expected: 120; Actual: 299

(MD013, line-length)


98-98: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


102-102: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


104-104: Line length
Expected: 120; Actual: 251

(MD013, line-length)


106-106: Line length
Expected: 120; Actual: 620

(MD013, line-length)


108-108: Line length
Expected: 120; Actual: 224

(MD013, line-length)


111-111: Line length
Expected: 120; Actual: 133

(MD013, line-length)


111-111: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


112-112: Line length
Expected: 120; Actual: 141

(MD013, line-length)


116-116: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


118-118: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


122-122: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


125-125: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


126-126: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


127-127: Line length
Expected: 120; Actual: 257

(MD013, line-length)


129-129: Line length
Expected: 120; Actual: 204

(MD013, line-length)


148-148: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


149-149: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


151-151: Line length
Expected: 120; Actual: 158

(MD013, line-length)


152-152: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


152-152: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


158-158: Line length
Expected: 120; Actual: 151

(MD013, line-length)


160-160: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


161-161: Line length
Expected: 120; Actual: 234

(MD013, line-length)


165-165: Line length
Expected: 120; Actual: 349

(MD013, line-length)


184-184: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


185-185: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


187-187: Line length
Expected: 120; Actual: 203

(MD013, line-length)


188-188: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


188-188: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


194-194: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


194-194: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


195-195: Line length
Expected: 120; Actual: 278

(MD013, line-length)


199-199: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


199-199: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


204-204: Line length
Expected: 120; Actual: 148

(MD013, line-length)


206-206: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


207-207: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


208-208: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


208-208: Line length
Expected: 120; Actual: 136

(MD013, line-length)


209-209: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


213-213: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


216-216: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


217-217: Line length
Expected: 120; Actual: 186

(MD013, line-length)


219-219: Line length
Expected: 120; Actual: 223

(MD013, line-length)


220-220: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


223-223: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


225-225: Line length
Expected: 120; Actual: 150

(MD013, line-length)


227-227: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


228-228: Line length
Expected: 120; Actual: 147

(MD013, line-length)


232-232: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


233-233: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


236-236: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


236-236: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


236-236: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


237-237: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


238-238: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


240-240: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


247-247: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


248-248: Line length
Expected: 120; Actual: 134

(MD013, line-length)


251-251: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


258-258: Line length
Expected: 120; Actual: 125

(MD013, line-length)


260-260: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


269-269: Line length
Expected: 120; Actual: 148

(MD013, line-length)


272-272: Line length
Expected: 120; Actual: 135

(MD013, line-length)


272-272: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


279-279: Line length
Expected: 120; Actual: 155

(MD013, line-length)


280-280: Line length
Expected: 120; Actual: 207

(MD013, line-length)


281-281: Line length
Expected: 120; Actual: 171

(MD013, line-length)


285-285: Line length
Expected: 120; Actual: 182

(MD013, line-length)


287-287: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


290-290: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


295-295: Line length
Expected: 120; Actual: 138

(MD013, line-length)


300-300: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


1-300: Overall Document Review: Content Completeness and Clarity
The RFC document is comprehensive and covers a wide range of topics related to the network path discovery mechanism using the HOPR protocol. However, there remain several incomplete sections and minor stylistic issues:

  • Incomplete sentence in the abstract (line 49)
  • Incomplete description for cache prepopulation (line 122)
  • A TODO regarding a pure P2P transport mechanism (line 65) that may need further detail
    Addressing these points will help ensure that the document is both technically clear and fully self-contained.
🧰 Tools
🪛 LanguageTool

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[typographical] ~69-~69: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...ing mechanism aims to probe the network topology, therefore it SHOULD be guided by the graph networ...

(THUS_SENTENCE)


[uncategorized] ~71-~71: A comma might be missing here.
Context: ... used together. With increasing network size it is unrealistic to probe the network ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~97-~97: A comma might be missing here.
Context: ... abstracting the transport interactions completely consists of 3 components: 1. path gener...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~110-~110: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...network size. Loopback probing options with respect to the sender: 1. immediate 0-hop: observe...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~127-~127: Style-wise, it’s not ideal to insert an adverb (‘systematically’) in the middle of an infinitive construction (‘to explore’). Try moving the adverb to avoid split infinitives.
Context: ...ch (BFS) is a graph traversal algorithm used to systematically explore nodes and edges in a graph. It MUST start at the sender...

(SPLIT_INFINITIVE)


[grammar] ~151-~151: Uncountable nouns are usually not used with an indefinite article. Use simply “1-hop probing traffic”.
Context: ...rom the immediate vicinity of A using a 1-hop probing traffic: ``` A -> B -> A A -> C -> A A -> D -> ...

(A_UNCOUNTABLE)


[uncategorized] ~161-~161: Possible missing preposition found.
Context: ...anch before backtracking. It MUST start the current node to explore each branch of ...

(AI_EN_LECTOR_MISSING_PREPOSITION)


[uncategorized] ~195-~195: A comma might be missing here.
Context: ...iple averaged telemetry values over the path it is possible to establish ansemble in...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[typographical] ~204-~204: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...A -> B -> F -> A - A -> B -> A = 545 - 421 = 124ms. #### Throughput considera...

(DASH_RULE)


[grammar] ~217-~217: You used an adverb (‘possibly’) instead of an adjective, or a noun (‘channel’) instead of another adjective.
Context: ...e used as a source of information for a possibly channel opening and closing strategy responsibl...

(A_RB_NN)


[duplication] ~232-~232: Possible typo: you repeated a word.
Context: ...on the per message basis. #### Probing telemetry Telemetry data pertains to the content of the pro...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~236-~236: Possible typo: you repeated a word.
Context: ...er to verify the mixing property over a path - path identification for attribution - time...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~248-~248: Consider using “except” or “except for”
Context: ...ment The network probing functionality, with the exception of the PTT mechanism, should be fully impl...

(WITH_THE_EXCEPTION_OF)


[uncategorized] ~255-~255: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~258-~258: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~269-~269: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~280-~280: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 168

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


69-69: Line length
Expected: 120; Actual: 153

(MD013, line-length)


71-71: Line length
Expected: 120; Actual: 211

(MD013, line-length)


73-73: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


79-79: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


83-83: Line length
Expected: 120; Actual: 169

(MD013, line-length)


87-87: Line length
Expected: 120; Actual: 193

(MD013, line-length)


89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


91-91: Line length
Expected: 120; Actual: 293

(MD013, line-length)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


95-95: Line length
Expected: 120; Actual: 299

(MD013, line-length)


98-98: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


102-102: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


104-104: Line length
Expected: 120; Actual: 251

(MD013, line-length)


106-106: Line length
Expected: 120; Actual: 620

(MD013, line-length)


108-108: Line length
Expected: 120; Actual: 224

(MD013, line-length)


111-111: Line length
Expected: 120; Actual: 133

(MD013, line-length)


111-111: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


112-112: Line length
Expected: 120; Actual: 141

(MD013, line-length)


116-116: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


118-118: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


122-122: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


125-125: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


126-126: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


127-127: Line length
Expected: 120; Actual: 257

(MD013, line-length)


129-129: Line length
Expected: 120; Actual: 204

(MD013, line-length)


148-148: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


149-149: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


151-151: Line length
Expected: 120; Actual: 158

(MD013, line-length)


152-152: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


152-152: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


158-158: Line length
Expected: 120; Actual: 151

(MD013, line-length)


160-160: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


161-161: Line length
Expected: 120; Actual: 234

(MD013, line-length)


165-165: Line length
Expected: 120; Actual: 349

(MD013, line-length)


184-184: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


185-185: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


187-187: Line length
Expected: 120; Actual: 203

(MD013, line-length)


188-188: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


188-188: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


194-194: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


194-194: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


195-195: Line length
Expected: 120; Actual: 278

(MD013, line-length)


199-199: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


199-199: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


204-204: Line length
Expected: 120; Actual: 148

(MD013, line-length)


206-206: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


207-207: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


208-208: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


208-208: Line length
Expected: 120; Actual: 136

(MD013, line-length)


209-209: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


213-213: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


216-216: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


217-217: Line length
Expected: 120; Actual: 186

(MD013, line-length)


219-219: Line length
Expected: 120; Actual: 223

(MD013, line-length)


220-220: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


223-223: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


225-225: Line length
Expected: 120; Actual: 150

(MD013, line-length)


227-227: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


228-228: Line length
Expected: 120; Actual: 147

(MD013, line-length)


232-232: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


233-233: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


236-236: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


236-236: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


236-236: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


237-237: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


238-238: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


240-240: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


247-247: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


248-248: Line length
Expected: 120; Actual: 134

(MD013, line-length)


251-251: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


258-258: Line length
Expected: 120; Actual: 125

(MD013, line-length)


260-260: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


269-269: Line length
Expected: 120; Actual: 148

(MD013, line-length)


272-272: Line length
Expected: 120; Actual: 135

(MD013, line-length)


272-272: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


279-279: Line length
Expected: 120; Actual: 155

(MD013, line-length)


280-280: Line length
Expected: 120; Actual: 207

(MD013, line-length)


281-281: Line length
Expected: 120; Actual: 171

(MD013, line-length)


285-285: Line length
Expected: 120; Actual: 182

(MD013, line-length)


287-287: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


290-290: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


295-295: Line length
Expected: 120; Actual: 138

(MD013, line-length)


300-300: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 40c1526 and 0c9ea5e.

📒 Files selected for processing (1)
  • rfc0010-network-discovery.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
rfc0010-network-discovery.md

[style] ~30-~30: Consider a shorter alternative to avoid wordiness.
Context: ...ing view of the recent network topology in order to be able to create a forward and return ...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~43-~43: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...ble to distinguish a sufficiently large amount of nodes in the network to guarantee pr...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ...chanism for establishing For uni- and bi-directional communication to react to the changing ...

(EN_COMPOUNDS_BI_DIRECTIONAL)


[uncategorized] ~51-~51: A comma might be missing here.
Context: ... to react to the changing nature of the network the producer MUST actively probe the ne...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~55-~55: This expression is ususally spelled with a hyphen
Context: ...ined from the probing traffic SHOULD be node specific and MUST not be subject to data or topo...

(SPECIFIC_HYPHEN)


[typographical] ~63-~63: Use a comma after an introductory phrase.
Context: ...ediate properties of the nearest peers. For this purpose a separate mechanism not descri...

(COMMA_INTRODUCTORY_WORDS_PHRASES)


[typographical] ~63-~63: It seems that a comma is missing.
Context: ...operties of the nearest peers. For this purpose a separate mechanism not described in t...

(FOR_THIS_REASON_COMMA)


[typographical] ~69-~69: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...ing mechanism aims to probe the network topology, therefore it SHOULD be guided by the graph networ...

(THUS_SENTENCE)


[uncategorized] ~71-~71: A comma might be missing here.
Context: ... used together. With increasing network size it is unrealistic to probe the network ...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~97-~97: A comma might be missing here.
Context: ... abstracting the transport interactions completely consists of 3 components: 1. path gener...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~110-~110: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...network size. Loopback probing options with respect to the sender: 1. immediate 0-hop: observe...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~127-~127: Style-wise, it’s not ideal to insert an adverb (‘systematically’) in the middle of an infinitive construction (‘to explore’). Try moving the adverb to avoid split infinitives.
Context: ...ch (BFS) is a graph traversal algorithm used to systematically explore nodes and edges in a graph. It MUST start at the sender...

(SPLIT_INFINITIVE)


[grammar] ~151-~151: Uncountable nouns are usually not used with an indefinite article. Use simply “1-hop probing traffic”.
Context: ...rom the immediate vicinity of A using a 1-hop probing traffic: ``` A -> B -> A A -> C -> A A -> D -> ...

(A_UNCOUNTABLE)


[uncategorized] ~161-~161: Possible missing preposition found.
Context: ...anch before backtracking. It MUST start the current node to explore each branch of ...

(AI_EN_LECTOR_MISSING_PREPOSITION)


[uncategorized] ~195-~195: A comma might be missing here.
Context: ...iple averaged telemetry values over the path it is possible to establish ansemble in...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[typographical] ~204-~204: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...A -> B -> F -> A - A -> B -> A = 545 - 421 = 124ms. #### Throughput considera...

(DASH_RULE)


[grammar] ~217-~217: You used an adverb (‘possibly’) instead of an adjective, or a noun (‘channel’) instead of another adjective.
Context: ...e used as a source of information for a possibly channel opening and closing strategy responsibl...

(A_RB_NN)


[duplication] ~232-~232: Possible typo: you repeated a word.
Context: ...on the per message basis. #### Probing telemetry Telemetry data pertains to the content of the pro...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~236-~236: Possible typo: you repeated a word.
Context: ...er to verify the mixing property over a path - path identification for attribution - time...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~248-~248: Consider using “except” or “except for”
Context: ...ment The network probing functionality, with the exception of the PTT mechanism, should be fully impl...

(WITH_THE_EXCEPTION_OF)


[uncategorized] ~255-~255: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...am of all network paths - to generate session specific paths for session obfuscation - new pat...

(SPECIFIC_HYPHEN)


[uncategorized] ~258-~258: When ‘session-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...n incorporation: session level metrics, session specific path probing, session derived cover tra...

(SPECIFIC_HYPHEN)


[grammar] ~269-~269: Probable usage error. Use “and” after ‘both’.
Context: ...n terms of both the physical resources, as well as the value incurred on various levels of...

(BOTH_AS_WELL_AS)


[typographical] ~280-~280: The word “therefore” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... probing large networks in real time is unfeasible, therefore the algorithm should always be capped i...

(THUS_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)
rfc0010-network-discovery.md

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


15-15: Line length
Expected: 120; Actual: 373

(MD013, line-length)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Line length
Expected: 120; Actual: 294

(MD013, line-length)


22-22: Line length
Expected: 120; Actual: 581

(MD013, line-length)


24-24: Line length
Expected: 120; Actual: 151

(MD013, line-length)


25-25: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


28-28: Line length
Expected: 120; Actual: 259

(MD013, line-length)


30-30: Line length
Expected: 120; Actual: 253

(MD013, line-length)


32-32: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


36-36: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


43-43: Line length
Expected: 120; Actual: 132

(MD013, line-length)


43-43: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


47-47: Line length
Expected: 120; Actual: 246

(MD013, line-length)


49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


51-51: Line length
Expected: 120; Actual: 161

(MD013, line-length)


53-53: Line length
Expected: 120; Actual: 168

(MD013, line-length)


55-55: Line length
Expected: 120; Actual: 145

(MD013, line-length)


58-58: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


58-58: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


59-59: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


60-60: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


61-61: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


63-63: Line length
Expected: 120; Actual: 258

(MD013, line-length)


67-67: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


68-68: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


69-69: Line length
Expected: 120; Actual: 153

(MD013, line-length)


71-71: Line length
Expected: 120; Actual: 211

(MD013, line-length)


73-73: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


75-75: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


76-76: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


77-77: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


79-79: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


83-83: Line length
Expected: 120; Actual: 169

(MD013, line-length)


87-87: Line length
Expected: 120; Actual: 193

(MD013, line-length)


89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


91-91: Line length
Expected: 120; Actual: 293

(MD013, line-length)


92-92: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


95-95: Line length
Expected: 120; Actual: 299

(MD013, line-length)


98-98: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


102-102: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


104-104: Line length
Expected: 120; Actual: 251

(MD013, line-length)


106-106: Line length
Expected: 120; Actual: 620

(MD013, line-length)


108-108: Line length
Expected: 120; Actual: 224

(MD013, line-length)


111-111: Line length
Expected: 120; Actual: 133

(MD013, line-length)


111-111: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


112-112: Line length
Expected: 120; Actual: 141

(MD013, line-length)


116-116: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


118-118: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


122-122: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


125-125: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


126-126: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


127-127: Line length
Expected: 120; Actual: 257

(MD013, line-length)


129-129: Line length
Expected: 120; Actual: 204

(MD013, line-length)


148-148: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


149-149: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


151-151: Line length
Expected: 120; Actual: 158

(MD013, line-length)


152-152: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


152-152: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


158-158: Line length
Expected: 120; Actual: 151

(MD013, line-length)


160-160: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


161-161: Line length
Expected: 120; Actual: 234

(MD013, line-length)


165-165: Line length
Expected: 120; Actual: 349

(MD013, line-length)


184-184: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


185-185: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


187-187: Line length
Expected: 120; Actual: 203

(MD013, line-length)


188-188: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


188-188: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


194-194: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


194-194: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


195-195: Line length
Expected: 120; Actual: 278

(MD013, line-length)


199-199: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


199-199: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


204-204: Line length
Expected: 120; Actual: 148

(MD013, line-length)


206-206: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


207-207: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


208-208: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


208-208: Line length
Expected: 120; Actual: 136

(MD013, line-length)


209-209: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


213-213: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


216-216: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


217-217: Line length
Expected: 120; Actual: 186

(MD013, line-length)


219-219: Line length
Expected: 120; Actual: 223

(MD013, line-length)


220-220: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


223-223: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


225-225: Line length
Expected: 120; Actual: 150

(MD013, line-length)


227-227: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


228-228: Line length
Expected: 120; Actual: 147

(MD013, line-length)


232-232: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


233-233: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


236-236: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


236-236: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


236-236: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


237-237: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


238-238: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


240-240: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


247-247: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


248-248: Line length
Expected: 120; Actual: 134

(MD013, line-length)


251-251: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


258-258: Line length
Expected: 120; Actual: 125

(MD013, line-length)


260-260: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


269-269: Line length
Expected: 120; Actual: 148

(MD013, line-length)


272-272: Line length
Expected: 120; Actual: 135

(MD013, line-length)


272-272: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


279-279: Line length
Expected: 120; Actual: 155

(MD013, line-length)


280-280: Line length
Expected: 120; Actual: 207

(MD013, line-length)


281-281: Line length
Expected: 120; Actual: 171

(MD013, line-length)


285-285: Line length
Expected: 120; Actual: 182

(MD013, line-length)


287-287: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


290-290: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


295-295: Line length
Expected: 120; Actual: 138

(MD013, line-length)

🪛 GitHub Check: validate
rfc0010-network-discovery.md

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


[failure] 15-15: Line length
rfc0010-network-discovery.md:15:121 MD013/line-length Line length [Expected: 120; Actual: 373] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 17-17: Headings should be surrounded by blank lines
rfc0010-network-discovery.md:17 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Notational convention"] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md022.md


[failure] 18-18: Line length
rfc0010-network-discovery.md:18:121 MD013/line-length Line length [Expected: 120; Actual: 294] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 22-22: Line length
rfc0010-network-discovery.md:22:121 MD013/line-length Line length [Expected: 120; Actual: 581] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 24-24: Line length
rfc0010-network-discovery.md:24:121 MD013/line-length Line length [Expected: 120; Actual: 151] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 25-25: Lists should be surrounded by blank lines
rfc0010-network-discovery.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- from the producer to the con..."] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md032.md


[failure] 28-28: Line length
rfc0010-network-discovery.md:28:121 MD013/line-length Line length [Expected: 120; Actual: 259] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 30-30: Line length
rfc0010-network-discovery.md:30:121 MD013/line-length Line length [Expected: 120; Actual: 253] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md013.md


[failure] 32-32: Multiple consecutive blank lines
rfc0010-network-discovery.md:32 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md012.md

🪛 GitHub Actions: RFC Validation Pipeline
rfc0010-network-discovery.md

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🔇 Additional comments (6)
rfc0010-network-discovery.md (6)

10-11: Header Metadata Formatting Issues: Trailing whitespace and placeholder value
There is trailing whitespace at the end of the “Supersedes:” line (line 10) and the “References:” field still contains a placeholder (“TODO”). Please remove the trailing space and update the references field with an appropriate value or a clarifying note.

- - **Supersedes:** None␣
+ - **Supersedes:** None
- - **References:** **TODO**
+ - **References:** [Insert appropriate references or a note indicating pending update]
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

10-10: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

🪛 GitHub Check: validate

[failure] 10-10: Trailing spaces
rfc0010-network-discovery.md:10:23 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md

🪛 GitHub Actions: RFC Validation Pipeline

[error] 10-10: MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.37.4/doc/md009.md


49-49: Incomplete Sentence in Abstract
The sentence on line 49 ends abruptly:

“…the message producer SHOULD use a dynamic mechanism for establishing”
Please complete the sentence with a clear description of what mechanism is being established (for example, establishing secure channel parameters or updating network route metrics).

🧰 Tools
🪛 LanguageTool

[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...acterstics of the network nodes. Due to dynamic and unstable nature of the decentralize...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)

49-49: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


49-49: Line length
Expected: 120; Actual: 363

(MD013, line-length)


117-119: Algorithm Terminology Clarification
The algorithm description (line 118) uses the phrase “bread and width first” which is nonstandard. For consistency with later sections (e.g. “Breadth-first algorithm (BFA)”), consider revising this phrase to “breadth-first” (and, if needed, clarifying any complementary depth-first aspects).

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

118-118: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


122-122: Incomplete Cache Prepopulation Description
The list item on line 122 (“for sessions prepopulate the cache from”) is incomplete. Please clarify the source or criteria for cache prepopulation (for example, from recent session data or network telemetry).

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

122-122: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Typographical Correction: Possessive Pronoun
At line 89, “it's results” is used. The possessive form should be “its results”.

- ... lies in the fact that it's results can be combined ...
+ ... lies in the fact that its results can be combined ...
🧰 Tools
🪛 LanguageTool

[grammar] ~89-~89: Did you mean to use the possessive pronoun “its”?
Context: ...th-first approach lies in the fact that it's results can be combined with the breadt...

(IT_S_ITS)


[style] ~89-~89: Consider a shorter alternative to avoid wordiness.
Context: ...ombined with the breadth-first approach in order to identify potentially unreliable or mali...

(IN_ORDER_TO_PREMIUM)

🪛 markdownlint-cli2 (0.17.2)

89-89: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


89-89: Line length
Expected: 120; Actual: 304

(MD013, line-length)


211-211: Clarify Throughput Combination Strategy
The bullet item on line 211 (“- how to combine these together??”) is vague. Please elaborate on how the load balancing (based on minimum stake) and the actual throughput measurements should be combined to inform sustained throughput.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants