Launch 7-node FrostFS inner ring
This commit is contained in:
parent
2e97eeb4f0
commit
bc83def7be
6 changed files with 91 additions and 46 deletions
14
Makefile
14
Makefile
|
@ -5,8 +5,18 @@ NEOGO_VERSION?=0.106.3
|
|||
|
||||
NEOGO_RPC_ENDPOINT?=http://$(NEOGO_NODE1_IP):30333
|
||||
NEOGO_NODE1_IP?=$(shell docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' morph1)
|
||||
IR_NODE1_IP?=$(shell docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' innerring1)
|
||||
|
||||
ALPHABET=az buky vedi glagoli dobro yest zhivete
|
||||
NODE_COUNT?=7
|
||||
NODE_ID?=1
|
||||
NODE_LETTER=$(word $(NODE_ID),$(ALPHABET))
|
||||
export NODE_COUNT
|
||||
export NODE_ID
|
||||
export NODE_LETTER
|
||||
|
||||
SHELL=/bin/bash
|
||||
.SHELLFLAGS=-euo pipefail -c
|
||||
|
||||
ADM?=bin/frostfs-adm-v$(FROSTFS_VERSION)
|
||||
ADM_RELEASE_URL=https://git.frostfs.info/TrueCloudLab/frostfs-node/releases/download/v$(FROSTFS_VERSION)/frostfs-adm
|
||||
|
@ -59,3 +69,7 @@ bin/locode.db:
|
|||
define math
|
||||
$(shell bash -c "echo $$(($(1)))")
|
||||
endef
|
||||
|
||||
.PHONY: network-up
|
||||
network-up:
|
||||
-docker network create bringup
|
||||
|
|
|
@ -1,16 +1,39 @@
|
|||
SHELL=/bin/bash
|
||||
.SHELLFLAGS=-euo pipefail -c
|
||||
|
||||
include ../Makefile
|
||||
NODE_CONFIG=data/config-$(NODE_LETTER)/innerring.yml
|
||||
export NODE_CONFIG
|
||||
|
||||
.PHONY: up
|
||||
up: wallet/az.json | $(IR) $(LOCODE)
|
||||
$(IR) --config innerring.yml
|
||||
.PHONY: up down down-fast
|
||||
up: COMPOSE_ARGS=-d
|
||||
up: network-up
|
||||
down-fast: COMPOSE_ARGS=--timeout 0
|
||||
down-fast: down
|
||||
up down:
|
||||
error=0; \
|
||||
for NODE_ID in {1..$(NODE_COUNT)}; do \
|
||||
GID=$$(id -g); \
|
||||
export NODE_ID UID GID; \
|
||||
docker-compose -p "innerring$$NODE_ID" $@ $(COMPOSE_ARGS) || error=$$?; \
|
||||
done; \
|
||||
exit $$error
|
||||
|
||||
wallet/az.json:
|
||||
.PHONY: innerring
|
||||
innerring: wallet $(NODE_CONFIG) | $(IR) $(LOCODE) $(CLI)
|
||||
mkdir -p log
|
||||
$(IR) --config $(NODE_CONFIG) 2>&1 | tee --append log/$@$(NODE_ID)-$(NODE_LETTER)
|
||||
|
||||
$(NODE_CONFIG): innerring.yml
|
||||
mkdir -p $(dir $@)
|
||||
ln -sf $(abspath ../morph/$@) $@
|
||||
cp $< $@
|
||||
sed -i \
|
||||
-e 's/NODE_COUNT/$(NODE_COUNT)/g' \
|
||||
-e 's/NODE_ID/$(NODE_ID)/g' \
|
||||
-e 's/NODE_LETTER/$(NODE_LETTER)/g' \
|
||||
-e 's/NODE_MINPEERS/$(NODE_MINPEERS)/g' \
|
||||
$@
|
||||
|
||||
wallet:
|
||||
ln -sf ../morph/$@ $@
|
||||
|
||||
.PHONY: healthcheck
|
||||
healthcheck: | $(CLI)
|
||||
$(CLI) control ir healthcheck -q --wallet wallet/az.json --endpoint 127.0.0.201:8099
|
||||
$(CLI) control ir healthcheck -q --wallet wallet/az.json --endpoint $(IR_NODE1_IP):8099
|
||||
|
|
24
innerring/docker-compose.yml
Normal file
24
innerring/docker-compose.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
version: '2'
|
||||
|
||||
networks:
|
||||
bringup-network:
|
||||
name: bringup
|
||||
external: true
|
||||
|
||||
services:
|
||||
innerring:
|
||||
image: golang:latest
|
||||
hostname: innerring${NODE_ID:?required variable not defined}
|
||||
container_name: innerring${NODE_ID}
|
||||
networks:
|
||||
bringup-network:
|
||||
user: "${UID}:${GID}"
|
||||
environment:
|
||||
- NODE_COUNT=$NODE_COUNT
|
||||
- NODE_ID=$NODE_ID
|
||||
- NODE_CONFIG=$NODE_CONFIG
|
||||
- NODE_LETTER=$NODE_LETTER
|
||||
volumes:
|
||||
- ..:/bringup
|
||||
working_dir: /bringup/innerring
|
||||
command: ["make", "innerring", "NODE_ID=${NODE_ID}"]
|
|
@ -5,24 +5,23 @@ logger:
|
|||
control:
|
||||
authorized_keys: # Q: Node keys are always assumed to be trusted?
|
||||
grpc:
|
||||
endpoint: 127.0.0.201:8099
|
||||
endpoint: innerringNODE_ID:8099
|
||||
|
||||
# Wallet settings
|
||||
wallet:
|
||||
path: wallet/az.json # Path to NEP-6 NEO wallet file
|
||||
# address: Nhfg3TbpwogLvDGVvAvqyThbsHgoSUKwtn # Account address in the wallet; ignore to use default address
|
||||
path: wallet/NODE_LETTER.json # Path to NEP-6 NEO wallet file
|
||||
password: m # Account password in the wallet
|
||||
|
||||
# Profiler section
|
||||
pprof:
|
||||
enabled: true
|
||||
address: 127.0.0.201:6060 # Endpoint for application pprof profiling; disabled by default
|
||||
address: innerringNODE_ID:6060 # Endpoint for application pprof profiling; disabled by default
|
||||
shutdown_timeout: 30s # Timeout for profiling HTTP server graceful shutdown
|
||||
|
||||
# Application metrics section
|
||||
prometheus:
|
||||
enabled: true
|
||||
address: 127.0.0.201:9090 # Endpoint for application prometheus metrics; disabled by default
|
||||
address: innerringNODE_ID:9090 # Endpoint for application prometheus metrics; disabled by default
|
||||
shutdown_timeout: 30s # Timeout for metrics HTTP server graceful shutdown
|
||||
|
||||
# Toggling the sidechain-only mode
|
||||
|
@ -36,15 +35,15 @@ mainnet:
|
|||
morph:
|
||||
endpoint:
|
||||
client: # List of websocket RPC endpoints in sidechain
|
||||
- address: ws://10.200.104.2:30333/ws
|
||||
- address: ws://morphNODE_ID:30333/ws
|
||||
validators: # List of hex-encoded 33-byte public keys of sidechain validators to vote for at application startup
|
||||
- 020978aaa717296f92c8b4c7821a4577e336c746bad10f12ff34d1a8555b582c99
|
||||
- 020ea94e07f3ef6db2fe6ee3d49c1c48945222263c6e7eaa6c73a368bb6f1ac926
|
||||
- 028ab6992e9a38b974ef792ee040e08d1f81ab86b80811019ddda668d46cda41ab
|
||||
- 028c37315cb0bb6884869d98cf7bcf0ca7de70a42c5cb796f561dd32ed8295fe65
|
||||
- 02b65e6cedcb3d02acb3443d3fa5ae21ff73c857e543d2b788aac675115e3fae0a
|
||||
- 02cc27df449fc866665c6c0d067b52cd9a36fedd00adcbccd332ca9c53e0c0b5fd
|
||||
- 02e41b8a1db521df5da73904f9110d07e28c673bee2ae1c68b103a04c2d0de30d7
|
||||
- 03aa8d8a0b8f9f0c5b36ce37975cfbcab3df75e1f12c501e3ead6d5f49d6e0b6f2 # az
|
||||
- 02a51fd92f9e518f46ad009cc4b1e6f6d2879c33c252e12368ca9a431f4aabcd4f # buky
|
||||
- 02856ed40a58b1e4bec8e1288ef8d5b2b4d8652557c89f03da72cc3988f7b4cf61 # vedi
|
||||
- 0398803ed9999ddcbe8eba0d88805fd6b2ee92553af78ab0e4364446e7cb7229b3 # glagoli
|
||||
- 036f8f0e9c2cd033c5c7bf38f5fc45926950988cecbc6f6d47575781217786166a # dobro
|
||||
- 023790dcc88bef1f500f549342d1ec7a4b7e48912555d93b71ed6561a309142893 # yest
|
||||
- 0244cb3df7b5a81810b8bb9ff2f0442434b5e8ab7c278c09723c07b127ff30e347 # zhivete
|
||||
|
||||
# Network time settings
|
||||
timers:
|
||||
|
|
|
@ -1,19 +1,9 @@
|
|||
include ../Makefile
|
||||
NODE_COUNT?=7
|
||||
NODE_ID?=1
|
||||
NODE_CONFIG=data/config-$(NODE_LETTER)/protocol.privnet.yml
|
||||
NODE_LETTER=$(word $(NODE_ID),$(ALPHABET))
|
||||
NODE_MINPEERS=$(call math,$(NODE_COUNT)>1)
|
||||
|
||||
export NODE_COUNT
|
||||
export NODE_ID
|
||||
export NODE_CONFIG
|
||||
export NODE_LETTER
|
||||
export NODE_MINPEERS
|
||||
|
||||
SHELL=/bin/bash
|
||||
.SHELLFLAGS=-euo pipefail -c
|
||||
|
||||
.PHONY: up down down-fast
|
||||
up: COMPOSE_ARGS=-d
|
||||
up: network-up check-config
|
||||
|
@ -28,10 +18,6 @@ up down:
|
|||
done; \
|
||||
exit $$error
|
||||
|
||||
.PHONY: network-up
|
||||
network-up:
|
||||
-docker network create bringup
|
||||
|
||||
.PHONY: check-config
|
||||
check-config: wallet/az.json
|
||||
$(NEOGO) wallet dump-keys -w $<
|
||||
|
@ -46,9 +32,9 @@ morph: $(NODE_CONFIG) | $(NEOGO)
|
|||
mkdir -p log
|
||||
$(NEOGO) node --config-file $(NODE_CONFIG) --privnet --debug 2>&1 | tee --append log/$@$(NODE_ID)-$(NODE_LETTER)
|
||||
|
||||
$(NODE_CONFIG):
|
||||
$(NODE_CONFIG): protocol.privnet.yml
|
||||
mkdir -p $(dir $@)
|
||||
cp protocol.privnet.yml $@
|
||||
cp $< $@
|
||||
sed -i \
|
||||
-e 's/NODE_COUNT/$(NODE_COUNT)/g' \
|
||||
-e 's/NODE_ID/$(NODE_ID)/g' \
|
||||
|
|
|
@ -4,14 +4,13 @@ ProtocolConfiguration:
|
|||
TimePerBlock: 1s
|
||||
MemPoolSize: 50000
|
||||
StandbyCommittee:
|
||||
# 02b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc2 # frostfs-dev-env node
|
||||
- 020978aaa717296f92c8b4c7821a4577e336c746bad10f12ff34d1a8555b582c99
|
||||
- 020ea94e07f3ef6db2fe6ee3d49c1c48945222263c6e7eaa6c73a368bb6f1ac926
|
||||
- 028ab6992e9a38b974ef792ee040e08d1f81ab86b80811019ddda668d46cda41ab
|
||||
- 028c37315cb0bb6884869d98cf7bcf0ca7de70a42c5cb796f561dd32ed8295fe65
|
||||
- 02b65e6cedcb3d02acb3443d3fa5ae21ff73c857e543d2b788aac675115e3fae0a
|
||||
- 02cc27df449fc866665c6c0d067b52cd9a36fedd00adcbccd332ca9c53e0c0b5fd
|
||||
- 02e41b8a1db521df5da73904f9110d07e28c673bee2ae1c68b103a04c2d0de30d7
|
||||
- 03aa8d8a0b8f9f0c5b36ce37975cfbcab3df75e1f12c501e3ead6d5f49d6e0b6f2 # az
|
||||
- 02a51fd92f9e518f46ad009cc4b1e6f6d2879c33c252e12368ca9a431f4aabcd4f # buky
|
||||
- 02856ed40a58b1e4bec8e1288ef8d5b2b4d8652557c89f03da72cc3988f7b4cf61 # vedi
|
||||
- 0398803ed9999ddcbe8eba0d88805fd6b2ee92553af78ab0e4364446e7cb7229b3 # glagoli
|
||||
- 036f8f0e9c2cd033c5c7bf38f5fc45926950988cecbc6f6d47575781217786166a # dobro
|
||||
- 023790dcc88bef1f500f549342d1ec7a4b7e48912555d93b71ed6561a309142893 # yest
|
||||
- 0244cb3df7b5a81810b8bb9ff2f0442434b5e8ab7c278c09723c07b127ff30e347 # zhivete
|
||||
|
||||
ValidatorsCount: NODE_COUNT
|
||||
VerifyTransactions: true
|
||||
|
|
Loading…
Add table
Reference in a new issue