From a7ec2e314c7e6b758ffed1adfbcaa5eece2dc944 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Fri, 12 Jan 2024 00:35:35 +0700 Subject: [PATCH 01/15] feat: docker setup to run migaloo --- .gitignore | 3 +- Dockerfile | 12 ++++---- Makefile | 33 ++++++++++++++++++++++ docker-compose.yml | 70 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore index d64b583d..de70f44d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ mytestnet data screenlog.0 _build -.idea \ No newline at end of file +.idea +build \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6b3d5621..8f98c19f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,11 +14,13 @@ RUN apk add --no-cache ca-certificates build-base git WORKDIR /code COPY . /code/ -# See https://github.com/CosmWasm/wasmvm/releases -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.2.1/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.2.1/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a -RUN sha256sum /lib/libwasmvm_muslc.aarch64.a | grep 86bc5fdc0f01201481c36e17cd3dfed6e9650d22e1c5c8983a5b78c231789ee0 -RUN sha256sum /lib/libwasmvm_muslc.x86_64.a | grep a00700aa19f5bfe0f46290ddf69bf51eb03a6dfcd88b905e1081af2e42dbbafc +# See https://github.com/CosmWasm/wasmvm/releases +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.5.0/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.5.0/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a + +# TODO: add checksums later +# RUN sha256sum /lib/libwasmvm_muslc.aarch64.a | grep 86bc5fdc0f01201481c36e17cd3dfed6e9650d22e1c5c8983a5b78c231789ee0 +# RUN sha256sum /lib/libwasmvm_muslc.x86_64.a | grep a00700aa19f5bfe0f46290ddf69bf51eb03a6dfcd88b905e1081af2e42dbbafc # Copy the library you want to the final location that will be found by the linker flag `-lwasmvm_muslc` RUN cp "/lib/libwasmvm_muslc.$(uname -m).a" /lib/libwasmvm_muslc.a diff --git a/Makefile b/Makefile index bcf6f841..b7b800e8 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ APP_DIR = ./app BINDIR ?= ~/go/bin RUNSIM = $(BINDIR)/runsim BINARY ?= migalood +BUILD_DIR ?= $(CURDIR)/build ifeq (,$(VERSION)) VERSION := $(shell git describe --tags) @@ -26,6 +27,10 @@ HTTPS_GIT := https://github.com/White-Whale-Defi-Platform/migaloo-chain.git export GO111MODULE = on +TESTNET_NVAL := $(if $(TESTNET_NVAL),$(TESTNET_NVAL),3) +TESTNET_CHAINID := $(if $(TESTNET_CHAINID),$(TESTNET_CHAINID),localmigaloo) + + # process build tags build_tags = netgo @@ -240,3 +245,31 @@ proto-format: @echo "Formatting Protobuf files" @if docker ps -a --format '{{.Names}}' | grep -Eq "^${containerProtoFmt}$$"; then docker start -a $(containerProtoFmt); else docker run --name $(containerProtoFmt) -v $(CURDIR):/workspace --workdir /workspace tendermintdev/docker-build-proto \ find ./ -not -path "./third_party/*" -name "*.proto" -exec clang-format -i {} \; ; fi + + +############################################################################### +### Localnet ### +############################################################################### +build-image: + docker build -t migaloo:latest . + +build-linux: + mkdir -p $(BUILDDIR) + docker build --platform linux/amd64 --no-cache --tag migalood ./ + docker create --platform linux/amd64 --name temp migaloo:latest + docker cp temp:/usr/local/bin/migalood $(BUILDDIR)/ + docker rm temp + + +#TODO: check if the image is build and automate here + +## TODO: mount volume: build config -> mount to container +localnet-start: + $(DOCKER) run --platform linux/amd64 -v $(shell pwd)/build:/migalood migalood testnet init-files --chain-id ${TESTNET_CHAINID} --v ${TESTNET_NVAL} -o /migalood --starting-ip-address 192.168.10.2 --keyring-backend=test + + docker compose up -d + +localnet-stop: + docker-compose down + rm -rf build/node* + rm -rf build/gentxs \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..873a9a77 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,70 @@ +version: '3.8' + +services: + migaloo0: + platform: linux/amd64 + container_name: migaloo0 + image: migalood + restart: "no" + command: start + environment: + - ID=0 + - LOG=migalood.log + ports: + - "1317:1317" + - "9090:9090" + - "26656-26657:26656-26657" + volumes: + - ./build/node1/simd:/.migalood/.migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.2 + + # migaloo1: + # platform: linux/amd64 + # container_name: migaloo1 + # image: migalood + # restart: "no" + # command: start + # ports: + # - "1318:1317" + # - "9091:9090" + # - "26659-26660:26656-26657" + # environment: + # - ID=1 + # - LOG=migalood.log + # volumes: + # - ./build/node2/simd:/.migalood/.migalood:Z + # networks: + # localnet: + # ipv4_address: 192.168.10.3 + + # migaloo2: + # platform: linux/amd64 + # container_name: migaloo2 + # image: migalood + # restart: "no" + # command: start + # environment: + # - ID=2 + # - LOG=migalood.log + # ports: + # - "1319:1317" + # - "9092:9090" + # - "26661-26662:26656-26657" + # volumes: + # - ./build/node3/simd:/.migalood/.migalood:Z + # networks: + # localnet: + # ipv4_address: 192.168.10.4 + + + +networks: + localnet: + driver: bridge + ipam: + driver: default + config: + - + subnet: 192.168.10.0/24 From 2b5fed69b75f7a073e0f51fd82dce71942103720 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Sun, 14 Jan 2024 18:18:52 +0700 Subject: [PATCH 02/15] feat: docker file to build v3.0.4 --- Dockerfile | 2 +- Makefile | 16 ++++---- docker-compose.yml | 83 ++++++++++++++++++++++++++++-------------- migalood-v3/Dockerfile | 55 ++++++++++++++++++++++++++++ 4 files changed, 120 insertions(+), 36 deletions(-) create mode 100644 migalood-v3/Dockerfile diff --git a/Dockerfile b/Dockerfile index 8f98c19f..240d4701 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.19-alpine AS go-builder +FROM golang:1.21-alpine AS go-builder # this comes from standard alpine nightly file # https://github.com/rust-lang/docker-rust-nightly/blob/master/alpine3.12/Dockerfile diff --git a/Makefile b/Makefile index b7b800e8..b46b7000 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ HTTPS_GIT := https://github.com/White-Whale-Defi-Platform/migaloo-chain.git export GO111MODULE = on TESTNET_NVAL := $(if $(TESTNET_NVAL),$(TESTNET_NVAL),3) -TESTNET_CHAINID := $(if $(TESTNET_CHAINID),$(TESTNET_CHAINID),localmigaloo) +TESTNET_CHAINID := $(if $(TESTNET_CHAINID),$(TESTNET_CHAINID),migaloo-1) # process build tags @@ -251,7 +251,7 @@ proto-format: ### Localnet ### ############################################################################### build-image: - docker build -t migaloo:latest . + docker build -t migalood0:latest . build-linux: mkdir -p $(BUILDDIR) @@ -263,13 +263,15 @@ build-linux: #TODO: check if the image is build and automate here -## TODO: mount volume: build config -> mount to container -localnet-start: - $(DOCKER) run --platform linux/amd64 -v $(shell pwd)/build:/migalood migalood testnet init-files --chain-id ${TESTNET_CHAINID} --v ${TESTNET_NVAL} -o /migalood --starting-ip-address 192.168.10.2 --keyring-backend=test - docker compose up -d +## TODO: mount volume: build config -> mount to container +localnet-start: localnet-stop + @if ! [ -f build/node0/$(BINARY)/config/genesis.json ]; then docker run --rm -v $(CURDIR)/build:/migaloo:Z migalood testnet init-files --chain-id ${TESTNET_CHAINID} --v ${TESTNET_NVAL} -o /migaloo --keyring-backend=test --starting-ip-address 192.168.10.2; fi localnet-stop: docker-compose down rm -rf build/node* - rm -rf build/gentxs \ No newline at end of file + rm -rf build/gentxs. + +build-v3: + docker build -t migaloodv3 -f migalood-v3/Dockerfile . diff --git a/docker-compose.yml b/docker-compose.yml index 873a9a77..a77dcfd1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,11 +2,9 @@ version: '3.8' services: migaloo0: - platform: linux/amd64 container_name: migaloo0 image: migalood - restart: "no" - command: start + command: start --home /migalood environment: - ID=0 - LOG=migalood.log @@ -15,50 +13,79 @@ services: - "9090:9090" - "26656-26657:26656-26657" volumes: - - ./build/node1/simd:/.migalood/.migalood:Z + - ./build/node0/simd:/migalood:Z networks: localnet: ipv4_address: 192.168.10.2 - # migaloo1: - # platform: linux/amd64 - # container_name: migaloo1 + migaloo1: + container_name: migaloo1 + image: migalood + command: start --home /migalood + ports: + - "1318:1317" + - "9091:9090" + - "26659-26660:26656-26657" + environment: + - ID=1 + - LOG=migalood.log + volumes: + - ./build/node1/simd:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.3 + + migaloo2: + container_name: migaloo2 + image: migalood + command: start --home /migalood + environment: + - ID=2 + - LOG=migalood.log + ports: + - "1319:1317" + - "9092:9090" + - "26661-26662:26656-26657" + volumes: + - ./build/node2/simd:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.4 + + # migaloo3: + # container_name: migaloo3 # image: migalood - # restart: "no" - # command: start - # ports: - # - "1318:1317" - # - "9091:9090" - # - "26659-26660:26656-26657" + # command: start --home /migalood # environment: - # - ID=1 + # - ID=3 # - LOG=migalood.log + # ports: + # - "1320:1317" + # - "9093:9090" + # - "26663-26664:26656-26657" # volumes: - # - ./build/node2/simd:/.migalood/.migalood:Z + # - ./build/node3/simd:/migalood:Z # networks: # localnet: - # ipv4_address: 192.168.10.3 + # ipv4_address: 192.168.10.5 - # migaloo2: - # platform: linux/amd64 - # container_name: migaloo2 + # migaloo4: + # container_name: migaloo4 # image: migalood - # restart: "no" - # command: start + # command: start --home /migalood # environment: - # - ID=2 + # - ID=4 # - LOG=migalood.log # ports: - # - "1319:1317" - # - "9092:9090" - # - "26661-26662:26656-26657" + # - "1321:1317" + # - "9094:9090" + # - "26665-26666:26656-26657" # volumes: - # - ./build/node3/simd:/.migalood/.migalood:Z + # - ./build/node4/simd:/migalood:Z # networks: # localnet: - # ipv4_address: 192.168.10.4 + # ipv4_address: 192.168.10.6 - networks: localnet: diff --git a/migalood-v3/Dockerfile b/migalood-v3/Dockerfile new file mode 100644 index 00000000..58af1b0b --- /dev/null +++ b/migalood-v3/Dockerfile @@ -0,0 +1,55 @@ +# Start from a base image with Go installed +FROM golang:1.19-alpine AS builder + +# Install dependency for container +SHELL ["/bin/sh", "-ecuxo", "pipefail"] +RUN apk add --no-cache ca-certificates build-base git +RUN apk update && apk add unzip + +# Set the Current Working Directory inside the container +WORKDIR /code +ENV OLD_VERSION v3.0.4 +ENV ROOT /code + +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.2.6/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.2.6/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a + + +# Copy the library you want to the final location that will be found by the linker flag `-lwasmvm_muslc` +RUN cp "/lib/libwasmvm_muslc.$(uname -m).a" /lib/libwasmvm_muslc.a + +# Download and unzip the old version +RUN wget -c "https://github.com/White-Whale-Defi-Platform/migaloo-chain/archive/refs/tags/${OLD_VERSION}.zip" -O /code/${OLD_VERSION}.zip && \ + unzip /code/${OLD_VERSION}.zip -d /code + +# Install the binary file +RUN OLD_VERSION_SUBSTRING=`echo $OLD_VERSION | cut -c 2-` && \ + cd /code/migaloo-chain-$OLD_VERSION_SUBSTRING && \ + LEDGER_ENABLED=false BUILD_TAGS=muslc LINK_STATICALLY=true make build && \ + file /code/migaloo-chain-$OLD_VERSION_SUBSTRING/bin/migalood && \ + echo "Ensuring binary is statically linked ..." && \ + (file /code/migaloo-chain-$OLD_VERSION_SUBSTRING/bin/migalood | grep "statically linked") && \ + mkdir -p /code/bin && \ + cp /code/migaloo-chain-$OLD_VERSION_SUBSTRING/bin/migalood /code/bin + + +# Start a new stage from scratch +FROM alpine:3.16 +ENV HOME /.migalood +WORKDIR $HOME + + +# Copy the migalood binary from the builder stage to the final image +COPY --from=builder /code/bin/migalood /usr/bin/migalood + +# rest server +EXPOSE 1317 +# tendermint p2p +EXPOSE 26656 +# tendermint rpc +EXPOSE 26657 +#grpc +EXPOSE 9090 + +# Run the binary program +ENTRYPOINT ["migalood"] \ No newline at end of file From e40e63ae0f60b6152be2d91ae2ec54fa88ea622d Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Sun, 14 Jan 2024 21:25:07 +0700 Subject: [PATCH 03/15] refactor: move v3 code to migalood-env --- Makefile | 46 ++++++---- {migalood-v3 => migalood-env/v3}/Dockerfile | 0 migalood-env/v3/docker-compose.yml | 97 +++++++++++++++++++++ 3 files changed, 128 insertions(+), 15 deletions(-) rename {migalood-v3 => migalood-env/v3}/Dockerfile (100%) create mode 100644 migalood-env/v3/docker-compose.yml diff --git a/Makefile b/Makefile index b46b7000..7d19133d 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ APP_DIR = ./app BINDIR ?= ~/go/bin RUNSIM = $(BINDIR)/runsim BINARY ?= migalood -BUILD_DIR ?= $(CURDIR)/build +MIGALOO_ENV_V3 ?= $(CURDIR)/migalood-env/v3 ifeq (,$(VERSION)) VERSION := $(shell git describe --tags) @@ -248,30 +248,46 @@ proto-format: ############################################################################### -### Localnet ### +### V3 setup ### ############################################################################### -build-image: - docker build -t migalood0:latest . +build-v4: + docker build -t migalood:latest . -build-linux: - mkdir -p $(BUILDDIR) - docker build --platform linux/amd64 --no-cache --tag migalood ./ - docker create --platform linux/amd64 --name temp migaloo:latest - docker cp temp:/usr/local/bin/migalood $(BUILDDIR)/ - docker rm temp +build-v3: + docker build -t migaloodv3 -f migalood-v3/Dockerfile . +localnetv3-start: localnetv3-stop + @if ! [ -f $(MIGALOO_ENV_V3)/build/node0/migalood/config/genesis.json ]; then \ + docker run --rm \ + -v $(MIGALOO_ENV_V3)/build/:/migaloo:Z \ + migaloodv3 \ + testnet init-files \ + --chain-id ${TESTNET_CHAINID} \ + --v ${TESTNET_NVAL} \ + -o /migaloo \ + --keyring-backend=test \ + --starting-ip-address 192.168.10.2; \ + fi + + cd $(MIGALOO_ENV_V3) && docker-compose up -d + + +localnetv3-stop: + @cd $(MIGALOO_ENV_V3) + rm -rf build/node* + rm -rf build/gentxs. + docker-compose down -#TODO: check if the image is build and automate here -## TODO: mount volume: build config -> mount to container +############################################################################### +### Localnet ### +############################################################################### localnet-start: localnet-stop @if ! [ -f build/node0/$(BINARY)/config/genesis.json ]; then docker run --rm -v $(CURDIR)/build:/migaloo:Z migalood testnet init-files --chain-id ${TESTNET_CHAINID} --v ${TESTNET_NVAL} -o /migaloo --keyring-backend=test --starting-ip-address 192.168.10.2; fi + localnet-stop: docker-compose down rm -rf build/node* rm -rf build/gentxs. - -build-v3: - docker build -t migaloodv3 -f migalood-v3/Dockerfile . diff --git a/migalood-v3/Dockerfile b/migalood-env/v3/Dockerfile similarity index 100% rename from migalood-v3/Dockerfile rename to migalood-env/v3/Dockerfile diff --git a/migalood-env/v3/docker-compose.yml b/migalood-env/v3/docker-compose.yml new file mode 100644 index 00000000..66c5ba26 --- /dev/null +++ b/migalood-env/v3/docker-compose.yml @@ -0,0 +1,97 @@ +version: '3.8' + +services: + migaloo0: + container_name: migaloo0 + image: migaloodv3 + command: start --home /migalood + environment: + - ID=0 + - LOG=migalood.log + ports: + - "1317:1317" + - "9090:9090" + - "26656-26657:26656-26657" + volumes: + - ./build/node0/simd:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.2 + + migaloo1: + container_name: migaloo1 + image: migaloodv3 + command: start --home /migalood + ports: + - "1318:1317" + - "9091:9090" + - "26659-26660:26656-26657" + environment: + - ID=1 + - LOG=migalood.log + volumes: + - ./build/node1/simd:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.3 + + migaloo2: + container_name: migaloo2 + image: migaloodv3 + command: start --home /migalood + environment: + - ID=2 + - LOG=migalood.log + ports: + - "1319:1317" + - "9092:9090" + - "26661-26662:26656-26657" + volumes: + - ./build/node2/simd:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.4 + + # migaloo3: + # container_name: migaloo3 + # image: migaloodv3 + # command: start --home /migalood + # environment: + # - ID=3 + # - LOG=migalood.log + # ports: + # - "1320:1317" + # - "9093:9090" + # - "26663-26664:26656-26657" + # volumes: + # - ./build/node3/simd:/migalood:Z + # networks: + # localnet: + # ipv4_address: 192.168.10.5 + + # migaloo4: + # container_name: migaloo4 + # image: migaloodv3 + # command: start --home /migalood + # environment: + # - ID=4 + # - LOG=migalood.log + # ports: + # - "1321:1317" + # - "9094:9090" + # - "26665-26666:26656-26657" + # volumes: + # - ./build/node4/simd:/migalood:Z + # networks: + # localnet: + # ipv4_address: 192.168.10.6 + + +networks: + localnet: + driver: bridge + ipam: + driver: default + config: + - + subnet: 192.168.10.0/24 From aab804e558096b6b1e5be338fb90d9967c3b0727 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Sun, 14 Jan 2024 23:20:37 +0700 Subject: [PATCH 04/15] feat: build cosmovisor migalood env linux images --- Makefile | 16 +++++++++++- contrib/migalood-env/Dockerfile | 19 ++++++++++++++ contrib/migalood-env/Makefile | 6 +++++ contrib/migalood-env/cosmovisor-entrypoint.sh | 25 +++++++++++++++++++ contrib/updates/Dockerfile.cosmovisor | 8 ++++++ contrib/updates/Makefile | 10 ++++++++ {migalood-env => contrib}/v3/Dockerfile | 0 .../v3/docker-compose.yml | 0 8 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 contrib/migalood-env/Dockerfile create mode 100644 contrib/migalood-env/Makefile create mode 100755 contrib/migalood-env/cosmovisor-entrypoint.sh create mode 100644 contrib/updates/Dockerfile.cosmovisor create mode 100644 contrib/updates/Makefile rename {migalood-env => contrib}/v3/Dockerfile (100%) rename {migalood-env => contrib}/v3/docker-compose.yml (100%) diff --git a/Makefile b/Makefile index 7d19133d..127c47c9 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,9 @@ APP_DIR = ./app BINDIR ?= ~/go/bin RUNSIM = $(BINDIR)/runsim BINARY ?= migalood -MIGALOO_ENV_V3 ?= $(CURDIR)/migalood-env/v3 +MIGALOO_ENV_V3 ?= $(CURDIR)/contrib/v3 +BUILDDIR ?= $(CURDIR)/build + ifeq (,$(VERSION)) VERSION := $(shell git describe --tags) @@ -278,6 +280,9 @@ localnetv3-stop: rm -rf build/gentxs. docker-compose down +localnet-start-upgrade: + $(MAKE) -C contrib/updates build-cosmovisor-linux BUILDDIR=$(BUILDDIR) + ############################################################################### @@ -291,3 +296,12 @@ localnet-stop: docker-compose down rm -rf build/node* rm -rf build/gentxs. + +############################################################################### +### Upgrade ### +############################################################################### +build-cosmovisor-linux: + $(MAKE) -C contrib/updates build-cosmovisor-linux BUILDDIR=$(BUILDDIR) + +build-migalood-env: + $(MAKE) -C contrib/migalood-env migalood-upgrade-env diff --git a/contrib/migalood-env/Dockerfile b/contrib/migalood-env/Dockerfile new file mode 100644 index 00000000..83be4eb2 --- /dev/null +++ b/contrib/migalood-env/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:18.04 + +RUN apt-get update && \ + apt-get -y upgrade && \ + apt-get -y install curl jq file + +ARG UID=1000 +ARG GID=1000 +ARG entrypoint=entrypoint.sh + +USER ${UID}:${GID} +VOLUME /migalood +WORKDIR /migalood +EXPOSE 26656 26657 +ENTRYPOINT ["/usr/bin/entrypoint.sh"] +CMD ["start", "--log_format", "plain"] +STOPSIGNAL SIGTERM + +COPY ${entrypoint} /usr/bin/entrypoint.sh diff --git a/contrib/migalood-env/Makefile b/contrib/migalood-env/Makefile new file mode 100644 index 00000000..0377b717 --- /dev/null +++ b/contrib/migalood-env/Makefile @@ -0,0 +1,6 @@ +all: migalood-upgrade-env + +migalood-upgrade-env: + docker build --platform linux/amd64 --no-cache --build-arg UID=$(shell id -u) --build-arg GID=$(shell id -g) --build-arg entrypoint=cosmovisor-entrypoint.sh --tag migaloo/migalood-upgrade-env . + +.PHONY: all migalood-upgrade-env diff --git a/contrib/migalood-env/cosmovisor-entrypoint.sh b/contrib/migalood-env/cosmovisor-entrypoint.sh new file mode 100755 index 00000000..194c3092 --- /dev/null +++ b/contrib/migalood-env/cosmovisor-entrypoint.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env sh + +BINARY=/migalood/${BINARY:-cosmovisor} +ID=${ID:-0} +LOG=${LOG:-migalood.log} + +if ! [ -f "${BINARY}" ]; then + echo "The binary $(basename "${BINARY}") cannot be found. Please add the binary to the shared folder. Please use the BINARY environment variable if the name of the binary is not 'migalood'" + exit 1 +fi + +BINARY_CHECK="$(file "$BINARY" | grep 'ELF 64-bit LSB executable, x86-64')" + +if [ -z "${BINARY_CHECK}" ]; then + echo "Binary needs to be OS linux, ARCH amd64" + exit 1 +fi + +export MIGALOOD_HOME="/migalood/node${ID}/migalood" + +if [ -d "$(dirname "${MIGALOOD_HOME}"/"${LOG}")" ]; then + "${BINARY}" run "$@" --home "${MIGALOOD_HOME}" | tee "${MIGALOOD_HOME}/${LOG}" +else + "${BINARY}" run "$@" --home "${MIGALOOD_HOME}" +fi \ No newline at end of file diff --git a/contrib/updates/Dockerfile.cosmovisor b/contrib/updates/Dockerfile.cosmovisor new file mode 100644 index 00000000..6f7f2949 --- /dev/null +++ b/contrib/updates/Dockerfile.cosmovisor @@ -0,0 +1,8 @@ +FROM golang:1.20-alpine + +RUN set -eux; apk add --no-cache ca-certificates build-base; + +# make cosmovisor statically linked +RUN go install -ldflags '-w -s -linkmode=external -extldflags "-Wl,-z,muldefs -static"' -trimpath cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest + +ENTRYPOINT [ "/bin/sh" ] \ No newline at end of file diff --git a/contrib/updates/Makefile b/contrib/updates/Makefile new file mode 100644 index 00000000..9c731a02 --- /dev/null +++ b/contrib/updates/Makefile @@ -0,0 +1,10 @@ +all: build-cosmovisor-linux + +build-cosmovisor-linux: + mkdir -p $(BUILDDIR) + docker build --platform linux/amd64 --no-cache --tag migaloo/migaloo.cosmovisor-binary --file Dockerfile.cosmovisor . + docker create --platform linux/amd64 --name temp migaloo/migaloo.cosmovisor-binary:latest + docker cp temp:/go/bin/cosmovisor $(BUILDDIR)/ + docker rm temp + +.PHONY: all build-cosmovisor-linux \ No newline at end of file diff --git a/migalood-env/v3/Dockerfile b/contrib/v3/Dockerfile similarity index 100% rename from migalood-env/v3/Dockerfile rename to contrib/v3/Dockerfile diff --git a/migalood-env/v3/docker-compose.yml b/contrib/v3/docker-compose.yml similarity index 100% rename from migalood-env/v3/docker-compose.yml rename to contrib/v3/docker-compose.yml From 690e6b4c4d26f75f849609e3e22efeb9d8d2b233 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Mon, 15 Jan 2024 10:36:43 +0700 Subject: [PATCH 05/15] feat: build linux migalood --- Makefile | 14 ++++++++-- contrib/updates/prepare_cosmovisor.sh | 37 +++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100755 contrib/updates/prepare_cosmovisor.sh diff --git a/Makefile b/Makefile index 127c47c9..08f8121c 100644 --- a/Makefile +++ b/Makefile @@ -252,8 +252,14 @@ proto-format: ############################################################################### ### V3 setup ### ############################################################################### -build-v4: - docker build -t migalood:latest . +build-linux: + mkdir -p $(BUILDDIR) + docker build --platform linux/amd64 --tag migalood ./ + docker create --platform limux/amd64 --name temp migalood:latest + docker cp temp:/usr/bin/migalood $(BUILDDIR)/ + docker rm temp + + build-v3: docker build -t migaloodv3 -f migalood-v3/Dockerfile . @@ -305,3 +311,7 @@ build-cosmovisor-linux: build-migalood-env: $(MAKE) -C contrib/migalood-env migalood-upgrade-env + + +upgrade-test: + bash contrib/updates/prepare_cosmovisor.sh $(BUILDDIR) ${TESTNET_NVAL} ${TESTNET_CHAINID} \ No newline at end of file diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh new file mode 100755 index 00000000..b21cd3c8 --- /dev/null +++ b/contrib/updates/prepare_cosmovisor.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# this bash will prepare cosmosvisor to the build folder so that it can perform upgrade +# this script is supposed to be run by Makefile + +# These fields should be fetched automatically in the future +# Need to do more upgrade to see upgrade patterns +OLD_VERSION=v3.0.4 +# this command will retrieve the folder with the largest number in format v +SOFTWARE_UPGRADE_NAME=$(ls -d -- ./app/upgrades/v* | sort -Vr | head -n 1 | xargs basename) +BUILDDIR=$1 +TESTNET_NVAL=$2 +TESTNET_CHAINID=$3 + +# check if BUILDDIR is set +if [ -z "$BUILDDIR" ]; then + echo "BUILDDIR is not set" + exit 1 +fi + +# install old binary if not exist +if [ ! -f "_build/$OLD_VERSION.zip" ] &> /dev/null +then + mkdir -p _build/old + wget -c "https://github.com/White-Whale-Defi-Platform/migaloo-chain/archive/refs/tags/${OLD_VERSION}.zip" -O _build/${OLD_VERSION}.zip + unzip _build/${OLD_VERSION}.zip -d _build +fi + + +if [ ! -f "$BUILDDIR/$OLD_VERSION.zip" ] &> /dev/null +then + mkdir -p BUILDDIR/old + docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old . + docker create --platform linux/amd64 --name old-temp migaloo/migalood.binary.old:latest + docker cp old-temp:/usr/local/bin/migalood $BUILDDIR/old/ + docker rm old-temp +fi \ No newline at end of file From d752d0f81557a2439307b43549cbe7d29fbc7731 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Mon, 15 Jan 2024 14:33:11 +0700 Subject: [PATCH 06/15] feat: init genesis with cosmovisor --- Makefile | 3 +- contrib/updates/prepare_cosmovisor.sh | 58 ++++++++++++++++++++------- 2 files changed, 45 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 08f8121c..ea0c1e84 100644 --- a/Makefile +++ b/Makefile @@ -302,7 +302,6 @@ localnet-stop: docker-compose down rm -rf build/node* rm -rf build/gentxs. - ############################################################################### ### Upgrade ### ############################################################################### @@ -312,6 +311,6 @@ build-cosmovisor-linux: build-migalood-env: $(MAKE) -C contrib/migalood-env migalood-upgrade-env - +## Should contain: build-comovisor-linux -> build-linux -> build-migalood-env upgrade-test: bash contrib/updates/prepare_cosmovisor.sh $(BUILDDIR) ${TESTNET_NVAL} ${TESTNET_CHAINID} \ No newline at end of file diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh index b21cd3c8..4216dce9 100755 --- a/contrib/updates/prepare_cosmovisor.sh +++ b/contrib/updates/prepare_cosmovisor.sh @@ -18,20 +18,50 @@ if [ -z "$BUILDDIR" ]; then exit 1 fi -# install old binary if not exist -if [ ! -f "_build/$OLD_VERSION.zip" ] &> /dev/null -then - mkdir -p _build/old - wget -c "https://github.com/White-Whale-Defi-Platform/migaloo-chain/archive/refs/tags/${OLD_VERSION}.zip" -O _build/${OLD_VERSION}.zip - unzip _build/${OLD_VERSION}.zip -d _build +# # install old binary if not exist +# if [ ! -f "_build/$OLD_VERSION.zip" ] &> /dev/null +# then +# mkdir -p _build/old +# wget -c "https://github.com/White-Whale-Defi-Platform/migaloo-chain/archive/refs/tags/${OLD_VERSION}.zip" -O _build/${OLD_VERSION}.zip +# unzip _build/${OLD_VERSION}.zip -d _build +# fi + + +# if [ ! -f "$BUILDDIR/$OLD_VERSION.zip" ] &> /dev/null +# then +# mkdir -p BUILDDIR/old +# # docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old . +# docker create --platform linux/amd64 --name old-temp migaloo/migalood.binary.old:latest +# mkdir -p $BUILDDIR/old +# docker cp old-temp:/usr/bin/migalood $BUILDDIR/old/ +# docker rm old-temp +# fi + + +# prepare cosmovisor config in TESTNET_NVAL nodes +if [ ! -f "$BUILDDIR/node0/simd/config/genesis.json" ]; then docker run --rm \ + -v $BUILDDIR:/migalood:Z \ + --platform linux/amd64 \ + --entrypoint /migalood/old/migalood \ + migaloo/migalood-upgrade-env testnet init-files --v $TESTNET_NVAL --chain-id $TESTNET_CHAINID -o . --starting-ip-address 192.168.10.2 --keyring-backend=test --home=temp; \ fi -if [ ! -f "$BUILDDIR/$OLD_VERSION.zip" ] &> /dev/null -then - mkdir -p BUILDDIR/old - docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old . - docker create --platform linux/amd64 --name old-temp migaloo/migalood.binary.old:latest - docker cp old-temp:/usr/local/bin/migalood $BUILDDIR/old/ - docker rm old-temp -fi \ No newline at end of file +for (( i=0; i<$TESTNET_NVAL; i++ )); do + CURRENT=$BUILDDIR/node$i/simd + + # change gov params voting_period + jq '.app_state.gov.voting_params.voting_period = "50s"' $CURRENT/config/genesis.json > $CURRENT/config/genesis.json.tmp && mv $CURRENT/config/genesis.json.tmp $CURRENT/config/genesis.json + + docker run --rm \ + -v $BUILDDIR:/migalood:Z \ + -e DAEMON_HOME=/migalood/node$i/simd \ + -e DAEMON_NAME=migalood \ + -e DAEMON_RESTART_AFTER_UPGRADE=true \ + --entrypoint /migalood/cosmovisor \ + --platform linux/amd64 \ + migaloo/migalood-upgrade-env init /migalood/old/migalood + mkdir -p $CURRENT/cosmovisor/upgrades/$SOFTWARE_UPGRADE_NAME/bin + cp $BUILDDIR/migalood $CURRENT/cosmovisor/upgrades/$SOFTWARE_UPGRADE_NAME/bin + touch $CURRENT/cosmovisor/upgrades/$SOFTWARE_UPGRADE_NAME/upgrade-info.json +done \ No newline at end of file From 121c5b0f27713a156a3001e6d63b60448b6b4f56 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Mon, 15 Jan 2024 16:06:32 +0700 Subject: [PATCH 07/15] feat: setup cosmosvisor to run migalood --- contrib/migalood-env/Dockerfile | 5 +- contrib/migalood-env/Makefile | 2 +- contrib/updates/docker-compose.yml | 68 +++++++++++++++++++++++++++ contrib/updates/prepare_cosmovisor.sh | 40 ++++++++-------- 4 files changed, 90 insertions(+), 25 deletions(-) create mode 100644 contrib/updates/docker-compose.yml diff --git a/contrib/migalood-env/Dockerfile b/contrib/migalood-env/Dockerfile index 83be4eb2..018dc558 100644 --- a/contrib/migalood-env/Dockerfile +++ b/contrib/migalood-env/Dockerfile @@ -4,16 +4,13 @@ RUN apt-get update && \ apt-get -y upgrade && \ apt-get -y install curl jq file -ARG UID=1000 -ARG GID=1000 ARG entrypoint=entrypoint.sh -USER ${UID}:${GID} VOLUME /migalood WORKDIR /migalood EXPOSE 26656 26657 ENTRYPOINT ["/usr/bin/entrypoint.sh"] -CMD ["start", "--log_format", "plain"] +CMD ["start", "--log_format", "plain", "--p2p.seeds", ""] STOPSIGNAL SIGTERM COPY ${entrypoint} /usr/bin/entrypoint.sh diff --git a/contrib/migalood-env/Makefile b/contrib/migalood-env/Makefile index 0377b717..d7da0843 100644 --- a/contrib/migalood-env/Makefile +++ b/contrib/migalood-env/Makefile @@ -1,6 +1,6 @@ all: migalood-upgrade-env migalood-upgrade-env: - docker build --platform linux/amd64 --no-cache --build-arg UID=$(shell id -u) --build-arg GID=$(shell id -g) --build-arg entrypoint=cosmovisor-entrypoint.sh --tag migaloo/migalood-upgrade-env . + docker build --platform linux/amd64 --no-cache --build-arg entrypoint=cosmovisor-entrypoint.sh --tag migaloo/migalood-upgrade-env . .PHONY: all migalood-upgrade-env diff --git a/contrib/updates/docker-compose.yml b/contrib/updates/docker-compose.yml new file mode 100644 index 00000000..c069cf0e --- /dev/null +++ b/contrib/updates/docker-compose.yml @@ -0,0 +1,68 @@ +version: '3' + +services: + migaloodnode0: + container_name: migaloodnode0 + platform: linux/amd64 + image: "migaloo/migalood-upgrade-env" + ports: + - "9090:9090" + - "26656-26657:26656-26657" + environment: + - ID=0 + - LOG=migalood.log + - DAEMON_HOME=/migalood/node0/migalood + - DAEMON_NAME=migalood + - DAEMON_RESTART_AFTER_UPGRADE=true + volumes: + - ../../build:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.2 + + migaloodnode1: + container_name: migaloodnode1 + platform: linux/amd64 + image: "migaloo/migalood-upgrade-env" + ports: + - "9091:9090" + - "26659-26660:26656-26657" + environment: + - ID=1 + - LOG=migalood.log + - DAEMON_HOME=/migalood/node1/migalood + - DAEMON_NAME=migalood + - DAEMON_RESTART_AFTER_UPGRADE=true + volumes: + - ../../build:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.3 + + migaloodnode2: + container_name: migaloodnode2 + platform: linux/amd64 + image: "migaloo/migalood-upgrade-env" + environment: + - ID=2 + - LOG=migalood.log + - DAEMON_HOME=/migalood/node2/migalood + - DAEMON_NAME=migalood + - DAEMON_RESTART_AFTER_UPGRADE=true + ports: + - "9092:9090" + - "26661-26662:26656-26657" + volumes: + - ../../build:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.4 + +networks: + localnet: + driver: bridge + ipam: + driver: default + config: + - + subnet: 192.168.10.0/16 \ No newline at end of file diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh index 4216dce9..59698636 100755 --- a/contrib/updates/prepare_cosmovisor.sh +++ b/contrib/updates/prepare_cosmovisor.sh @@ -18,44 +18,44 @@ if [ -z "$BUILDDIR" ]; then exit 1 fi -# # install old binary if not exist -# if [ ! -f "_build/$OLD_VERSION.zip" ] &> /dev/null -# then -# mkdir -p _build/old -# wget -c "https://github.com/White-Whale-Defi-Platform/migaloo-chain/archive/refs/tags/${OLD_VERSION}.zip" -O _build/${OLD_VERSION}.zip -# unzip _build/${OLD_VERSION}.zip -d _build -# fi +# install old binary if not exist +if [ ! -f "_build/$OLD_VERSION.zip" ] &> /dev/null +then + mkdir -p _build/old + wget -c "https://github.com/White-Whale-Defi-Platform/migaloo-chain/archive/refs/tags/${OLD_VERSION}.zip" -O _build/${OLD_VERSION}.zip + unzip _build/${OLD_VERSION}.zip -d _build +fi -# if [ ! -f "$BUILDDIR/$OLD_VERSION.zip" ] &> /dev/null -# then -# mkdir -p BUILDDIR/old -# # docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old . -# docker create --platform linux/amd64 --name old-temp migaloo/migalood.binary.old:latest -# mkdir -p $BUILDDIR/old -# docker cp old-temp:/usr/bin/migalood $BUILDDIR/old/ -# docker rm old-temp -# fi +if [ ! -f "$BUILDDIR/$OLD_VERSION.zip" ] &> /dev/null +then + mkdir -p BUILDDIR/old + # docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old . + docker create --platform linux/amd64 --name old-temp migaloo/migalood.binary.old:latest + mkdir -p $BUILDDIR/old + docker cp old-temp:/usr/bin/migalood $BUILDDIR/old/ + docker rm old-temp +fi # prepare cosmovisor config in TESTNET_NVAL nodes -if [ ! -f "$BUILDDIR/node0/simd/config/genesis.json" ]; then docker run --rm \ +if [ ! -f "$BUILDDIR/node0/migalood/config/genesis.json" ]; then docker run --rm \ -v $BUILDDIR:/migalood:Z \ --platform linux/amd64 \ --entrypoint /migalood/old/migalood \ - migaloo/migalood-upgrade-env testnet init-files --v $TESTNET_NVAL --chain-id $TESTNET_CHAINID -o . --starting-ip-address 192.168.10.2 --keyring-backend=test --home=temp; \ + migaloo/migalood-upgrade-env testnet init-files --v $TESTNET_NVAL --chain-id $TESTNET_CHAINID -o . --starting-ip-address 192.168.10.2 --node-daemon-home migalood --keyring-backend=test --home=temp; \ fi for (( i=0; i<$TESTNET_NVAL; i++ )); do - CURRENT=$BUILDDIR/node$i/simd + CURRENT=$BUILDDIR/node$i/migalood # change gov params voting_period jq '.app_state.gov.voting_params.voting_period = "50s"' $CURRENT/config/genesis.json > $CURRENT/config/genesis.json.tmp && mv $CURRENT/config/genesis.json.tmp $CURRENT/config/genesis.json docker run --rm \ -v $BUILDDIR:/migalood:Z \ - -e DAEMON_HOME=/migalood/node$i/simd \ + -e DAEMON_HOME=/migalood/node$i/migalood \ -e DAEMON_NAME=migalood \ -e DAEMON_RESTART_AFTER_UPGRADE=true \ --entrypoint /migalood/cosmovisor \ From 12344f62a3e965da130f272181f65f64aab4fe83 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Tue, 16 Jan 2024 10:52:41 +0700 Subject: [PATCH 08/15] feat: base upgrade test --- contrib/updates/upgrade-test.sh | 116 ++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100755 contrib/updates/upgrade-test.sh diff --git a/contrib/updates/upgrade-test.sh b/contrib/updates/upgrade-test.sh new file mode 100755 index 00000000..5595adbb --- /dev/null +++ b/contrib/updates/upgrade-test.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# should make this auto fetch upgrade name from app upgrades once many upgrades have been done +# this command will retrieve the folder with the largest number in format v +SOFTWARE_UPGRADE_NAME=$(ls -d -- ./app/upgrades/v* | sort -Vr | head -n 1 | xargs basename) +NODE1_HOME=node1/migalood +SELECTED_CONTAINER=migaloodnode1 +BINARY_OLD="docker exec $SELECTED_CONTAINER ./old/migalood" +TESTNET_NVAL=${1:-3} + +# sleep to wait for localnet to come up +echo "Wait for localnet to come up" +# sleep 10 // TODO: enable this + +# 20 block from now +STATUS_INFO=($($BINARY_OLD status --home $NODE1_HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) +echo $STATUS_INFO +CHAIN_ID=${STATUS_INFO[0]} +UPGRADE_HEIGHT=$((STATUS_INFO[1] + 20)) +echo $UPGRADE_HEIGHT + + +docker exec $SELECTED_CONTAINER tar -cf ./migalood.tar -C . migalood +SUM=$(docker exec $SELECTED_CONTAINER sha256sum ./migalood.tar | cut -d ' ' -f1) +DOCKER_BASE_PATH=$(docker exec $SELECTED_CONTAINER pwd) +echo $SUM +UPGRADE_INFO=$(jq -n ' +{ + "binaries": { + "linux/amd64": "file://'$DOCKER_BASE_PATH'/migalood.tar?checksum=sha256:'"$SUM"'", + } +}') + +echo $UPGRADE_INFO + +$BINARY_OLD tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from node1 --keyring-backend test --chain-id $CHAIN_ID --home $NODE1_HOME -y + +sleep 5 + +$BINARY_OLD tx gov deposit 1 "20000000uwhale" --from node1 --keyring-backend test --chain-id $CHAIN_ID --home $NODE1_HOME -y + +sleep 5 + +# loop from 0 to TESTNET_NVAL +for (( i=0; i<$TESTNET_NVAL; i++ )); do + # check if docker for node i is running + if [[ $(docker ps -a | grep terradnode$i | wc -l) -eq 1 ]]; then + $BINARY_OLD tx gov vote 1 yes --from node$i --keyring-backend test --chain-id $CHAIN_ID --home "node$i/terrad" -y + sleep 5 + fi +done + +# keep track of block_height +NIL_BLOCK=0 +LAST_BLOCK=0 +SAME_BLOCK=0 +while true; do + BLOCK_HEIGHT=$($BINARY_OLD status --home $NODE1_HOME | jq '.SyncInfo.latest_block_height' -r) + # if BLOCK_HEIGHT is empty + if [[ -z $BLOCK_HEIGHT ]]; then + # if 5 nil blocks in a row, exit + if [[ $NIL_BLOCK -ge 5 ]]; then + echo "ERROR: 5 nil blocks in a row" + break + fi + NIL_BLOCK=$((NIL_BLOCK + 1)) + fi + + # if block height is not nil + # if block height is same as last block height + if [[ $BLOCK_HEIGHT -eq $LAST_BLOCK ]]; then + # if 5 same blocks in a row, exit + if [[ $SAME_BLOCK -ge 5 ]]; then + echo "ERROR: 5 same blocks in a row" + break + fi + SAME_BLOCK=$((SAME_BLOCK + 1)) + else + # update LAST_BLOCK and reset SAME_BLOCK + LAST_BLOCK=$BLOCK_HEIGHT + SAME_BLOCK=0 + fi + + if [[ $BLOCK_HEIGHT -ge $UPGRADE_HEIGHT ]]; then + # assuming running only 1 terrad + echo "UPGRADE REACHED, CONTINUING NEW CHAIN" + break + else + $BINARY_OLD q gov proposal 1 --output=json --home $NODE1_HOME | jq ".status" + echo "BLOCK_HEIGHT = $BLOCK_HEIGHT" + sleep 10 + fi +done + +if [[ $SAME_BLOCK -ge 5 ]]; then + docker logs terradnode0 + exit 1 +fi + +sleep 40 + +# check all nodes are online after upgrade +for (( i=0; i<$TESTNET_NVAL; i++ )); do + if [[ $(docker ps -a | grep terradnode$i | wc -l) -eq 1 ]]; then + docker exec terradnode$i ./terrad status --home "node$i/terrad" + if [[ "${PIPESTATUS[0]}" != "0" ]]; then + echo "node$i is not online" + docker logs terradnode$i + exit 1 + fi + else + echo "terradnode$i is not running" + docker logs terradnode$i + exit 1 + fi +done \ No newline at end of file From 1467343787ac62e91f9425c7c188b526682edf78 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Tue, 16 Jan 2024 16:00:48 +0700 Subject: [PATCH 09/15] perf: set gas price to 0 stake for test --- contrib/updates/prepare_cosmovisor.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh index 59698636..7a68d89e 100755 --- a/contrib/updates/prepare_cosmovisor.sh +++ b/contrib/updates/prepare_cosmovisor.sh @@ -43,7 +43,7 @@ if [ ! -f "$BUILDDIR/node0/migalood/config/genesis.json" ]; then docker run --rm -v $BUILDDIR:/migalood:Z \ --platform linux/amd64 \ --entrypoint /migalood/old/migalood \ - migaloo/migalood-upgrade-env testnet init-files --v $TESTNET_NVAL --chain-id $TESTNET_CHAINID -o . --starting-ip-address 192.168.10.2 --node-daemon-home migalood --keyring-backend=test --home=temp; \ + migaloo/migalood-upgrade-env testnet init-files --v $TESTNET_NVAL --chain-id $TESTNET_CHAINID -o . --starting-ip-address 192.168.10.2 --minimum-gas-prices "0stake" --node-daemon-home migalood --keyring-backend=test --home=temp; \ fi From fbfb167ff598aba0a231eeaa2414c475365934b7 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Wed, 17 Jan 2024 12:26:35 +0700 Subject: [PATCH 10/15] perf: reduce voting period --- contrib/updates/prepare_cosmovisor.sh | 2 +- contrib/updates/upgrade-test.sh | 36 +++++++++++++++------------ scripts/upgrade_test.sh | 3 +-- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh index 7a68d89e..18b36957 100755 --- a/contrib/updates/prepare_cosmovisor.sh +++ b/contrib/updates/prepare_cosmovisor.sh @@ -51,7 +51,7 @@ for (( i=0; i<$TESTNET_NVAL; i++ )); do CURRENT=$BUILDDIR/node$i/migalood # change gov params voting_period - jq '.app_state.gov.voting_params.voting_period = "50s"' $CURRENT/config/genesis.json > $CURRENT/config/genesis.json.tmp && mv $CURRENT/config/genesis.json.tmp $CURRENT/config/genesis.json + jq '.app_state.gov.params.voting_period = "50s"' $CURRENT/config/genesis.json > $CURRENT/config/genesis.json.tmp && mv $CURRENT/config/genesis.json.tmp $CURRENT/config/genesis.json docker run --rm \ -v $BUILDDIR:/migalood:Z \ diff --git a/contrib/updates/upgrade-test.sh b/contrib/updates/upgrade-test.sh index 5595adbb..2631b88e 100755 --- a/contrib/updates/upgrade-test.sh +++ b/contrib/updates/upgrade-test.sh @@ -10,14 +10,15 @@ TESTNET_NVAL=${1:-3} # sleep to wait for localnet to come up echo "Wait for localnet to come up" -# sleep 10 // TODO: enable this +sleep 5 # 20 block from now +$BINARY_OLD status --home $NODE1_HOME STATUS_INFO=($($BINARY_OLD status --home $NODE1_HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) -echo $STATUS_INFO +echo "Current status info: $STATUS_INFO" CHAIN_ID=${STATUS_INFO[0]} -UPGRADE_HEIGHT=$((STATUS_INFO[1] + 20)) -echo $UPGRADE_HEIGHT +UPGRADE_HEIGHT=$((STATUS_INFO[1] + 40)) +echo "Upgrade should happens at: $UPGRADE_HEIGHT" docker exec $SELECTED_CONTAINER tar -cf ./migalood.tar -C . migalood @@ -33,20 +34,23 @@ UPGRADE_INFO=$(jq -n ' echo $UPGRADE_INFO -$BINARY_OLD tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from node1 --keyring-backend test --chain-id $CHAIN_ID --home $NODE1_HOME -y +echo "Submitting software upgrade proposal..." +$BINARY_OLD tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from node1 --keyring-backend test --chain-id $CHAIN_ID --home $NODE1_HOME -y > /dev/null 2>&1 sleep 5 -$BINARY_OLD tx gov deposit 1 "20000000uwhale" --from node1 --keyring-backend test --chain-id $CHAIN_ID --home $NODE1_HOME -y +echo "Depositing to software upgrade proposal..." +$BINARY_OLD tx gov deposit 1 "20000000stake" --from node1 --keyring-backend test --chain-id $CHAIN_ID --home $NODE1_HOME -y > /dev/null 2>&1 sleep 5 # loop from 0 to TESTNET_NVAL for (( i=0; i<$TESTNET_NVAL; i++ )); do # check if docker for node i is running - if [[ $(docker ps -a | grep terradnode$i | wc -l) -eq 1 ]]; then - $BINARY_OLD tx gov vote 1 yes --from node$i --keyring-backend test --chain-id $CHAIN_ID --home "node$i/terrad" -y - sleep 5 + if [[ $(docker ps -a | grep migaloodnode$i | wc -l) -eq 1 ]]; then + $BINARY_OLD tx gov vote 1 yes --from node$i --keyring-backend test --chain-id $CHAIN_ID --home "node$i/migalood" -y > /dev/null 2>&1 + echo -e "---> Node $i voted yes" + sleep 1 fi done @@ -82,7 +86,7 @@ while true; do fi if [[ $BLOCK_HEIGHT -ge $UPGRADE_HEIGHT ]]; then - # assuming running only 1 terrad + # assuming running only 1 migalood echo "UPGRADE REACHED, CONTINUING NEW CHAIN" break else @@ -93,7 +97,7 @@ while true; do done if [[ $SAME_BLOCK -ge 5 ]]; then - docker logs terradnode0 + docker logs migaloodnode0 exit 1 fi @@ -101,16 +105,16 @@ sleep 40 # check all nodes are online after upgrade for (( i=0; i<$TESTNET_NVAL; i++ )); do - if [[ $(docker ps -a | grep terradnode$i | wc -l) -eq 1 ]]; then - docker exec terradnode$i ./terrad status --home "node$i/terrad" + if [[ $(docker ps -a | grep migaloodnode$i | wc -l) -eq 1 ]]; then + docker exec migaloodnode$i ./migalood status --home "node$i/migalood" if [[ "${PIPESTATUS[0]}" != "0" ]]; then echo "node$i is not online" - docker logs terradnode$i + docker logs migaloodnode$i exit 1 fi else - echo "terradnode$i is not running" - docker logs terradnode$i + echo "migaloodnode$i is not running" + docker logs migaloodnode$i exit 1 fi done \ No newline at end of file diff --git a/scripts/upgrade_test.sh b/scripts/upgrade_test.sh index 14218f8a..225aabf4 100755 --- a/scripts/upgrade_test.sh +++ b/scripts/upgrade_test.sh @@ -45,7 +45,7 @@ fi # run old node if [[ "$OSTYPE" == "darwin"* ]]; then - screen -L -dmS node1 bash scripts/run-node.sh _build/old/migalood $DENOM + screen -L -dmS node1 bash scripts/run-node.sh _build/old/migalood $DENOM --Logfile $HOME/log-screen.txt else screen -L -Logfile $HOME/log-screen.txt -dmS node1 bash scripts/run-node.sh _build/old/migalood $DENOM fi @@ -123,7 +123,6 @@ run_upgrade () { if [ $BLOCK_HEIGHT = "$UPGRADE_HEIGHT" ]; then # assuming running only 1 migalood echo "BLOCK HEIGHT = $UPGRADE_HEIGHT REACHED, KILLING OLD ONE" - pkill migalood break else ./_build/old/migalood q gov proposal 1 --output=json | jq ".status" From eca0995cfc49cbeefd89451734047983079f111c Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Wed, 17 Jan 2024 14:30:00 +0700 Subject: [PATCH 11/15] chore: get upgrade handler --- contrib/updates/upgrade-test.sh | 7 +++++-- scripts/upgrade_test.sh | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/contrib/updates/upgrade-test.sh b/contrib/updates/upgrade-test.sh index 2631b88e..dcceecd8 100755 --- a/contrib/updates/upgrade-test.sh +++ b/contrib/updates/upgrade-test.sh @@ -7,6 +7,7 @@ NODE1_HOME=node1/migalood SELECTED_CONTAINER=migaloodnode1 BINARY_OLD="docker exec $SELECTED_CONTAINER ./old/migalood" TESTNET_NVAL=${1:-3} +UPGRADE_CLIFF_HEIGHT=25 # sleep to wait for localnet to come up echo "Wait for localnet to come up" @@ -17,7 +18,7 @@ $BINARY_OLD status --home $NODE1_HOME STATUS_INFO=($($BINARY_OLD status --home $NODE1_HOME | jq -r '.NodeInfo.network,.SyncInfo.latest_block_height')) echo "Current status info: $STATUS_INFO" CHAIN_ID=${STATUS_INFO[0]} -UPGRADE_HEIGHT=$((STATUS_INFO[1] + 40)) +UPGRADE_HEIGHT=$((STATUS_INFO[1] + UPGRADE_CLIFF_HEIGHT)) echo "Upgrade should happens at: $UPGRADE_HEIGHT" @@ -37,6 +38,9 @@ echo $UPGRADE_INFO echo "Submitting software upgrade proposal..." $BINARY_OLD tx gov submit-legacy-proposal software-upgrade "$SOFTWARE_UPGRADE_NAME" --upgrade-height $UPGRADE_HEIGHT --upgrade-info "$UPGRADE_INFO" --title "upgrade" --description "upgrade" --from node1 --keyring-backend test --chain-id $CHAIN_ID --home $NODE1_HOME -y > /dev/null 2>&1 + +echo "upgrade name: $SOFTWARE_UPGRADE_NAME" + sleep 5 echo "Depositing to software upgrade proposal..." @@ -50,7 +54,6 @@ for (( i=0; i<$TESTNET_NVAL; i++ )); do if [[ $(docker ps -a | grep migaloodnode$i | wc -l) -eq 1 ]]; then $BINARY_OLD tx gov vote 1 yes --from node$i --keyring-backend test --chain-id $CHAIN_ID --home "node$i/migalood" -y > /dev/null 2>&1 echo -e "---> Node $i voted yes" - sleep 1 fi done diff --git a/scripts/upgrade_test.sh b/scripts/upgrade_test.sh index 225aabf4..f3d9c45e 100755 --- a/scripts/upgrade_test.sh +++ b/scripts/upgrade_test.sh @@ -3,7 +3,7 @@ # the upgrade is a fork, "true" otherwise FORK=${FORK:-"false"} -OLD_VERSION=v3.0.2 +OLD_VERSION=v3.0.4 UPGRADE_WAIT=${UPGRADE_WAIT:-20} HOME=mytestnet ROOT=$(pwd) From adc1e0812b7915dfed7f1221ef1a8a16f4878084 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Wed, 17 Jan 2024 17:28:32 +0700 Subject: [PATCH 12/15] fix: upgrade name --- Makefile | 2 +- contrib/updates/prepare_cosmovisor.sh | 3 ++- contrib/updates/upgrade-test.sh | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index ea0c1e84..e9044351 100644 --- a/Makefile +++ b/Makefile @@ -106,7 +106,7 @@ build: go build $(BUILD_FLAGS) -o bin/migalood ./cmd/migalood docker-build-debug: - @DOCKER_BUILDKIT=1 docker build -t migaloo:debug -f Dockerfile . + @DOCKER_BUILDKIT=1 docker bufild -t migaloo:debug -f Dockerfile . runsim: $(RUNSIM) $(RUNSIM): diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh index 18b36957..ae2c2218 100755 --- a/contrib/updates/prepare_cosmovisor.sh +++ b/contrib/updates/prepare_cosmovisor.sh @@ -7,7 +7,7 @@ # Need to do more upgrade to see upgrade patterns OLD_VERSION=v3.0.4 # this command will retrieve the folder with the largest number in format v -SOFTWARE_UPGRADE_NAME=$(ls -d -- ./app/upgrades/v* | sort -Vr | head -n 1 | xargs basename) +SOFTWARE_UPGRADE_NAME="v4.1.0" BUILDDIR=$1 TESTNET_NVAL=$2 TESTNET_CHAINID=$3 @@ -47,6 +47,7 @@ if [ ! -f "$BUILDDIR/node0/migalood/config/genesis.json" ]; then docker run --rm fi + for (( i=0; i<$TESTNET_NVAL; i++ )); do CURRENT=$BUILDDIR/node$i/migalood diff --git a/contrib/updates/upgrade-test.sh b/contrib/updates/upgrade-test.sh index dcceecd8..0d029c3f 100755 --- a/contrib/updates/upgrade-test.sh +++ b/contrib/updates/upgrade-test.sh @@ -2,12 +2,12 @@ # should make this auto fetch upgrade name from app upgrades once many upgrades have been done # this command will retrieve the folder with the largest number in format v -SOFTWARE_UPGRADE_NAME=$(ls -d -- ./app/upgrades/v* | sort -Vr | head -n 1 | xargs basename) +SOFTWARE_UPGRADE_NAME="v4.1.0" NODE1_HOME=node1/migalood SELECTED_CONTAINER=migaloodnode1 BINARY_OLD="docker exec $SELECTED_CONTAINER ./old/migalood" TESTNET_NVAL=${1:-3} -UPGRADE_CLIFF_HEIGHT=25 +UPGRADE_CLIFF_HEIGHT=20 # sleep to wait for localnet to come up echo "Wait for localnet to come up" From 9baed06d45aaea4b28d2339bc8888d425e609f7f Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Thu, 18 Jan 2024 00:25:55 +0700 Subject: [PATCH 13/15] feat: make file to run test upgrade with multiple nodes --- Makefile | 53 ++++++++------------------- contrib/updates/prepare_cosmovisor.sh | 6 +-- 2 files changed, 17 insertions(+), 42 deletions(-) diff --git a/Makefile b/Makefile index e9044351..f0408d12 100644 --- a/Makefile +++ b/Makefile @@ -249,9 +249,12 @@ proto-format: find ./ -not -path "./third_party/*" -name "*.proto" -exec clang-format -i {} \; ; fi + + ############################################################################### -### V3 setup ### +### Localnet ### ############################################################################### + build-linux: mkdir -p $(BUILDDIR) docker build --platform linux/amd64 --tag migalood ./ @@ -260,40 +263,6 @@ build-linux: docker rm temp - -build-v3: - docker build -t migaloodv3 -f migalood-v3/Dockerfile . - -localnetv3-start: localnetv3-stop - @if ! [ -f $(MIGALOO_ENV_V3)/build/node0/migalood/config/genesis.json ]; then \ - docker run --rm \ - -v $(MIGALOO_ENV_V3)/build/:/migaloo:Z \ - migaloodv3 \ - testnet init-files \ - --chain-id ${TESTNET_CHAINID} \ - --v ${TESTNET_NVAL} \ - -o /migaloo \ - --keyring-backend=test \ - --starting-ip-address 192.168.10.2; \ - fi - - cd $(MIGALOO_ENV_V3) && docker-compose up -d - - -localnetv3-stop: - @cd $(MIGALOO_ENV_V3) - rm -rf build/node* - rm -rf build/gentxs. - docker-compose down - -localnet-start-upgrade: - $(MAKE) -C contrib/updates build-cosmovisor-linux BUILDDIR=$(BUILDDIR) - - - -############################################################################### -### Localnet ### -############################################################################### localnet-start: localnet-stop @if ! [ -f build/node0/$(BINARY)/config/genesis.json ]; then docker run --rm -v $(CURDIR)/build:/migaloo:Z migalood testnet init-files --chain-id ${TESTNET_CHAINID} --v ${TESTNET_NVAL} -o /migaloo --keyring-backend=test --starting-ip-address 192.168.10.2; fi @@ -311,6 +280,14 @@ build-cosmovisor-linux: build-migalood-env: $(MAKE) -C contrib/migalood-env migalood-upgrade-env -## Should contain: build-comovisor-linux -> build-linux -> build-migalood-env -upgrade-test: - bash contrib/updates/prepare_cosmovisor.sh $(BUILDDIR) ${TESTNET_NVAL} ${TESTNET_CHAINID} \ No newline at end of file +## Presiquites: build-cosmovisor-linux build-linux build-migalood-env +localnet-start-upgrade: localnet-upgrade-stop + bash contrib/updates/prepare_cosmovisor.sh $(BUILDDIR) ${TESTNET_NVAL} ${TESTNET_CHAINID} + docker-compose -f ./contrib/updates/docker-compose.yml up -d + @./contrib/updates/upgrade-test.sh + $(MAKE) localnet-upgrade-stop + +localnet-upgrade-stop: + docker-compose -f contrib/updates/docker-compose.yml down + rm -rf build/node* + rm -rf build/gentxs. \ No newline at end of file diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh index ae2c2218..6dbdecc0 100755 --- a/contrib/updates/prepare_cosmovisor.sh +++ b/contrib/updates/prepare_cosmovisor.sh @@ -30,7 +30,7 @@ fi if [ ! -f "$BUILDDIR/$OLD_VERSION.zip" ] &> /dev/null then mkdir -p BUILDDIR/old - # docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old . + docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old ./_build/migaloo-chain-${OLD_VERSION:1} docker create --platform linux/amd64 --name old-temp migaloo/migalood.binary.old:latest mkdir -p $BUILDDIR/old docker cp old-temp:/usr/bin/migalood $BUILDDIR/old/ @@ -46,13 +46,11 @@ if [ ! -f "$BUILDDIR/node0/migalood/config/genesis.json" ]; then docker run --rm migaloo/migalood-upgrade-env testnet init-files --v $TESTNET_NVAL --chain-id $TESTNET_CHAINID -o . --starting-ip-address 192.168.10.2 --minimum-gas-prices "0stake" --node-daemon-home migalood --keyring-backend=test --home=temp; \ fi - - for (( i=0; i<$TESTNET_NVAL; i++ )); do CURRENT=$BUILDDIR/node$i/migalood # change gov params voting_period - jq '.app_state.gov.params.voting_period = "50s"' $CURRENT/config/genesis.json > $CURRENT/config/genesis.json.tmp && mv $CURRENT/config/genesis.json.tmp $CURRENT/config/genesis.json + jq '.app_state.gov.voting_params.voting_period = "50s"' $CURRENT/config/genesis.json > $CURRENT/config/genesis.json.tmp && mv $CURRENT/config/genesis.json.tmp $CURRENT/config/genesis.json docker run --rm \ -v $BUILDDIR:/migalood:Z \ From 4b7ed9b8222d5568a1e80dee9ca74a3d35d2e073 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Thu, 18 Jan 2024 10:16:50 +0700 Subject: [PATCH 14/15] perf: not build if the image is already created --- Makefile | 16 +++++++++++----- contrib/updates/prepare_cosmovisor.sh | 6 ++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index f0408d12..dd05ee15 100644 --- a/Makefile +++ b/Makefile @@ -257,7 +257,9 @@ proto-format: build-linux: mkdir -p $(BUILDDIR) - docker build --platform linux/amd64 --tag migalood ./ + @if [ -z "$(docker images -q migalood 2> /dev/null)" ]; then \ + docker build --platform linux/amd64 --tag migalood ./; \ + fi docker create --platform limux/amd64 --name temp migalood:latest docker cp temp:/usr/bin/migalood $(BUILDDIR)/ docker rm temp @@ -275,15 +277,19 @@ localnet-stop: ### Upgrade ### ############################################################################### build-cosmovisor-linux: - $(MAKE) -C contrib/updates build-cosmovisor-linux BUILDDIR=$(BUILDDIR) + @if [ -z "$(docker images -q migaloo/migaloo.cosmovisor-binary 2> /dev/null)" ]; then \ + $(MAKE) -C contrib/updates build-cosmovisor-linux BUILDDIR=$(BUILDDIR); \ + fi build-migalood-env: - $(MAKE) -C contrib/migalood-env migalood-upgrade-env + @if [ -z "$(docker images -q migaloo/migalood-upgrade-env 2> /dev/null)" ]; then \ + $(MAKE) -C contrib/migalood-env migalood-upgrade-env; \ + fi ## Presiquites: build-cosmovisor-linux build-linux build-migalood-env -localnet-start-upgrade: localnet-upgrade-stop +localnet-start-upgrade: localnet-upgrade-stop build-linux build-cosmovisor-linux build-migalood-env bash contrib/updates/prepare_cosmovisor.sh $(BUILDDIR) ${TESTNET_NVAL} ${TESTNET_CHAINID} - docker-compose -f ./contrib/updates/docker-compose.yml up -d + docker-compose -f ./contrib/updates/docker-compose.yml up @./contrib/updates/upgrade-test.sh $(MAKE) localnet-upgrade-stop diff --git a/contrib/updates/prepare_cosmovisor.sh b/contrib/updates/prepare_cosmovisor.sh index 6dbdecc0..4a1447c4 100755 --- a/contrib/updates/prepare_cosmovisor.sh +++ b/contrib/updates/prepare_cosmovisor.sh @@ -27,10 +27,12 @@ then fi -if [ ! -f "$BUILDDIR/$OLD_VERSION.zip" ] &> /dev/null +if [ ! -f "$BUILDDIR/old/migalood" ] &> /dev/null then mkdir -p BUILDDIR/old - docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old ./_build/migaloo-chain-${OLD_VERSION:1} + if [ ! "$(docker images -q migaloo/migalood.binary.old 2> /dev/null)" ]; then + docker build --platform linux/amd64 --no-cache --build-arg source=./_build/migaloo-chain-${OLD_VERSION:1}/ --tag migaloo/migalood.binary.old ./_build/migaloo-chain-${OLD_VERSION:1} + fi docker create --platform linux/amd64 --name old-temp migaloo/migalood.binary.old:latest mkdir -p $BUILDDIR/old docker cp old-temp:/usr/bin/migalood $BUILDDIR/old/ From f0f7832993ffe7898a7141ae476bda0b30b19eb5 Mon Sep 17 00:00:00 2001 From: kienn6034 Date: Thu, 18 Jan 2024 10:36:44 +0700 Subject: [PATCH 15/15] perf: add three more nodes --- Makefile | 4 +- contrib/updates/docker-compose.yml | 57 ++++++++++++++++++++++++++ docker-compose.yml | 64 +++++++++++++++--------------- 3 files changed, 91 insertions(+), 34 deletions(-) diff --git a/Makefile b/Makefile index dd05ee15..b4c6d803 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ HTTPS_GIT := https://github.com/White-Whale-Defi-Platform/migaloo-chain.git export GO111MODULE = on -TESTNET_NVAL := $(if $(TESTNET_NVAL),$(TESTNET_NVAL),3) +TESTNET_NVAL := $(if $(TESTNET_NVAL),$(TESTNET_NVAL),6) TESTNET_CHAINID := $(if $(TESTNET_CHAINID),$(TESTNET_CHAINID),migaloo-1) @@ -106,7 +106,7 @@ build: go build $(BUILD_FLAGS) -o bin/migalood ./cmd/migalood docker-build-debug: - @DOCKER_BUILDKIT=1 docker bufild -t migaloo:debug -f Dockerfile . + @DOCKER_BUILDKIT=1 docker build -t migaloo:debug -f Dockerfile . runsim: $(RUNSIM) $(RUNSIM): diff --git a/contrib/updates/docker-compose.yml b/contrib/updates/docker-compose.yml index c069cf0e..da8d22fa 100644 --- a/contrib/updates/docker-compose.yml +++ b/contrib/updates/docker-compose.yml @@ -57,6 +57,63 @@ services: networks: localnet: ipv4_address: 192.168.10.4 + + migaloodnode3: + container_name: migaloodnode3 + platform: linux/amd64 + image: "migaloo/migalood-upgrade-env" + environment: + - ID=3 + - LOG=migalood.log + - DAEMON_HOME=/migalood/node3/migalood + - DAEMON_NAME=migalood + - DAEMON_RESTART_AFTER_UPGRADE=true + ports: + - "9093:9090" + - "26663-26664:26656-26657" + volumes: + - ../../build:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.5 + + migaloodnode4: + container_name: migaloodnode4 + platform: linux/amd64 + image: "migaloo/migalood-upgrade-env" + environment: + - ID=4 + - LOG=migalood.log + - DAEMON_HOME=/migalood/node4/migalood + - DAEMON_NAME=migalood + - DAEMON_RESTART_AFTER_UPGRADE=true + ports: + - "9094:9090" + - "26665-26666:26656-26657" + volumes: + - ../../build:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.6 + + migaloodnode5: + container_name: migaloodnode5 + platform: linux/amd64 + image: "migaloo/migalood-upgrade-env" + environment: + - ID=5 + - LOG=migalood.log + - DAEMON_HOME=/migalood/node5/migalood + - DAEMON_NAME=migalood + - DAEMON_RESTART_AFTER_UPGRADE=true + ports: + - "9095:9090" + - "26667-26668:26656-26657" + volumes: + - ../../build:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.7 networks: localnet: diff --git a/docker-compose.yml b/docker-compose.yml index a77dcfd1..65447e76 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,39 +52,39 @@ services: localnet: ipv4_address: 192.168.10.4 - # migaloo3: - # container_name: migaloo3 - # image: migalood - # command: start --home /migalood - # environment: - # - ID=3 - # - LOG=migalood.log - # ports: - # - "1320:1317" - # - "9093:9090" - # - "26663-26664:26656-26657" - # volumes: - # - ./build/node3/simd:/migalood:Z - # networks: - # localnet: - # ipv4_address: 192.168.10.5 + migaloo3: + container_name: migaloo3 + image: migalood + command: start --home /migalood + environment: + - ID=3 + - LOG=migalood.log + ports: + - "1320:1317" + - "9093:9090" + - "26663-26664:26656-26657" + volumes: + - ./build/node3/simd:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.5 - # migaloo4: - # container_name: migaloo4 - # image: migalood - # command: start --home /migalood - # environment: - # - ID=4 - # - LOG=migalood.log - # ports: - # - "1321:1317" - # - "9094:9090" - # - "26665-26666:26656-26657" - # volumes: - # - ./build/node4/simd:/migalood:Z - # networks: - # localnet: - # ipv4_address: 192.168.10.6 + migaloo4: + container_name: migaloo4 + image: migalood + command: start --home /migalood + environment: + - ID=4 + - LOG=migalood.log + ports: + - "1321:1317" + - "9094:9090" + - "26665-26666:26656-26657" + volumes: + - ./build/node4/simd:/migalood:Z + networks: + localnet: + ipv4_address: 192.168.10.6 networks: