Science Score: 18.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.1%) to scientific vocabulary
Repository
Python implimentation of IOTA TANGLE
Basic Info
- Host: GitHub
- Owner: Misbah-khan786
- Language: Python
- Default Branch: main
- Size: 4.26 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Iota_tangle Overview:
This repository contains simulation codes for the IOTA Tangle system. There are two variations of the code: one implemented with threading and the other using asyncio. Both variations have the same functionality. Classes with "thread" in their names are the threading version, and the rest are the asyncio version.
Getting started
In the current Tangle simulation, the following parameters dictate the behavior and properties of the system for generating new transactions.
- Parameters:
num_nodes: The total number of nodes present in the network.
lambda_total: Represents the aggregate rate of transactions entering the system. It is a measure of the transaction intensity or frequency over time.
- Node Distribution:
The network consists of different nodes, with 1 potentially acting as Coordinators. The nodes that are not acting as Coordinators are defined by:
nodes_without_coordinator = [node for node in the network.nodes if not isinstance(node, Coordinator)]
The significance of the node count in the network is secondary. The focal parameter affecting transaction behavior is lambda_total.
- Transaction Rate Calculation:
Given lambda_total, the rate of transactions generated by each non-coordinator node is calculated by distributing this total rate evenly among all non-coordinator nodes:
ratepernode = lambdatotal / len(nodeswithout_coordinator)
Hence, as the number of nodes in the network increases, each individual node contributes fewer transactions. This is an inverse relationship where a higher number of nodes results in a decreased transaction generation rate per node.
- Poisson Delay:
The simulation employs the Poisson process for the temporal distribution of transaction generation events. This choice models the randomness and unpredictability of real-world transaction occurrences. The delay before a node generates a transaction is determined by:
delay = random.expovariate(nodepoissonrate)
await asyncio.sleep(delay)
A higher node_poisson_rate leads to shorter intervals between transaction generations, and with more nodes in the system, the node_poisson_rate is lower, thus increasing the wait time.
- Accumulative Weight Calculation:
The accumulative weight represents a matrix, calculated by nodes based on their localized view of the network. This weight is predominantly influenced by the number of transactions. The origin or the nodes from which these transactions emerge is secondary. What matters is the cumulative input of transactions, regardless of their source nodes.
By focusing on lambda_total, the IOTA Tangle simulation emphasizes the overarching transaction intensity rather than the granular contributions from individual nodes. This ensures a balanced representation of transaction propagation and processing in a distributed ledger environment.
Running the Simulation
IOTADAGEVENT_Simulation.py: Main simulation file.
PRAN.py: Provides a second network simulation. Results for the Poisson process and Node convergence are generated here. Parameter control is managed via IOTADAGEVENTSimulation.py.
RW.CW.py: Offers insights into Random Walk and accumulative weights analysis. Parameter control is through IOTADAGEVENT_Simulation.py.
IOTADAGEVENTSimulationThread.py: Delves deeper into Randomwalk logs, providing step-by-step info on probability shifts.
Owner
- Name: mkinc
- Login: Misbah-khan786
- Kind: user
- Repositories: 1
- Profile: https://github.com/Misbah-khan786
Citation (CITATION.md)
message: "If you use this software, please cite it as below." author: - family-names: "KHAN" given-names: "MISBAH" orcid: "https://orcid.org/0000-0002-2081-3063" title: "From IOTA’s Vision to Verified Systems: A Dive into Discrete-Event Simulation of Distributed Ledgers" URL: "https://github.com/Misbah-khan786/Iota_tangle"
GitHub Events
Total
- Fork event: 1
Last Year
- Fork event: 1