Skip to content

Commit

Permalink
Merge pull request #136 from Kifen/refactor/node-visor
Browse files Browse the repository at this point in the history
Rename node to visor
  • Loading branch information
jdknives authored Feb 3, 2020
2 parents d26feb7 + e7b5d76 commit bdc774e
Show file tree
Hide file tree
Showing 76 changed files with 781 additions and 779 deletions.
30 changes: 15 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ stop: ## Stop running skywire-visor on host
-bash -c "kill $$(ps aux |grep '[s]kywire-visor' |awk '{print $$2}')"

config: ## Generate skywire.json
-./skywire-cli node gen-config -o ./skywire.json -r
-./skywire-cli visor gen-config -o ./skywire.json -r

clean: ## Clean project: remove created binaries and apps
-rm -rf ./apps
Expand All @@ -53,8 +53,8 @@ install: ## Install `skywire-visor`, `skywire-cli`, `hypervisor`, `dmsgpty`
${OPTS} go install ${BUILD_OPTS} ./cmd/skywire-visor ./cmd/skywire-cli ./cmd/setup-node ./cmd/hypervisor ./cmd/dmsgpty

rerun: stop
${OPTS} go build ${BUILD_OPTS} -race -o ./skywire-visor ./cmd/skywire-visor
-./skywire-cli node gen-config -o ./skywire.json -r
${OPTS} go build -race -o ./skywire-visor ./cmd/skywire-visor
-./skywire-cli visor gen-config -o ./skywire.json -r
perl -pi -e 's/localhost//g' ./skywire.json
./skywire-visor skywire.json

Expand Down Expand Up @@ -135,21 +135,21 @@ docker-network: ## Create docker network ${DOCKER_NETWORK}
-docker network create ${DOCKER_NETWORK}

docker-apps: ## Build apps binaries for dockerized skywire-visor. `go build` with ${DOCKER_OPTS}
-${DOCKER_OPTS} go build ${BUILD_OPTS} -race -o ./node/apps/skychat.v1.0 ./cmd/apps/skychat
-${DOCKER_OPTS} go build ${BUILD_OPTS} -race -o ./node/apps/helloworld.v1.0 ./cmd/apps/helloworld
-${DOCKER_OPTS} go build ${BUILD_OPTS} -race -o ./node/apps/skysocks.v1.0 ./cmd/apps/skysocks
-${DOCKER_OPTS} go build ${BUILD_OPTS} -race -o ./node/apps/skysocks-client.v1.0 ./cmd/apps/skysocks-client
-${DOCKER_OPTS} go build -race -o ./visor/apps/skychat.v1.0 ./cmd/apps/skychat
-${DOCKER_OPTS} go build -race -o ./visor/apps/helloworld.v1.0 ./cmd/apps/helloworld
-${DOCKER_OPTS} go build -race -o ./visor/apps/skysocks.v1.0 ./cmd/apps/skysocks
-${DOCKER_OPTS} go build -race -o ./visor/apps/skysocks-client.v1.0 ./cmd/apps/skysocks-client

docker-bin: ## Build `skywire-visor`, `skywire-cli`, `hypervisor`. `go build` with ${DOCKER_OPTS}
${DOCKER_OPTS} go build ${BUILD_OPTS} -race -o ./node/skywire-visor ./cmd/skywire-visor
${DOCKER_OPTS} go build -race -o ./visor/skywire-visor ./cmd/skywire-visor

docker-volume: dep docker-apps docker-bin bin ## Prepare docker volume for dockerized skywire-visor
-${DOCKER_OPTS} go build ${BUILD_OPTS} -o ./docker/skywire-services/setup-node ./cmd/setup-node
-./skywire-cli node gen-config -o ./skywire-visor/skywire.json -r
perl -pi -e 's/localhost//g' ./node/skywire.json # To make node accessible from outside with skywire-cli
-${DOCKER_OPTS} go build -o ./docker/skywire-services/setup-node ./cmd/setup-node
-./skywire-cli visor gen-config -o ./skywire-visor/skywire.json -r
perl -pi -e 's/localhost//g' ./visor/skywire.json # To make visor accessible from outside with skywire-cli

