This repository hosts all the research on DAS for the collaboration between Codex and the EF.
Go to file
Csaba Kiraly c53043bab9
improve readme
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
2024-03-29 22:34:55 +01:00
DAS Merge branch 'visual' 2024-02-19 13:53:15 +01:00
doc Starting code documentation 2023-02-08 22:45:01 +01:00
.gitignore extending .gitignore 2023-07-12 14:12:32 +02:00
LICENSE-APACHEv2 clarify license 2023-05-24 11:30:43 +02:00
LICENSE-MIT clarify license 2023-05-24 11:30:43 +02:00
README.md improve readme 2024-03-29 22:34:55 +01:00
smallConf.py update example smallConf with N/K 2023-12-05 10:37:09 +01:00
study.py plot figures right after simulation run 2023-07-12 21:28:37 +02:00

README.md

DAS Research

This repository hosts research on DAS for the collaboration between Codex and the EF.

The goal of the DAS Simulator is to study the problem of Data Availability Sampling, both as it is currently proposed and with possible modifications, from the networking perspective. The simulator is written in Python3 for accessibility, but we can imagine rewriting it at one point for scalability and efficiency.

Currently we simulate the first part of the process which is to get segments of the 2D Reed Solomon erasure coded block from the block builder to validators. The simulator tracks diffusion in the network and validation progress. It is highly configurable, and it allows to explore the parameter space in one run, generating also summary figures.

Talks

Results from the simulator were featured in the following talks:

  • EthereumZuri.ch 2023 - Csaba Kiraly - Data Availability Sampling from the Networking Perspective, see on YouTube
  • EDCON 2023 - Leonardo Bautista-Gomez - Understanding Design Choices in Data Availability Sampling see on YouTube
  • EthPrague 2023 - Leonardo Bautista-Gomez - Understanding Design Choices in Data Availability Sampling see on YouTube
  • EthCC 2023 - Csaba Kiraly - Understanding Design Choices in Data Availability Sampling see on YouTube

Versions

For recent improvements, see the develop branch

Usage

Prepare the environment

  • Clone the DAS repository (if not done yet) and go into the das-research directory
git clone https://github.com/status-im/das-research.git
cd das-research
  • Create a virtual environment and install the requirements
python3 -m venv myenv
source myenv/bin/activate
pip3 install -r DAS/requirements.txt

Run the simulator

The simulation requires a configuration written in Python. To run a small example, use the smallConf.py configuration file:

python3 study.py smallConf.py

Results with plots will be saved in the results folder.

See the same example smallConf.py file for the description of configuration options. To derive your own simulations, copy the file, customize, and run.

License

Licensed and distributed under either of

or

at your option. Files in this repository may not be copied, modified, or distributed except according to those terms.