shardeval

ShardEval: Sharding-based Blockchain Simulator

https://github.com/vishishtpriyadarshi/shardeval

Science Score: 67.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
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: springer.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

blockchain blockchain-simulator command-line-tool python sharding simulator
Last synced: 6 months ago · JSON representation ·

Repository

ShardEval: Sharding-based Blockchain Simulator

Basic Info
  • Host: GitHub
  • Owner: vishishtpriyadarshi
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 6.03 MB
Statistics
  • Stars: 27
  • Watchers: 2
  • Forks: 12
  • Open Issues: 1
  • Releases: 1
Topics
blockchain blockchain-simulator command-line-tool python sharding simulator
Created about 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme Citation

README.md


Basic Overview

ShardEval is a sharding-based blockchain simulator. It can be used to simulate protocols for the sharding-based Blockchain systems. ShardEval is built on the top of BlockEval.

The complete design and theoretical analysis can be found on Springer, accepted by 19th International Conference on Information and Systems Security (ICISS).

Following is a brief representation of the simulator workflow for sharded systems:

Worklfow

Setup

bash cd ShardEval pip install -r requirements.txt bash setup.sh

Usage

The command-line interface for the doc-phi can be used as:

```


/ \ |_ __ _ _ __ | | /_ ____ | | \ | ' \ / ` | '/ _` |/\ \ \ / / ` | | _\ \ | | | (| | | | (| //_ \ V / (| | | _/| ||_,|| _,_/ _/ _,|_|

Usage: shard-eval [OPTIONS] COMMAND [ARGS]...

Options: --help Show this message and exit.

Commands: analyze-log Analyze the generated log files batch-run-simulation Initiate simulations in batches execute-simulator execute simulator completely run-simulation Initiate a simulation summarize-logs Summarize the generated log files visualize-file visualize the generated log files ```

A more elaborate explanation is as follows:

1. Running Simulation

The simulation can be executed by: shard-eval run-simulation The simulation executes as per the parameters specified in the config/params.json file. The result of the simulation are the log files which are stored accordingly in the folder simulation_logs.

Note: To generate detailed logs, set verbose to 1 in the params.json file.

2. Running Simulation in Batch

The simulation can be executed in batch by using following command: shard-eval batch-run-simulation

The script.py file needs to be changed accordingly to generate the logs as per the required parameters.

3. Analyzing the logs

The generated log files can be analyzed by:

shard-eval analyze-log --log_file=<log_file>

Upon execution, several files (html, txt, csv, png) will be created in respective folders inside the logs_data which will contain a detailed analysis of the log file.

4. Summarizing the logs (in batch)

To create a summary of the logs, following command can be used:

shard-eval summarize-logs --log_dir=<logs_directory>

A single csv file containing the summary of all the logs will be generated.

5. Visualizing the summary of the logs

After creating the summary, the csv file can be visualized using:

shard-eval visualize-file --summary_file=<summary_file>

Several plots will be created inside the suitable directories under the logs_data directory.

6. End-to-end execution of the simulator

To execute the simulator completely and perform all the steps in an instant, following command can be useful:

shard-eval execute-simulator

Citations

If you use this simulator in your research, please cite:

bib @InProceedings{10.1007/978-3-031-49099-6_21, author = "Priyadarshi, Vishisht and Goel, Sourav and Kapoor, Kalpesh", title = "Analysis of Optimal Number of Shards Using ShardEval, A Simulator for Sharded Blockchains", booktitle = "Information Systems Security", year = "2023", publisher = "Springer Nature Switzerland" }

Owner

  • Name: Vishisht Priyadarshi
  • Login: vishishtpriyadarshi
  • Kind: user
  • Location: Hyderabad
  • Company: @github

Citation (CITATION.bib)

@InProceedings{10.1007/978-3-031-49099-6_21,
    author="Priyadarshi, Vishisht
    and Goel, Sourav
    and Kapoor, Kalpesh",
    editor="Muthukkumarasamy, Vallipuram
    and Sudarsan, Sithu D.
    and Shyamasundar, Rudrapatna K.",
    title="Analysis of Optimal Number of Shards Using ShardEval, A Simulator for Sharded Blockchains",
    booktitle="Information Systems Security",
    year="2023",
    publisher="Springer Nature Switzerland",
    address="Cham",
    pages="339--359",
    abstract="Blockchain-based networks have found increasing usage in various fields due to their distributed nature, immutability, public verifiability, and zero trust requirement. Monolithic blockchain systems such as Bitcoin and Ethereum are not scalable. Sharding is a promising approach among the various solutions that have been proposed in the literature to improve the scalability of such monolithic systems. However, designing, testing, and identifying critical parameters of sharding-based protocols for blockchain networks is challenging. We present ShardEval, a simulator to evaluate sharding-based protocols for blockchain networks. We have used ShardEval to identify critical parameters of a sharded blockchain network. In particular, we determine the optimal number of shards in a network with a fixed percentage of cross-shard transactions. The simulation results are validated against the rigorous theoretical analysis, confirming the correctness under reasonable assumptions. Using the insights gained from simulation and theoretical analysis, we introduce Lookup Table to improve the transaction throughput further. The theoretical framework and simulator bridge the gap between designing and testing sharding-based protocols.",
    isbn="978-3-031-49099-6"
}

GitHub Events

Total
  • Watch event: 7
  • Fork event: 1
Last Year
  • Watch event: 7
  • Fork event: 1

Dependencies

requirements.txt pypi