Compare commits
7 Commits
v1.1.0-a8e
...
main
| Author | SHA1 | Date |
|---|---|---|
|
|
ce966f1baa | |
|
|
db4728a9e3 | |
|
|
7ca7bcc952 | |
|
|
32f8d65bb8 | |
|
|
d19b9a65b9 | |
|
|
98e1d120cc | |
|
|
26ff7a969c |
|
|
@ -1,5 +1,7 @@
|
|||
# Stack Orchestrator
|
||||
|
||||
|
||||
|
||||
Stack Orchestrator allows building and deployment of a Laconic Stack on a single machine with minimial prerequisites. It is a Python3 CLI tool that runs on any OS with Python3 and Docker. The following diagram summarizes the relevant repositories in the Laconic Stack - and the relationship to Stack Orchestrator.
|
||||
|
||||

|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
version: '3.2'
|
||||
|
||||
services:
|
||||
# Builds and serves the peer-test react-app
|
||||
peer-test-app:
|
||||
# Builds and serves the peer-test react-app
|
||||
restart: unless-stopped
|
||||
image: cerc/react-peer:local
|
||||
working_dir: /scripts
|
||||
env_file:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ RUN go install github.com/go-delve/delve/cmd/dlv@latest
|
|||
FROM ubuntu:22.04
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
python3 python3-dev python3-pip curl wget jq gettext gettext-base openssl bash dnsutils postgresql-client make iproute2 netcat && \
|
||||
python3 python3-dev python3-pip curl wget jq gettext gettext-base openssl bash dnsutils postgresql-client make iproute2 netcat psmisc && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=delve /go/bin/dlv /usr/local/bin/
|
||||
|
|
@ -24,4 +24,17 @@ RUN cd /opt/testnet && make genesis-el
|
|||
|
||||
RUN geth --datadir ~/ethdata init /opt/testnet/build/el/geth.json && rm -f ~/ethdata/geth/nodekey
|
||||
|
||||
# Snag the genesis block info.
|
||||
RUN geth --datadir ~/ethdata init /opt/testnet/build/el/geth.json && rm -f ~/ethdata/geth/nodekey
|
||||
RUN cp -rp ~/ethdata ~/tmpeth && \
|
||||
geth --datadir ~/tmpeth init /opt/testnet/build/el/geth.json && \
|
||||
geth --datadir ~/tmpeth --http & \
|
||||
sleep 5 && \
|
||||
curl -q --location 'localhost:8545' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data '{ "jsonrpc": "2.0", "id": 14, "method": "eth_getBlockByNumber", "params": ["0x0", false] }' \
|
||||
-o /opt/testnet/build/el/genesis_block.json && \
|
||||
killall -9 geth && \
|
||||
rm -rf ~/tmpeth
|
||||
|
||||
ENTRYPOINT ["/opt/testnet/run.sh"]
|
||||
|
|
|
|||
|
|
@ -14,14 +14,6 @@ laconic-so --stack fixturenet-optimism setup-repositories
|
|||
# If this throws an error as a result of being already checked out to a branch/tag in a repo, remove the repositories mentioned below and re-run the command
|
||||
```
|
||||
|
||||
Checkout to the required versions and branches in repos:
|
||||
|
||||
```bash
|
||||
# Optimism
|
||||
cd ~/cerc/optimism
|
||||
git checkout v1.0.4
|
||||
```
|
||||
|
||||
Build the container images:
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -14,14 +14,6 @@ laconic-so --stack fixturenet-optimism setup-repositories --exclude github.com/c
|
|||
# If this throws an error as a result of being already checked out to a branch/tag in a repo, remove the repositories mentioned below and re-run the command
|
||||
```
|
||||
|
||||
Checkout to the required versions and branches in repos:
|
||||
|
||||
```bash
|
||||
# Optimism
|
||||
cd ~/cerc/optimism
|
||||
git checkout v1.0.4
|
||||
```
|
||||
|
||||
Build the container images:
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -3,12 +3,14 @@ name: fixturenet-optimism
|
|||
decription: "Optimism Fixturenet"
|
||||
repos:
|
||||
- github.com/cerc-io/go-ethereum
|
||||
- github.com/cerc-io/lighthouse
|
||||
- github.com/dboreham/foundry
|
||||
- github.com/ethereum-optimism/optimism
|
||||
- github.com/ethereum-optimism/op-geth
|
||||
- github.com/ethereum-optimism/optimism@v1.0.4
|
||||
- github.com/ethereum-optimism/op-geth@v1.101105.2
|
||||
containers:
|
||||
- cerc/go-ethereum
|
||||
- cerc/lighthouse
|
||||
- cerc/lighthouse-cli
|
||||
- cerc/fixturenet-eth-geth
|
||||
- cerc/fixturenet-eth-lighthouse
|
||||
- cerc/foundry
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@ name: fixturenet-pocket
|
|||
description: "A single node pocket chain that can serve relays from the geth-1 node in eth-fixturenet"
|
||||
repos:
|
||||
- github.com/cerc-io/go-ethereum
|
||||
- github.com/cerc-io/lighthouse
|
||||
- github.com/pokt-network/pocket-core
|
||||
- github.com/pokt-network/pocket-core-deployments # contains the dockerfile
|
||||
containers:
|
||||
- cerc/go-ethereum
|
||||
- cerc/lighthouse
|
||||
- cerc/lighthouse-cli
|
||||
- cerc/fixturenet-eth-geth
|
||||
- cerc/fixturenet-eth-lighthouse
|
||||
- cerc/pocket
|
||||
|
|
|
|||
|
|
@ -18,26 +18,6 @@ laconic-so --stack mobymask-v2 setup-repositories
|
|||
NOTE: If repositories already exist and are checked out to different versions, `setup-repositories` command will throw an error.
|
||||
For getting around this, the repositories mentioned below can be removed and then run the command.
|
||||
|
||||
Checkout to the required versions and branches in repos
|
||||
|
||||
```bash
|
||||
# watcher-ts
|
||||
cd ~/cerc/watcher-ts
|
||||
git checkout v0.2.41
|
||||
|
||||
# mobymask-v2-watcher-ts
|
||||
cd ~/cerc/mobymask-v2-watcher-ts
|
||||
git checkout v0.1.1
|
||||
|
||||
# MobyMask
|
||||
cd ~/cerc/MobyMask
|
||||
git checkout v0.1.2
|
||||
|
||||
# Optimism
|
||||
cd ~/cerc/optimism
|
||||
git checkout v1.0.4
|
||||
```
|
||||
|
||||
Build the container images:
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -14,22 +14,6 @@ laconic-so --stack mobymask-v2 setup-repositories --include github.com/cerc-io/M
|
|||
# If this throws an error as a result of being already checked out to a branch/tag in a repo, remove the repositories mentioned below and re-run the command
|
||||
```
|
||||
|
||||
Checkout to the required versions and branches in repos:
|
||||
|
||||
```bash
|
||||
# watcher-ts
|
||||
cd ~/cerc/watcher-ts
|
||||
git checkout v0.2.41
|
||||
|
||||
# mobymask-v2-watcher-ts
|
||||
cd ~/cerc/mobymask-v2-watcher-ts
|
||||
git checkout v0.1.1
|
||||
|
||||
# MobyMask
|
||||
cd ~/cerc/MobyMask
|
||||
git checkout v0.1.2
|
||||
```
|
||||
|
||||
Build the container images:
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -2,21 +2,24 @@ version: "1.0"
|
|||
name: mobymask-v2
|
||||
repos:
|
||||
- github.com/cerc-io/go-ethereum
|
||||
- github.com/cerc-io/lighthouse
|
||||
- github.com/dboreham/foundry
|
||||
- github.com/ethereum-optimism/optimism
|
||||
- github.com/ethereum-optimism/op-geth
|
||||
- github.com/cerc-io/watcher-ts
|
||||
- github.com/cerc-io/mobymask-v2-watcher-ts
|
||||
- github.com/cerc-io/MobyMask
|
||||
- github.com/ethereum-optimism/optimism@v1.0.4
|
||||
- github.com/ethereum-optimism/op-geth@v1.101105.2
|
||||
- github.com/cerc-io/watcher-ts@v0.2.43
|
||||
- github.com/cerc-io/mobymask-v2-watcher-ts@v0.1.1
|
||||
- github.com/cerc-io/MobyMask@v0.1.2
|
||||
containers:
|
||||
- cerc/go-ethereum
|
||||
- cerc/lighthouse
|
||||
- cerc/lighthouse-cli
|
||||
- cerc/fixturenet-eth-geth
|
||||
- cerc/fixturenet-eth-lighthouse
|
||||
- cerc/foundry
|
||||
- cerc/optimism-contracts
|
||||
- cerc/optimism-l2geth
|
||||
- cerc/optimism-op-batcher
|
||||
- cerc/optimism-op-proposer
|
||||
- cerc/optimism-op-node
|
||||
- cerc/watcher-ts
|
||||
- cerc/watcher-mobymask-v2
|
||||
|
|
|
|||
|
|
@ -30,22 +30,6 @@ Clone required repositories:
|
|||
# 100%|##############################################################################################################################################| 1.41k/1.41k [00:18<00:00, 76.4B/s]
|
||||
```
|
||||
|
||||
Checkout to the required versions and branches in repos:
|
||||
|
||||
```bash
|
||||
# watcher-ts
|
||||
cd ~/cerc/watcher-ts
|
||||
git checkout v0.2.41
|
||||
|
||||
# mobymask-v2-watcher-ts
|
||||
cd ~/cerc/mobymask-v2-watcher-ts
|
||||
git checkout v0.1.1
|
||||
|
||||
# MobyMask
|
||||
cd ~/cerc/MobyMask
|
||||
git checkout v0.1.2
|
||||
```
|
||||
|
||||
Build the container images:
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
#cloud-config
|
||||
|
||||
# Used for easily testing stacks-in-development on cloud platforms
|
||||
# Assumes Ubuntu, edit the last line if targeting a different OS
|
||||
|
||||
# Once SSH'd into the server, run:
|
||||
# `$ cd stack-orchestrator`
|
||||
# `$ git checkout <branch>
|
||||
# `$ ./scripts/developer-mode-setup.sh`
|
||||
# `$ source ./venv/bin/activate`
|
||||
|
||||
# Followed by the stack instructions.
|
||||
|
||||
package_update: true
|
||||
package_upgrade: true
|
||||
|
||||
groups:
|
||||
- docker
|
||||
|
||||
system_info:
|
||||
default_user:
|
||||
groups: [ docker ]
|
||||
|
||||
packages:
|
||||
- apt-transport-https
|
||||
- ca-certificates
|
||||
- curl
|
||||
- jq
|
||||
- git
|
||||
- gnupg
|
||||
- lsb-release
|
||||
- unattended-upgrades
|
||||
- python3.10-venv
|
||||
- pip
|
||||
|
||||
runcmd:
|
||||
- mkdir -p /etc/apt/keyrings
|
||||
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
- apt-get update
|
||||
- apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
- systemctl enable docker
|
||||
- systemctl start docker
|
||||
- git clone https://github.com/cerc-io/stack-orchestrator.git /home/ubuntu/stack-orchestrator
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
#cloud-config
|
||||
|
||||
# Used for installing Stack Orchestrator on platforms that support `cloud-init`
|
||||
# Tested on Ubuntu
|
||||
|
||||
package_update: true
|
||||
package_upgrade: true
|
||||
|
||||
groups:
|
||||
- docker
|
||||
|
||||
system_info:
|
||||
default_user:
|
||||
groups: [ docker ]
|
||||
|
||||
packages:
|
||||
- apt-transport-https
|
||||
- ca-certificates
|
||||
- curl
|
||||
- jq
|
||||
- git
|
||||
- gnupg
|
||||
- lsb-release
|
||||
- unattended-upgrades
|
||||
|
||||
runcmd:
|
||||
- mkdir -p /etc/apt/keyrings
|
||||
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
- apt-get update
|
||||
- apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
- systemctl enable docker
|
||||
- systemctl start docker
|
||||
- curl -L -o /usr/local/bin/laconic-so https://github.com/cerc-io/stack-orchestrator/releases/latest/download/laconic-so
|
||||
- chmod +x /usr/local/bin/laconic-so
|
||||
Loading…
Reference in New Issue