# EPF5 Week-4: Kurtosis PeerDAS
## Week overview
- [X] Learned how to work with Kurtosis
- [X] Ran Kurtosis PeerDAS testnet
- [X] Installed Teku, ran testnet network
- [X] Installed Grafana
- [X] Watched EPF Study Group Week 9 video
- [X] Explored Dora
This week was focused on running Kurtosis PeerDAS. I began with the Quickstart guide and then gradually progressed to configuring it with PeerDAS parameters. Despite encountering various issues along the way, I managed to get everything working. During this process, I gained experience in managing Kurtosis enclaves, modifying the Kurtosis configuration YAML file, and operating Dora.
Additionally, I started exploring Consensus Clients, beginning with Teku due to its active involvement in PeerDAS testing. I set up its testnet network and utilized Grafana for monitoring.
[Kurtosis: A Deep Dive to Local Devnets](https://ethpandaops.io/posts/kurtosis-deep-dive/)
## Running Kurtosis
You can find an installation guide [here](https://docs.kurtosis.com/install). While working with Kurtosis, don't forget to start Docker.
Kurtosis engine commands:
```
kurtosis engine start
kurtosis engine stop
kurtosis engine restart
kurtosis engine status
```
Inintial running:
```
kurtosis run github.com/ethpandaops/ethereum-package
```
Running an enclave with my args:
```
kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package --args-file peerdas_params.yaml
```

Working with enclaves:
```
kurtosis enclave ls
kurtosis enclave inspect my-testnet
kurtosis enclave stop my-testnet
kurtosis enclave rm my-testnet
kurtosis clean -a
```
## Kurtosis PeerDAS network params
Here are my latest params for `network_params.yaml` file:
```
participants:
- cl_type: prysm
cl_image: ethpandaops/prysm-beacon-chain:peerDAS
- cl_type: lighthouse
cl_extra_params: [
--subscribe-all-data-column-subnets,
]
cl_image: ethpandaops/lighthouse:das
- cl_type: lighthouse
cl_image: ethpandaops/lighthouse:das
- cl_type: teku
cl_image: ethpandaops/teku:nashatyrev-das
- cl_type: nimbus
cl_image: ethpandaops/nimbus-eth2:kzgpeerdas
- cl_type: grandine
cl_image: ethpandaops/grandine:das
# - cl_type: lodestar
# cl_image: ethpandaops/lodestar:peerDAS
network_params:
network: peerdas-devnet-1
eip7594_fork_epoch: 0
eip7594_fork_version: "0x50000038"
num_validator_keys_per_node: 64
preregistered_validator_keys_mnemonic:
"giant issue aisle success illegal bike spike
question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy
very lucky have athlete"
parallel_keystore_generation: false
snooper_enabled: true
global_log_level: debug
additional_services:
- dora
- goomy_blob
```
## PeerDAS on Clients
| Client |Repo |
| -------- | -------- |
| Teku | [DAS branch](https://github.com/Nashatyrev/teku/tree/das) |
## Dora
[Dora the Explorer](https://github.com/ethpandaops/dora) is a lightweight beaconchain explorer. A Beaconchain explorer is a tool that allows users to view and interact with the data on the Ethereum Beacon Chain. It is similar to a blockchain explorer, which allows users to view data on a blockchain such as the current state of transactions and blocks - but focussed on exploring the beaconchain.
You can use Dora for the local devnets when running your enclave:

Here is a Dora representation of my local devnet running:

## Teku progress
I downloaded the PeerDAS version of Teku. Attempted to build a Docker image but encountered an error on my Mac. Successfully ran the Teku testnet network locally. Reviewed the Teku dashboard on Grafana.

## Weekly EPF Activity
- [EPF5 Standup]()
- [EPF5 Office Hours: ePBS with Potuz](https://www.youtube.com/watch?v=K3a6QE30P9g)
Potuz from Prysm gave us an overview and a current state of ePBS.
- [ACDE #191](https://www.youtube.com/live/58_bJD_dmm0)
[Github issue #1080](https://github.com/ethereum/pm/issues/1080)
Discussing Pectra Devnet and some EIPs: 7702, 7212, 7002, 7251.
## TODO
- [ ] Dive into snooper
- [ ] Connect Grafana to PeerDAS devnet
- [ ] Explore Dora
## Links
[Kurtosis: A Deep Dive to Local Devnets](https://ethpandaops.io/posts/kurtosis-deep-dive/)
[peerdas-devnet-1 specs](https://notes.ethereum.org/@ethpandaops/peerdas-devnet-1)
[pectra-devnet-0 specs](https://notes.ethereum.org/@ethpandaops/pectra-devnet-0)
[Kurtosis Docs](https://docs.kurtosis.com/)
[Grafana Docs](https://grafana.com/docs/grafana/latest/)
[Teku Docs](https://docs.teku.consensys.io/introduction)
[Snooper](https://github.com/ethpandaops/rpc-snooper)
[My Kurtosis issue](https://github.com/ethpandaops/ethereum-package/issues/694)
[Ethereum-package on github](https://github.com/ethpandaops/ethereum-package)
[DevOps and Testnets Week 9 EPS](https://www.youtube.com/watch?v=Enf8006zKLI)
[EIP-7594 - Update ENR record](https://github.com/ethereum/consensus-specs/pull/3772)
[From 4844 to Danksharding: a path to scaling Ethereum DA](https://ethresear.ch/t/from-4844-to-danksharding-a-path-to-scaling-ethereum-da/18046)
[PeerDAS – a simpler DAS approach using battle-tested p2p components](https://ethresear.ch/t/peerdas-a-simpler-das-approach-using-battle-tested-p2p-components/16541)
[Specs: EIP-7594 -- Data Availability Sampling Core](https://github.com/ethereum/consensus-specs/blob/b4188829b32139916127827c64ba17c923e66c3c/specs/_features/eip7594/das-core.md)
[How to help self builders with blobs](https://notes.ethereum.org/@dankrad/self-builder-strategies#Before-PeerDAS)