Go to file
prathamesh0 fc522140ba
Add Optimism Fixturenet stack (#266)
* Initial version

* Update readme

* Build op-geth container

* Add optimism go code containers

* Add optimism contracts container

* Update optimism contracts container build

* Add fixturenet-optimism-contracts service to deploy L1 contracts

* Add fixturenet-optimism op-node and op-geth

* Avoid reading addresses from a file when sending balances

* Fixes for running op-geth container

* Fix image name and command in optimism-contracts service

* Add a healthcheck to lighthouse bootnode to avoid failing eth txs

* Avoid using hardhat ethers to send balances from an account

* Update script to send balance to L1 bridge proxy contract

* Implement op-node container

* Wait for a finalized L1 block to exist

* Fix for running op-batcher

* Add a todo for restart support

* Integrate optimism-contracts service and update instructions

* Update clean-up to remove docker volumes

* Update volume access permissions

* Add a todo to replace foundry usage with web3 js

* Add known issues

* Fix README

* Fix indentation

* Update known issues

---------

Co-authored-by: David Boreham <david@bozemanpas.com>
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
2023-04-03 12:33:47 +05:30
app Add Optimism Fixturenet stack (#266) 2023-04-03 12:33:47 +05:30
docs Add release process doc 2023-01-27 21:22:43 -07:00
scripts Add release description 2023-01-25 22:46:37 -07:00
tests/smoke-test Fix for #212 - exception on non-stack deploy 2023-03-09 08:30:18 -07:00
.gitignore trailing newline 2022-09-29 15:21:50 -06:00
cli.py Make cluster/docker-compose project name unique 2023-02-28 08:47:02 -07:00
LICENSE Initial version of pip packaging 2022-08-23 11:32:55 -06:00
MANIFEST.in Initial version of pip packaging 2022-08-23 11:32:55 -06:00
README.md doc jq requirement 2023-03-24 08:56:01 -04:00
requirements.txt Update python on whales 2023-02-19 17:46:47 -07:00
setup.py Update version 2023-01-19 14:21:33 -07:00
tox.ini Moar complex 2022-10-03 19:43:43 -06:00

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.

The Stack

Install

Ensure that the following are already installed:

  • Python3: python3 --version >= 3.8.10 (the Python3 shipped in Ubuntu 20+ is good to go)
  • Docker: docker --version >= 20.10.21
  • jq: jq --version >= 1.5

Note: if installing docker-compose via package manager on Linux (as opposed to Docker Desktop), you must install the plugin, e.g. :

mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

Next decide on a directory where you would like to put the stack-orchestrator program. Typically this would be a "user" binary directory such as ~/bin or perhaps /usr/local/laconic or possibly just the current working directory.

Now, having selected that directory, download the latest release from this page into it (we're using ~/bin below for concreteness but edit to suit if you selected a different directory). Also be sure that the destination directory exists and is writable:

curl -L -o ~/bin/laconic-so https://github.com/cerc-io/stack-orchestrator/releases/latest/download/laconic-so

Give it execute permissions:

chmod +x ~/bin/laconic-so

Ensure laconic-so is on the PATH

Verify operation (your version will probably be different, just check here that you see some version outut and not an error):

laconic-so version
Version: v1.0.27-7831078

Usage

Three sub-commands: setup-repositories, build-containers and deploy-system are generally run in order. The following is a slim example for standing up the erc20-watcher. Go further with the erc20 watcher demo and other pieces of the stack, within the stacks directory.

Setup Repositories

Clone the set of git repositories necessary to build a system:

laconic-so --stack erc20 setup-repositories

This will default to cloning git reposiories into: ~/cerc or - if set - the environment variable CERC_REPO_BASE_DIR

Build Containers

Build the set of docker container images required to run a system. It takes around 10 minutes to build all the containers from scratch.

laconic-so --stack erc20 build-containers

Deploy System

Uses docker compose to deploy a system (with most recently built container images).

laconic-so --stack erc20 deploy-system up

Check out he GraphQL playground here: http://localhost:3002/graphql

See the erc20 watcher demo to continue further.

Cleanup

laconic-so --stack erc20 deploy-system down

Contributing

See the CONTRIBUTING.md for developer mode install.

Platform Support

Native aarm64 is not currently supported. x64 emulation on ARM64 macos should work (not yet tested).