From 1f017c90664a1fd086b053d874e1f40a016a5641 Mon Sep 17 00:00:00 2001 From: zramsay Date: Fri, 12 Jul 2024 19:01:35 +0000 Subject: [PATCH 1/6] increase CERC_MAX_GENERATE_TIME for webapps (#857) sort of addresses #856 Co-authored-by: zramsay Co-authored-by: David Boreham Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/857 Co-authored-by: zramsay Co-committed-by: zramsay --- .../cerc-nextjs-base/scripts/start-serving-app.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stack_orchestrator/data/container-build/cerc-nextjs-base/scripts/start-serving-app.sh b/stack_orchestrator/data/container-build/cerc-nextjs-base/scripts/start-serving-app.sh index 54cdf237..03457574 100755 --- a/stack_orchestrator/data/container-build/cerc-nextjs-base/scripts/start-serving-app.sh +++ b/stack_orchestrator/data/container-build/cerc-nextjs-base/scripts/start-serving-app.sh @@ -5,7 +5,7 @@ fi SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -CERC_MAX_GENERATE_TIME=${CERC_MAX_GENERATE_TIME:-60} +CERC_MAX_GENERATE_TIME=${CERC_MAX_GENERATE_TIME:-120} tpid="" ctrl_c() { From 13d04e925696b5f02ef31c757fe7711938c80c94 Mon Sep 17 00:00:00 2001 From: David Boreham Date: Sat, 13 Jul 2024 14:24:23 +0000 Subject: [PATCH 2/6] Integrate ping-pub explorer (#872) Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/872 --- .../docker-compose-laconic-explorer.yml | 10 +++++ .../cerc-laconic-console-host/build.sh | 2 +- .../container-build/cerc-ping-pub/Dockerfile | 9 +++++ .../cerc-ping-pub/Dockerfile.base | 8 ++++ .../container-build/cerc-ping-pub/build.sh | 5 ++- .../config/laconic-chaindata-template.json | 22 +++++++++++ .../scripts/start-serving-explorer.sh | 12 ++++++ .../scripts/update-explorer-config.sh | 39 +++++++++++++++++++ .../scripts/apply-runtime-env.sh | 2 + .../data/stacks/mainnet-laconic/stack.yml | 20 +++++----- 10 files changed, 118 insertions(+), 11 deletions(-) create mode 100644 stack_orchestrator/data/compose/docker-compose-laconic-explorer.yml create mode 100644 stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile create mode 100644 stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile.base create mode 100644 stack_orchestrator/data/container-build/cerc-ping-pub/config/laconic-chaindata-template.json create mode 100755 stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh create mode 100755 stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh diff --git a/stack_orchestrator/data/compose/docker-compose-laconic-explorer.yml b/stack_orchestrator/data/compose/docker-compose-laconic-explorer.yml new file mode 100644 index 00000000..ad3e7a8a --- /dev/null +++ b/stack_orchestrator/data/compose/docker-compose-laconic-explorer.yml @@ -0,0 +1,10 @@ +services: + laconic-explorer: + restart: unless-stopped + image: cerc/ping-pub:local + environment: + - LACONIC_LACONICD_API_URL=${LACONIC_LACONICD_API_URL:-http://localhost:1317} + - LACONIC_LACONICD_RPC_URL=${LACONIC_LACONICD_RPC_URL:-http://localhost:26657} + - LACONIC_LACONICD_CHAIN_ID=${LACONIC_LACONICD_CHAIN_ID:-chain-id-not-set} + ports: + - "5173" diff --git a/stack_orchestrator/data/container-build/cerc-laconic-console-host/build.sh b/stack_orchestrator/data/container-build/cerc-laconic-console-host/build.sh index 77a38917..4c015a4f 100755 --- a/stack_orchestrator/data/container-build/cerc-laconic-console-host/build.sh +++ b/stack_orchestrator/data/container-build/cerc-laconic-console-host/build.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Build cerc/laconic-registry-cli +# Build cerc/laconic-console-host source ${CERC_CONTAINER_BASE_DIR}/build-base.sh diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile new file mode 100644 index 00000000..1282a04d --- /dev/null +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile @@ -0,0 +1,9 @@ +FROM cerc/ping-pub-base:local + +COPY ./scripts/update-explorer-config.sh /scripts +COPY ./config/laconic-chaindata-template.json /config/chains/mainnet/laconic-chaindata-template.json + +EXPOSE 5173 + +WORKDIR /app +CMD ["/scripts/start-serving-explorer.sh"] diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile.base b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile.base new file mode 100644 index 00000000..62572c47 --- /dev/null +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile.base @@ -0,0 +1,8 @@ +FROM cerc/webapp-base:local + +WORKDIR /app + +COPY . . + +RUN yarn + diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/build.sh b/stack_orchestrator/data/container-build/cerc-ping-pub/build.sh index 391525dd..5e85f5b8 100755 --- a/stack_orchestrator/data/container-build/cerc-ping-pub/build.sh +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/build.sh @@ -1,5 +1,8 @@ #!/usr/bin/env bash # Build the ping pub image source ${CERC_CONTAINER_BASE_DIR}/build-base.sh +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -docker build -t cerc/ping-pub:local ${build_command_args} -f $CERC_REPO_BASE_DIR/explorer/Dockerfile $CERC_REPO_BASE_DIR/explorer +# Two-stage build is to allow us to pick up both the upstream repo's files, and local files here for config +docker build -t cerc/ping-pub-base:local ${build_command_args} -f $SCRIPT_DIR/Dockerfile.base $CERC_REPO_BASE_DIR/explorer +docker build -t cerc/ping-pub:local ${build_command_args} -f $SCRIPT_DIR/Dockerfile $SCRIPT_DIR diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/config/laconic-chaindata-template.json b/stack_orchestrator/data/container-build/cerc-ping-pub/config/laconic-chaindata-template.json new file mode 100644 index 00000000..282a61aa --- /dev/null +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/config/laconic-chaindata-template.json @@ -0,0 +1,22 @@ +{ + "chain_name": "LACONIC_LACONICD_CHAIN_ID", + "registry_name": "LACONIC_LACONICD_CHAIN_ID", + "api": [ + {"provider": "LX-one-tree-one-seven", "address": "LACONIC_LACONICD_API_URL"} + ], + "rpc": [ + {"provider": "LX-tendermint-rpc", "address": "LACONIC_LACONICD_RPC_URL"} + ], + "sdk_version": "0.45.1", + "coin_type": "118", + "min_tx_fee": "800", + "addr_prefix": "ethm", + "logo": "/logos/cosmos.svg", + "assets": [{ + "base": "aphoton", + "symbol": "LNT", + "exponent": "6", + "coingecko_id": "cosmos", + "logo": "/logos/cosmos.svg" + }] +} diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh new file mode 100755 index 00000000..37ff98b4 --- /dev/null +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -e +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + set -x +fi + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +${SCRIPT_DIR}/update-explorer-config.sh + +echo "Starting serving explorer" +yarn serve --host diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh new file mode 100755 index 00000000..d940ba2f --- /dev/null +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -e +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + set -x +fi + +# Verify that we have the config variables we need +if [[ -z ${LACONIC_LACONICD_API_URL} ]]; then + echo "Error: LACONIC_LACONICD_API_URL not defined" + exit 1 +fi +if [[ -z ${LACONIC_LACONICD_RPC_URL} ]]; then + echo "Error: LACONIC_LACONICD_RPC_URL not defined" + exit 1 +fi +if [[ -z ${LACONIC_LACONICD_CHAIN_ID} ]]; then + echo "Error: LACONIC_LACONICD_CHAIN_ID not defined" + exit 1 +fi + +explorer_config_dir=/app/chains/mainnet +config_template_file=/config/chains/mainnet/laconic-chaindata-template.json +config_file=${explorer_config_dir}/laconic-chaindata.json + +# Delete the stock config files +rm -f ${explorer_config_dir}/* + +# Copy in our template file +cp ${config_template_file} ${config_file} + +# Update the file with the config variables +sed -i "s#LACONIC_LACONICD_API_URL#${LACONIC_LACONICD_API_URL}#g" ${config_file} +sed -i "s#LACONIC_LACONICD_RPC_URL#${LACONIC_LACONICD_RPC_URL}#g" ${config_file} +sed -i "s#LACONIC_LACONICD_CHAIN_ID#${LACONIC_LACONICD_CHAIN_ID}#g" ${config_file} + +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + echo "Updated chaindata file:" + cat ${config_file} +fi diff --git a/stack_orchestrator/data/container-build/cerc-webapp-base/scripts/apply-runtime-env.sh b/stack_orchestrator/data/container-build/cerc-webapp-base/scripts/apply-runtime-env.sh index 0e48303f..2ffb9a1a 100755 --- a/stack_orchestrator/data/container-build/cerc-webapp-base/scripts/apply-runtime-env.sh +++ b/stack_orchestrator/data/container-build/cerc-webapp-base/scripts/apply-runtime-env.sh @@ -4,6 +4,8 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi +# TODO: document what this script does + WORK_DIR="${1:-./}" cd "${WORK_DIR}" || exit 1 diff --git a/stack_orchestrator/data/stacks/mainnet-laconic/stack.yml b/stack_orchestrator/data/stacks/mainnet-laconic/stack.yml index e4e6781e..d0986891 100644 --- a/stack_orchestrator/data/stacks/mainnet-laconic/stack.yml +++ b/stack_orchestrator/data/stacks/mainnet-laconic/stack.yml @@ -2,14 +2,15 @@ version: "1.0" name: mainnet-laconic description: "Mainnet laconic node" repos: - - cerc-io/laconicd - - lirewine/debug - - lirewine/crypto - - lirewine/gem - - lirewine/sdk - - cerc-io/laconic-sdk - - cerc-io/laconic-registry-cli - - cerc-io/laconic-console + - git.vdb.to/cerc-io/laconicd + - github.com/lirewine/debug + - github.com/lirewine/crypto + - github.com/lirewine/gem + - github.com/lirewine/sdk + - git.vdb.to/cerc-io/laconic-sdk + - git.vdb.to/cerc-io/laconic-registry-cli + - git.vdb.to/cerc-io/laconic-console + - github.com/ping-pub/explorer npms: - laconic-sdk - laconic-registry-cli @@ -23,7 +24,8 @@ containers: - cerc/laconic-registry-cli - cerc/webapp-base - cerc/laconic-console-host + - cerc/ping-pub pods: - mainnet-laconicd - fixturenet-laconic-console - + - laconic-explorer From 2bad59dfcdea4e0ab1af92d47c8b036342184868 Mon Sep 17 00:00:00 2001 From: David Boreham Date: Sun, 14 Jul 2024 17:40:35 +0000 Subject: [PATCH 3/6] Add missing file to explorer container (#873) Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/873 Co-authored-by: David Boreham Co-committed-by: David Boreham --- .../data/container-build/cerc-ping-pub/Dockerfile | 1 + .../cerc-ping-pub/scripts/update-explorer-config.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile index 1282a04d..5cbbc3a4 100644 --- a/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile @@ -1,6 +1,7 @@ FROM cerc/ping-pub-base:local COPY ./scripts/update-explorer-config.sh /scripts +COPY ./scripts/start-serving-explorer.sh /scripts COPY ./config/laconic-chaindata-template.json /config/chains/mainnet/laconic-chaindata-template.json EXPOSE 5173 diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh index d940ba2f..6128092b 100755 --- a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh @@ -20,7 +20,7 @@ fi explorer_config_dir=/app/chains/mainnet config_template_file=/config/chains/mainnet/laconic-chaindata-template.json -config_file=${explorer_config_dir}/laconic-chaindata.json +config_file=${explorer_config_dir}/laconic.json # Delete the stock config files rm -f ${explorer_config_dir}/* From 7fb9ccdfd80ba2c4b84937a6d4bd6692efe2c635 Mon Sep 17 00:00:00 2001 From: David Boreham Date: Sun, 14 Jul 2024 20:51:11 -0600 Subject: [PATCH 4/6] Work around explorer host name sensitivity --- .../container-build/cerc-ping-pub/Dockerfile | 2 +- .../scripts/update-explorer-config.sh | 31 +++++++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile index 5cbbc3a4..d5ee238e 100644 --- a/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/Dockerfile @@ -2,7 +2,7 @@ FROM cerc/ping-pub-base:local COPY ./scripts/update-explorer-config.sh /scripts COPY ./scripts/start-serving-explorer.sh /scripts -COPY ./config/laconic-chaindata-template.json /config/chains/mainnet/laconic-chaindata-template.json +COPY ./config/laconic-chaindata-template.json /config/chains/laconic-chaindata-template.json EXPOSE 5173 diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh index 6128092b..812fa5bd 100755 --- a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/update-explorer-config.sh @@ -18,22 +18,35 @@ if [[ -z ${LACONIC_LACONICD_CHAIN_ID} ]]; then exit 1 fi -explorer_config_dir=/app/chains/mainnet -config_template_file=/config/chains/mainnet/laconic-chaindata-template.json -config_file=${explorer_config_dir}/laconic.json +# Ping-pub explorer has endlessly confusing behavior where it +# infers the directory from which to load chain configuration files +# by the presence or absense of the substring "testnet" in the host name +# (browser side -- the host name of the host in the address bar of the browser) +# Accordingly we configure our network in both directories in order to +# subvert this lunacy. +explorer_mainnet_config_dir=/app/chains/mainnet +explorer_testnet_config_dir=/app/chains/testnet +config_template_file=/config/chains/laconic-chaindata-template.json +chain_config_name=laconic.json +mainnet_config_file=${explorer_mainnet_config_dir}/${chain_config_name} +testnet_config_file=${explorer_testnet_config_dir}/${chain_config_name} # Delete the stock config files -rm -f ${explorer_config_dir}/* +rm -f ${explorer_testnet_config_dir}/* +rm -f ${explorer_mainnet_config_dir}/* # Copy in our template file -cp ${config_template_file} ${config_file} +cp ${config_template_file} ${mainnet_config_file} # Update the file with the config variables -sed -i "s#LACONIC_LACONICD_API_URL#${LACONIC_LACONICD_API_URL}#g" ${config_file} -sed -i "s#LACONIC_LACONICD_RPC_URL#${LACONIC_LACONICD_RPC_URL}#g" ${config_file} -sed -i "s#LACONIC_LACONICD_CHAIN_ID#${LACONIC_LACONICD_CHAIN_ID}#g" ${config_file} +sed -i "s#LACONIC_LACONICD_API_URL#${LACONIC_LACONICD_API_URL}#g" ${mainnet_config_file} +sed -i "s#LACONIC_LACONICD_RPC_URL#${LACONIC_LACONICD_RPC_URL}#g" ${mainnet_config_file} +sed -i "s#LACONIC_LACONICD_CHAIN_ID#${LACONIC_LACONICD_CHAIN_ID}#g" ${mainnet_config_file} if [ -n "$CERC_SCRIPT_DEBUG" ]; then echo "Updated chaindata file:" - cat ${config_file} + cat ${mainnet_config_file} fi + +# Copy over to the testnet directory +cp ${mainnet_config_file} ${testnet_config_file} From 83397bbae4e7932b18de7e774a6807c58e9c8334 Mon Sep 17 00:00:00 2001 From: David Boreham Date: Mon, 15 Jul 2024 05:23:18 +0000 Subject: [PATCH 5/6] Enable cors in laconicd http services (#875) Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/875 Co-authored-by: David Boreham Co-committed-by: David Boreham --- .../scripts/start-serving-explorer.sh | 3 +- .../stacks/mainnet-laconic/deploy/commands.py | 29 ++++++++++++++++++- tests/laconic-network/run-test.sh | 23 +++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh index 37ff98b4..5b22a110 100755 --- a/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh +++ b/stack_orchestrator/data/container-build/cerc-ping-pub/scripts/start-serving-explorer.sh @@ -9,4 +9,5 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) ${SCRIPT_DIR}/update-explorer-config.sh echo "Starting serving explorer" -yarn serve --host +# Force cache re-build because vite is dumb and can't be restarted otherwise +yarn serve --host --force diff --git a/stack_orchestrator/data/stacks/mainnet-laconic/deploy/commands.py b/stack_orchestrator/data/stacks/mainnet-laconic/deploy/commands.py index 337b72ab..13309ac3 100644 --- a/stack_orchestrator/data/stacks/mainnet-laconic/deploy/commands.py +++ b/stack_orchestrator/data/stacks/mainnet-laconic/deploy/commands.py @@ -115,13 +115,38 @@ def _insert_persistent_peers(config_dir: Path, new_persistent_peers: str): sys.exit(1) with open(config_file_path, "r") as input_file: config_file_content = input_file.read() - persistent_peers_pattern = '^persistent_peers = ""' + persistent_peers_pattern = r'^persistent_peers = ""' replace_with = f"persistent_peers = \"{new_persistent_peers}\"" config_file_content = re.sub(persistent_peers_pattern, replace_with, config_file_content, flags=re.MULTILINE) with open(config_file_path, "w") as output_file: output_file.write(config_file_content) +def _enable_cors(config_dir: Path): + config_file_path = config_dir.joinpath("config.toml") + if not config_file_path.exists(): + print("Error: config.toml not found") + sys.exit(1) + with open(config_file_path, "r") as input_file: + config_file_content = input_file.read() + cors_pattern = r'^cors_allowed_origins = \[]' + replace_with = 'cors_allowed_origins = ["*"]' + config_file_content = re.sub(cors_pattern, replace_with, config_file_content, flags=re.MULTILINE) + with open(config_file_path, "w") as output_file: + output_file.write(config_file_content) + app_file_path = config_dir.joinpath("app.toml") + if not app_file_path.exists(): + print("Error: app.toml not found") + sys.exit(1) + with open(app_file_path, "r") as input_file: + app_file_content = input_file.read() + cors_pattern = r'^enabled-unsafe-cors = false' + replace_with = "enabled-unsafe-cors = true" + app_file_content = re.sub(cors_pattern, replace_with, app_file_content, flags=re.MULTILINE) + with open(app_file_path, "w") as output_file: + output_file.write(app_file_content) + + def _phase_from_params(parameters): phase = SetupPhase.ILLEGAL if parameters.initialize_network: @@ -292,6 +317,8 @@ def create(deployment_context: DeploymentContext, extra_args): if extra_args[1]: initial_persistent_peers = extra_args[1] _insert_persistent_peers(deployment_config_dir, initial_persistent_peers) + # Enable CORS headers so explorers and so on can talk to the node + _enable_cors(deployment_config_dir) # Copy the data directory contents into our deployment # TODO: change this to work with non local paths deployment_data_dir = deployment_context.deployment_dir.joinpath("data", "laconicd-data") diff --git a/tests/laconic-network/run-test.sh b/tests/laconic-network/run-test.sh index 0ee5cb0e..019121a1 100755 --- a/tests/laconic-network/run-test.sh +++ b/tests/laconic-network/run-test.sh @@ -18,6 +18,20 @@ do rm -rf ${node_network_dir} fi done +echo "Deleting any existing deployments..." +for (( i=1 ; i<=$node_count ; i++ )); +do + node_deployment_dir=${node_dir_prefix}${i}-deployment + node_spec_file=${node_dir_prefix}${i}-spec.yml + if [[ -d $node_deployment_dir ]]; then + echo "Deleting ${node_deployment_dir}" + rm -rf ${node_deployment_dir} + fi + if [[ -f $node_spec_file ]]; then + echo "Deleting ${node_spec_file}" + rm ${node_spec_file} + fi +done echo "Initalizing ${node_count} nodes networks..." for (( i=1 ; i<=$node_count ; i++ )); @@ -56,3 +70,12 @@ do node_network_dir=${node_dir_prefix}${i} laconic-so --stack mainnet-laconic deploy setup --network-dir ${node_network_dir} --create-network --genesis-file ${genesis_file} done + +# Create deployments +echo "Creating ${node_count} deployments..." +for (( i=1 ; i<=$node_count ; i++ )); +do + node_network_dir=${node_dir_prefix}${i} + laconic-so --stack mainnet-laconic deploy init --output ${node_network_dir}-spec.yml + laconic-so --stack mainnet-laconic deploy create --deployment-dir ${node_network_dir}-deployment --spec-file ${node_dir_prefix}${i}-spec.yml --network-dir ${node_network_dir} +done From ed837e4a3c077bd42044f5f253db7db97ad0d2a7 Mon Sep 17 00:00:00 2001 From: Budalebah <113329223+Budalebah@users.noreply.github.com> Date: Thu, 18 Jul 2024 22:23:16 +0300 Subject: [PATCH 6/6] fixing pathways fixing pathways of pr's --- docs/adding-a-new-stack.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adding-a-new-stack.md b/docs/adding-a-new-stack.md index 1e42420e..5f00db7d 100644 --- a/docs/adding-a-new-stack.md +++ b/docs/adding-a-new-stack.md @@ -1,6 +1,6 @@ # Adding a new stack -See [this PR](https://git.vdb.to/cerc-io/stack-orchestrator/pull/434) for an example of how to currently add a minimal stack to stack orchestrator. The [reth stack](https://git.vdb.to/cerc-io/stack-orchestrator/pull/435) is another good example. +See [this PR](https://git.vdb.to/cerc-io/stack-orchestrator/pulls/434) for an example of how to currently add a minimal stack to stack orchestrator. The [reth stack](https://git.vdb.to/cerc-io/stack-orchestrator/pulls/434) is another good example. For external developers, we recommend forking this repo and adding your stack directly to your fork. This initially requires running in "developer mode" as described [here](/docs/CONTRIBUTING.md). Check out the [Namada stack](https://github.com/vknowable/stack-orchestrator/blob/main/app/data/stacks/public-namada/digitalocean_quickstart.md) from Knowable to see how that is done.