# Rippled I – Compilation, Configuration, and Launch

### Module Overview

The first module of the XRPL Core Dev Bootcamp is dedicated to setting up the development environment and compiling **Rippled**, the software at the core of the XRP Ledger.

This module is your hands-on guide to transforming the open-source code into a functional, running server. You will gain a practical understanding of the client's internal structure by mastering the compilation, configuration, and launch of Rippled in **standalone mode**.

***

### What You Will Learn

* **Setup:** Configure a C++ development environment (macOS/Ubuntu).
* **Tools:** Master Conan and CMake for the build process.
* **Build:** Successfully compile the *rippled* binary from source.
* **Launch:** Run and configure the server in standalone mode.
* **Test:** Interact with your local ledger via API and test tools.

***

#### 💻 Environment & Build Toolchain Setup

**Preparing Your Development Machine and Mastering the C++ Toolchain**

Set up all the essential prerequisites for your development environment from installing compilers and dependencies to mastering modern C++ build tools.

You’ll configure **Clang/G++**, **Homebrew** or **apt**, and install **Python** and **Node.js**, before diving into **Conan** for dependency management and **CMake** for build configuration, ensuring full compliance with the **C++20** standard.

[Explore Environment & Toolchain Setup →](/core-dev-bootcamp/module01/environment-build-toolchain.md)

***

#### 🔨 Compilation Process

**Generating the Rippled Binary**

Step-by-step guide to the compilation: dependency installation, CMake configuration, and running the final build command to create the executable.

[Explore Compilation Process →](/core-dev-bootcamp/module01/compilation-process-generating-binary.md)

***

#### 🧩 Local Development & Testing

**Running Rippled in Standalone Mode and Interacting Locally**

Run Rippled in **standalone mode** for local testing without connecting to the XRPL network.\
Configure your environment, launch the server, and interact with it via the **API**, **WebSocket**, or tools like **XRPL Explorer** and **Playground** to test transactions and ledger operations in isolation.

**Key Topics**: Standalone mode, configuration, API (RPC/WebSocket), local testing, XRPL Explorer, Playground

[Explore Local Development & Testing →](/core-dev-bootcamp/module01/local-development-testing.md)

***

## Homework

We often learn best through hands-on practice, which is why we offer an exercise that involves configuring and launching Rippled on the XRPL mainnet, then analyzing the logs to understand the node's behavior during initial synchronization.

[Homework: Rippled Node Setup and Mainnet Synchronization →](/core-dev-bootcamp/module01/homeworks/homework1.md)

## Questions

If you have any questions about the homework or would like us to review your work, feel free to contact us.

[Submit Feedback →](https://docs.google.com/forms/d/e/1FAIpQLSe7qIbqepUKGVJxmWFHv0rs1zsBAzk8G6y5-bfz0Yd5rqW_5A/viewform)

## Additional Resources

* [Official Rippled Documentation – Build](https://github.com/XRPLF/rippled/blob/develop/BUILD.md)
* [Build Environment Guide](https://github.com/XRPLF/rippled/blob/develop/docs/build/environment.md#macos)
* [Rippled GitHub Repository](https://github.com/XRPLF/rippled)

***

➡️ **Next Module**: Rippled II - [Deep Dive into the Protocol and Codebase](/core-dev-bootcamp/module02.md)


---

# 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://docs.xrpl-commons.org/core-dev-bootcamp/module01.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.
