---
# System prepended metadata

title: Untitled

---

[toc]

## References 
- [KR 2.1/DAL](https://hackmd.io/HLoGjZyKSeuNXxvbnSEcVQ?view#Key-results-for-DAL-6pw)
- [KR 2.3/P2P](https://hackmd.io/wOcQhCcCRNGWVFHUes4APQ)
- [P2P design](https://hackmd.io/JUHDNI69RSKiuPGwG7-5eQ)


## Objectives

- DAL and P2P without sampling 
- Show 1M TPS on non-adverserial setting with test network


## Status Update

### General status

- 75% to have automatic end-to-end tests without P2P (rollup-node+dal node+L1)
- 75% to have p2p realistic test with producer-endorser-consumers exchanging massive amount of data, and analysis tools to assess the success of the experiment 

### Current state (POC/DAL)

- Can post slot headers
- Attest slot headers
- Part of the refutation code merged
- Dal node can use crypto : split slot/reconstruct slots
- Dal node track the L1 and monitor slot headers posted
- Rollup node can store slot headers and slots
- Integration of the cryptographic primitives into the Tezos library and the environment for the protocol (a protocol can change the constants of the design, e.g. size of a slot, number of shards, ...)
- Integration of the SRS into Tezos and the CI (in particular for long tests)
- Several integration tests (via Tezt) with partial end-to-end-tests

### Major design change (with respect to May)

- Refutation game: Remove the slot subscription from the DAL **and** the sequential ordering

### Current state (P2P)

Implemented functionality
- Topic subscribtion, 
- Publishing with lazy-push on topics (without data validation step)

Implemented large scale test infrastructure:
- Binary with support for behaviour descriptions on top of p2p layer
- Infrastructure for collection of all nodes logs
- Live monitoring of some metrics on the experiment 

#### Experiment

Run an experiment with 656 nodes, 
- 256 naive "slot-producers" (shards are just dummy bytes), 
- 400 "endorsers", downloading their shard data, no change in shards affectation.
- Shard size : ~512B
- 5-6 shards per "endorsers"
- 256 slots x 2048 shards
- 50 connections per node

256MB/30 sec -> ~8MB/s (64Mb/s)

**Still processing data**, but firsts estimation gives
 $\frac{1}{4}$ of slots received in 30 sec in average on shards.

Hypothesis:
- Data loss during sending (need force connect)

Experiments' log retrieval is currently a bootleneck for experiment analysis.

## Next steps (POC/DAL)

### Short term (< 3 months)

- Refutation game complete (end of the September)
- Expose L1 RPCs related to the DAL committee (MR waiting to be reviewed/merged)
- Ensure validity of slot headers (No date yet, not very hard)
- DAL node should be able to stream slot headers via RPCs
- Exporting a convenient RPC by the DAL node for the endorser
- Communicate between two DAL nodes via RPCs
- rollup node can push DAL pages to the PVM and fetch the slots from a DAL node
- Integrate the new FFT that enable better performance by reducing the padding
- Integrate the DAL node with the endorser

### Mid term (< 6-9 months)

- Cryptographic primitives should be better tested and auditated (internally and externally)
- Some design/reflexions around sharing code with the other nodes
- Better automation for writing end-to-end tests
- Ensure scalability
- Fast node should support the DAL
- Plug the DAL node with the P2P layer (equivalent of the DDB for the `tezos-node`)

### Long term (< 1.5 years)

- Making the nodes resilient to various scenarios such as: attacks,reboot,errors,disconnections, ...
- Handling protocol upgrades from the rollup nodes and the DAL nodes
- Detect corner cases/edge cases
- Preparing integration with the eco-system
- External documentation


## Next steps (P2P)

### Short term (< 3 months)
- Fix "slow logs retrieval problems" for experiments 
- Experiment with every node to $500$ connections
- Experiment with mainnet's shards distribution, comittee changes at various rate, on long run
- Implements 
    - "Force connection mechanism" : smartely use current topics and force connections to some topics the time to send data 
    - have "topics of interest window in maintenance process" to focus on most relevant topic (around the current level)

### Mid term (< 6-9 months)
- Better tooling to analyse/visualize tests results
- Integration with DAL-node
- Reuse test infrastructure with full DAL node
- Last iteration on prototype to handle bandwidth need

### Long term (< 1.5 years)
- Going from prototype to product 
- Topic discovery (for data retrieval)
- Ensure P2p layer security (bounded messages, peers scoring, ...)
- Integrate pubsub to tezos-node's lib_p2p, with backward compatibility.
- Heavily test code (unit/integration/large scale)
- Ensure maintainability of the code 


## Difficulties

- Several ressources are new to the code base
- Few ressources (more focus on higher priority projects/SCORU)
- Summer vacation
- Employee leaving the company
- Employees on several tasks (helping higher priority projects)
- DAC


## Alternatives

### For the demo

- Kernel: SC/Tx rollup
- 1000 rollups
- Bandwith of the DAL: 256 MiB/seconds. Number of slots to be adapted.

+ 6 months

### Model of the current design:

- A cryptographic redudancy of `16` means that: We need to **trust only** 20% of the stake (explanations are [here](https://hackmd.io/g8l2M47eR1eN2WNB-m_6Rg)) . With a redudancy factor of `8`, it will be about 30%
- P2P bandwith with this model (factor of $16$) for an endorser with more than $\frac{100}{16}$ of the stake will be around $\frac{1*8*256}{30}=68$ Mib/s (padding is not accounted)
- P2p bandwith for a slot producer will be around $\frac{1*8*16}{30}=5$ Mib/s (padding is not accounted)

### Release on mainnet

- Change Tenderbake committee every `x` blocks?
    - Benefit: Less switches for the P2P 

- About sampling
    - Benefit: Liveness/Malicious bakers
    - Break pipelining
    - Design is still open
    - It's integration into the code base will take time

## Identified problems

- Which latency is allowed?
- Assuming an endorser may run several DAL nodes is ok?
- Is it ok if the design depends on archive DAL nodes?

