bitcoin-dev-project/warnet

frontend: Bulk/Grouped/Parent nodes and associated functions

Closed this issue · 1 comments

From a UX standpoint, creating nodes individually to build a network is cumbersome.

Proposal: group nodes with similar attributes into a node-type to perform bulk functions, e.g create 20 nodes of this "node-type"
Proposing using specific attributes of nodes to group them, meaning all nodes of a node type share a specific set of attributes.
The attributes I think are worth considering are version, latency, ram and cpu.
A sha256 hash is used to create the unique "node-type" for nodes that share the same attributes.

The change is backwards compatible, we introduce no change to how the graphml structure is derived.
A feature implementation would be to include "node-type" details in the data attributes of the node in the graphml file. As the data attributes can take arbitrary key/value pairs this doesn't affect any previous implementation and keeps the grouped/node-type consistent on the frontend when reloading a saved graph

Task list

  • group nodes with similar attributes
  • bulk create nodes of a specific "node-type"
  • edit a "node-type" to bulk edit nodes that share that "node-type"
  • editing singular node should recalculate "node-type" and assign the node to any matching "node-type" or a new "node-type"
  • bulk delete "node-type"

note: "node-type", "group", "grouped-nodes", "parent" all refer to the same concept

Going to close this for now as not planned. We can re-open in the future if needed.