whiteyhat/Lightning-Network-Simulator

Simulation tool

Closed this issue · 0 comments

The simulation tool should cover the minimum viable features to display, simulate stress tests, provide routing mechanisms for one-hop and multi-hop transactions and create a network in the most frictionless way possible. Hence, a general user interface should be created based on the following design specifications:

  • Creating and loading a lightning network. The creation of a lightning network must be done by writing a network map which contains the network model including nodes, channels and transactions. The loading process is reading such map network to create the required objects to display the simulation in the GUI. The network model should be in an object-oriented language such as JSON.
  • Displaying a lightning network. The displaying process of the lightning network simulation must be achieved using an interactive graph able to meet the simulation criteria. Third party libraries to deliver this design specification such as MxGpraph, Swing and JGraphX are suitable to provide this criterion.
  • Running a simulation. The simulation process of the lightning network simulation must be done by displaying the lightning network from the data inputs obtained from the network map to create a transaction stress test. This stress test consists of creating one-hop and multi-hop transactions until node balances reach zero or channel capacities reach the maximum consequently becoming congested. The GUI must be updated constantly when a transaction is sent to show interactivity within the simulation. On each GUI update, channel capacities and node balance labels should be updated as well as the visual representation of them should meet the design criteria. Alternatively, when a channel is congested due to a maximum capacity reach, it should disappear from the general user interface.
  • Routing transactions in a lightning network. The routing mechanism must be delivered to allow the generation of transactions seamlessly during the stress test simulation.

There is more available information accessible in the wiki.