docker-run: docker-clean docker-image docker-network docker-volume ## Run dockerized skywire-visor ${DOCKER_NODE} in image ${DOCKER_IMAGE} with network ${DOCKER_NETWORK}
docker run -it -v $(shell pwd)/node:/sky --network=${DOCKER_NETWORK} \
docker run -it -v $(shell pwd)/visor:/sky --network=${DOCKER_NETWORK} \
--name=${DOCKER_NODE} ${DOCKER_IMAGE} bash -c "cd /sky && ./skywire-visor skywire.json"

docker-setup-node: ## Runs setup-node in detached state in ${DOCKER_NETWORK}
Expand All @@ -163,9 +163,9 @@ docker-stop: ## Stop running dockerized skywire-visor ${DOCKER_NODE}
-docker container stop ${DOCKER_NODE}

docker-rerun: docker-stop
-./skywire-cli gen-config -o ./node/skywire.json -r
perl -pi -e 's/localhost//g' ./node/skywire.json # To make node accessible from outside with skywire-cli
${DOCKER_OPTS} go build ${BUILD_OPTS} -race -o ./node/skywire-visor ./cmd/skywire-visor
-./skywire-cli gen-config -o ./visor/skywire.json -r
perl -pi -e 's/localhost//g' ./visor/skywire.json # To make visor accessible from outside with skywire-cli
${DOCKER_OPTS} go build -race -o ./visor/skywire-visor ./cmd/skywire-visor
docker container start -i ${DOCKER_NODE}

run-syslog: ## Run syslog-ng in docker. Logs are mounted under /tmp/syslog
Expand Down
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ The configuration file provides the configuration for `skywire-visor`. It is a t
You can generate a default configuration file by running:

```bash
$ skywire-cli node gen-config
$ skywire-cli visor gen-config
```

Additional options are displayed when `skywire-cli node gen-config -h` is run.
Additional options are displayed when `skywire-cli visor gen-config -h` is run.

We will cover certain fields of the configuration file below.

