diff --git a/content/academy/permissionless-l1s/02-proof-of-stake/01-introduction.mdx b/content/academy/permissionless-l1s/02-proof-of-stake/01-introduction.mdx index f8d3984b73b..99894c53507 100644 --- a/content/academy/permissionless-l1s/02-proof-of-stake/01-introduction.mdx +++ b/content/academy/permissionless-l1s/02-proof-of-stake/01-introduction.mdx @@ -10,7 +10,7 @@ icon: Book Converting from PoA to PoS isn't about replacing your entire blockchain—it's about strategically combining two concepts you may have already learned in separate courses: -![Proof of Stake Architecture](https://qizat5l3bwvomkny.public.blob.vercel-storage.com/PoS.png) +Proof of Stake Architecture ## Proof of Stake as Sybil Protection diff --git a/content/academy/permissionless-l1s/03-transformation-requirements/02-native-minter.mdx b/content/academy/permissionless-l1s/03-transformation-requirements/02-native-minter.mdx index 9eb67ae0e17..1ba3cf19a3b 100644 --- a/content/academy/permissionless-l1s/03-transformation-requirements/02-native-minter.mdx +++ b/content/academy/permissionless-l1s/03-transformation-requirements/02-native-minter.mdx @@ -46,9 +46,7 @@ The reward minting flow involves multiple contracts working together to distribu note over SM: Calculate rewards minus
delegation fees SM->>NTSM: _reward(recipient, delegatorRewards) NTSM->>NM: mintNativeCoin(recipient, amount) - NM->>RR: Native tokens minted - - + NM->>RR: Native tokens minted " /> diff --git a/content/academy/permissionless-l1s/04-speedrun-base-l1/01-create-l1-speedrun.mdx b/content/academy/permissionless-l1s/04-speedrun-base-l1/01-create-l1-speedrun.mdx new file mode 100644 index 00000000000..f6fcbe9906f --- /dev/null +++ b/content/academy/permissionless-l1s/04-speedrun-base-l1/01-create-l1-speedrun.mdx @@ -0,0 +1,89 @@ +--- +title: Create Your L1 +description: Quick guide to creating a subnet and converting it to an L1 with required precompiles +updated: 2025-03-13 +authors: [nicolasarnedo] +icon: Terminal +--- + +import { Step, Steps } from 'fumadocs-ui/components/steps'; +import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'; +import ToolboxMdxWrapper from "@/components/toolbox/academy/wrapper/ToolboxMdxWrapper.tsx" +import ConvertSubnetToL1 from "@/components/toolbox/console/layer-1/create/ConvertSubnetToL1.tsx" +import CreateChain from "@/components/toolbox/console/layer-1/create/CreateChain"; +import CreateManagedTestnetNode from "@/components/toolbox/console/testnet-infra/ManagedTestnetNodes/CreateManagedTestnetNode"; +import AvalancheGoDocker from "@/components/toolbox/console/layer-1/AvalancheGoDockerL1"; + +This section provides a streamlined walkthrough for creating a new L1 from scratch. + +You should already have a created L1 from the [Permissioned L1 course](/academy/permissioned-l1s) with the Validator Manager Contract correctly set up that you can use to transform into a Permissionless L1. But just in case you lost access to that one or want to start fresh, this guide is for you! + + + + +### Create Subnet with necessary Precompiles + +When creating your subnet, you **must** enable the Native Minter and Reward Manager precompiles in your genesis configuration. These are essential for native token staking: + +- **Native Minter**: Allows the staking manager to mint reward tokens +- **Reward Manager**: Automates reward distribution to validators + + + + + + + + +### Set Up Validator Node + +Launch a validator node for your subnet using our free managed testnet infrastructure (no Docker required): + + + + + +### Production & Extended Testing Environments + +After creating nodes, you can view and manage them at the [Testnet Infrastructure Console](/console/testnet-infra/nodes). **Managed nodes automatically shut down after 3 days**. For production or extended testing, see the self-hosted option below. + +For production environments or extended testing periods, you should use Docker to run your nodes. + + + + + + + + + + + + + + +### Convert Subnet to L1 + +Once your subnet is running with a validator, convert it to a sovereign L1. This process: + +- **Establishes Sovereignty**: Your blockchain becomes independent +- **Transfers Authority**: Validator management shifts from P-Chain to your Validator Manager Contract +- **Is Irreversible**: Once converted, you cannot revert to subnet status + +#### Key Conversion Parameters + +1. **Subnet ID**: Your subnet's unique identifier +2. **Validator Manager Blockchain ID**: Where your VMC will be deployed (typically your L1) +3. **Validator Manager Address**: The proxy address (pre-deployed to `0xfacade0000000000000000000000000000000000`) +4. **Initial Validators**: The validator(s) from your subnet + + + + + + + + +## Next Steps + +Now that your L1 is created with the required precompiles, you're ready to deploy and configure your Validator Manager Contract so that it **becomes a Permissioned L1**. diff --git a/content/academy/permissionless-l1s/04-speedrun-base-l1/02-permissioned-l1-speedrun.mdx b/content/academy/permissionless-l1s/04-speedrun-base-l1/02-permissioned-l1-speedrun.mdx new file mode 100644 index 00000000000..f5d8e19935f --- /dev/null +++ b/content/academy/permissionless-l1s/04-speedrun-base-l1/02-permissioned-l1-speedrun.mdx @@ -0,0 +1,89 @@ +--- +title: Setup Permissioned L1 +description: Deploy and set up your Validator Manager Contract to create a Proof of Authority blockchain +updated: 2025-03-13 +authors: [nicolasarnedo] +icon: Terminal +--- + +import { Step, Steps } from 'fumadocs-ui/components/steps'; +import ToolboxMdxWrapper from "@/components/toolbox/academy/wrapper/ToolboxMdxWrapper.tsx" +import DeployValidatorManager from "@/components/toolbox/console/permissioned-l1s/validator-manager-setup/DeployValidatorManager.tsx" +import UpgradeProxy from "@/components/toolbox/console/permissioned-l1s/validator-manager-setup/UpgradeProxy.tsx" +import Initialize from "@/components/toolbox/console/permissioned-l1s/validator-manager-setup/Initialize.tsx" +import InitValidatorSet from "@/components/toolbox/console/permissioned-l1s/validator-manager-setup/InitValidatorSet.tsx" + +This section walks through deploying and configuring your Validator Manager Contract (VMC) on your new L1. + +This is a multi-step process that establishes the necessary infrastructure to run a Permissioned L1 chain. This process is made (we hope) simple through the console, but in order to run and maintain this in a Production environment please be sure to complete the [Permissioned L1](/academy/permissioned-l1s) course. + + + + +### Deploy most recent implementation of the Validator Manager Contract + + + + + + + + +### Upgrade Proxy + +Link your proxy to the ValidatorManager implementation by upgrading the TransparentUpgradeableProxy at `0xfacade...` to point to your newly deployed contract. + + +Make sure you have your L1 selected in the wallet component + + + + + + + + + +### Set Initial Configuration + +Configure your ValidatorManager with essential parameters through the `initialize()` function: + +- **Admin Address**: Your wallet address (controls validator operations) +- **Subnet ID**: Your L1's subnet identifier +- **Churn Period**: Time window for validator changes (≤ 86400 seconds) +- **Maximum Churn Percentage**: Weight change limit per period (1-20%) + + + + + + + + +### Initialize Validator Set + +Bridge P-Chain subnet creation with L1 validator management using cryptographically verified conversion data. + +#### How It Works + +The initialization: +1. Verifies P-Chain signed conversion data via Avalanche Warp Messaging +2. Registers each validator with their weight and node ID +3. Marks the validator set as initialized (permanent, one-time operation) + +#### Required Information + +You'll need: +- **Conversion Data**: Validator information from your subnet-to-L1 conversion +- **Message Index**: Position in the Warp message queue + + + + + + + + +## Next Steps + +Congratulations! Your Validator Manager is now fully configured. In the next section, you'll deploy and configure a Staking Manager to enable permissionless participation, which we will be transitioning to a Permissionless L1. diff --git a/content/academy/permissionless-l1s/04-speedrun-base-l1/meta.json b/content/academy/permissionless-l1s/04-speedrun-base-l1/meta.json new file mode 100644 index 00000000000..6f3f4227c85 --- /dev/null +++ b/content/academy/permissionless-l1s/04-speedrun-base-l1/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Permissioned L1 Setup Speedrun", + "pages": [ + "01-create-l1-speedrun", + "02-permissioned-l1-speedrun" + ] +} diff --git a/content/academy/permissionless-l1s/meta.json b/content/academy/permissionless-l1s/meta.json index 7e86421bd76..0ae276fade4 100644 --- a/content/academy/permissionless-l1s/meta.json +++ b/content/academy/permissionless-l1s/meta.json @@ -10,6 +10,9 @@ "...02-proof-of-stake", "---Transformation Requirements---", "...03-transformation-requirements", + "---Staking Manager Setup---", + "04-speedrun-base-l1", + "...05-staking-manager-setup", "---More coming soon...---" ] } \ No newline at end of file diff --git a/content/blog/durango-avalanche-warp-messaging.mdx b/content/blog/durango-avalanche-warp-messaging.mdx index fec65d46a9d..ed218c9a1b6 100644 --- a/content/blog/durango-avalanche-warp-messaging.mdx +++ b/content/blog/durango-avalanche-warp-messaging.mdx @@ -7,7 +7,7 @@ topics: [Network Updates, Durango Upgrade, Avalanche Warp Messaging, EVM, Intero comments: true --- -![Durango: Avalanche Warp Messaging Comes to the EVM](https://www.avax.network/_astro/65bc11f33d8a959ccaee46f2_durango_20test4_GXxOE.webp) +Durango: Avalanche Warp Messaging Comes to the EVM The publishing of the pre-release code for a proposed upgrade to the Avalanche Network, codenamed Durango @@ -35,7 +35,7 @@ To send a message, an [untrusted relayer](https://github.com/ava-labs/awm-relaye **Note, no transactions/messages are included in the P-Chain to send an Avalanche Warp Message. Messages are passed directly between communicating Subnets or between a Subnet and the C-Chain.** -![AWM Architecture Diagram](https://images.ctfassets.net/voq4a5ue459o/4f048dc2a414c1a60bb67c7b299581b3/fe273d73529d1bbff8a3390e37f4eb7c/65bc12b118fad82932fc4693_KLrCXnfqjgHu9ltWr39vbTzOEfiYVFWu4O6GUGiVXll3XMCnAFVROeKf2q625pV0h0YSo7G2UywgsS9cocU3V6gRsoIOrdxoIC3.png?w=1600&q=80&fm=webp) +AWM Architecture Diagram This lightweight protocol replaces the management of point-to-point connections with the simplicity of one unified registry: the Avalanche P-Chain. For the full details on how this is integrated into the EVM, see [ACP-30](https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/30-avalanche-warp-x-evm/README.md). diff --git a/scripts/versions.json b/scripts/versions.json index 3a8c31fe351..164e940ccc8 100644 --- a/scripts/versions.json +++ b/scripts/versions.json @@ -10,4 +10,4 @@ "avaplatform/icm-relayer": "v1.7.4" }, "ava-labs/icm-contracts": "4d5ab0b6dbc653770cfe9709878c9406eb28b71c" -} +} \ No newline at end of file