diff --git a/docs/developers/guides/community/irys-dynamic-nfts.mdx b/docs/developers/guides/community/irys-dynamic-nfts.mdx index 831c73643..e6f27b8d7 100644 --- a/docs/developers/guides/community/irys-dynamic-nfts.mdx +++ b/docs/developers/guides/community/irys-dynamic-nfts.mdx @@ -1,6 +1,6 @@ --- title: Create a dynamic NFT -image: /img/socialCards/build-a-dynamic-nft.jpg +image: /img/socialCards/create-a-dynamic-nft.jpg description: Create NFTs that evolve based on user actions. --- diff --git a/docs/developers/guides/community/irys-nfts.md b/docs/developers/guides/community/irys-nfts.md index 1f4c3e217..3bf660754 100644 --- a/docs/developers/guides/community/irys-nfts.md +++ b/docs/developers/guides/community/irys-nfts.md @@ -1,6 +1,6 @@ --- title: Create an NFT -image: /img/socialCards/build-a-nft.jpg +image: /img/socialCards/create-an-nft.jpg description: Build permanent NFTs using Irys and Linea. --- diff --git a/docs/developers/guides/run-linea/index.mdx b/docs/developers/guides/run-linea/index.mdx new file mode 100644 index 000000000..1c05ab125 --- /dev/null +++ b/docs/developers/guides/run-linea/index.mdx @@ -0,0 +1,34 @@ +--- +description: How to run a Linea network. +image: /img/socialCards/how-to-run-a-linea-network.jpg +--- + +import DocCardList from "@theme/DocCardList"; + +# Run Linea + +You can run the entire Linea stack or a Linea node. Choosing between running the entire Linea stack +and a Linea node depends on your specific needs and the environment you're working in. + +## When to run the Linea stack + +:::info +Currently, the Linea stack is available for local deployments only. +::: + +Run the Linea stack locally if you want to develop or test applications on Linea without connecting +to Sepolia or Ethereum Mainnet. + +The Linea stack incorporates the base layer (L1) and the Linea stack itself. +By running the entire Linea stack locally, developers benefit from a controlled environment that provides +direct access to the blockchain's capabilities. + +## When to run a Linea node + +Run a Linea node if you want a local view of the Linea blockchain state. +A node enables users to call Linea JSON-RPC API methods and submit transactions to the +mempool independently, without depending on external RPC providers. + +Select the appropriate card for more information on running Linea using your preferred setup: + + diff --git a/docs/developers/guides/run-a-node/index.mdx b/docs/developers/guides/run-linea/run-a-node/index.mdx similarity index 100% rename from docs/developers/guides/run-a-node/index.mdx rename to docs/developers/guides/run-linea/run-a-node/index.mdx diff --git a/docs/developers/guides/run-a-node/use-binary.mdx b/docs/developers/guides/run-linea/run-a-node/use-binary.mdx similarity index 100% rename from docs/developers/guides/run-a-node/use-binary.mdx rename to docs/developers/guides/run-linea/run-a-node/use-binary.mdx diff --git a/docs/developers/guides/run-a-node/use-docker.mdx b/docs/developers/guides/run-linea/run-a-node/use-docker.mdx similarity index 100% rename from docs/developers/guides/run-a-node/use-docker.mdx rename to docs/developers/guides/run-linea/run-a-node/use-docker.mdx diff --git a/docs/developers/guides/run-a-node/volume-creation.mdx b/docs/developers/guides/run-linea/run-a-node/volume-creation.mdx similarity index 100% rename from docs/developers/guides/run-a-node/volume-creation.mdx rename to docs/developers/guides/run-linea/run-a-node/volume-creation.mdx diff --git a/docs/developers/guides/run-linea/run-the-stack/index.mdx b/docs/developers/guides/run-linea/run-the-stack/index.mdx new file mode 100644 index 000000000..c50f8519a --- /dev/null +++ b/docs/developers/guides/run-linea/run-the-stack/index.mdx @@ -0,0 +1,30 @@ +--- +description: Run the Linea stack. +image: /img/socialCards/run-the-linea-stack.jpg +--- + +import DocCardList from "@theme/DocCardList"; + +# Run the Linea stack + +:::info + +The Linea stack is currently available only for local testing. This includes a local version of the +base layer (Hyperledger Besu) and the Linea stack itself. + +::: + +Run the the entire Linea stack to get working versions of: + +- **Sequencer**: Responsible for ordering, building, and executing blocks. +- **State manager**: Manages the L2 network and account states. +- **Coordinator**: Coordinates the steps to create zk proofs and ensures their persistence on the + L1 Ethereum network. It specifically handles batch conflation, blob creation, and aggregation. +- **Traces API**: Provides trace counts and generates conflated trace files for zk proof creation. +- **Provers**: Generates three types of zk-SNARK proofs: execution, compression, and aggregation. + +Refer to the [Linea architecture documentation](../../../../architecture/index.mdx) for more information +about the Linea stack components. + + + diff --git a/docs/developers/guides/run-linea/run-the-stack/local.mdx b/docs/developers/guides/run-linea/run-the-stack/local.mdx new file mode 100644 index 000000000..59b479a4d --- /dev/null +++ b/docs/developers/guides/run-linea/run-the-stack/local.mdx @@ -0,0 +1,115 @@ +--- +description: Run the Linea stack locally. +image: /img/socialCards/run-the-linea-stack-locally.jpg +--- + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +# Run locally + +## Prerequisites + +Install the following: + +- [Node.js v18 or later](https://nodejs.org/en/download/package-manager) +- [Docker v24 or later](https://docs.docker.com/get-docker/) +- [Docker Compose v2.19 or later](https://docs.docker.com/compose/install/) +- [Make v3.81 or later](https://www.npmjs.com/package/make) +- [Pnpm v9.0.6 or later](https://pnpm.io/installation) + +:::important +These instructions run the Linea stack using Docker containers. Set your Docker resources to +use at least 10 CPU cores, 8 GB of memory, and 1 GB swap space. +::: + +## Run the Linea stack + +### 1. Clone the repository + +Clone the Linea repository: + +```bash +git clone https://github.com/Consensys/linea-monorepo.git +``` + +### 2. Install the dependencies + +Change to the root of the directory and install the project dependencies: + +```bash +cd linea-monorepo +``` + +```bash +pnpm install +``` + +### 3. Start the Linea stack + +Start the network stack. This will also compile and deploy the required rollup contracts: + +```bash +make fresh-start-all +``` + +You now have a local developer instance of the entire Linea network, which includes components such as +the sequencer, prover, coordinator, and a local L1 settlement layer. You can view these components in +Docker Desktop. + +
+
+ Docker Desktop view of the Linea stack. +
+
+ +## View network details + +Access the RPC endpoints from the following local URLs: + + + + - Endpoints: + - HTTPS: `http://localhost:8545` + - WebSockets: `ws://localhost:8546` + - Chain ID: `1337` + - [Message service address](../../../../architecture/stack/canonical-msg-service/message-service.mdx): `0xe537D669CA013d86EBeF1D64e40fC74CADC91987` + - Deployment account private key: `0x1dd171cec7e2995408b5513004e8207fe88d6820aeff0d82463b3e41df251aae` + + + - Endpoints: + - HTTPS: `http://localhost:8445` + - WebSockets: `ws://localhost:8446` + - Chain ID: `31648428` + - Linea rollup contract address: `0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9` + - Deployment account private key: `0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80` + + + +:::info +You can [connect your MetaMask wallet](https://support.metamask.io/networks-and-sidechains/managing-networks/how-to-add-a-custom-network-rpc/#adding-a-network-manually) +to the required chain and [import the deployment account](https://support.metamask.io/managing-my-wallet/accounts-and-addresses/how-to-import-an-account/#importing-using-a-private-key) +to access the test tokens. +::: + +## Stop the Linea stack + +You can stop and start the the Docker containers in Docker Desktop. However, constant stopping and +starting can lead to network or state issues. + +Once stopped, you can clean your environment using the following commands: + +:::note +This will permanently remove all Docker images, containers, volumes, and any data saved in them. +::: + +```bash +make clean-environment +``` +```bash +docker system prune --volumes +``` + diff --git a/docs/developers/reference/api/eth-sendrawtransaction.mdx b/docs/developers/reference/api/eth-sendrawtransaction.mdx index 0f88fd406..ef0697855 100644 --- a/docs/developers/reference/api/eth-sendrawtransaction.mdx +++ b/docs/developers/reference/api/eth-sendrawtransaction.mdx @@ -1,5 +1,7 @@ --- description: Simulate transaction submission to help prevent failed transactions. +image: >- + /img/socialCards/simulate-transaction-submission-to-help-prevent-failed-transactions.jpg --- import Tabs from '@theme/Tabs'; diff --git a/docs/developers/tooling/data-indexers/covalent.md b/docs/developers/tooling/data-indexers/covalent.md index 4ef17d145..965675cfb 100644 --- a/docs/developers/tooling/data-indexers/covalent.md +++ b/docs/developers/tooling/data-indexers/covalent.md @@ -138,4 +138,4 @@ Increment can be used for: - [Increment](https://www.covalenthq.com/platform/increment/#/?utm_source=linea&utm_medium=partner-docs) - login via the Covalent Platform - [Docs](https://www.covalenthq.com/docs/increment/?utm_source=linea&utm_medium=partner-docs) - learn how to use Increment to build dynamic, custom charts -- [Data models demo](https://www.covalenthq.com/docs/increment/data-models/model-intro/?utm_source=linea&utm_medium=partner-docs) - build analytics in three clicks \ No newline at end of file +- [Data models demo](https://www.covalenthq.com/docs/increment/data-models/model-intro/?utm_source=linea&utm_medium=partner-docs) - build analytics in three clicks diff --git a/docs/developers/tooling/data-indexers/dipdup.md b/docs/developers/tooling/data-indexers/dipdup.md index e4b1d1d75..ac3ea8a2b 100644 --- a/docs/developers/tooling/data-indexers/dipdup.md +++ b/docs/developers/tooling/data-indexers/dipdup.md @@ -1,5 +1,6 @@ --- title: DipDup +image: /img/socialCards/dipdup.jpg --- [DipDup](https://dipdup.io/) is a Python framework for building smart contract indexers. diff --git a/docs/developers/tooling/node-providers.md b/docs/developers/tooling/node-providers.md index c8e2145c2..66f219937 100644 --- a/docs/developers/tooling/node-providers.md +++ b/docs/developers/tooling/node-providers.md @@ -17,7 +17,7 @@ image: /img/socialCards/node-providers.jpg ## Run your own node -- [Set it up yourself](../guides/run-a-node) +- [Set it up yourself](../guides/run-linea/run-a-node/index.mdx) - [One-click deploy with EasyNode](https://app.easy-node.xyz/) - [One-click deploy with Mintair](https://mintair.xyz/) - [One-click deploy with RapidNode](https://rapidnode.xyz/dashboard) diff --git a/docs/developers/tooling/oracles/tellor.md b/docs/developers/tooling/oracles/tellor.md index c91df80f0..b88982d13 100644 --- a/docs/developers/tooling/oracles/tellor.md +++ b/docs/developers/tooling/oracles/tellor.md @@ -1,6 +1,9 @@ --- title: Tellor -description: A versatile oracle protocol that can provide data of any type permissionlessly with crypto-economic liveness and security. +description: >- + A versatile oracle protocol that can provide data of any type permissionlessly + with crypto-economic liveness and security. +image: /img/socialCards/tellor.jpg --- # Tellor diff --git a/docs/developers/tooling/permanent-data/irys/irys-quickstart.md b/docs/developers/tooling/permanent-data/irys/irys-quickstart.md index 2a0d53fdc..dc0bb1955 100644 --- a/docs/developers/tooling/permanent-data/irys/irys-quickstart.md +++ b/docs/developers/tooling/permanent-data/irys/irys-quickstart.md @@ -1,6 +1,6 @@ --- title: Irys quickstart -image: /img/socialCards/quickstart.jpg +image: /img/socialCards/irys-quickstart.jpg description: Creating permanent data using Irys SDK. --- diff --git a/docusaurus.config.js b/docusaurus.config.js index cde7ae8d2..b319b9d1c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -137,9 +137,9 @@ const config = { // ], // }, { - to: "/developers/guides/run-a-node", + to: "/developers/guides/run-linea", position: "left", - label: "Run a node", + label: "Run Linea", }, { to: "/developers/linea-version", @@ -381,11 +381,12 @@ const config = { from: "/build-on-linea/gas-fees", }, { - to: "/developers/guides/run-a-node", + to: "/developers/guides/run-linea", from: [ "/build-on-linea/run-a-node", "/build-on-linea/run-a-node/use-binary", "/build-on-linea/run-a-node/use-docker", + "/developers/guides/run-a-node", ], }, { diff --git a/sidebars.js b/sidebars.js index 229a0b417..c9e9e37b6 100644 --- a/sidebars.js +++ b/sidebars.js @@ -162,18 +162,41 @@ const sidebars = { }, "developers/guides/linea-api/index", "developers/guides/linea-sdk/index", + { type: "category", - label: "Run a Linea node", + label: "Run Linea", link: { type: "doc", - id: "developers/guides/run-a-node/index", + id: "developers/guides/run-linea/index", }, items: [ - "developers/guides/run-a-node/use-docker", - "developers/guides/run-a-node/use-binary", + { + type: "category", + label: "Run the Linea stack", + link: { + type: "doc", + id: "developers/guides/run-linea/run-the-stack/index", + }, + items: [ + "developers/guides/run-linea/run-the-stack/local", + ], + }, + { + type: "category", + label: "Run a Linea node", + link: { + type: "doc", + id: "developers/guides/run-linea/run-a-node/index", + }, + items: [ + "developers/guides/run-linea/run-a-node/use-docker", + "developers/guides/run-linea/run-a-node/use-binary", + ], + }, ], }, + "developers/guides/linea-safe", "developers/guides/linea-inscriptions", ], diff --git a/src/components/HomepageCards/index.tsx b/src/components/HomepageCards/index.tsx index 4b55143f6..c2dc3bdf1 100644 --- a/src/components/HomepageCards/index.tsx +++ b/src/components/HomepageCards/index.tsx @@ -51,12 +51,13 @@ const CardList: CardItem[] = [ icon: CardIcon2, }, { - title: "Run a node", - link: "/developers/guides/run-a-node", + title: "Run Linea", + link: "/developers/guides/run-linea", description: ( <> - Learn how to run a Linea node with Besu or Geth, and interact with the + Learn how to run a Linea node or the Linea stack, and interact with the blockchain locally + ), buttonName: "Learn", diff --git a/src/css/custom.css b/src/css/custom.css index e51f65059..6787a2652 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -571,7 +571,7 @@ html[data-theme="dark"] .header-dockerhub-link::before { .navbar__link[href="/users"]::before, .navbar__link[href="/developers/quickstart"]::before, .navbar__link[href="/architecture"]::before, -.navbar__link[href="/developers/guides/run-a-node"]::before { +.navbar__link[href="/developers/guides/run-linea"]::before { content: ""; display: inline-block; width: 7px; @@ -588,7 +588,7 @@ html[data-theme="dark"] .header-dockerhub-link::before { .navbar__link[href="/users"]:hover::before, .navbar__link[href="/developers/quickstart"]:hover::before, .navbar__link[href="/architecture"]:hover::before, -.navbar__link[href="/developers/guides/run-a-node"]:hover::before { +.navbar__link[href="/developers/guides/run-linea"]:hover::before { background-color: #61dfff; border: 1px solid #61dfff; } @@ -610,7 +610,7 @@ html[data-theme="dark"] .header-dockerhub-link::before { .navbar__link[href="/users"]::before, .navbar__link[href="/developers/quickstart"]::before, .navbar__link[href="/architecture"]::before, - .navbar__link[href="/developers/guides/run-a-node"]::before { + .navbar__link[href="/developers/guides/run-linea"]::before { display: none; } } diff --git a/static/img/docs/build-on-linea/linea-stack.png b/static/img/docs/build-on-linea/linea-stack.png new file mode 100644 index 000000000..7f6e105e5 Binary files /dev/null and b/static/img/docs/build-on-linea/linea-stack.png differ diff --git a/static/img/socialCards/create-a-dynamic-nft.jpg b/static/img/socialCards/create-a-dynamic-nft.jpg new file mode 100644 index 000000000..78ff2df1e Binary files /dev/null and b/static/img/socialCards/create-a-dynamic-nft.jpg differ diff --git a/static/img/socialCards/create-an-nft.jpg b/static/img/socialCards/create-an-nft.jpg new file mode 100644 index 000000000..b4e873949 Binary files /dev/null and b/static/img/socialCards/create-an-nft.jpg differ diff --git a/static/img/socialCards/dipdup.jpg b/static/img/socialCards/dipdup.jpg new file mode 100644 index 000000000..57e0425c4 Binary files /dev/null and b/static/img/socialCards/dipdup.jpg differ diff --git a/static/img/socialCards/how-to-run-a-linea-network.jpg b/static/img/socialCards/how-to-run-a-linea-network.jpg new file mode 100644 index 000000000..085129462 Binary files /dev/null and b/static/img/socialCards/how-to-run-a-linea-network.jpg differ diff --git a/static/img/socialCards/irys-quickstart.jpg b/static/img/socialCards/irys-quickstart.jpg new file mode 100644 index 000000000..1088cb860 Binary files /dev/null and b/static/img/socialCards/irys-quickstart.jpg differ diff --git a/static/img/socialCards/run-the-linea-stack-locally.jpg b/static/img/socialCards/run-the-linea-stack-locally.jpg new file mode 100644 index 000000000..48015a6a0 Binary files /dev/null and b/static/img/socialCards/run-the-linea-stack-locally.jpg differ diff --git a/static/img/socialCards/run-the-linea-stack.jpg b/static/img/socialCards/run-the-linea-stack.jpg new file mode 100644 index 000000000..45bef2578 Binary files /dev/null and b/static/img/socialCards/run-the-linea-stack.jpg differ diff --git a/static/img/socialCards/simulate-transaction-submission-to-help-prevent-failed-transactions.jpg b/static/img/socialCards/simulate-transaction-submission-to-help-prevent-failed-transactions.jpg new file mode 100644 index 000000000..8586589c7 Binary files /dev/null and b/static/img/socialCards/simulate-transaction-submission-to-help-prevent-failed-transactions.jpg differ diff --git a/static/img/socialCards/tellor.jpg b/static/img/socialCards/tellor.jpg new file mode 100644 index 000000000..215a832c5 Binary files /dev/null and b/static/img/socialCards/tellor.jpg differ