Skip to content

Energy protocol #3

@peteruithoven

Description

@peteruithoven

How do we distribute energy through the network, from the source to and through the consumers. But without having consumers, that are connected in a loop, feeding each other the same energy endlessly.

1. Distance

What we have now, almost. Consumers in a loop can't keep feeding each other the same energy because the distance increases.

Rules:

  • The source sends 1 out over all ports.
  • The consumers:
    • Stores received distance per port. (if lower)
    • Instantly forwards received distance+1 to all other ports. The thing we're currently not doing yet. (will generate a lot of traffic)
    • On a slower interval;
      • Access current lowest distance, if to much / far; out of energy.
      • Reset distances per port.

Parameters:

  • Max distance
  • Access interval

2. Benefits:

  • Few parameters

Energy buffer + sending decreasing energy

Rules:

  • The source sends an amount of energy over all ports
  • The consumers:
    • Add received energy to buffer (buffer is limited)
    • Instantly forwards energy-1, if more than 0, to all other ports (will generate a lot of traffic also)
    • On a slower interval:
      • Decrease energy in buffer
      • If to low; out of energy

Parameters:

  • Max energy buffer
  • Amount energy that the source sends, could be max energy buffer.
  • Interval at which we decrease energy and assess remaining energy.

Benefits:

  • Buffer amount can be translated in light brightness, giving more insight.
  • That something decreases over a distance is easier to reason about?
  • It might be possible to not instantly forward energy, and slightly decrease traffic and workload. By storing the highest received energy (since last forward) and on a quick interval forward that highest received energy to all ports. I'm not sure how to determine the best interval, the interval in which we could have received energy from all ports.

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