# EPF6 - Week 6
## Overview
- Attended core dev call and shared updates
- Researched`multifork.test.ts` logic and generated line-by-line breakdown
- Experimented with Kurtosis SDK
- Identified two potential points of integration/replacement (from current Runner to Kurtosis)
- Determined that it is likely that new logic will be needed in addition to porting existing function
- Integrating feedback structure of project proposal into an improved draft
## Main points
- Gained deeper understanding of sim tests/assertions workflow
- Tested Kurtosis SDK with kurtosis.js file by recreating the node setup of `multifork.test.ts`
**Instructions on how to install Kurtosis SDK**
- `npm i kurtosis-sdk`
- Upgrade Kurtosis tool following the instruction on [docs.kurtosis](https://docs.kurtosis.com/upgrade/)
- Restart the engine: `kurtosis engine restart`

- Kurtosis engine is running: `node packages/cli/test/sim/kurtosis.js` or `npx tsx packages/cli/test/sim/kurtosis.js`

- Run Kurtosis from code/programmatically

This result includes:
- Names of services started: `service-a-1`, `service-b-1`, `service-c-1`
- Their unique IDs (UUIDs)
- Confirmation that configuration templates were rendered and applied
- Created a .js file to run ethereum-package with CL nodes (`cl-1-lodestar-geth` & `cl-2-lighthouse-geth`) and EL nodes (`el-1-geth-lodestar` & `el-2-geth-lighthouse`)

## Learnings & Outcomes
- Identified with my mentor a couple of potential migration workflows:
- Convert the logic of the `Simulation.initWithDefaults()` function so it generates kurtosis config from the same configuration we already had
- Create something `Simulation.fromNetworkConfig` and pass in a Kurtosis config file
- Created a multi-client Ethereum testnet programmatically using Kurtosis SDK
- Replicated the CLI behavior with `kurtosis run ... --args-file` in code
## Week 7 TODOs
- Perform deep dive into Kurtosis SDK
- Further investigate what new logic Kurtosis SDK integration will require
- Determine the best way to port assertions over to Kurtosis SDK implementation
- Test the Kurtosis config matches env from sim test precisely or if further modification required
### Useful resources checked
- [Kurtosis SDK](https://github.com/kurtosis-tech/kurtosis/tree/main/api/typescript)
- [Upgrade Kurtosis](https://docs.kurtosis.com/upgrade/)
- [GitHub branch](https://github.com/ChainSafe/lodestar/compare/nh/kurtosis-sim) on Lodestar repo dedicated to Kurtosis test