diff --git a/docs/cloud-rollup/1-digital-ocean.mdx b/docs/cloud-rollup/1-digital-ocean.mdx new file mode 100644 index 0000000..4b511eb --- /dev/null +++ b/docs/cloud-rollup/1-digital-ocean.mdx @@ -0,0 +1,329 @@ +--- +sidebar_position: 1 +--- + +# Digital Ocean + +This guide will walk you through deploying a rollup full node on +a Kubernetes cluster on Digital Ocean which uses the Astria shared sequencer network. + +## Local Dependencies + +### Install the latest [astria cli](https://github.com/astriaorg/astria/releases/tag/cli-v0.2.0) + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-aarch64-apple-darwin.tar.gz > astria-cli.tar.gz + tar -xvzf astria-cli.tar.gz + + + + + curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-x86_64-apple-darwin.tar.gz > astria-cli.tar.gz + tar -xvzf astria-cli.tar.gz + + + + + curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-x86_64-unknown-linux-gnu.tar.gz > astria-cli.tar.gz + tar -xvzf astria-cli.tar.gz + + + + + cargo install astria-cli --git=https://github.com/astriaorg/astria --tag=cli-v2 --locked + + + + +### You'll also need to install the following tools + +- kubectl - +- helm - + +## Dusknet Endpoints + +The endpoints for the remote shared sequencer are: + +| NAME | HOSTS | ADDRESS | +|-----|-----|-----| +| Sequencer RPC | rpc.sequencer.dusk-2.devnet.astria.org | 34.111.73.187 | +| Sequencer Faucet | faucet.sequencer.dusk-2.devnet.astria.org | 34.36.8.102 | + +## Create a New Cluster + +This guide assumes you're using Digital Ocean's Kubernetes (K8s) service. + +Install and configure `doctl`: + +Follow the instructions in Digital Ocean's [Quick Start Guide](https://docs.digitalocean.com/products/kubernetes/getting-started/) +to create a new cluster in the region of your choosing. + +## Configure `kubectl` with `doctl` + +Once your k8s cluster is created configure `kubectl`. + +![doctl screenshot](assets/do-setup.png) + +## Deploy Ingress Nginx Controller + +We use the Nginx Ingress Controller, documentation can be found [here](https://kubernetes.github.io/ingress-nginx/deploy/#digital-ocean/) + +To install it run: + +```bash +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/do/deploy.yaml +``` + +This will create several Kubernetes (k8s) resources and a Digital Ocean loadbalancer. + +## Verify Loadbalancer with external IP + +You should see a new loadbalancer being created in the Digital Ocean console: + + +You can also check that your Digital Ocean load balancer was created with: + +```bash +kubectl get svc -n ingress-nginx +``` + +It may take a few minutes for the `EXTERNAL-IP` field to be populated, +you should eventually see something like this: + +```bash +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +ingress-nginx-controller LoadBalancer 10.245.63.28 161.35.240.50 80:32656/TCP,443:30158/TCP 44h +ingress-nginx-controller-admission ClusterIP 10.245.106.99 443/TCP 44h +``` + +## Create an `A` Record + +:::tip +You must configure a DNS record because our ingress configuration uses name +based virtual routing. + +More info can be found [here](https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting) +::: + +How you create an `A` record will depend on where you manage your domain. + +An example for Google domains can be seen here: + +Create a wildcard record `*` pointing to the `EXTERNAL-IP` of your `ingress-nginx-controller`: + +![a record screenshot](assets/a-record.png) + +## Create your Rollup Genesis Account(s) + +:::danger +__NEVER__ use a private key you use on a live network. +::: + +Specify the accounts which will be funded at the genesis block of your EVM rollup. + +You can create an account using: + +```bash +cast w new +``` + +```bash +Successfully created new keypair. +Address: 0xfFe9...5f8b # +Private key: 0x332e...a8fb # +``` + +Export the genesis private key, +this will be used by the faucet included with the rollup: + +```bash +export ROLLUP_FAUCET_PRIV_KEY= +``` + +Export the genesis address alongside with your desired initial balance in Wei. +We recommend using a value of `100000000000000000000` or larger: + +```bash +export ROLLUP_GENESIS_ACCOUNTS=: +``` + +You can specify multiple accounts to be funded at genesis as + comma deliminated tuples of `
:` + +```bash +export ROLLUP_GENESIS_ACCOUNTS=:,: +``` + +## Create Rollup Config + +Create the configuration manifest for your rollup. + +Replace the tags in the commands and env vars below, as follows: + +| Var Name | Var Type | Description | +|-----|-----|-----| +| `` | String | The name of your rollup. This must be alphanumeric, `-` is allowed, this will be included in URLs| +| `` | u64 | The id of your network. Pick a > 6 digit number (eg. `123456`) | +| `` | String | The chosen hostname for your network (eg. `astria.org`) | + +You can use environment variables to set the configuration for the rollup +config creation. Replace all the `<>` tags with their corresponding values. + +```bash +export ROLLUP_NAME= +export ROLLUP_NETWORK_ID= +export ROLLUP_HOSTNAME= +``` + +Run the config create command: + +```sh +astria-cli rollup config create +``` + +Export the config file name as an env vars: + +```bash +export ROLLUP_CONF_FILE=$ROLLUP_NAME-rollup-conf.yaml +``` + +Verify the config + +```bash +cat $ROLLUP_CONF_FILE +``` + +```bash +global: + namespace: astria-dev-cluster + useTTY: false + logLevel: debug +config: + rollup: + name: + chainId: -chain + networkId: '' + genesisAccounts: + - address: + balance: '' + sequencer: + initialBlockHeight: + websocket: wss://rpc.sequencer.dusk-2.devnet.astria.org/websocket + rpc: https://rpc.sequencer.dusk-2.devnet.astria.org +ingress: + hostname: +celestia-node: + config: + labelPrefix: +``` + +## Create new sequencer account + +Create an account on the Astria shared sequencer network + for your rollup to submit transactions. + +```bash +astria-cli sequencer account create +``` + +```bash +Create Sequencer Account + +Private Key: "5562...1622" # +Public Key: "ec20...f613" # +Address: "8a2f...5f68" # +``` + +Export your sequencer private key and address as environment variables: + +```bash +export SEQUENCER_PRIV_KEY=5562...1622 +export SEQUENCER_ACCOUNT_ADDRESS=8a2f...5f68 +``` + +## Fund your Sequencer Account + +Navigate to +to view the sequencer faucet. + +Enter your `` into the text box + to send funds to your account: + +![Sequencer Faucet](assets/sequencer-faucet.png) + +Verify your account received the funds + +```bash +astria-cli sequencer account balance $SEQUENCER_ACCOUNT_ADDRESS +``` + +## Deploy the Rollup Node + +Use the `astria-cli` to deploy the rollup node + +```bash +astria-cli rollup deployment create \ + --config $ROLLUP_CONF_FILE \ + --faucet-private-key $ROLLUP_FAUCET_PRIV_KEY \ + --sequencer-private-key $SEQUENCER_PRIV_KEY +``` + +## Watch for rollup startup + +You can watch for the Kubernetes pods of the rollup to start with: + +```bash +kubectl get pods -n astria-dev-cluster -w +``` + +```bash +NAME READY STATUS RESTARTS AGE +-blockscout-647745c66d-vz4ks 6/6 Running 1 (56s ago) 72s +-celestia-node-light-mocha-4-0 2/2 Running 1 (56s ago) 72s +-faucet-68667bd895-pwqmz 1/1 Running 0 72s +-geth-755cb8dd97-k5xp8 3/3 Running 0 72s +``` + +## Your Rollup Endpoints + +Your rollup will automatically be configured with +several public endpoints using the DNS you configured: + +| Utility | URL | +|-----|-----| +| Block Explorer | ../ | +| Faucet | ../ | +| RPC | ../ | + +## Interact with your Rollup + +```bash +export ETH_RPC_URL=http://executor.$ROLLUP_NAME.$ROLLUP_HOSTNAME/ +``` + +```bash +cast block 0 +``` + +Use an address of your choice. + +```bash +export REC_ADDR= +``` + +```bash +cast balance $REC_ADDR +``` + +```bash +cast send $REC_ADDR --value 10000000000000000000 --private-key $ROLLUP_FAUCET_PRIV_KEY +``` + +```bash +cast balance $REC_ADDR +``` diff --git a/docs/cloud-rollup/_category_.json b/docs/cloud-rollup/_category_.json new file mode 100644 index 0000000..b2fec37 --- /dev/null +++ b/docs/cloud-rollup/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Deploy a Cloud Rollup", + "position": 3, + "link": { + "type": "generated-index", + "description": "To deploy a rollup to a cloud provider of your choice, select one of the guides below." + } +} diff --git a/docs/dusknet/assets/a-record.png b/docs/cloud-rollup/assets/a-record.png similarity index 100% rename from docs/dusknet/assets/a-record.png rename to docs/cloud-rollup/assets/a-record.png diff --git a/docs/dusknet/assets/cname-record-example.png b/docs/cloud-rollup/assets/cname-record-example.png similarity index 100% rename from docs/dusknet/assets/cname-record-example.png rename to docs/cloud-rollup/assets/cname-record-example.png diff --git a/docs/cloud-rollup/assets/do-setup.png b/docs/cloud-rollup/assets/do-setup.png new file mode 100644 index 0000000..0874855 Binary files /dev/null and b/docs/cloud-rollup/assets/do-setup.png differ diff --git a/docs/dusknet/assets/doctl-screenshot.png b/docs/cloud-rollup/assets/doctl-screenshot.png similarity index 100% rename from docs/dusknet/assets/doctl-screenshot.png rename to docs/cloud-rollup/assets/doctl-screenshot.png diff --git a/docs/cloud-rollup/assets/sequencer-faucet.png b/docs/cloud-rollup/assets/sequencer-faucet.png new file mode 100644 index 0000000..732c627 Binary files /dev/null and b/docs/cloud-rollup/assets/sequencer-faucet.png differ diff --git a/docs/dev-cluster/1-overview.md b/docs/dev-cluster/1-overview.md deleted file mode 100644 index d663653..0000000 --- a/docs/dev-cluster/1-overview.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Dev-Cluster Overview - -:::tip -To deploy your own rollup on the Astria Dusknet devnet, check out the -[instructions here](/docs/dusknet/overview/)! -::: - -Astria's Shared Sequencer Network allows multiple rollups to share a single -decentralized network of sequencers that’s permissionless to join. This shared -sequencer network provides out-of-the-box censorship resistance, fast block -confirmations, and atomic cross-rollup inclusion guarantees. - -The Astria [dev-cluster](https://github.com/astriaorg/dev-cluster) is the -collective stack of all of Astria's components packaged together using -Kubernetes. While we generally refer to Astria as the network of shared -sequencers, we provide several other components to make it simpler to integrate -with the shared sequencer network. The dev-cluster is provided to make -developing and testing the Astria network, as well as integrations with Astria, -as simple as possible. - -:::tip -The primary use of the dev-cluster is running the full stack completely locally. -There are elements of it that are used for running a local rollup that connects -to the remote dev-net, but those will be [discussed in another -section](/docs/dusknet/local-rollup-deployment/). -::: - -See the [dev-cluster repo here.](https://github.com/astriaorg/dev-cluster) - -## Running the Dev Cluster Locally - -### Installation - -You will need to pull both the -[dev-cluster](https://github.com/astriaorg/dev-cluster) and -[astria-web3](https://github.com/astriaorg/astria-web3) repos from our github. - -Install the necessary dependencies and tools listed for each repo: - -* docker - -* kubectl - -* helm - -* kind - -* just - - -For contract deployment: - -* Forge (part of Foundry) - - -### Deployment - -:::tip -Make sure that Docker is running before deploying with `just`. -::: - -To deploy the Astria Sequencer and a local DA, open a terminal in the -dev-cluster directory and run the commands: - -```bash -# Deploys ingress + Sequencer + local DA -just deploy-astria-local -``` - -This may take a minute or two if this the first time you are deploying as quite -a few containers need to be downloaded. Once the command completes, all elements -of the dev-cluster will be up and running. This does not run a rollup, block -explorer, or faucet. - -You can now deploy a rollup. diff --git a/docs/dev-cluster/2-deploy-a-local-rollup.md b/docs/dev-cluster/2-deploy-a-local-rollup.md deleted file mode 100644 index 5232fc6..0000000 --- a/docs/dev-cluster/2-deploy-a-local-rollup.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Running a Local Rollup - -:::tip -To deploy your own rollup on the Astria Dusknet devnet, check out the -[instructions here](/docs/dusknet/overview/)! -::: - -## Faucet, Block Explorer, and Test Data - -With the dev-cluster running, you can then deploy a rollup, block explorer, and -faucet by running the following command in the terminal withing the dev-cluster: - -```sh -just deploy-rollup -``` - -This `just` command launches a local rollup, block explorer, and faucet using -the default in -[helm/rollup/values.yaml](https://github.com/astriaorg/dev-cluster/blob/main/helm/rollup/values.yaml) -in the `config.rollup` definition. - -For reference, these are: -- Rollup name: `astria` -- Network Id: `912559` - -This will also take a moment as the rollup node, block explorer, and faucet spin -up. You can check the progress of the deployment with the following command: - -```bash -kubectl get deployments --all-namespaces -``` - -Or you can run: - -```bash -just wait-for-rollup -``` - -Once deployed, you can view the block explorer and faucet by opening a couple -new windows in your browser and going to to the following urls. - -For the block explorer: - -```txt -http://blockscout.astria.localdev.me/ -``` - -For the faucet: - -```txt -http://faucet.astria.localdev.me/ -``` - -You can copy and paste a wallet address on the faucet page and give yourself 1 -RIA. - -To test out the block explorer, open a terminal in the [astria-web3 -repo](https://github.com/astriaorg/astria-web3/tree/main) you downloaded earlier -and navigate to the `packages/evm-test-data/` and run the following command: - -```sh -just generate-transactions -``` - -This command uses the default rollup name and network id (see above), and will -submit commands to the newly deployed default rollup. - -You can now go back to your browser and pull up the block explorer and you will -now see blocks with transactions getting created in real time. diff --git a/docs/dev-cluster/3-run-multiple-rollups-locally.md b/docs/dev-cluster/3-run-multiple-rollups-locally.md deleted file mode 100644 index 3546b53..0000000 --- a/docs/dev-cluster/3-run-multiple-rollups-locally.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Run Multiple Rollups Locally - -:::tip -To deploy your own rollup on the Astria Dusknet devnet, check out the -[instructions here](/docs/dusknet/overview/)! -::: - -At Astria we believe strongly that deploying a rollup should be as easy as -deploying a smart contract. The dev-cluster shows this is indeed possible. - -Navigate back to the [dev-cluster](https://github.com/astriaorg/dev-cluster) -repo in your terminal and run the following command with your own rollup name -and network id: - -:::warning - -**NOTE:** The default rollup name and network id are `astria` and `912559`. When -deploying your second rollup you _**must**_ use a different name and number. - -::: - -```sh -just deploy-rollup -``` - -As before, it will take a moment for everything to spin up, but in the meantime -keep the the rollup name and network id handy and navigate back to your browser -and open a new window with the following url, replacing `rollup_name` with the -name you just used to deploy your new rollup: - -```txt -http://blockscout..localdev.me/ -``` - -Once everything has spin up you will see a new block explorer for your new rollup. - -You can now deploy transaction to that rollup independently.In the -`astria-web3/packages/evm-test-data` directory open a new terminal and run the -following: - -```sh -just generate-transactions -``` - -As before, this command will deploy test transaction data to your new rollup. -You can also go back to your original terminal window for the test data -deployment on the default rollup and rerun the `just generate-transactions` -command. If you switch back and forth between the default block explorer window -and your new rollup window, you will see transactions showing up on each rollup -independently! - -To navigate to the new Block Explorer and Faucet from the additional rollup, -take the rollup name that you used and replace `` in the urls -below: - -```txt -http://blockscout..localdev.me/ -http://faucet..localdev.me/ -``` - -The only limitations to running numerous rollups are the following: -- Can your hardware handle it -- There are no rollup name and network id clashes - -### What's Going on Under the Hood? - -One last thing to mention is what is actually happening when you deploy a new -rollup in the dev-cluster. When you you deploy a new rollup the only new -containers that are getting spun up in the cluster are a new rollup node, a -conductor, block explorer, and faucet. Only one instance of the shared sequencer -and the DA layer remain running and the transactions from all the rollups are -collectively getting run though those networks. - -![Multiple Rollups](assests/multiple-rollups.png) - -You can also use `kubectl` to see that this is the case. - -When running only the default rollup: - -```bash -dev-cluster % kubectl get deployments --all-namespaces -NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE -astria-dev-cluster astria-blockscout 1/1 1 1 37s -astria-dev-cluster astria-faucet 1/1 1 1 37s -astria-dev-cluster astria-geth 1/1 1 1 37s -astria-dev-cluster celestia-local 1/1 1 1 94m -astria-dev-cluster sequencer 1/1 1 1 94m -ingress-nginx ingress-nginx-controller 1/1 1 1 94m -kube-system calico-kube-controllers 1/1 1 1 95m -kube-system coredns 2/2 2 2 95m -local-path-storage local-path-provisioner 1/1 1 1 95m -``` - -After deploying the second rollup: - -```bash -dev-cluster % kubectl get deployments --all-namespaces -NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE -astria-dev-cluster anotherrollup-blockscout 1/1 1 1 114s -astria-dev-cluster anotherrollup-faucet 1/1 1 1 114s -astria-dev-cluster anotherrollup-geth 1/1 1 1 114s -astria-dev-cluster astria-blockscout 1/1 1 1 2m13s -astria-dev-cluster astria-faucet 1/1 1 1 2m13s -astria-dev-cluster astria-geth 1/1 1 1 2m13s -astria-dev-cluster celestia-local 1/1 1 1 95m -astria-dev-cluster sequencer 1/1 1 1 95m -ingress-nginx ingress-nginx-controller 1/1 1 1 96m -kube-system calico-kube-controllers 1/1 1 1 97m -kube-system coredns 2/2 2 2 97m -local-path-storage local-path-provisioner 1/1 1 1 97m -``` diff --git a/docs/dev-cluster/4-shutdown.md b/docs/dev-cluster/4-shutdown.md deleted file mode 100644 index fdf2f6e..0000000 --- a/docs/dev-cluster/4-shutdown.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Shutting Down the Cluster - -:::tip -To deploy your own rollup on the Astria Dusknet devnet, check out the -[instructions here](/docs/dusknet/overview/)! -::: - -## Deleting Specific Rollups - -To delete a specific rollup deployment, you can use the following command: - -```bash -just delete-rollup -``` - -This will remove the rollup, its block explorer, and faucet, but keep the rest -of the cluster running. - -## Shutting Down the Whole Cluster - -If you just want to shut everything down, you can run: - -```bash -just clean -``` - -To delete all the data that may have also been created during your testing, you -can then run: - -```bash -just clean-persisted-data -``` - -Which will delete all the local data created. diff --git a/docs/dev-cluster/_category_.json b/docs/dev-cluster/_category_.json deleted file mode 100644 index 228b217..0000000 --- a/docs/dev-cluster/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Local Dev Cluster", - "position": 3, - "link": { - "type": "doc", - "id": "dev-cluster/overview" - } -} diff --git a/docs/dev-cluster/assests/multiple-rollups.png b/docs/dev-cluster/assests/multiple-rollups.png deleted file mode 100644 index da0c7b2..0000000 Binary files a/docs/dev-cluster/assests/multiple-rollups.png and /dev/null differ diff --git a/docs/dusknet/cloud-rollup-deployment/5-faq-debugging.md b/docs/dusk-faq/1-information.md similarity index 53% rename from docs/dusknet/cloud-rollup-deployment/5-faq-debugging.md rename to docs/dusk-faq/1-information.md index dd5e159..616ea62 100644 --- a/docs/dusknet/cloud-rollup-deployment/5-faq-debugging.md +++ b/docs/dusk-faq/1-information.md @@ -16,21 +16,42 @@ Endpoints for the remote cluster are the following: | Sequencer RPC | rpc.sequencer.dusk-2.devnet.astria.org | 34.111.73.187 | | Sequencer Faucet | faucet.sequencer.dusk-2.devnet.astria.org | 34.36.8.102 | +## Software Versions + +The latest Devnet (dusk-2) runs the following software versions: +- [conductor v0.11.0](https://github.com/astriaorg/astria/releases/tag/v0.11.0--conductor) +- [composer v0.3.0](https://github.com/astriaorg/astria/releases/tag/v0.3.0--composer) +- [sequencer-relayer v0.9.0](https://github.com/astriaorg/astria/releases/tag/v0.9.0--sequencer-relayer) +- [sequencer v0.7.0](https://github.com/astriaorg/astria/releases/tag/v0.7.0--sequencer) + ## Manually Fetch Sequencer Block Height -### Install the `astria-cli` +### Install the latest [astria cli](https://github.com/astriaorg/astria/releases/tag/cli-v0.2.0) + +#### ARM Mac + +```bash +curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-aarch64-apple-darwin.tar.gz > astria-cli.tar.gz +tar -xvzf astria-cli.tar.gz +``` -Pull the [Astria repo](https://github.com/astriaorg/astria) and install the `astria-cli` +#### x86_64 Linux ```bash -git clone git@github.com:astriaorg/astria.git -cd astria -just install-cli +curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-x86_64-unknown-linux-gnu.tar.gz > astria-cli.tar.gz +tar -xvzf astria-cli.tar.gz +``` + +#### From Source + +```bash +cargo install astria-cli --git=https://github.com/astriaorg/astria --tag=cli-v2 --locked ``` ### Sequencer Block Height -The initial sequencer block height is automatically fetched and set if not specified when creating the config. +The initial sequencer block height is automatically fetched and set +(if not manually specified) when creating the rollup config. You can manually retrieve it with the `astria-cli`: @@ -39,7 +60,8 @@ astria-cli sequencer blockheight get \ --sequencer-url https://rpc.sequencer.dusk-2.devnet.astria.org/ ``` -If you need to set this to a different value you can set it as an an environment variable: +If you need to set this to a different value +you can set it as an an environment variable: ```bash export ROLLUP_SEQUENCER_INITIAL_BLOCK_HEIGHT= @@ -51,25 +73,10 @@ command below: ```bash --sequencer.initial-block-height ``` -## Debug Ingress -If you would like to view the ingress logs you can use the following: +## Loadbalancer Information -```bash -kubectl get po -n ingress-nginx -# get the name of one of the pods -export INGRESS_POD_1=ingress-nginx-controller-6d6559598-ll8gv -# view the logs -kubectl logs $INGRESS_POD_1 -n ingress-nginx -``` - -## Verify Your Loadbalancer - -If you want to verify your loadbalancer with an external IP you can do the -following. - -After you have deployed your ingress controller with `kubectl apply`, run the -following command and then `curl` the external IP: +You can retrieve the kubernetes service for your loadbalancer with ```bash kubectl get svc -n ingress-nginx @@ -81,15 +88,15 @@ ingress-nginx-controller LoadBalancer 34.118.228.98 34.42.184.20 ingress-nginx-controller-admission ClusterIP 34.118.229.71 443/TCP 57s ``` -:::note -If you are using AWS you will be given a URL instead of an IP. -::: +You can check that the loadbalancer is working by making a `curl` request ```bash # use the EXTERNAL-IP from the result above curl 34.42.184.206 ``` +This should return the nginx 404 page + ```html 404 Not Found @@ -99,3 +106,11 @@ curl 34.42.184.206 ``` + +## Ingress Information + +You can check the kubernetes ingress resource for your rollup with: + +```bash +kubectl get ingress -n astria-dev-cluster +``` diff --git a/docs/dusk-faq/_category_.json b/docs/dusk-faq/_category_.json new file mode 100644 index 0000000..ca534fb --- /dev/null +++ b/docs/dusk-faq/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Dusknet FAQ", + "position": 5, + "link": { + "type": "doc", + "id": "dusk-faq/information" + } +} diff --git a/docs/dusknet/1-overview.md b/docs/dusknet/1-overview.md deleted file mode 100644 index a5739de..0000000 --- a/docs/dusknet/1-overview.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Overview - -After running the Astria stack locally, the next step is to run a rollup against -the remote Astria network. - -The primary difference between running a local rollup and one that targets the -remote devnet, is the configuration of the rollup and creating an account for -the Sequencer. - -## Local Dependencies - -Clone the [dev-cluster](https://github.com/astriaorg/dev-cluster/tree/main) and -install the astria cli [astria repo](https://github.com/astriaorg/astria): - -```bash -git clone git@github.com:astriaorg/dev-cluster.git -cargo install astria-cli --git=https://github.com/astriaorg/astria --locked -``` - -And install the following tools: -- Foundry Cast and Forge tools - -- docker - -- kubectl - -- helm - -- kind - -- just - - -Many of these dependencies are also required for running the local dev-cluster -if you have previously done that. - -For reference, the latest component releases that the devnet cluster is running -are the following: -- [conductor v0.7.0](https://github.com/astriaorg/astria/releases/tag/v0.7.0--conductor) -- [composer v0.2.2](https://github.com/astriaorg/astria/releases/tag/v0.2.2--composer) -- [sequencer-relayer v0.5.1](https://github.com/astriaorg/astria/releases/tag/v0.5.1--sequencer-relayer) -- [sequencer v0.4.1](https://github.com/astriaorg/astria/releases/tag/v0.4.1--sequencer) - -You do not need to download these independently, they are already within the -dev-cluster repo. - -Once all of the dependencies have been installed, you can move on to running the -rollup. - -## Endpoints - -Endpoints for the remote cluster are the following: - -| NAME | HOSTS | ADDRESS | -|-----|-----|-----| -| EVM JSON RPC | rpc.evm.dusk-2.devnet.astria.org | 34.160.214.22 | -| EVM Block Explorer | explorer.evm.dusk-2.devnet.astria.org | 34.111.167.16 | -| EVM Faucet | faucet.evm.dusk-2.devnet.astria.org | 130.211.4.120 | -| Sequencer RPC | rpc.sequencer.dusk-2.devnet.astria.org | 34.111.73.187 | -| Sequencer Faucet | faucet.sequencer.dusk-2.devnet.astria.org | 34.36.8.102 | diff --git a/docs/dusknet/_category_.json b/docs/dusknet/_category_.json deleted file mode 100644 index db8a10d..0000000 --- a/docs/dusknet/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Running a Rollup on Dusknet", - "position": 3, - "link": { - "type": "doc", - "id": "dusknet/overview" - } -} diff --git a/docs/dusknet/assets/sequencer-faucet.png b/docs/dusknet/assets/sequencer-faucet.png deleted file mode 100644 index b1de77e..0000000 Binary files a/docs/dusknet/assets/sequencer-faucet.png and /dev/null differ diff --git a/docs/dusknet/cloud-rollup-deployment/1-digital-ocean.md b/docs/dusknet/cloud-rollup-deployment/1-digital-ocean.md deleted file mode 100644 index 7546e76..0000000 --- a/docs/dusknet/cloud-rollup-deployment/1-digital-ocean.md +++ /dev/null @@ -1,278 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Digital Ocean - -Deploy your rollup to Digital Ocean. - -:::info -The list of local dependencies for the following instructions [can be found here](/docs/dusknet/1-overview.md). -::: - -The following assumes you are using [Digital Ocean Kubernetes -(DOKS)](https://www.digitalocean.com/products/kubernetes). - -We recommend using Digital Ocean's Kubernetes [Quick Start Guide](https://docs.digitalocean.com/products/kubernetes/getting-started/quickstart/). - -You must also install and configure `doctl`: https://docs.digitalocean.com/reference/doctl/how-to/install/ - -## Configure `kubectl` with `doctl` - -In your Digital Ocean control panel, navigate to "Connecting to Kubernetes." Run the following command with the `magic-id` -generated for you. - -```bash -doctl kubernetes cluster kubeconfig save -``` - -![doctl screenshot](../assets/doctl-screenshot.png) - -## Deploy Ingress Nginx Controller - -We use the Ingress NGINX Controller for consistency across deployment environments: - - - -```bash -kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/do/deploy.yaml -``` - -## Verify Loadbalancer with external IP - -Look for a new loadbalancer being created in the Digital Ocean console: -https://cloud.digitalocean.com/networking/load_balancers - -You can also check that your Digital Ocean load balancer was created using the -following command: - -```bash -kubectl get svc -n ingress-nginx -``` - -You should see something like this: - -```bash -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -ingress-nginx-controller LoadBalancer 10.245.63.28 161.35.240.50 80:32656/TCP,443:30158/TCP 44h -ingress-nginx-controller-admission ClusterIP 10.245.106.99 443/TCP 44h -``` - -## Create an `A` Record - -:::tip -You must configure a DNS record because our ingress configuration uses name -based virtual routing. -More info here: https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting -::: - -How you create an `A` record will depend on where you purchased your domain from. Each -domain provider will have different steps required to set up an A record. - -An example for Google domains can be seen here: - -Create a wildcard `*` record pointing to the `EXTERNAL-IP` of your `ingress-nginx-controller`: - -![a record screenshot](../assets/a-record.png) - -## Create your Rollup Genesis Account(s) - -:::danger -__NEVER__ use a private key you use on a live network. -::: - -You can add genesis account(s) to your rollup during configuration. - -You can create an account using: - -```bash -cast w new -``` - -```bash -Successfully created new keypair. -Address: 0xfFe9...5f8b # -Private key: 0x332e...a8fb # -``` - -Export the genesis private key, this will be used by the faucet included with the rollup: -```bash -export ROLLUP_FAUCET_PRIV_KEY= -``` - -Export the genesis address alongside with your desired initial balance, in Wei, we recommend using a value of `100000000000000000000` or larger: -```bash -export ROLLUP_GENESIS_ACCOUNTS=: -``` - -You can specify multiple accounts to be funded at genesis as comma deliminated tuples of `
:` - -``` -export ROLLUP_GENESIS_ACCOUNTS=:,: -``` - -## Install the `astria-cli` - -Pull the [Astria repo](https://github.com/astriaorg/astria) and install the `astria-cli` - -```bash -git clone git@github.com:astriaorg/astria.git -cd astria -just install-cli -``` - -## Create Rollup Config - -Replace the tags in the commands and env vars below, as follows: - -| Var Name | Var Type | Description | -|-----|-----|-----| -| `` | String | The name of your rollup. This must be alphanumeric, `-` is allowed, this will be included in URLs| -| `` | u64 | The id of your network. Pick a > 6 digit number (eg. `123456`) | -| `` | String | The chosen hostname for your network (eg. `astria.org`) | - -You can use environment variables to set the configuration for the rollup -config creation. Replace all the `<>` tags with their corresponding values. - -```bash -export ROLLUP_NAME= -export ROLLUP_NETWORK_ID= -export ROLLUP_HOSTNAME= -``` - -Run the config create command: - -```sh -astria-cli rollup config create -``` - -Export the config file name as an env vars: -```bash -export ROLLUP_CONF_FILE=$ROLLUP_NAME-rollup-conf.yaml -``` - -Verify the config - -```sh -cat $ROLLUP_CONF_FILE -``` - -```sh -namespace: astria-dev-cluster -config: - useTTY: false - logLevel: debug - rollup: - name: - chainId: -chain - networkId: '' - skipEmptyBlocks: false - genesisAccounts: - - address: - balance: '' - sequencer: - initialBlockHeight: - websocket: wss://rpc.sequencer.dusk-2.devnet.astria.org/websocket - rpc: https://rpc.sequencer.dusk-2.devnet.astria.org -ingress: - hostname: -``` - -## Create new sequencer account - -```bash -astria-cli sequencer account create -``` - -```bash -Create Sequencer Account - -Private Key: "5562...1622" # -Public Key: "ec20...f613" # -Address: "8a2f...5f68" # -``` - -Export your sequencer private key and address as environment variables: - -```bash -export SEQUENCER_PRIV_KEY=9c78...710d -export SEQUENCER_ACCOUNT_ADDRESS=8a2f...5f68 -``` - -## Fund your Sequencer Account - -Navigate to to view the sequencer faucet. - -Enter your `` into the text box to send funds to your account: - -![Sequencer Faucet](../assets/sequencer-faucet.png) - -Verify your account received the funds - -```bash -astria-cli sequencer balance get $SEQUENCER_ACCOUNT_ADDRESS --sequencer-url=https://rpc.sequencer.dusk-2.devnet.astria.org -``` - -## Deploy the Rollup Node - -Use the `astria-cli` to deploy the node. - -```bash -astria-cli rollup deployment create \ - --config $ROLLUP_CONF_FILE \ - --faucet-private-key $ROLLUP_FAUCET_PRIV_KEY \ - --sequencer-private-key $SEQUENCER_PRIV_KEY -``` - -## Watch for pod startup - -```bash -kubectl get pods -n astria-dev-cluster -w -``` - -```bash -NAME READY STATUS RESTARTS AGE --blockscout-647745c66d-vz4ks 6/6 Running 1 (56s ago) 72s --faucet-68667bd895-pwqmz 1/1 Running 0 72s --geth-755cb8dd97-k5xp8 3/3 Running 0 72s -``` - -## Observe your Deployment - -Your rollups utility endpoints are as follows: - -| Utility | URL | -|-----|-----| -| Block Explorer | http://blockscout../ | -| Faucet | http://faucet../ | -| RPC | http://executor../ | - -Open the URLs in your browser to view your running rollup. - -## Use `cast` to Interact with your Rollup - -```bash -export ETH_RPC_URL=http://executor.$ROLLUP_NAME.$ROLLUP_HOSTNAME/ -``` - -```bash -cast block 0 -``` - -Use an address of your choice. - -```bash -export REC_ADDR= -``` - -```bash -cast balance $REC_ADDR -``` - -```bash -cast send $REC_ADDR --value 10000000000000000000 --private-key $ROLLUP_FAUCET_PRIV_KEY -``` - -```bash -cast balance $REC_ADDR -``` diff --git a/docs/dusknet/cloud-rollup-deployment/2-azure.md b/docs/dusknet/cloud-rollup-deployment/2-azure.md deleted file mode 100644 index cf0f2a7..0000000 --- a/docs/dusknet/cloud-rollup-deployment/2-azure.md +++ /dev/null @@ -1,328 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Azure - -Deploy your rollup to Azure. - -:::info -The list of local dependencies for the following instructions [can be found here](/docs/dusknet/1-overview.md). -::: - -## Create an Azure Account - -Create your account here: -- - -## Install Azure `az` CLI - -Following the instructions on how to install the cli for your OS here: -- - -## AKS Quickstart - -See the quickstart guide here: -- - -### Prerequisites - -```bash -az provider show -n Microsoft.OperationsManagement -o table -az provider show -n Microsoft.OperationalInsights -o table -``` - -```bash -az provider register --namespace Microsoft.OperationsManagement -az provider register --namespace Microsoft.OperationalInsights -``` - -### Create Resource Group - -```bash -az group create --name myResourceGroup --location eastus -``` - -### Create Cluster - -```bash -az aks create -g myResourceGroup -n myAKSCluster --enable-managed-identity --node-count 1 --generate-ssh-keys -``` - -### Configure Kubectl - -```bash -az aks get-credentials --resource-group myResourceGroup --name myAKSCluster -``` - -## Deploy Ingress Nginx Controller - - - -```bash -kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml -``` - -## Verify Loadbalancer with external IP - -Run the following command: -```bash -kubectl get svc -n ingress-nginx -``` - -You should see something like this: - -```bash -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -ingress-nginx-controller LoadBalancer 34.118.228.98 34.42.184.206 80:31623/TCP,443:31357/TCP 57s -ingress-nginx-controller-admission ClusterIP 34.118.229.71 443/TCP 57s -``` - -## Create an `A` Record - -:::tip -You must configure a DNS record because our ingress configuration uses name -based virtual routing. -More info here: https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting -::: - -How you create an `A` record will depend on where you purchased your domain from. Each -domain provider will have different steps required to set up an A record. - -An example for Google domains can be seen here: - -Create a wildcard `*` record pointing to the `EXTERNAL-IP` of your `ingress-nginx-controller`: - -![a record screenshot](../assets/a-record.png) - -## Creating your own Genesis Account - -You can add genesis account(s) to your rollup during configuration. - -You can create an account using - -```bash -cast w new -``` - -to create a new account: - -```bash -Successfully created new keypair. -Address: 0xfFe9...5f8b # -Private key: 0x332e...a8fb # -``` - -`export` the genesis address: -```bash -export GENESIS_ADDRESS= -``` - -`export` the genesis private key: -```bash -export ROLLUP_FAUCET_PRIV_KEY= -``` - -Exporting the genesis account(s) is also shown in the export block in the next section. - -:::danger -__NEVER__ use a private key you use on a live network. -::: - -## Configure and Deploy Rollup - -## Install the `astria-cli` - -Pull the [Astria repo](https://github.com/astriaorg/astria) and install the `astria-cli` - -```bash -git clone git@github.com:astriaorg/astria.git -cd astria -just install-cli -``` - -### Get Current Sequencer Block Height - -```bash -astria-cli sequencer blockheight get \ - --sequencer-url https://rpc.sequencer.dusk-2.devnet.astria.org/ -``` - -`export` the initial sequencer block height as an environment variable: -```bash -export INITIAL_SEQUENCER_BLOCK_HEIGHT= -``` - -## Create Rollup Config - -Replace the tags in the commands and env vars below, as follows: - -| Var Name | Var Type | Description | -|-----|-----|-----| -| `` | String | The name of your rollup | -| `` | u64 | The id of your network | -| `` | u64 | A balance. We recommend using `100000000000000000000`. | - - - - - -You can use environment variables to set the configuration for the rollup -config creation. Replace all the `<>` tags with their corresponding values. - -```bash -export ROLLUP_USE_TTY=true -export ROLLUP_LOG_LEVEL=DEBUG -export ROLLUP_NAME= -export ROLLUP_NETWORK_ID= -export ROLLUP_SKIP_EMPTY_BLOCKS=false -export ROLLUP_GENESIS_ACCOUNTS=$GENESIS_ADDRESS: -export ROLLUP_SEQUENCER_INITIAL_BLOCK_HEIGHT=$INITIAL_SEQUENCER_BLOCK_HEIGHT -export ROLLUP_SEQUENCER_WEBSOCKET=wss://rpc.sequencer.dusk-2.devnet.astria.org/websocket -export ROLLUP_SEQUENCER_RPC=https://rpc.sequencer.dusk-2.devnet.astria.org -``` - -Once the environment variables shown above are set, run the following command to -create the rollup config: -```bash -astria-cli rollup config create -``` - -You can then run: - -```sh -cat -rollup-conf.yaml -``` - -to print out the config file contents to double check everything: - -```sh -config: - useTTY: true - logLevel: DEBUG - rollup: - name: - chainId: # derived from rollup name - networkId: - skipEmptyBlocks: true - genesisAccounts: - - address: 0x - balance: '' - sequencer: - initialBlockHeight: - websocket: ws://rpc.sequencer.dusk-2.devnet.astria.org/websocket - rpc: http://rpc.sequencer.dusk-2.devnet.astria.org - celestia: - fullNodeUrl: http://celestia-service:26658 -``` - -Export this file to the env vars as follows: -```bash -export ROLLUP_CONF_FILE=-rollup-conf.yaml -``` - -## Create new sequencer account - -```bash -astria-cli sequencer account create -``` - -```bash -Create Sequencer Account - -Private Key: "5562...1622" # -Public Key: "ec20...f613" # -Address: "8a2f...5f68" -``` - -Keep track of the `` as it will be used with the -Faucet later on for funding your sequencer account. - -Export your sequencer private key as an environment variable. - -```bash -export SEQUENCER_PRIV_KEY=9c78...710d -``` - -### Create Namespace - -```bash -kubectl apply -f kubernetes/namespace.yml -``` - -### Use locally modified chart - -:::danger -You __must__ have modified your local `helm` chart to use your own domain name -as described in [this section here](#update-the-helm-chart). -::: - -Because you needed to modify the host names inside your ingress template you must deploy your rollup using your local chart: - -```bash -export ROLLUP_CHART_PATH="/your_path_to/dev-cluster/charts/rollup" -``` - -### Deploy the Rollup Node - -Use the `astria-cli` to deploy the node. - -```bash -astria-cli rollup deployment create \ - --config $ROLLUP_CONF_FILE \ - --faucet-private-key $ROLLUP_FAUCET_PRIV_KEY \ - --sequencer-private-key $SEQUENCER_PRIV_KEY -``` - -## Observe your Deployment - -Your rollups utility endpoints are as follows: - -| Utility | URL | -|-----|-----| -| Block Explorer | http://blockscout../ | -| Faucet | http://faucet../ | -| RPC | http://executor../ | - -Open the URLs in your browser to view your running rollup. - -## Use `cast` to Interact with your Rollup - -```bash -export ETH_RPC_URL=http://executor../ -``` - -```bash -cast block 0 -``` - -Use an address of your choice. - -```bash -export REC_ADDR= -``` - -```bash -cast balance $REC_ADDR -``` - -```bash -cast send $REC_ADDR --value 10000000000000000000 --private-key $ROLLUP_FAUCET_PRIV_KEY -``` - -```bash -cast balance $REC_ADDR -``` - -## Fund you Sequencer Account - -Using your sequencer pub key you created in the -[Create a New Sequencer Account](#create-new-sequencer-account) section, copy and past the -`` into the input on the faucet page, and mint funds -to your account: - -![Sequencer Faucet](../assets/sequencer-faucet.png) diff --git a/docs/dusknet/cloud-rollup-deployment/3-gcp.md b/docs/dusknet/cloud-rollup-deployment/3-gcp.md deleted file mode 100644 index 9b4771a..0000000 --- a/docs/dusknet/cloud-rollup-deployment/3-gcp.md +++ /dev/null @@ -1,401 +0,0 @@ ---- -sidebar_position: 3 ---- - -# GCP - -Deploy your rollup to GCP. - -:::info -The list of local dependencies for the following instructions [can be found here](/docs/dusknet/1-overview.md). -::: - -## Create a GCP (Google) Account - -Follow instructions here: - -## Install GCP `gcloud` CLI - -Find the correct cli for your OS here: - - -## Authenticate the CLI - -Following instructions here: - - -```bash -gcloud auth login -``` - -## Create a Google Cloud Project - -See the full instructions here: -- - -We recommend using the cli commands, which can be found on the above page by selecting -the `gcloud` tabs within the instructions: - -```bash -gcloud projects create PROJECT_ID -``` - -## Set Default Project - -```bash -gcloud config set project PROJECT_ID -``` - -## Enable Billing - -See the following page for setting up a billing account that suits your needs: -- - -## Enable GKE API - -```bash -gcloud services enable container.googleapis.com -``` - -## GKE Quickstart - -Follow the Quickstart guide to create your GKE cluster: -- - -### Create a GKE Cluster - -```bash -gcloud container clusters create-auto hello-cluster \ - --region=us-central1 -``` - -## Configure Kubectl - -:::danger -Due to https://github.com/kubernetes/kubectl/issues/1338 you must run the following commands before configuring your cluster’s credentials, otherwise `helm` will not work. - -```bash -gcloud components install gke-gcloud-auth-plugin -export USE_GKE_GCLOUD_AUTH_PLUGIN=True -``` -::: - -Configure your credentials: - -```bash -gcloud container clusters get-credentials hello-cluster \ - --region us-central1 -``` - -## Deploy Ingress Nginx Controller - -See the Kubernetes GCE-GKE nginx installation guid here: -- - -```bash -kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml -``` - -## Verify Loadbalancer with external IP - -Run the following command: -```bash -kubectl get svc -n ingress-nginx -``` - -You should see something like this: - -```bash -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -ingress-nginx-controller LoadBalancer 34.118.228.98 34.42.184.206 80:31623/TCP,443:31357/TCP 57s -ingress-nginx-controller-admission ClusterIP 34.118.229.71 443/TCP 57s -``` - -## Create an `A` Record - -:::tip -You must configure a DNS record because our ingress configuration uses name -based virtual routing. -More info here: https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting -::: - -How you create an `A` record will depend on where you purchased your domain from. Each -domain provider will have different steps required to set up an A record. - -An example for Google domains can be seen here: - -Create a wildcard `*` record pointing to the `EXTERNAL-IP` of your `ingress-nginx-controller`: - -![a record screenshot](../assets/a-record.png) - -## Creating your rollup Genesis Account(s) - -You can add genesis account(s) to your rollup during configuration. - -You can create an account using - -```bash -cast w new -``` - -to create a new account: - -```bash -Successfully created new keypair. -Address: 0xfFe9...5f8b # -Private key: 0x332e...a8fb # -``` - -`export` the genesis address: -```bash -export GENESIS_ADDRESS= -``` - -`export` the genesis private key: -```bash -export ROLLUP_FAUCET_PRIV_KEY= -``` - -Exporting the genesis account(s) is also shown in the export block in the next section. - -:::danger -__NEVER__ use a private key you use on a live network. -::: - -## Configure and Deploy Rollup - -### Update the `helm` Chart - -Pull the [Astria dev-cluster repo](https://github.com/astriaorg/dev-cluster): -```bash -git clone git@github.com:astriaorg/dev-cluster.git -cd dev-cluster -``` - -Within the dev-cluster repo, update the ingress template -`chart/rollup/templates/ingress.yaml` so that each hostname ends in -`` instead of `localdev.me` - -```yaml -... -- host: executor.{{ .Values.config.rollup.name }}. -... -- host: ws-executor.{{ .Values.config.rollup.name }}. -... -- host: faucet.{{ .Values.config.rollup.name }}. -... -- host: blockscout.{{ .Values.config.rollup.name }}. -... -``` - -Add an IngressClass so that the `metadata` section in the same file looks like: - -```yaml -metadata: - name: {{ .Values.config.rollup.name }}-ingress - namespace: {{ .Values.namespace }} - annotations: - kubernetes.io/ingress.class: nginx -``` - -:::tip -You can see an example of these changes in [this PR here](https://github.com/astriaorg/dev-cluster/pull/119/files). -::: - -## Install the `astria-cli` - -Pull the [Astria repo](https://github.com/astriaorg/astria) and install the `astria-cli` - -```bash -git clone git@github.com:astriaorg/astria.git -cd astria -just install-cli -``` - -### Get Current Sequencer Block Height - -```bash -astria-cli sequencer blockheight get \ - --sequencer-url https://rpc.sequencer.dusk-2.devnet.astria.org/ -``` - -`export` the initial sequencer block height as an environment variable: -```bash -export INITIAL_SEQUENCER_BLOCK_HEIGHT= -``` - -## Create Rollup Config - -Replace the tags in the commands and env vars below, as follows: - -| Var Name | Var Type | Description | -|-----|-----|-----| -| `` | String | The name of your rollup | -| `` | u64 | The id of your network | -| `` | u64 | A balance. We recommend using `100000000000000000000`. | - - - - - -You can use environment variables to set the configuration for the rollup -config creation. Replace all the `<>` tags with their corresponding values. - -```bash -export ROLLUP_USE_TTY=true -export ROLLUP_LOG_LEVEL=DEBUG -export ROLLUP_NAME= -export ROLLUP_NETWORK_ID= -export ROLLUP_SKIP_EMPTY_BLOCKS=false -export ROLLUP_GENESIS_ACCOUNTS=$GENESIS_ADDRESS: -export ROLLUP_SEQUENCER_INITIAL_BLOCK_HEIGHT=$INITIAL_SEQUENCER_BLOCK_HEIGHT -export ROLLUP_SEQUENCER_WEBSOCKET=wss://rpc.sequencer.dusk-2.devnet.astria.org/websocket -export ROLLUP_SEQUENCER_RPC=https://rpc.sequencer.dusk-2.devnet.astria.org -``` - -Once the environment variables shown above are set, run the following command to -create the rollup config: -```bash -astria-cli rollup config create -``` - -You can then run: - -```sh -cat -rollup-conf.yaml -``` - -to print out the config file contents to double check everything: - -```sh -config: - useTTY: true - logLevel: DEBUG - rollup: - name: - chainId: # derived from rollup name - networkId: - skipEmptyBlocks: true - genesisAccounts: - - address: 0x - balance: '' - sequencer: - initialBlockHeight: - websocket: ws://rpc.sequencer.dusk-2.devnet.astria.org/websocket - rpc: http://rpc.sequencer.dusk-2.devnet.astria.org - celestia: - fullNodeUrl: http://celestia-service:26658 -``` - -Export this file to the env vars as follows: -```bash -export ROLLUP_CONF_FILE=-rollup-conf.yaml -``` - -## Create new sequencer account - -```bash -astria-cli sequencer account create -``` - -```bash -Create Sequencer Account - -Private Key: "5562...1622" # -Public Key: "ec20...f613" # -Address: "8a2f...5f68" -``` - -Keep track of the `` as it will be used with the -Faucet later on for funding your sequencer account. - -Export your sequencer private key as an environment variable. - -```bash -export SEQUENCER_PRIV_KEY=9c78...710d -``` - -### Create Namespace - -```bash -kubectl apply -f kubernetes/namespace.yml -``` - -### Use locally modified chart - -:::danger -You __must__ have modified your local `helm` chart to use your own domain name -as described in [this section here](#update-the-helm-chart). -::: - -Because you needed to modify the host names inside your ingress template you must deploy your rollup using your local chart: - -```bash -export ROLLUP_CHART_PATH="/your_path_to/dev-cluster/charts/rollup" -``` - -### Deploy the Rollup Node - -Use the `astria-cli` to deploy the node. - -```bash -astria-cli rollup deployment create \ - --config $ROLLUP_CONF_FILE \ - --faucet-private-key $ROLLUP_FAUCET_PRIV_KEY \ - --sequencer-private-key $SEQUENCER_PRIV_KEY -``` - -## Observe your Deployment - -Your rollups utility endpoints are as follows: - -| Utility | URL | -|-----|-----| -| Block Explorer | http://blockscout../ | -| Faucet | http://faucet../ | -| RPC | http://executor../ | - -Open the URLs in your browser to view your running rollup. - - - -## Use `cast` to Interact with your Rollup - -```bash -export ETH_RPC_URL=http://executor../ -``` - -```bash -cast block 0 -``` - -Use an address of your choice. - -```bash -export REC_ADDR= -``` - -```bash -cast balance $REC_ADDR -``` - -```bash -cast send $REC_ADDR --value 10000000000000000000 --private-key $ROLLUP_FAUCET_PRIV_KEY -``` - -```bash -cast balance $REC_ADDR -``` - -## Fund you Sequencer Account - -Using your sequencer pub key you created in the -[Create a New Sequencer Account](#create-new-sequencer-account) section, copy and past the -`` into the input on the faucet page, and mint funds -to your account: - -![Sequencer Faucet](../assets/sequencer-faucet.png) diff --git a/docs/dusknet/cloud-rollup-deployment/4-aws.md b/docs/dusknet/cloud-rollup-deployment/4-aws.md deleted file mode 100644 index 34c64b8..0000000 --- a/docs/dusknet/cloud-rollup-deployment/4-aws.md +++ /dev/null @@ -1,366 +0,0 @@ ---- -sidebar_position: 4 ---- - -# AWS - -Deploy your rollup to AWS. - -:::info -The list of local dependencies for the following instructions [can be found here](/docs/dusknet/1-overview.md). -::: - -## Create an AWS Account - - - -## Install `aws` CLI - -Installation links for your OS can be found here: -- - -## Create an Access Key - -To create an access key, follow the instructions here: -- - -:::danger -This doesn’t follow best security practices, do not do this on an important AWS -account which has production resources on it. -::: - -Go to IAM section of console: - -Create an access key for your `root` user. - -## Authenticate the `aws` cli - -```bash -aws configure -``` -```bash -# Fill out interactive fields with your access key -AWS Access Key ID [None]: -AWS Secret Access Key [None]: -Default region name [None]: -Default output format [None]: -``` - -# Create Amazon EKS Cluster - -To create your EKS cluster, follow the instructions here: -- - -## Deploy Ingress Controller - - - -```bash -kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/aws/deploy.yaml -``` - -### Check Ingress Service - -```bash -kubectl get svc -n ingress-nginx -``` - -You should see something like this: - -```bash -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -ingress-nginx-controller LoadBalancer 10.100.151.220 ac1f86093ea7240c89457da3d5f71fc4-947b3172412ab75c.elb.us-east-1.amazonaws.com 80:30416/TCP,443:31448/TCP 3m55s -ingress-nginx-controller-admission ClusterIP 10.100.208.56 443/TCP 3m55s -``` - -## Create a `CNAME` record - -:::danger -You must configure a DNS record because our ingress configuration uses name -based virtual routing. -More info here: https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting -::: - -![CNAME record Example](../assets/cname-record-example.png) - -## Creating your own Genesis Account - -You can add genesis account(s) to your rollup during configuration. - -You can create an account using - -```bash -cast w new -``` - -to create a new account: - -```bash -Successfully created new keypair. -Address: 0xfFe9...5f8b # -Private key: 0x332e...a8fb # -``` - -`export` the genesis address: -```bash -export GENESIS_ADDRESS= -``` - -`export` the genesis private key: -```bash -export ROLLUP_FAUCET_PRIV_KEY= -``` - -Exporting the genesis account(s) is also shown in the export block in the next section. - -:::danger -__NEVER__ use a private key you use on a live network. -::: - -## Configure and Deploy Rollup - -### Update the `helm` Chart - -Pull the [Astria dev-cluster repo](https://github.com/astriaorg/dev-cluster): -```bash -git clone git@github.com:astriaorg/dev-cluster.git -cd dev-cluster -``` - -Within the dev-cluster repo, update the ingress template -`chart/rollup/templates/ingress.yaml` so that each hostname ends in -`` instead of `localdev.me` - -```yaml -... -- host: executor.{{ .Values.config.rollup.name }}. -... -- host: ws-executor.{{ .Values.config.rollup.name }}. -... -- host: faucet.{{ .Values.config.rollup.name }}. -... -- host: blockscout.{{ .Values.config.rollup.name }}. -... -``` - -Add an IngressClass so that the `metadata` section in the same file looks like: - -```yaml -metadata: - name: {{ .Values.config.rollup.name }}-ingress - namespace: {{ .Values.namespace }} - annotations: - kubernetes.io/ingress.class: nginx -``` - -:::tip -You can see an example of these changes in [this PR here](https://github.com/astriaorg/dev-cluster/pull/119/files). -::: - -## Install the `astria-cli` - -Pull the [Astria repo](https://github.com/astriaorg/astria) and install the `astria-cli` - -```bash -git clone git@github.com:astriaorg/astria.git -cd astria -just install-cli -``` - -### Get Current Sequencer Block Height - -```bash -astria-cli sequencer blockheight get \ - --sequencer-url https://rpc.sequencer.dusk-2.devnet.astria.org/ -``` - -`export` the initial sequencer block height as an environment variable: -```bash -export INITIAL_SEQUENCER_BLOCK_HEIGHT= -``` - -## Create Rollup Config - -Replace the tags in the commands and env vars below, as follows: - -| Var Name | Var Type | Description | -|-----|-----|-----| -| `` | String | The name of your rollup | -| `` | u64 | The id of your network | -| `` | u64 | A balance. We recommend using `100000000000000000000`. | - - - - - -You can use environment variables to set the configuration for the rollup -config creation. Replace all the `<>` tags with their corresponding values. - -```bash -export ROLLUP_USE_TTY=true -export ROLLUP_LOG_LEVEL=DEBUG -export ROLLUP_NAME= -export ROLLUP_NETWORK_ID= -export ROLLUP_SKIP_EMPTY_BLOCKS=false -export ROLLUP_GENESIS_ACCOUNTS=$GENESIS_ADDRESS: -export ROLLUP_SEQUENCER_INITIAL_BLOCK_HEIGHT=$INITIAL_SEQUENCER_BLOCK_HEIGHT -export ROLLUP_SEQUENCER_WEBSOCKET=wss://rpc.sequencer.dusk-2.devnet.astria.org/websocket -export ROLLUP_SEQUENCER_RPC=https://rpc.sequencer.dusk-2.devnet.astria.org -``` - -Once the environment variables shown above are set, run the following command to -create the rollup config: -```bash -astria-cli rollup config create -``` - -You can then run: - -```sh -cat -rollup-conf.yaml -``` - -to print out the config file contents to double check everything: - -```sh -config: - useTTY: true - logLevel: DEBUG - rollup: - name: - chainId: # derived from rollup name - networkId: - skipEmptyBlocks: true - genesisAccounts: - - address: 0x - balance: '' - sequencer: - initialBlockHeight: - websocket: ws://rpc.sequencer.dusk-2.devnet.astria.org/websocket - rpc: http://rpc.sequencer.dusk-2.devnet.astria.org - celestia: - fullNodeUrl: http://celestia-service:26658 -``` - -Export this file to the env vars as follows: -```bash -export ROLLUP_CONF_FILE=-rollup-conf.yaml -``` - -## Create new sequencer account - -```bash -astria-cli sequencer account create -``` - -```bash -Create Sequencer Account - -Private Key: "5562...1622" # -Public Key: "ec20...f613" # -Address: "8a2f...5f68" -``` - -Keep track of the `` as it will be used with the -Faucet later on for funding your sequencer account. - -Export your sequencer private key as an environment variable. - -```bash -export SEQUENCER_PRIV_KEY=9c78...710d -``` - -### Create Namespace - -```bash -kubectl apply -f kubernetes/namespace.yml -``` - -### Use locally modified chart - -:::danger -You __must__ have modified your local `helm` chart to use your own domain name -as described in [this section here](#update-the-helm-chart). -::: - -Because you needed to modify the host names inside your ingress template you must deploy your rollup using your local chart: - -```bash -export ROLLUP_CHART_PATH="/your_path_to/dev-cluster/charts/rollup" -``` - -### Deploy the Rollup Node - -Use the `astria-cli` to deploy the node. - -```bash -astria-cli rollup deployment create \ - --config $ROLLUP_CONF_FILE \ - --faucet-private-key $ROLLUP_FAUCET_PRIV_KEY \ - --sequencer-private-key $SEQUENCER_PRIV_KEY -``` - -## Observe your Deployment - -Your rollups utility endpoints are as follows: - -| Utility | URL | -|-----|-----| -| Block Explorer | http://blockscout../ | -| Faucet | http://faucet../ | -| RPC | http://executor../ | - -Open the URLs in your browser to view your running rollup. - -## Debug Ingress - -If you would like to view the ingress logs you can use the following: - -```bash -kubectl get po -n ingress-nginx -# get the name of one of the pods -export INGRESS_POD_1=ingress-nginx-controller-6d6559598-ll8gv -# view the logs -kubectl logs $INGRESS_POD_1 -n ingress-nginx -``` - -## Use `cast` to Interact with your Rollup - -```bash -export ETH_RPC_URL=http://executor../ -``` - -```bash -cast block 0 -``` - -Use an address of your choice. - -```bash -export REC_ADDR= -``` - -```bash -cast balance $REC_ADDR -``` - -```bash -cast send $REC_ADDR --value 10000000000000000000 --private-key $ROLLUP_FAUCET_PRIV_KEY -``` - -```bash -cast balance $REC_ADDR -``` - -## Fund you Sequencer Account - -Using your sequencer pub key you created in the -[Create a New Sequencer Account](#create-new-sequencer-account) section, copy and past the -`` into the input on the faucet page, and mint funds -to your account: - -![Sequencer Faucet](../assets/sequencer-faucet.png) diff --git a/docs/dusknet/cloud-rollup-deployment/_category_.json b/docs/dusknet/cloud-rollup-deployment/_category_.json deleted file mode 100644 index ab47fd1..0000000 --- a/docs/dusknet/cloud-rollup-deployment/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Cloud Rollup Deployment", - "position": 3, - "link": { - "type": "generated-index", - "description": "To deploy your rollup to a cloud provider of your choice, select one of the guides below. From an ease of use perspective, we have ordered the deployment methods from \"easiest\" to \"most complicated\"." - } -} diff --git a/docs/dusknet/2-local-rollup-deployment.md b/docs/local-rollup/1-introduction.mdx similarity index 51% rename from docs/dusknet/2-local-rollup-deployment.md rename to docs/local-rollup/1-introduction.mdx index c4ee9bf..ce278f6 100644 --- a/docs/dusknet/2-local-rollup-deployment.md +++ b/docs/local-rollup/1-introduction.mdx @@ -1,12 +1,83 @@ --- -sidebar_position: 2 +sidebar_position: 1 --- -# Local Rollup Deployment +# Overview + +This guide will walk you through deploying a rollup full node on +a local Kubernetes cluster which uses the Astria shared sequencer network. + +## Local Dependencies + +:::info +This guide has been tested on MacOS and Linux but not Windows +::: + +### Clone the Astria [dev-cluster](https://github.com/astriaorg/dev-cluster/tree/main) + +```bash +git clone --branch dusk-2 https://github.com/astriaorg/dev-cluster.git +``` + +### Install the latest [astria cli](https://github.com/astriaorg/astria/releases/tag/cli-v0.2.0) + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-aarch64-apple-darwin.tar.gz > astria-cli.tar.gz + tar -xvzf astria-cli.tar.gz + + + + + curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-x86_64-apple-darwin.tar.gz > astria-cli.tar.gz + tar -xvzf astria-cli.tar.gz + + + + + curl -L https://github.com/astriaorg/astria/releases/download/cli-v0.2.0/astria-cli-x86_64-unknown-linux-gnu.tar.gz > astria-cli.tar.gz + tar -xvzf astria-cli.tar.gz + + + + + cargo install astria-cli --git=https://github.com/astriaorg/astria --tag=cli-v2 --locked + + + + +You'll also need to install the following tools: + +:::warning +There is a bug in the latest Docker desktop release for MacOS +Please install the following release: + +For more details see [here](https://github.com/docker/for-mac/issues/7100) +::: + +- docker - +- kubectl - +- helm - +- kind - +- just - +- Foundry Cast and Forge tools - + +## Dusknet Endpoints + +The endpoints for the remote shared sequencer are: + +| NAME | HOSTS | ADDRESS | +|-----|-----|-----| +| Sequencer RPC | rpc.sequencer.dusk-2.devnet.astria.org | 34.111.73.187 | +| Sequencer Faucet | faucet.sequencer.dusk-2.devnet.astria.org | 34.36.8.102 | ## Setup Local Environment -We use part of the [Astria +We use the [Astria dev-cluster](https://github.com/astriaorg/dev-cluster) to setup a local Kubernetes (k8s) cluster where we will deploy our local rollup. @@ -14,14 +85,14 @@ Kubernetes (k8s) cluster where we will deploy our local rollup. Make sure that Docker is running before continuing. ::: -In the __dev-cluster repo__, run: +In the __dev-cluster__ repo, run: ```sh just create-cluster just deploy-ingress-controller ``` -This gives us a local environment compatible with our helm charts. +This sets up a local environment compatible with our helm charts. ## Create your Rollup Genesis Account(s) @@ -29,7 +100,7 @@ This gives us a local environment compatible with our helm charts. __NEVER__ use a private key you use on a live network. ::: -You can add genesis account(s) to your rollup during configuration. +Specify the accounts which will be funded at the genesis block of your EVM rollup. You can create an account using: @@ -50,8 +121,8 @@ Export the genesis private key, this will be used by the export ROLLUP_FAUCET_PRIV_KEY= ``` -Export the genesis address alongside with your desired initial balance, - in Wei, we recommend using a value of `100000000000000000000` or larger: +Export the genesis address alongside with your desired initial balance in Wei. +We recommend using a value of `100000000000000000000` or larger: ```bash export ROLLUP_GENESIS_ACCOUNTS=: @@ -66,6 +137,8 @@ export ROLLUP_GENESIS_ACCOUNTS=:,: ## Create Rollup Config +Create the configuration manifest for your rollup. + Replace the tags in the commands and env vars below, as follows: | Var Name | Var Type | Description | @@ -95,20 +168,20 @@ export ROLLUP_CONF_FILE=$ROLLUP_NAME-rollup-conf.yaml Verify the config -```sh +```bash cat $ROLLUP_CONF_FILE ``` -```sh -namespace: astria-dev-cluster -config: +```bash +global: + namespace: astria-dev-cluster useTTY: false logLevel: debug +config: rollup: name: chainId: -chain networkId: '' - skipEmptyBlocks: false genesisAccounts: - address: balance: '' @@ -116,12 +189,18 @@ config: initialBlockHeight: websocket: wss://rpc.sequencer.dusk-2.devnet.astria.org/websocket rpc: https://rpc.sequencer.dusk-2.devnet.astria.org - ingress: - hostname: localdev.me +ingress: + hostname: localdev.me +celestia-node: + config: + labelPrefix: ``` ## Create a New Sequencer Account +Create an account on the Astria shared sequencer network + for your rollup to submit transactions. + ```bash astria-cli sequencer account create ``` @@ -137,7 +216,7 @@ Address: "8a2f...5f68" # Export your sequencer private key and address as environment variables: ```bash -export SEQUENCER_PRIV_KEY=9c78...710d +export SEQUENCER_PRIV_KEY=5562...1622 export SEQUENCER_ACCOUNT_ADDRESS=8a2f...5f68 ``` @@ -154,12 +233,12 @@ Enter your `` into the text box to send Verify your account received the funds ```bash -astria-cli sequencer balance get $SEQUENCER_ACCOUNT_ADDRESS --sequencer-url=https://rpc.sequencer.dusk-2.devnet.astria.org +astria-cli sequencer account balance $SEQUENCER_ACCOUNT_ADDRESS ``` -## Deploy the Configuration +## Deploy the Rollup Node -Then deploy the configuration with: +Use the `astria-cli` to deploy the rollup node ```bash astria-cli rollup deployment create \ @@ -168,7 +247,9 @@ astria-cli rollup deployment create \ --sequencer-private-key $SEQUENCER_PRIV_KEY ``` -## Watch for pod startup +## Watch for rollup startup + +You can watch for the Kubernetes pods of the rollup to start with: ```bash kubectl get pods -n astria-dev-cluster -w @@ -176,14 +257,16 @@ kubectl get pods -n astria-dev-cluster -w ```bash NAME READY STATUS RESTARTS AGE --blockscout-647745c66d-vz4ks 6/6 Running 1 (56s ago) 72s --faucet-68667bd895-pwqmz 1/1 Running 0 72s --geth-755cb8dd97-k5xp8 3/3 Running 0 72s +-blockscout-647745c66d-vz4ks 6/6 Running 1 (56s ago) 72s +-celestia-node-light-mocha-4-0 2/2 Running 1 (56s ago) 72s +-faucet-68667bd895-pwqmz 1/1 Running 0 72s +-geth-755cb8dd97-k5xp8 3/3 Running 0 72s ``` -## Observe your Deployment +## Your Rollup Endpoints -Your rollups utility endpoints are as follows: +Your rollup will automatically be configured +with the several locally accessible endpoints: | Utility | URL | |-----|-----| @@ -191,68 +274,30 @@ Your rollups utility endpoints are as follows: | Faucet | `http://faucet..localdev.me/` | | RPC | `http://executor..localdev.me/` | -Open the URLs in your browser to view your running rollup. - -You can also open the Block Explorer in a new browser window to see the faucet -transaction appear, or any of the transactions you have sent using `cast`. - -## Use `cast` to Interact with your Rollup - -Use `cast` to view the blocks on your rollup. +## Interact with your Rollup ```bash -# set the Eth RPC url to point at your rollup export ETH_RPC_URL=http://executor.$ROLLUP_NAME.localdev.me/ -cast block 0 ``` -Which should print something like this: - ```bash -baseFeePerGas 1000000000 -difficulty 10000000 -extraData 0x -gasLimit 8000000 -gasUsed 0 -hash 0xa2d5f000ef275b5f6ce6af5a0de50c17e5893c5ea664b77f534eb62f317caff1 -logsBloom 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -miner 0x0000000000000000000000000000000000000000 -mixHash 0x0000000000000000000000000000000000000000000000000000000000000000 -nonce 0x0000000000000000 -number 0 -parentHash 0x0000000000000000000000000000000000000000000000000000000000000000 -receiptsRoot 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421 -sealFields [] -sha3Uncles 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347 -size 512 -stateRoot 0xc1a913facf57b18de72d25155293c53b2a463d93a1de735269410b8663f2efca -timestamp 0 -withdrawalsRoot -totalDifficulty 10000000 -transactions: [] +cast block 0 ``` -If you have an address you would like to deposit funds to, export that address -to the env vars: +Use an address of your choice. ```bash -export REC_ADDR=
+export REC_ADDR= ``` -You can also use `cast` to view your balance: - ```bash cast balance $REC_ADDR ``` -Send an ammount to your address: - ```bash cast send $REC_ADDR --value 10000000000000000000 --private-key $ROLLUP_FAUCET_PRIV_KEY ``` -And view your new balance: - ```bash cast balance $REC_ADDR ``` diff --git a/docs/local-rollup/_category_.json b/docs/local-rollup/_category_.json new file mode 100644 index 0000000..d6a55ea --- /dev/null +++ b/docs/local-rollup/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Deploy a Local Rollup", + "position": 2, + "link": { + "type": "doc", + "id": "local-rollup/introduction" + } +} diff --git a/docs/local-rollup/assets/a-record.png b/docs/local-rollup/assets/a-record.png new file mode 100644 index 0000000..d300a6b Binary files /dev/null and b/docs/local-rollup/assets/a-record.png differ diff --git a/docs/local-rollup/assets/cname-record-example.png b/docs/local-rollup/assets/cname-record-example.png new file mode 100644 index 0000000..e20df5c Binary files /dev/null and b/docs/local-rollup/assets/cname-record-example.png differ diff --git a/docs/local-rollup/assets/doctl-screenshot.png b/docs/local-rollup/assets/doctl-screenshot.png new file mode 100644 index 0000000..25623ba Binary files /dev/null and b/docs/local-rollup/assets/doctl-screenshot.png differ diff --git a/docs/local-rollup/assets/sequencer-faucet.png b/docs/local-rollup/assets/sequencer-faucet.png new file mode 100644 index 0000000..732c627 Binary files /dev/null and b/docs/local-rollup/assets/sequencer-faucet.png differ diff --git a/docs/overview-of-astria/4-maintain-sovereignty.md b/docs/overview-of-astria/4-maintain-sovereignty.md deleted file mode 100644 index 25bd42e..0000000 --- a/docs/overview-of-astria/4-maintain-sovereignty.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Maintain Sovereignty - -:::tip -To deploy your own rollup on the Astria Dusknet devnet, check out the -[instructions here](/docs/dusknet/overview/)! -::: - -Sovereignty is important, so rollups must be able to receive the benefits of -Astria without fear of being locked in. That’s why swapping out the sequencing -layer is as simple as updating a rollup node’s software to use a different fork -choice rule at a chosen block height. Transaction data is stored on the base -layer (eg. Celestia), and rollup full nodes hold the state and perform -execution, this means there’s nothing that Astria can do to hold the rollup -hostage. diff --git a/docs/overview-of-astria/_category_.json b/docs/overview-of-astria/_category_.json deleted file mode 100644 index 1c7770c..0000000 --- a/docs/overview-of-astria/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Overview of Astria", - "position": 1, - "link": { - "type": "doc", - "id": "overview-of-astria/introduction" - } -} diff --git a/docs/overview-of-astria/1-introduction.md b/docs/overview/1-introduction.md similarity index 100% rename from docs/overview-of-astria/1-introduction.md rename to docs/overview/1-introduction.md diff --git a/docs/overview-of-astria/2-why-decentralized-sequencers.md b/docs/overview/2-why-decentralized-sequencers.md similarity index 100% rename from docs/overview-of-astria/2-why-decentralized-sequencers.md rename to docs/overview/2-why-decentralized-sequencers.md diff --git a/docs/overview-of-astria/3-cross-rollup-composability.md b/docs/overview/3-cross-rollup-composability.md similarity index 100% rename from docs/overview-of-astria/3-cross-rollup-composability.md rename to docs/overview/3-cross-rollup-composability.md diff --git a/docs/overview/_category_.json b/docs/overview/_category_.json new file mode 100644 index 0000000..0def55a --- /dev/null +++ b/docs/overview/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Overview", + "position": 1, + "link": { + "type": "doc", + "id": "overview/introduction" + } +} diff --git a/docs/overview-of-astria/architecture/1-overview.md b/docs/overview/architecture/1-overview.md similarity index 100% rename from docs/overview-of-astria/architecture/1-overview.md rename to docs/overview/architecture/1-overview.md diff --git a/docs/overview-of-astria/architecture/2-transaction-flow.md b/docs/overview/architecture/2-transaction-flow.md similarity index 100% rename from docs/overview-of-astria/architecture/2-transaction-flow.md rename to docs/overview/architecture/2-transaction-flow.md diff --git a/docs/overview-of-astria/architecture/3-rollup.md b/docs/overview/architecture/3-rollup.md similarity index 100% rename from docs/overview-of-astria/architecture/3-rollup.md rename to docs/overview/architecture/3-rollup.md diff --git a/docs/overview-of-astria/architecture/4-composer.md b/docs/overview/architecture/4-composer.md similarity index 100% rename from docs/overview-of-astria/architecture/4-composer.md rename to docs/overview/architecture/4-composer.md diff --git a/docs/overview-of-astria/architecture/5-the-astria-sequencer.md b/docs/overview/architecture/5-the-astria-sequencer.md similarity index 85% rename from docs/overview-of-astria/architecture/5-the-astria-sequencer.md rename to docs/overview/architecture/5-the-astria-sequencer.md index 16e1084..4684c38 100644 --- a/docs/overview-of-astria/architecture/5-the-astria-sequencer.md +++ b/docs/overview/architecture/5-the-astria-sequencer.md @@ -16,8 +16,8 @@ participates in the production and finalization of new blocks. ![Astria Shared Sequencer](../assets/shared-sequencer-overview.png) -Components of note that are not shown in the above diagram are the [Composer](/docs/overview-of-astria/architecture/4-composer.md), -[Relayer](/docs/overview-of-astria/architecture/6-relayer.md), and [Conductor](/docs/overview-of-astria/architecture/7-conductor.md). +Components of note that are not shown in the above diagram are the [Composer](/docs/overview/architecture/4-composer.md), +[Relayer](/docs/overview/architecture/6-relayer.md), and [Conductor](/docs/overview/architecture/7-conductor.md). These components facilitate the delivery transactions, batches, and different commits shown above, back to the users. diff --git a/docs/overview-of-astria/architecture/6-relayer.md b/docs/overview/architecture/6-relayer.md similarity index 100% rename from docs/overview-of-astria/architecture/6-relayer.md rename to docs/overview/architecture/6-relayer.md diff --git a/docs/overview-of-astria/architecture/7-conductor.md b/docs/overview/architecture/7-conductor.md similarity index 95% rename from docs/overview-of-astria/architecture/7-conductor.md rename to docs/overview/architecture/7-conductor.md index c6dc4b6..f7af315 100644 --- a/docs/overview-of-astria/architecture/7-conductor.md +++ b/docs/overview/architecture/7-conductor.md @@ -24,7 +24,7 @@ along side, out of the sequencer blocks for execution. The data that it does sto for sending commitment updates to the rollup. As mentioned in the -[Relayer](/docs/overview-of-astria/architecture/6-relayer.md) section, any data +[Relayer](/docs/overview/architecture/6-relayer.md) section, any data received by the Conductor directly from the Relayer is considered a soft commit. This data is filtered using the rollup's namespace and only transactions that are relevant to the rollup are passed on as blocks for execution. These blocks diff --git a/docs/overview-of-astria/architecture/8-data-availability-layer.md b/docs/overview/architecture/8-data-availability-layer.md similarity index 100% rename from docs/overview-of-astria/architecture/8-data-availability-layer.md rename to docs/overview/architecture/8-data-availability-layer.md diff --git a/docs/overview-of-astria/architecture/_category_.json b/docs/overview/architecture/_category_.json similarity index 61% rename from docs/overview-of-astria/architecture/_category_.json rename to docs/overview/architecture/_category_.json index ece63eb..845115b 100644 --- a/docs/overview-of-astria/architecture/_category_.json +++ b/docs/overview/architecture/_category_.json @@ -3,6 +3,6 @@ "position": 4, "link": { "type": "doc", - "id": "overview-of-astria/architecture/overview" + "id": "overview/architecture/overview" } } diff --git a/docs/overview-of-astria/assets/astria-architecture.png b/docs/overview/assets/astria-architecture.png similarity index 100% rename from docs/overview-of-astria/assets/astria-architecture.png rename to docs/overview/assets/astria-architecture.png diff --git a/docs/overview-of-astria/assets/shared-sequencer-overview.png b/docs/overview/assets/shared-sequencer-overview.png similarity index 100% rename from docs/overview-of-astria/assets/shared-sequencer-overview.png rename to docs/overview/assets/shared-sequencer-overview.png diff --git a/docs/overview-of-astria/assets/shared_sequencer.png b/docs/overview/assets/shared_sequencer.png similarity index 100% rename from docs/overview-of-astria/assets/shared_sequencer.png rename to docs/overview/assets/shared_sequencer.png diff --git a/docs/overview-of-astria/assets/single-rollup.png b/docs/overview/assets/single-rollup.png similarity index 100% rename from docs/overview-of-astria/assets/single-rollup.png rename to docs/overview/assets/single-rollup.png diff --git a/docs/overview-of-astria/assets/transaction-flow.png b/docs/overview/assets/transaction-flow.png similarity index 100% rename from docs/overview-of-astria/assets/transaction-flow.png rename to docs/overview/assets/transaction-flow.png diff --git a/docusaurus.config.js b/docusaurus.config.js index c808690..e7d0847 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -6,7 +6,7 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula'); /** @type {import('@docusaurus/types').Config} */ const config = { - title: 'Astria Docs', + title: 'Astria', tagline: 'The Shared Sequencer Network', favicon: 'img/favicon.png', @@ -84,18 +84,17 @@ const config = { title: 'Docs', items: [ { - label: 'Astria Dusknet', - to: '/docs/dusknet/overview/', + label: 'Local Rollup on Dusknet', + to: '/docs/local-rollup/introduction/', }, { - label: 'Overview', - to: '/docs/overview-of-astria/introduction/', + label: 'Cloud Rollup on Dusknet', + to: '/docs/cloud-rollup/digital-ocean/', }, { - label: 'Dev Cluster', - to: '/docs/dev-cluster/overview/', + label: 'Overview', + to: '/docs/overview/introduction/', }, - ], }, { diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 0d5f4a6..9439aaa 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -17,8 +17,8 @@ function HomepageHeader() {
- Deploy a rollup on Dusknet + to="/docs/local-rollup/introduction/"> + Just Deploy.