git.delta.rocks / unique-network / refs/commits / a4cc0ef96159

difftreelog

feat baedeker helper scripts

Yaroslav Bolyukin2023-09-06parent: #ec8104e.patch.diff
in: master

10 files changed

added.baedeker/.gitignorediffbeforeafterboth
--- /dev/null
+++ b/.baedeker/.gitignore
@@ -0,0 +1,4 @@
+/.bdk-env
+/rewrites.jsonnet
+/vendor
+/baedeker-library
added.baedeker/down.shdiffbeforeafterboth
--- /dev/null
+++ b/.baedeker/down.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -e
+BDK_DIR=$(dirname $(readlink -f "$0"))
+cd $BDK_DIR/.bdk-env
+docker compose down -v --remove-orphans
+rm -rf discover.env secret specs
added.baedeker/rewrites.example.jsonnetdiffbeforeafterboth
--- /dev/null
+++ b/.baedeker/rewrites.example.jsonnet
@@ -0,0 +1,17 @@
+local dotenv = {
+    [std.splitLimit(line, "=", 2)[0]]: std.splitLimit(line, "=", 2)[1]
+    for line in std.split(importstr "../.env", "\n")
+    if line != ""
+    if std.member(line, "=")
+};
+
+function(prev, repoDir)
+(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({
+	'bin/unique':'%s/target/release/unique-collator' % repoDir,
+	'bin/polkadot':{dockerImage:'uniquenetwork/builder-polkadot:%s' % dotenv.POLKADOT_MAINNET_BRANCH},
+	'bin/acala':{dockerImage:'uniquenetwork/builder-acala:%s' % dotenv.ACALA_BUILD_BRANCH},
+	'bin/moonbeam':{dockerImage:'uniquenetwork/builder-moonbeam:%s' % dotenv.MOONBEAM_BUILD_BRANCH},
+	'bin/cumulus':{dockerImage:'uniquenetwork/builder-cumulus:%s' % dotenv.STATEMINE_BUILD_BRANCH},
+	'bin/astar':{dockerImage:'uniquenetwork/builder-astar:%s' % dotenv.ASTAR_BUILD_BRANCH},
+	'bin/polkadex':{dockerImage:'uniquenetwork/builder-polkadex:%s' % dotenv.POLKADEX_BUILD_BRANCH},
+})(prev)
added.baedeker/up.shdiffbeforeafterboth
--- /dev/null
+++ b/.baedeker/up.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -e
+BDK_DIR=$(dirname $(readlink -f "$0"))
+RUST_LOG=info baedeker --spec=docker -J$BDK_DIR --generator=docker_compose=$BDK_DIR/.bdk-env --generator=docker_compose_discover=$BDK_DIR/.bdk-env/discover.env --secret=file=$BDK_DIR/.bdk-env/secret  --tla-str=relay_spec=rococo-local --input-modules='lib:baedeker-library/ops/nginx.libsonnet' --input-modules='lib:baedeker-library/ops/devtools.libsonnet' $@ $BDK_DIR/rewrites.jsonnet
+cd $BDK_DIR/.bdk-env
+docker compose up -d --wait --remove-orphans
added.envrcdiffbeforeafterboth
--- /dev/null
+++ b/.envrc
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Load .envrc from parent directories
+source_up_if_exists
+# Common variables from .env
+dotenv
+
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+RESET='\033[0m'
+
+dep_not_found=false
+function check_bdk {
+    if ! has $1; then
+        echo -e "${RED}$1 not found (wanted for beadeker discovery)${RESET}"
+        dep_not_found=true
+    fi
+}
+
+watch_file .baedeker/.bdk-env/discover.env
+if test -f .baedeker/.bdk-env/discover.env; then
+    check_bdk baedeker
+    check_bdk docker
+    check_bdk jq
+    if $dep_not_found; then
+        echo -e "${RED}Not performing bdk discovery${RESET}"
+        exit 0
+    fi
+
+    echo -e "${GREEN}Baedeker env updated${RESET}"
+    nginx_id=$(docker compose -f $PWD/.bdk-env/docker-compose.yml ps --format=json | jq -r '.[] | select(.Service == "nginx") | .ID' -e)
+    if ! [ $? -eq 0 ]; then
+        echo -e "${RED}Nginx container not found${RESET}"
+        exit 0
+    fi
+    nginx_ip=$(docker inspect $nginx_id | jq -r -e '.[0].NetworkSettings.Networks[].IPAddress')
+    if ! [ $? -eq 0 ]; then
+        echo -e "${RED}Nginx container network misconfigured?${RESET}"
+        exit 0
+    fi
+    tmpenv=$(mktemp)
+    cat .baedeker/.bdk-env/discover.env | sed "s|BALANCER_URL|$nginx_ip|g" > $tmpenv
+    dotenv $tmpenv
+    echo -e "${GREEN}Enjoy your baedeker networks at $(echo $BDK_BALANCER || sed "s|BALANCER_URL|$nginx_ip|g")${RESET}"
+fi
deletedlaunch-config-full.jsondiffbeforeafterboth
--- a/launch-config-full.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
-    "relaychain": {
-        "bin": "../polkadot/target/release/polkadot",
-        "chain": "westend-local",
-        "nodes": [
-            {
-                "name": "alice",
-                "rpcPort": 9844,
-                "port": 30444,
-                "flags": [
-                    "-lparachain::candidate_validation=debug",
-                    "-lxcm=trace"
-                ]
-            },
-            {
-                "name": "bob",
-                "rpcPort": 9855,
-                "port": 30555,
-                "flags": [
-                    "-lparachain::candidate_validation=debug",
-                    "-lxcm=trace"
-                ]
-            },
-            {
-                "name": "charlie",
-                "rpcPort": 9866,
-                "port": 30666,
-                "flags": [
-                    "-lparachain::candidate_validation=debug"
-                ]
-            },
-            {
-                "name": "dave",
-                "rpcPort": 9877,
-                "port": 30777,
-                "flags": [
-                    "-lparachain::candidate_validation=debug"
-                ]
-            },
-            {
-                "name": "eve",
-                "rpcPort": 9888,
-                "port": 30888,
-                "flags": [
-                    "-lparachain::candidate_validation=debug"
-                ]
-            }
-        ],
-        "genesis": {
-            "runtime": {
-                "runtime_genesis_config": {
-                    "parachainsConfiguration": {
-                        "config": {
-                            "validation_upgrade_frequency": 1,
-                            "validation_upgrade_delay": 1
-                        }
-                    }
-                }
-            }
-        }
-    },
-    "parachains": [
-        {
-            "bin": "../unique-chain/target/release/unique-collator",
-            "id": "1000",
-            "balance": "1000000000000000000000000",
-            "nodes": [
-                {
-                    "port": 31200,
-                    "rpcPort": 9944,
-                    "name": "alice",
-                    "flags": [
-                        "--rpc-cors=all",
-                        "--unsafe-rpc-external",
-                        "-lxcm=trace"
-                    ]
-                },
-                {
-                    "port": 31201,
-                    "rpcPort": 9945,
-                    "name": "bob",
-                    "flags": [
-                        "--rpc-cors=all",
-                        "--unsafe-rpc-external",
-                        "-lxcm=trace"
-                    ]
-                }
-            ]
-        },
-        {
-            "bin": "../Acala/target/release/acala",
-            "id": "2000",
-            "chain":  "karura-dev",
-			"balance": "1000000000000000000000",
-			"nodes": [
-				{
-					"rpcPort": 9946,
-					"port": 31202,
-					"name": "alice",
-                    "flags": [
-                        "--rpc-cors=all",
-                        "--unsafe-rpc-external",
-                        "-lxcm=trace"
-                    ]
-				}
-			]
-		}
-    ],
-    "simpleParachains": [],
-    "hrmpChannels": [
-        {
-            "sender": 2000,
-            "recipient": 1000,
-            "maxCapacity": 8,
-            "maxMessageSize": 512
-        },
-        {
-            "sender": 1000,
-            "recipient": 2000,
-            "maxCapacity": 8,
-            "maxMessageSize": 512
-        }
-    ],
-    "finalization": false
-}
deletedlaunch-config.jsondiffbeforeafterboth
before · launch-config.json
1{2    "relaychain": {3        "bin": "../polkadot/target/release/polkadot",4        "chain": "rococo-local",5        "nodes": [6            {7                "name": "alice",8                "rpcPort": 9844,9                "port": 30444,10                "flags": [11                    "-lxcm=trace",12                    "-ltrace",13                    "-lnetlink_proto=info",14                    "-lnetlink_sys=info",15                    "-lwasmtime_cranelift=info",16                    "-ltrie-cache=info",17                    "-lwasm-heap=info",18                    "-lmultistream_select=warn",19                    "-llibp2p_swarm=warn",20                    "-llibp2p_ping=warn",21                    "-llibp2p_noise=warn",22                    "-lwasm_overrides=warn",23                    "-lsc_allocator=warn",24                    "-ljsonrpsee_core=warn",25                    "-lsoketto=warn",26                    "-lrpc_metrics=warn",27                    "-lsubstrate=warn",28                    "-ltrie=debug",29                    "--rpc-cors=all",30                    "--unsafe-rpc-external"31                ]32            },33            {34                "name": "bob",35                "rpcPort": 9855,36                "port": 30555,37                "flags": [38                    "-lparachain::candidate_validation=debug",39                    "-lxcm=trace",40                    "--rpc-cors=all",41                    "--unsafe-rpc-external"42                ]43            },44            {45                "name": "charlie",46                "rpcPort": 9866,47                "port": 30666,48                "flags": [49                    "-lparachain::candidate_validation=debug",50                    "-lxcm=trace",51                    "--rpc-cors=all",52                    "--unsafe-rpc-external"53                ]54            },55            {56                "name": "dave",57                "rpcPort": 9877,58                "port": 30777,59                "flags": [60                    "-lparachain::candidate_validation=debug",61                    "-lxcm=trace",62                    "--rpc-cors=all",63                    "--unsafe-rpc-external"64                ]65            },66            {67                "name": "eve",68                "rpcPort": 9888,69                "port": 30888,70                "flags": [71                    "-lparachain::candidate_validation=debug",72                    "-lxcm=trace",73                    "--rpc-cors=all",74                    "--unsafe-rpc-external"75                ]76            }77        ],78        "genesis": {79            "runtime": {80                "runtime_genesis_config": {81                    "parachainsConfiguration": {82                        "config": {83                            "validation_upgrade_frequency": 1,84                            "validation_upgrade_delay": 185                        }86                    }87                }88            }89        }90    },91    "parachains": [92        {93            "bin": "../unique-chain/target/release/unique-collator",94            "id": 1000,95            "balance": "1000000000000000000000000",96            "nodes": [97                {98                    "port": 31200,99                    "rpcPort": 9944,100                    "name": "alice",101                    "flags": [102                        "--rpc-cors=all",103                        "--unsafe-rpc-external",104                        "-lxcm=trace",105                        "-lruntime=debug"106                    ]107                },108                {109                    "port": 31201,110                    "rpcPort": 9945,111                    "name": "bob",112                    "flags": [113                        "--rpc-cors=all",114                        "--unsafe-rpc-external",115                        "-lxcm=trace"116                    ]117                },118                {119                    "port": 31202,120                    "rpcPort": 9946,121                    "name": "charlie",122                    "flags": [123                        "--rpc-cors=all",124                        "--unsafe-rpc-external",125                        "-lxcm=trace"126                    ]127                },128                {129                    "port": 31203,130                    "rpcPort": 9947,131                    "name": "dave",132                    "flags": [133                        "--rpc-cors=all",134                        "--unsafe-rpc-external",135                        "-lxcm=trace"136                    ]137                },138                {139                    "port": 31204,140                    "rpcPort": 9948,141                    "name": "eve",142                    "flags": [143                        "--rpc-cors=all",144                        "--unsafe-rpc-external",145                        "-lxcm=trace"146                    ]147                }148            ]149        }150    ],151    "simpleParachains": [],152    "hrmpChannels": [],153    "finalization": false154}
deletedlaunch-testnet-full.shdiffbeforeafterboth
--- a/launch-testnet-full.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-cp launch-config-full.json ../polkadot-launch/launch-config-full.json
-
-cd ../polkadot-launch
-yarn install
-yarn build
-yarn start launch-config-full.json
deletedlaunch-testnet.shdiffbeforeafterboth
--- a/launch-testnet.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-cp launch-config.json ../polkadot-launch/launch-config.json
-
-cd ../polkadot-launch
-yarn install
-yarn build
-yarn start launch-config.json
deletedlaunch-zombienet.tomldiffbeforeafterboth
--- a/launch-zombienet.toml
+++ /dev/null
@@ -1,40 +0,0 @@
-# To launch this zombienet out-of-the-box, run `yarn frankenstein` in the `tests` folder.
-
-[settings]
-provider = "native"
-
-[relaychain]
-# RELAY_DIR is an environment variable. If you're launching ZN from the repository's root, you should likely specify it as ../polkadot/
-default_command = "{{RELAY_DIR}}target/release/polkadot"
-default_args = [ "-lparachain::candidate_validation=debug", "-lxcm=trace", ]
-chain = "rococo-local"
-
-  [[relaychain.nodes]]
-  name = "relay-alice"
-  rpc_port = 9844
-  p2p_port = 30444
-  # Zombienet does not grant the default balance to nodes created with [[nodes]].
-  balance = 2000000000000
-
-  [[relaychain.node_groups]]
-  name = "relay"
-  count = 4
-
-[[parachains]]
-id = 1000
-
-  [[parachains.collators]]
-  name = "alice"
-  # PARA_DIR is an environment variable. If you're launching ZN from the repository's root, you should likely specify it as ./
-  command = "{{PARA_DIR}}target/release/unique-collator"
-  rpc_port = 9944
-  p2p_port = 31200
-  args = [ "-lxcm=trace", ]
-
-  [[parachains.collators]]
-  name = "bob"
-  # PARA_DIR is an environment variable. If you're launching ZN from the repository's root, you should likely specify it as ./
-  command = "{{PARA_DIR}}target/release/unique-collator"
-  rpc_port = 9945
-  p2p_port = 31201
-  args = [ "-lxcm=trace", ]