Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/prod #42

Merged
merged 8 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"words": [],
"flagWords": [],
"ignorePaths": [],
"ignoreWords": ["Rollups", "Blockifier", "Starklone", "KLONE"],
"dictionaryDefinitions": [
{
"name": "starknet",
Expand Down
38 changes: 15 additions & 23 deletions pages/_meta.en.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
"pagination": false
}
},
"Installation": {
"title": "Installation"
},
"quickstart": {
"title": "Quickstart"
},
Expand All @@ -23,18 +20,12 @@
"overview": {
"title": "Overview"
},
"start": {
"title": "Start a self-hosted chain"
},
"chain-architecture": {
"title": "Architecture"
},
"chain-configuration": {
"title": "Configuration"
},
"chain-management": {
"title": "Management"
},

"--- NODE OPERATORS": {
"title": "NODE OPERATORS",
Expand All @@ -43,6 +34,9 @@
"introduction": {
"title": "Overview"
},
"installation": {
"title": "Installation"
},
"fundamentals": {
"title": "Fundamentals"
},
Expand All @@ -55,24 +49,13 @@
"display": "hidden"
},

"--- DEVNET": {
"title": "DEVNET",
"type": "separator"
},
"chain-devnet": {
"title": "Devnet"
},

"--- Tutorials": {
"--- TUTORIALS": {
"title": "TUTORIALS",
"type": "separator"
},
"tutorials-full-node": {
"title": "Full Node"
},
"tutorials-sequencer": {
"title": "Sequencer"
},
"tutorials-chain": {
"title": "App Chain"
},
Expand All @@ -81,8 +64,17 @@
"title": "ABOUT",
"type": "separator"
},
"about": {
"type": "page"
"releases": {
"title": "Releases Notes"
},
"liscense": {
"title": "Liscence"
},
"support": {
"title": "Support"
},
"credits": {
"title": "Credits"
},
"contact": {
"title": "Contact ↗",
Expand Down
25 changes: 0 additions & 25 deletions pages/about/_meta.en.json

This file was deleted.

1 change: 0 additions & 1 deletion pages/about/contribute.en.mdx

This file was deleted.

1 change: 0 additions & 1 deletion pages/about/ecosystem.en.mdx

This file was deleted.

1 change: 0 additions & 1 deletion pages/about/version.en.mdx

This file was deleted.

46 changes: 40 additions & 6 deletions pages/chain-architecture/sequencer.en.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Sequencer
title: What is a sequencer?
lang: en-US
description: A guide to monitor your node using Sequencer.
description: Learn about what is a Sequencer
---

import { Steps } from "nextra-theme-docs";
Expand All @@ -15,8 +15,42 @@ import {
} from "@fortawesome/free-brands-svg-icons";
import { Tabs, Tab } from "nextra/components";

# 🚧 Sequencer
# Sequencer

<Callout type="warning" emoji="⚠️">
This section is still under construction.
</Callout>
Sequencers are a crucial component of the Starknet network, playing a role similar to validators in Ethereum. They serve as the backbone of the Starknet ecosystem, responsible for ushering transactions into the system.

In the context of Validity Rollups like Starknet, sequencers are specialized entities that handle transaction processing. Their primary function is to provide transaction capacity to the network, rather than security (which is handled differently in this architecture).

## How Sequencers Work

Sequencers follow a systematic method for processing transactions, which can be broken down into four main steps:

1. **Sequencing**: Sequencers collect transactions from users and order them.
2. **Executing**: After collection, sequencers process these transactions.
3. **Batching**: For efficiency, transactions are grouped together in batches.
4. **Block Production**: Finally, sequencers produce blocks that contain these batches of processed transactions.

This process allows Validity Rollups like Starknet to handle a higher volume of transactions while maintaining the security of the underlying Ethereum network, thus enhancing scalability without compromising on security.

## The Role of Sequencers in Transaction Flow

To understand how sequencers fit into the broader Starknet ecosystem, let's look at the transaction flow:

1. A transaction is received by a gateway (which serves as the Mempool) and is marked as `RECEIVED` (See [Transaction Flow](https://docs.starknet.io/architecture-and-concepts/network-architecture/starknet-architecture-overview#transaction-flow)).
2. The sequencer then incorporates the transaction into the network state and tags it as `ACCEPTED_ON_L2`.
3. After the sequencer has done its job, a prover executes the operating system on the new block, calculates its proof, and submits it to Layer 1 (Ethereum) for verification.

## Requirements for Sequencers

Sequencers play a critical role in the network's smooth functioning, and as such, they must meet certain requirements:

1. **Reliability**: Sequencers need to be highly reliable to ensure consistent transaction processing.
2. **Availability**: High availability is crucial as sequencers must be ready to process transactions at all times.
3. **Computational Power**: Sequencers require powerful machines to perform their role effectively, as they must process transactions rapidly and continuously.
4. **Network Connectivity**: Well-connected machines are necessary to ensure efficient communication within the network.

## Future of Sequencers in Starknet

It's worth noting that Starknet is actively moving towards decentralization [Starknet Architecture Overview](https://docs.starknet.io/architecture-and-concepts/network-architecture/starknet-architecture-overview#starknet-architecture-overview). The current roadmap for Starknet includes plans to decentralize the sequencer role. This shift towards decentralization will allow more participants to become sequencers, contributing to the overall robustness and resilience of the network.

Sequencers are a vital component of the Starknet ecosystem, responsible for ordering, executing, and batching transactions into blocks. Their efficient operation is crucial for Starknet's ability to handle high transaction volumes while maintaining security and scalability.
1 change: 0 additions & 1 deletion pages/chain-configuration/_meta.en.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{
"overview": "Overview",
"parameters": "Parameters"
}
23 changes: 0 additions & 23 deletions pages/chain-configuration/overview.en.mdx

This file was deleted.

3 changes: 0 additions & 3 deletions pages/chain-devnet/_meta.en.json

This file was deleted.

3 changes: 0 additions & 3 deletions pages/chain-management/_meta.en.json

This file was deleted.

File renamed without changes.
13 changes: 10 additions & 3 deletions pages/index.en.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import {
PanelsTopLeft,
Package,
Rocket,
Wrench,
BrainCircuit,
} from "lucide-react";

# Welcome to the Madara Documentation
Expand All @@ -29,7 +31,7 @@ Madara is an open-source framework that makes it simple for you to deploy your o

## Madara Supports the Following Use Cases

- **Appchain Stack:** Allows to easily deploy your own Starknet instance to host you application
- **App Chain Stack:** Allows to easily deploy your own Starknet instance to host you application
- **Full Node:** Enables to interact with different Starknet networks
- **Devnet:** Simulates a Starknet network to test out you Cairo smart contracts

Expand Down Expand Up @@ -68,12 +70,17 @@ Take a look at these essential tools to get started with Madara and Cairo.
<Card
title="Madara Repo"
href="https://github.com/madara-alliance/madara"
icon={<Computer size={24} color="#ff000d" />}
icon={<Wrench size={24} color="#ff000d" />}
/>
<Card
title="Bootstrapper"
href="https://github.com/madara-alliance/madara-bootstrapper"
icon={<Power size={24} color="#ff000d" />}
icon={<Rocket size={24} color="#ff000d" />}
/>
<Card
title="Snos"
href="https://github.com/keep-starknet-strange/snos"
icon={<BrainCircuit size={24} color="#ff000d" />}
/>
</Cards>
{/*
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions pages/quickstart/_meta.en.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"quickstart_1": {
"href": "/quickstart/quickstart_1"
"launch": {
"title": "Launch your App Chain!"
}
}
27 changes: 24 additions & 3 deletions pages/start.en.mdx → pages/quickstart/launch.en.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,36 @@ import {
} from "@fortawesome/free-brands-svg-icons";
import { Tabs, Tab } from "nextra/components";

# How to Start a Self-Hosted Chain with Madara
# How to launch your first App-Chain with Madara

This guide will walk you through the process of building, configuring, testing, and launching your own self-hosted chain using Madara. Unlike the [Node operators](/introduction) section, which focuses on understanding how Madara works as a client, here we explain in a more application-oriented way how to run and customize your own chain.

## Build Your Chain
## Quick start tutorial

As an introduction to the following section, we created a video tutorial to give you more context on what happens when you launch your own App Chain. It uses an installation script that will guide you through all the steps of a minimalist setup of the Madara client.

<Steps>
### Download and launch the installer

```bash
curl -sL https://madara.build/launcher.sh && chmod +x launcher && ./launcher
```

### Follow the tutorial

</Steps>

<Callout type="info" emoji="ℹ️">
We recommend continuing with the [Next
Section](#build-your-chain-from-source), which will help you better understand
the different components of Madara by building from source.
</Callout>

## Build Your Chain from source

### Understand Madara Components

Before diving into installation, it's important to understand the fundamental components of Madara and how it functions as a Starknet client.
Now that you have some context around the Madara client, it's important to understand the fundamental components of Madara and how it functions as a Starknet client.

- **Chain Architecture**: Madara currently works exactly like Starknet mainnet with a centralized sequencer that will produce the state of your chain. This one will then serve the data for proving trough SNOS and Sharp (the zk-stark prover). This means that your sequencer is the only one capable of producing state. You can then connect as many full nodes as you like to it. We recommend you to familiarize yourself with the [architecture](https://github.com/madara-alliance/madara) to understand how the entire flow works.

Expand Down
Loading
Loading