Skip to content

Accounting: Bandwidth metering #1

@oskarth

Description

@oskarth

Problem

  1. Leeches: Some nodes put too much of a burden on the network
  2. Capacity: Some nodes are helping nodes by relaying messages but they have limited capacity

Solution

Keep track of how much each node contributes and takes from the network based on local information. Similar to Bittorrent seed ratio.

Acceptance criteria

Detect, store and display bandwidth UP and DOWN for each connected peer. This can for example be stored to an in-memory DB and printed to STDOUT at some interval.

If bandwidth can't be directly detected, this may be approximated with message count.

Not in scope

This issue is purely about the accounting aspect. Explicitly out of scope are:

  • Incentives build on top of this
  • any form of settlement

Consequences such as:

  • disconnects
  • feedback of capacity
  • tit for tat / throttling strategies a la Bittorrent

are also out of scope, but can be natural follow up issues to this.

Notes

  • It might be useful to distinguish between originating sender and relayer in terms of who acts as a cost to the network
  • If there are other limited resources identified outside of BW, these can also potentially be limited (disk/computed/connections/etc)

Misc:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions