# Creating a local cluster with the mkfiles script

Now that you know how the internals of a local cluster work, you can benefit from some automation. We have a script that can help you start a cluster that forks into Babbage era at epoch 0. It is located here:

{% embed url="<https://github.com/input-output-hk/cardano-node/blob/master/scripts/babbage/mkfiles.sh>" %}

{% hint style="info" %}
Make sure to use cardano-node 8.0.0

```
cardano-node --version
cardano-node 8.0.0 - linux-x86_64 - ghc-8.10
git rev 69a117b7be3db0f4ce6d9fc5cd4c16a2a409dcb8
```

{% endhint %}

To create a local-cluster using mkfiles.sh, please clone cardano-node repo and checkout tagged version 8.0.0

```bash
git colne https://github.com/input-output-hk/cardano-node.git
git checkout tags/8.0.0
```

`mkfiles.sh` script is currently set to start the cluster on Conway era, but Conway development is still in progress and most of the functionalities of cardano-node will not work just yet.

We need to edit the file [scripts/babbage/mkfiles.sh](https://github.com/input-output-hk/cardano-node/blob/master/scripts/babbage/mkfiles.sh) file to ensure that our cluster starts in Babbage era. All we have to do is comment (#) this line on the script:

```
# echo "TestConwayHardForkAtEpoch: 0" >> "${ROOT}/configuration.yaml" 
```

Save your changes,

It is recommended to have 3 additional terminals ready, one for each node. When you are ready, run the `mkfiles.sh` script.

```
./scripts/babbage/mkfiles.sh
generated genesis with: 3 genesis keys, 3 non-delegating UTxO keys, 3 stake pools, 3 delegating UTxO keys, 3 delegation map entries,
example/node-spo1.sh
example/node-spo2.sh
example/node-spo3.sh
CARDANO_NODE_SOCKET_PATH=example/node-spo1/node.sock
```

Then, run a node on each terminal. For example:

Terminal 1

```
example/node-spo1.sh
```

Terminal 2

```
example/node-spo2.sh
```

Terminal 3

```
example/node-spo3.sh
```

{% hint style="info" %}
Note that you have 30 seconds to start the 3 nodes. To give yourself more tim, you can change this line on the mkfiles.sh script:

```shellscript
START_TIME="$(${DATE} -d "now + 30 seconds" +%s)"

```

{% endhint %}

After starting your nodes, make sure to set the CARDANO\_NODE\_SOCKET\_PATH on your working terminal:

```
CARDANO_NODE_SOCKET_PATH=example/node-spo1/node.sock
```

and voilà! We have a cluster running on Babbage era with very little effort:

```
cardano-cli query tip --testnet-magic 42
{
    "block": 3519,
    "epoch": 70,
    "era": "Babbage",
    "hash": "dd38083ef4392502218e71c6364bcfefdef1f9e6563f27fa1db2196e1c65b786",
    "slot": 35361,
    "slotInEpoch": 361,
    "slotsToEpochEnd": 139,
    "syncProgress": "100.00"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cardano-course.gitbook.io/cardano-course/handbook/setting-up-a-local-cluster/create-a-local-cluster-with-mkfiles-script.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
