astriaorg / dev-cluster Goto Github PK
View Code? Open in Web Editor NEWConfiguration and scripts for running Astria
License: Apache License 2.0
Configuration and scripts for running Astria
License: Apache License 2.0
Current celestia-app and celestia-node images are quite out of date. We need to update both images to the latest release candidate.
App rc5:
https://github.com/celestiaorg/celestia-app/pkgs/container/celestia-app/104158389?tag=v1.0.0-rc5
Node rc5:
https://github.com/celestiaorg/celestia-node/pkgs/container/celestia-node/105006714?tag=v0.11.0-rc5
See: https://github.com/actions/add-to-project
Attempting to follow these instructions (https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/adding-items-automatically) and duplicating the existing workflow gives a message of "maximum number of auto-add workflows reached" but we may be able to manually add an action.
Example from above link:
name: Add bugs to bugs project
on:
issues:
types:
- opened
jobs:
add-to-project:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@RELEASE_VERSION
with:
# You can target a project in a different organization
# to the issue
project-url: https://github.com/orgs/<orgName>/projects/<projectNumber>
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
labeled: bug, needs-triage
label-operator: OR
Note: we want to leave the labeled
input empty which will add all issues
We need a way to generate test data in the EVM so that indexers can check if their system is working.
Possible options to look into:
In the Readme we note where to find the faucet for a given rollup (https://github.com/astriaorg/dev-cluster#faucet) but we do not say where the block explorer for a rollup is.
It looks like this is at:
blockscout.<rollup name>.localdev.me
Using a single ingress object for all astria svc is messy with google ingress controllers
Split ingress resources for internal v external
The per rollup faucet is by default configured to have a 24h delay on token requests. I believe this is rate limited on a per IP address basis.
We should make this configurable and document how to change it.
Separate issue to split up Uniswap demo data and EVM demo data.
I will sometimes get an error when Blockscout's Postgres is starting up related to data already existing. This blocks Blockscout from starting.
| The database cluster will be initialized with locale "en_US.utf8". │
│ The default database encoding has accordingly been set to "UTF8". │
│ The default text search configuration will be set to "english". │
│ │
│ Data page checksums are disabled. │
│ │
│ initdb: error: directory "/var/lib/postgresql/data" exists but is not empty │
│ If you want to create a new database system, either remove or empty │
│ the directory "/var/lib/postgresql/data" or run initdb │
│ with an argument other than "/var/lib/postgresql/data".
add:
k9s -n astria-dev-cluster
will add more as i go through
Celestia-local is current cranking faster than normal, metro is slow. We should speed up metro block times, and slow down celestia times to get to point more similar to mainnet launch
When broken out into pods, they are no longer connected to the p2p network, configuration should be updated to enable this.
Blocked by astriaorg/astria#108 astriaorg/astria#19
Related to: #77
We should have an additional section in the README.md or a different Markdown file that gives some copy-paste examples of interacting with the rollup.
It may be best for this to link to https://github.com/astriaorg/astria-web3 but the desire is to make it easy for an end user to see that the rollup is working.
Create a faucet setup for devnet EVM.
Gives the ability to transfer tokens to an account, with a mechanism in which we are responsible for/has limits.
Blocked by #32
Once we have the new sequencer integrated, update the dev cluster to run multiple sequencer pods (at least 2)
Our k8s deployment is currently all in a single pod, we need to migrate to multiple pods.
Related to:
Blocked by:
Currently we have a geth pod, and are working on adding tooling to make that work nicely. (#12, #10)
We make it easy to run a second chain, and it's own set of infrastructure. This can be just commands + modified foundry with templated k8s with sh commands if that's the best implementation, but ideally just a couple of clean commands.
ie
export CHAIN_ID={}
export EVM_FUNDING_ADDR={}
just deploy-geth $CHAIN_ID $EVM_FUNDING_ADDRESS
just deploy-eth-explorer $CHAIN_ID
just deploy-faucet $CHAIN_ID $EVM_FUNDING_ADDRESS
Refactor Celestia from regular k8s yaml manifests into a Helm Chart
README should say that docker must be running before just
commands
I decided upon some naming conventions after having already done the celestia-local
work, so I need to go back and make some things consistent with the newer work.
{{pod name}}-{{service name}}-pv
{{pod name}}-{{service name}}-pvc
volumes.yaml
, storageclasses.yaml
, etcvalues.yaml
Instead of sequencer-relayer
and conductor
connecting directly to the bridge, each should have their own light node, which connects to the bridge node.
Each light node should have it's own account, functioning as a wallet interface with the Celestia network.
We may need to update and have a default genesis for celestia-local which provides funds to multiple fixed account addresses. When running light nodes against a devnet or testnet network, operators
It's possible for a persistent volume to get very large, and bad things happen when a user's disk runs out of space. To avoid borking some poor soul's computer who just wanted to run our chain, let's default to ephemeral storage but provide a value that can be overridden to create a persistent local volume.
Blocked by astriaorg/astria#75
Currently my account hash is hardcoded into the geth configs.
It should be possible to use your own local account for the dev-cluster. This will require a template to get the user's hash to work with kustomization
A lot of our configmap keys are snake_case, but should be UPPERCASE_SNAKE_CASE.
export SOME_VAR
in init and start scripts (or setting envvars in deployment.ymls)On reboot, all of our pods lose their chain information. Need to update to have options for persistent storage, required for a public devnet.
Private devnet requires we have a long lived deployed cluster where EVM can be accessed when a user has an API key from JSON RPCs, and data is posted to devnet (arabica) of Celestia.
The Composer section of the dev-cluster overview doc currently includes the an "Under Construction" comment:
https://github.com/astriaorg/dev-cluster/blob/sb/dev-cluster-overview-doc/docs/astria.md#composer-under-construction
This section needs to be updated to include the most recent status of the Composer now that it is include in the astria repo, and the "under construction" comment removed.
Add image names to values.yaml
and use in the helm templates so that we can easily override images when working with the dev-cluster.
https://www.notion.so/astria-org/Uniswap-contract-deployment-fd8a095b171f4cefbeb3fe7c89d455cc?pvs=4
https://github.com/steezeburger/contracts-for-uniswap
https://github.com/astriaorg/deploy-v3
This is considered done when I have successfully performed a swap between two coins.
Moving from podman to k8 setup with ingress rules and such makes this reusable by testing setups in conductor & sequencer potentially, and makes deployment to GKE simpler
When attempting to go through dev-cluster
after a fresh git clone
the just create-control-plane
fails.
kind create cluster --config ./kubernetes/kind-cluster-config.yml
Creating cluster "astria-dev-cluster" ...
✓ Ensuring node image (kindest/node:v1.26.3) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✗ Starting control-plane 🕹️
ERROR: failed to create cluster: failed to init node with kubeadm: command "docker exec --privileged astria-dev-cluster-control-plane kubeadm init --skip-phases=preflight --config=/kind/kubeadm.conf --skip-token-print --v=6" failed with error: exit status 1
Command Output: I0615 01:43:52.178033 131 initconfiguration.go:254] loading configuration from "/kind/kubeadm.conf"
Full error logs: https://gist.github.com/jbowen93/2d868f9923be7a3b65ffdc78ecc27bc5
Helmify Sequencer. Blocking completion of #27
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.