difftreelog
feat baedeker helper scripts
in: master
10 files changed
.baedeker/.gitignorediffbeforeafterboth--- /dev/null
+++ b/.baedeker/.gitignore
@@ -0,0 +1,4 @@
+/.bdk-env
+/rewrites.jsonnet
+/vendor
+/baedeker-library
.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
.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)
.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
.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
launch-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
-}
launch-config.jsondiffbeforeafterboth1{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}launch-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
launch-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
launch-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", ]