whiteyhat / lightning-network-simulator Goto Github PK
View Code? Open in Web Editor NEWLightning Network Simulator
License: MIT License
Lightning Network Simulator
License: MIT License
The welcome image at the startup of the lightning simulator tool has a low quality and should be improved for the final version
The results obtained from running a lightning network simulation must be displayed in the right sidebar within the main GUI, as described in #10
The main result outputs from the simulation are:
When displaying a network using the simulation tool as described in #17 should be considered the design specifications based on creating a visual distinction of node balances and channel capacities. It should be 3 options to visually represent the channel capacities:
In the case of the channels, the width of the edges should have a relation with the channel capacity.
Simulation results are not accurate, and as a result invalid. It needs triage and passes an evaluation to reduce severity.
Create a curated thesis documentation
The simulation results should be visually represented using graphs and charts. A third party library could speed up the development process feature and improve the visual likeness of #19
There are 4 essential results to display using charts:
Load a network using the network map #15 and a native file chooser.
A data structure to optimize the routing decisions of #6 should be considered as a support object entity. The data structure should map nodes which are connected through a channel to identify the shortest path based on any optimization mechanism within the class.
Design behavioural and structural diagrams using the UML standard. The diagrams should contain enough design insights about the internal architecture of the lightning network simulator.
Placeholders are text hints within text fields to use as an example when adding a text field input. Integrating placeholder to enhance the intuition of input when creating a network should be considered.
When closing the window that contains the chart of the simulation results, automatically the entire program shuts down. This bug has low priority.
Create an evaluation method of the fitness function of the lightning network simulator using the case test sheet. The fitness function of the simulation is in charge of routing transactions:
The fitness function should deliver the simulation outputs in the terminal to allow further research.
Create and updated list of definitions and acronyms for the documentation
The simulation tool required a GUI to be developed before creating/loading any simulation. Prior to this stage, mock-ups of each desktop application page are required to proceed with the design process of the lightning network simulator tool.
Design pseudocode diagrams of algorithms from the main algorithms in the project to enhance visualization and procedural thinking. Diagrams must include visual representations for loops, conditionals and relevant commented notes of each specific step.
Create proper java documentation including information about the API.
Currently, the simulation tool #17 uses integers to represent data for balances. While channels use double to represent capacities.
Both entities should use the same standard. Using Double over Integer on this case is more correct.
JSON file compliant with the network data model #16 syntax to allow the reading and loading methods of payment channel networks in the Lightning Network Simulation.
The toolbar should contain options to manage and interact with the simulation at any time. At the top of the desktop application should be always accessible and visible.
The toolbar should be divided into 4 main options to maximize the utility of the lightning simulation tool:
There is more available information about the toolbar design specification and implementation in the wiki
Set up an available wiki where the project documentation is accessible.
The current model is not very efficient to perform routed transactions. The routing model should be able to optimize transaction based on:
The analysis tool should cover the minimum viable features to manage the simulation inputs and display outputs from the simulation in the most frictionless way possible. Hence, the use of interactive charts and graphs as well as tools to meet the analysis criteria:
There is more available information accessible at the wiki.
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:
There is more available information accessible in the wiki.
When the simulation #17 starts, the simulated transaction recipient is limited to 1
during the simulated stress test. This number should not be hardcoded, but dynamic or selected by the user:
Create a class to create a traffic generator object entity that encloses:
JSON Syntax containing the main objects in a lightning network simulation. The list includes:
Node. An object composed of other object entities like balance
, channels
, transactions
, id
...
Channel. An object composed of other object entities like capacity
, transactions
, id
, fee
...
Transaction. An object composed of other object entities like tokens
, to
...
There is more available information about the main object entities, relations and the network data model in the Wiki.
Testing the lightning network simulator is key to prove the utility and goodness of the simulation and analysis tool. Therefore, testing must be implemented to ensure the code meets the design criteria and the expected outputs.
The use of a testing framework should be considered to maximize the testing within the lightning network simulator.
Travis Continuous Integration can not build + test the project when new push or PR are appearing.
Loading a network should be as seamless as possible using an object-oriented language for data inter-exchange such as JSON or XML.
The network map uses the data model syntax described in #16
Currently, the exporting process #23 exports the entire network topology into the network map #15 using the network data model syntax #16
This including channels, node, simulation results... However, the transactions are missing. The exporting data should differentiate the transactions by types:
i'm running the maven project on eclipse, however i'm not being able to run the simulator.
Complete a minimum viable of quality content for the project documentation with the following sections:
Bitcoin is an open-sourced peer-to-peer electronic cash system. The maximum transaction capacity is 7 transactions per second on its best-case scenario. This is a relatively low number in comparison with the current transaction processing from commercial standards such as visa, performing 24 000 transactions per second.
The lightning network protocol emerges as a solution to overcome this problem. The protocol is a second layer protocol to leverage the power of blockchains currencies like Bitcoin. The architecture of the protocol is composed of bidirectional payment channels to allow the creation of microtransactions within the bitcoin network while being off-chain.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.