Expand Down Expand Up @@ -138,7 +138,7 @@ For `dmsgpty` usage, refer to [#run-dmsgpty](#run-dmsgpty).

### Run `skywire-visor`

`skywire-visor` hosts apps, proxies app's requests to remote nodes and exposes communication API that apps can use to implement communication protocols. App binaries are spawned by the node, communication between node and app is performed via unix pipes provided on app startup.
`skywire-visor` hosts apps, proxies app's requests to remote visors and exposes communication API that apps can use to implement communication protocols. App binaries are spawned by the visor, communication between visor and app is performed via unix pipes provided on app startup.

Note that `skywire-visor` requires a valid configuration file in order to execute.

Expand Down Expand Up @@ -195,17 +195,17 @@ Transports can be established via the `skywire-cli`.

```bash
# Establish transport to `0276ad1c5e77d7945ad6343a3c36a8014f463653b3375b6e02ebeaa3a21d89e881`.
$ skywire-cli node add-tp 0276ad1c5e77d7945ad6343a3c36a8014f463653b3375b6e02ebeaa3a21d89e881
$ skywire-cli visor add-tp 0276ad1c5e77d7945ad6343a3c36a8014f463653b3375b6e02ebeaa3a21d89e881

# List established transports.
$ skywire-cli node ls-tp
$ skywire-cli visor ls-tp
```

## App programming API

App is a generic binary that can be executed by the node. On app
startup node will open pair of unix pipes that will be used for
communication between app and node. `app` packages exposes
App is a generic binary that can be executed by the visor. On app
startup visor will open pair of unix pipes that will be used for
communication between app and visor. `app` packages exposes
communication API over the pipe.

```golang
Expand All @@ -214,13 +214,13 @@ communication API over the pipe.
// Setup setups app using default pair of pipes
func Setup(config *Config) (*App, error) {}

// Accept awaits for incoming loop confirmation request from a Node and
// Accept awaits for incoming loop confirmation request from a Visor and
// returns net.Conn for a received loop.
func (app *App) Accept() (net.Conn, error) {}

// Addr implements net.Addr for App connections.
&Addr{PubKey: pk, Port: 12}
// Dial sends create loop request to a Node and returns net.Conn for created loop.
// Dial sends create loop request to a Visor and returns net.Conn for created loop.
func (app *App) Dial(raddr *Addr) (net.Conn, error) {}

// Close implements io.Closer for App.
Expand Down Expand Up @@ -277,7 +277,7 @@ E.g.
$ make run_syslog ## run syslog-ng in docker container with logs mounted to /tmp/syslog
$ export SYSLOG_OPTS='--syslog localhost:514'
$ make integration-run-messaging ## or other integration-run-* goal
$ sudo cat /tmp/syslog/messages ## collected logs from NodeA, NodeB, NodeC instances
$ sudo cat /tmp/syslog/messages ## collected logs from VisorA, VisorB, VisorC instances
```

## Running skywire in docker containers
Expand Down Expand Up @@ -448,10 +448,10 @@ Instead of skywire-runner you can use:
#### 5. Env-vars for development-/testing- purposes

```bash
export SW_NODE_A=127.0.0.1
export SW_NODE_A_PK=$(cat ./skywire-config.json|grep static_public_key |cut -d ':' -f2 |tr -d '"'','' ')
export SW_NODE_B=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' SKY01)
export SW_NODE_B_PK=$(cat ./node/skywire-config.json|grep static_public_key |cut -d ':' -f2 |tr -d '"'','' ')
export SW_VISOR_A=127.0.0.1
export SW_VISOR_A_PK=$(cat ./skywire-config.json|grep static_public_key |cut -d ':' -f2 |tr -d '"'','' ')
export SW_VISOR_B=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' SKY01)
export SW_VISOR_B_PK=$(cat ./visor/skywire-config.json|grep static_public_key |cut -d ':' -f2 |tr -d '"'','' ')
```

#### 6. "Hello-Mike-Hello-Joe" test
Expand All @@ -463,13 +463,13 @@ Idea of test from Erlang classics: <https://youtu.be/uKfKtXYLG78?t=120>
$ make run
$ make docker-run
# Open in browser skychat application
$ firefox http://$SW_NODE_B:8000 &
$ firefox http://$SW_VISOR_B:8000 &
# add transport
$ ./skywire-cli add-transport $SW_NODE_B_PK
$ ./skywire-cli add-transport $SW_VISOR_B_PK
# "Hello Mike!" - "Hello Joe!" - "System is working!"
$ curl --data {'"recipient":"'$SW_NODE_A_PK'", "message":"Hello Mike!"}' -X POST http://$SW_NODE_B:8000/message
$ curl --data {'"recipient":"'$SW_NODE_B_PK'", "message":"Hello Joe!"}' -X POST http://$SW_NODE_A:8000/message
$ curl --data {'"recipient":"'$SW_NODE_A_PK'", "message":"System is working!"}' -X POST http://$SW_NODE_B:8000/message
$ curl --data {'"recipient":"'$SW_VISOR_A_PK'", "message":"Hello Mike!"}' -X POST http://$SW_VISOR_B:8000/message
$ curl --data {'"recipient":"'$SW_VISOR_B_PK'", "message":"Hello Joe!"}' -X POST http://$SW_VISOR_A:8000/message
$ curl --data {'"recipient":"'$SW_VISOR_A_PK'", "message":"System is working!"}' -X POST http://$SW_VISOR_B:8000/message
# Teardown
$ make stop && make docker-stop
```
30 changes: 15 additions & 15 deletions ci_scripts/run-pkg-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,22 @@ go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/app -run TestProtocol >> ./logs/pkg/TestProtocol.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/app -run TestProtocolParallel >> ./logs/pkg/TestProtocolParallel.log

go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/hypervisor -run TestNewNode >> ./logs/pkg/TestNewNode.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/hypervisor -run TestNewVisor >> ./logs/pkg/TestNewVisor.log

go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestDmsgDiscovery >> ./logs/pkg/TestDmsgDiscovery.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestTransportDiscovery >> ./logs/pkg/TestTransportDiscovery.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestTransportLogStore >> ./logs/pkg/TestTransportLogStore.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestRoutingTable >> ./logs/pkg/TestRoutingTable.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestAppsConfig >> ./logs/pkg/TestAppsConfig.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestAppsDir >> ./logs/pkg/TestAppsDir.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestLocalDir >> ./logs/pkg/TestLocalDir.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestNewNode >> ./logs/pkg/TestNewNode.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestNodeStartClose >> ./logs/pkg/TestNodeStartClose.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestNodeSpawnApp >> ./logs/pkg/TestNodeSpawnApp.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestNodeSpawnAppValidations >> ./logs/pkg/TestNodeSpawnAppValidations.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestListApps >> ./logs/pkg/TestListApps.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestStartStopApp >> ./logs/pkg/TestStartStopApp.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/node -run TestRPC >> ./logs/pkg/TestRPC.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestDmsgDiscovery >> ./logs/pkg/TestDmsgDiscovery.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestTransportDiscovery >> ./logs/pkg/TestTransportDiscovery.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestTransportLogStore >> ./logs/pkg/TestTransportLogStore.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestRoutingTable >> ./logs/pkg/TestRoutingTable.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestAppsConfig >> ./logs/pkg/TestAppsConfig.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestAppsDir >> ./logs/pkg/TestAppsDir.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestLocalDir >> ./logs/pkg/TestLocalDir.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestNewVisor >> ./logs/pkg/TestNewVisor.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestVisorStartClose >> ./logs/pkg/TestVisorStartClose.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestVisorSpawnApp >> ./logs/pkg/TestVisorSpawnApp.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestVisorSpawnAppValidations >> ./logs/pkg/TestVisorSpawnAppValidations.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestListApps >> ./logs/pkg/TestListApps.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestStartStopApp >> ./logs/pkg/TestStartStopApp.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/visor -run TestRPC >> ./logs/pkg/TestRPC.log

go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/router -run TestAppManagerInit >> ./logs/pkg/TestAppManagerInit.log
go clean -testcache &> /dev/null || go test -race -tags no_ci -cover -timeout=5m github.com/SkycoinProject/skywire-mainnet/pkg/router -run TestAppManagerSetupLoop >> ./logs/pkg/TestAppManagerSetupLoop.log
Expand Down
4 changes: 2 additions & 2 deletions cmd/apps/helloworld/helloworld.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func main() {

log.Printf("Message from %s: %s\n", conn.RemoteAddr().String(), string(buf))
if _, err := conn.Write([]byte("pong")); err != nil {
log.Printf("Failed to write to a remote node: %v\n", err)
log.Printf("Failed to write to a remote visor: %v\n", err)
// TODO: close conn
}
}()
Expand All @@ -77,7 +77,7 @@ func main() {
}

if _, err := conn.Write([]byte("ping")); err != nil {
log.Fatalf("Failed to write to a remote node: %v\n", err)
log.Fatalf("Failed to write to a remote visor: %v\n", err)
}

buf := make([]byte, 4)
Expand Down
4 changes: 2 additions & 2 deletions cmd/apps/skychat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Chat only supports one WEB client user at a time.

## Local setup

Create 2 node config files:
Create 2 visor config files:

`skywire1.json`

Expand Down Expand Up @@ -41,7 +41,7 @@ Create 2 node config files:
}
```

Compile binaries and start 2 nodes:
Compile binaries and start 2 visors:

```bash
$ go build -o apps/skychat.v1.0 ./cmd/apps/skychat
Expand Down
2 changes: 1 addition & 1 deletion cmd/apps/skysocks-client/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

`skysocks-client` app implements client for the SOCKS5 app.

It opens persistent `skywire` connection to the configured remote node
It opens persistent `skywire` connection to the configured remote visor
and local TCP port, all incoming TCP traffics is forwarded to the
~skywire~ connection.

Expand Down
6 changes: 3 additions & 3 deletions cmd/apps/skysocks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ If none are provided, the server does not require authentication.

## Local setup

Create 2 node config files:
Create 2 visor config files:

- `skywire1.json`

Expand Down Expand Up @@ -44,7 +44,7 @@ Create 2 node config files:
}
```

Compile binaries and start 2 nodes:
Compile binaries and start 2 visors:

```sh
$ go build -o apps/skysocks.v1.0 ./cmd/apps/skysocks
Expand All @@ -53,7 +53,7 @@ $ ./skywire-visor skywire1.json
$ ./skywire-visor skywire2.json
```

You should be able to connect to a secondary node via `curl`:
You should be able to connect to a secondary visor via `curl`:

```sh
$ curl -v -x socks5://123456:@localhost:1080 https://api.ipify.org
Expand Down
2 changes: 1 addition & 1 deletion cmd/hypervisor/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Hypervisor

Hypervisor exposes node management operations via web API.
Hypervisor exposes visor management operations via web API.

**Generate config file:**

Expand Down
18 changes: 9 additions & 9 deletions cmd/hypervisor/commands/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var (
configPath string
mock bool
mockEnableAuth bool
mockNodes int
mockVisors int
mockMaxTps int
mockMaxRoutes int
)
Expand All @@ -35,15 +35,15 @@ func init() {
rootCmd.Flags().StringVarP(&configPath, "config", "c", "./hypervisor-config.json", "hypervisor config path")
rootCmd.Flags().BoolVarP(&mock, "mock", "m", false, "whether to run hypervisor with mock data")
rootCmd.Flags().BoolVar(&mockEnableAuth, "mock-enable-auth", false, "whether to enable user management in mock mode")
rootCmd.Flags().IntVar(&mockNodes, "mock-nodes", 5, "number of app nodes to have in mock mode")
rootCmd.Flags().IntVar(&mockMaxTps, "mock-max-tps", 10, "max number of transports per mock app node")
rootCmd.Flags().IntVar(&mockMaxRoutes, "mock-max-routes", 30, "max number of routes per node")
rootCmd.Flags().IntVar(&mockVisors, "mock-visors", 5, "number of app visors to have in mock mode")
rootCmd.Flags().IntVar(&mockMaxTps, "mock-max-tps", 10, "max number of transports per mock app visor")
rootCmd.Flags().IntVar(&mockMaxRoutes, "mock-max-routes", 30, "max number of routes per visor")
}

// nolint:gochecknoglobals
var rootCmd = &cobra.Command{
Use: "hypervisor",
Short: "Manages Skywire App Nodes",
Short: "Manages Skywire Visors",
Run: func(_ *cobra.Command, args []string) {
if _, err := buildinfo.Get().WriteTo(os.Stdout); err != nil {
log.Printf("Failed to output build info: %v", err)
Expand Down Expand Up @@ -93,10 +93,10 @@ var rootCmd = &cobra.Command{

if mock {
err := m.AddMockData(hypervisor.MockConfig{
Nodes: mockNodes,
MaxTpsPerNode: mockMaxTps,
MaxRoutesPerNode: mockMaxRoutes,
EnableAuth: mockEnableAuth,
Visors: mockVisors,
MaxTpsPerVisor: mockMaxTps,
MaxRoutesPerVisor: mockMaxRoutes,
EnableAuth: mockEnableAuth,
})
if err != nil {
log.Fatalln("Failed to add mock data:", err)
Expand Down
Loading

0 comments on commit bdc774e

Please sign in to comment.