Code review for Mainnet (#706)
* Add debug log to test package t * Add comments for test restrictions * Add explicit errors for mainnet * Panic instead of error in case of mainnet during tests * Now panic with illegal network * Validate the compiler flag for mainnet * Made test for unset mainnet explicit * Forgot to use my flag * Linter has troubles with unused field * Add default network id In e2e tests there's no default anymore in go code. So ensure in Makefile. * Fix dumb syntax error * CI needs build with Mainnet * Explicit rebuild only for tests * No more separation of mainnet and testnet builds * Build flags now set in Makefile
This commit is contained in:
parent
fe1a99772b
commit
81c8669518
31
Makefile
31
Makefile
|
@ -10,14 +10,18 @@ ifndef GOPATH
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CGO_CFLAGS=-I/$(JAVA_HOME)/include -I/$(JAVA_HOME)/include/darwin
|
CGO_CFLAGS=-I/$(JAVA_HOME)/include -I/$(JAVA_HOME)/include/darwin
|
||||||
BUILD_TAGS =
|
|
||||||
GOBIN=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))build/bin
|
GOBIN=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))build/bin
|
||||||
|
|
||||||
|
BUILD_TAGS =
|
||||||
|
BUILD_FLAGS := $(shell echo "-ldflags '-X main.buildStamp=`date -u '+%Y-%m-%d.%H:%M:%S'` -X main.gitCommit=$(git rev-parse HEAD)'")
|
||||||
|
|
||||||
GO ?= latest
|
GO ?= latest
|
||||||
XGOVERSION ?= 1.9.2
|
XGOVERSION ?= 1.9.2
|
||||||
XGOIMAGE = statusteam/xgo:$(XGOVERSION)
|
XGOIMAGE = statusteam/xgo:$(XGOVERSION)
|
||||||
XGOIMAGEIOSSIM = statusteam/xgo-ios-simulator:$(XGOVERSION)
|
XGOIMAGEIOSSIM = statusteam/xgo-ios-simulator:$(XGOVERSION)
|
||||||
|
|
||||||
|
networkid ?= StatusChain
|
||||||
|
|
||||||
DOCKER_IMAGE_NAME ?= statusteam/status-go
|
DOCKER_IMAGE_NAME ?= statusteam/status-go
|
||||||
|
|
||||||
DOCKER_TEST_WORKDIR = /go/src/github.com/status-im/status-go/
|
DOCKER_TEST_WORKDIR = /go/src/github.com/status-im/status-go/
|
||||||
|
@ -47,7 +51,7 @@ HELP_FUN = \
|
||||||
}
|
}
|
||||||
|
|
||||||
statusgo: ##@build Build status-go as statusd server
|
statusgo: ##@build Build status-go as statusd server
|
||||||
go build -i -o $(GOBIN)/statusd -v -tags '$(BUILD_TAGS)' $(shell _assets/build/testnet-flags.sh) ./cmd/statusd
|
go build -i -o $(GOBIN)/statusd -v -tags '$(BUILD_TAGS)' $(BUILD_FLAGS) ./cmd/statusd
|
||||||
@echo "Compilation done."
|
@echo "Compilation done."
|
||||||
@echo "Run \"build/bin/statusd -h\" to view available commands."
|
@echo "Run \"build/bin/statusd -h\" to view available commands."
|
||||||
|
|
||||||
|
@ -57,20 +61,20 @@ statusgo-cross: statusgo-android statusgo-ios
|
||||||
|
|
||||||
statusgo-android: xgo ##@cross-compile Build status-go for Android
|
statusgo-android: xgo ##@cross-compile Build status-go for Android
|
||||||
./_assets/patches/patcher -b . -p geth-xgo
|
./_assets/patches/patcher -b . -p geth-xgo
|
||||||
$(GOPATH)/bin/xgo --image $(XGOIMAGE) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=android-16/aar -v -tags '$(BUILD_TAGS)' $(shell _assets/build/testnet-flags.sh) ./lib
|
$(GOPATH)/bin/xgo --image $(XGOIMAGE) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=android-16/aar -v -tags '$(BUILD_TAGS)' $(BUILD_FLAGS) ./lib
|
||||||
./_assets/patches/patcher -b . -p geth-xgo -r
|
./_assets/patches/patcher -b . -p geth-xgo -r
|
||||||
@echo "Android cross compilation done."
|
@echo "Android cross compilation done."
|
||||||
|
|
||||||
statusgo-ios: xgo ##@cross-compile Build status-go for iOS
|
statusgo-ios: xgo ##@cross-compile Build status-go for iOS
|
||||||
./_assets/patches/patcher -b . -p geth-xgo
|
./_assets/patches/patcher -b . -p geth-xgo
|
||||||
$(GOPATH)/bin/xgo --image $(XGOIMAGE) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v -tags '$(BUILD_TAGS)' $(shell _assets/build/testnet-flags.sh) ./lib
|
$(GOPATH)/bin/xgo --image $(XGOIMAGE) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v -tags '$(BUILD_TAGS)' $(BUILD_FLAGS) ./lib
|
||||||
./_assets/patches/patcher -b . -p geth-xgo -r
|
./_assets/patches/patcher -b . -p geth-xgo -r
|
||||||
@echo "iOS framework cross compilation done."
|
@echo "iOS framework cross compilation done."
|
||||||
|
|
||||||
statusgo-ios-simulator: xgo ##@cross-compile Build status-go for iOS Simulator
|
statusgo-ios-simulator: xgo ##@cross-compile Build status-go for iOS Simulator
|
||||||
@docker pull $(XGOIMAGEIOSSIM)
|
@docker pull $(XGOIMAGEIOSSIM)
|
||||||
./_assets/patches/patcher -b . -p geth-xgo
|
./_assets/patches/patcher -b . -p geth-xgo
|
||||||
$(GOPATH)/bin/xgo --image $(XGOIMAGEIOSSIM) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v -tags '$(BUILD_TAGS)' $(shell _assets/build/testnet-flags.sh) ./lib
|
$(GOPATH)/bin/xgo --image $(XGOIMAGEIOSSIM) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v -tags '$(BUILD_TAGS)' $(BUILD_FLAGS) ./lib
|
||||||
./_assets/patches/patcher -b . -p geth-xgo -r
|
./_assets/patches/patcher -b . -p geth-xgo -r
|
||||||
@echo "iOS framework cross compilation done."
|
@echo "iOS framework cross compilation done."
|
||||||
|
|
||||||
|
@ -97,23 +101,6 @@ xgo:
|
||||||
docker pull $(XGOIMAGE)
|
docker pull $(XGOIMAGE)
|
||||||
go get github.com/karalabe/xgo
|
go get github.com/karalabe/xgo
|
||||||
|
|
||||||
statusgo-mainnet:
|
|
||||||
go build -i -o $(GOBIN)/statusgo -v $(shell _assets/build/mainnet-flags.sh) ./cmd/statusd
|
|
||||||
@echo "status go compilation done (mainnet)."
|
|
||||||
@echo "Run \"build/bin/statusgo\" to view available commands"
|
|
||||||
|
|
||||||
statusgo-android-mainnet: xgo
|
|
||||||
$(GOPATH)/bin/xgo --image $(XGOIMAGE) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=android-16/aar -v $(shell _assets/build/mainnet-flags.sh) ./lib
|
|
||||||
@echo "Android cross compilation done (mainnet)."
|
|
||||||
|
|
||||||
statusgo-ios-mainnet: xgo
|
|
||||||
$(GOPATH)/bin/xgo --image $(XGOIMAGE) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v $(shell _assets/build/mainnet-flags.sh) ./lib
|
|
||||||
@echo "iOS framework cross compilation done (mainnet)."
|
|
||||||
|
|
||||||
statusgo-ios-simulator-mainnet: xgo
|
|
||||||
$(GOPATH)/bin/xgo --image $(XGOIMAGEIOSSIM) --go=$(GO) -out statusgo --dest=$(GOBIN) --targets=ios-9.3/framework -v $(shell _assets/build/mainnet-flags.sh) ./lib
|
|
||||||
@echo "iOS framework cross compilation done (mainnet)."
|
|
||||||
|
|
||||||
generate: ##@other Regenerate assets and other auto-generated stuff
|
generate: ##@other Regenerate assets and other auto-generated stuff
|
||||||
cp ./_assets/node_modules/web3/dist/web3.min.js ./static/scripts/web3.js
|
cp ./_assets/node_modules/web3/dist/web3.min.js ./static/scripts/web3.js
|
||||||
go generate ./static
|
go generate ./static
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ ! -f "_assets/build/mainnet-flags.sh" ]; then
|
|
||||||
echo "$0 must be run from the root of the repository."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# set gitCommit when running from a Git checkout.
|
|
||||||
if [ -f ".git/HEAD" ]; then
|
|
||||||
echo "-ldflags '-X github.com/status-im/status-go/geth/params.UseMainnetFlag=true -X main.buildStamp=`date -u '+%Y-%m-%d.%H:%M:%S'` -X main.gitCommit=$(git rev-parse HEAD)'";
|
|
||||||
fi
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ ! -f "_assets/build/testnet-flags.sh" ]; then
|
|
||||||
echo "$0 must be run from the root of the repository."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# set gitCommit when running from a Git checkout.
|
|
||||||
if [ -f ".git/HEAD" ]; then
|
|
||||||
echo "-ldflags '-X github.com/status-im/status-go/geth/params.UseMainnetFlag=false -X main.buildStamp=`date -u '+%Y-%m-%d.%H:%M:%S'` -X main.gitCommit=$(git rev-parse HEAD)'";
|
|
||||||
fi
|
|
|
@ -15,18 +15,6 @@ import (
|
||||||
"github.com/status-im/status-go/static"
|
"github.com/status-im/status-go/static"
|
||||||
)
|
)
|
||||||
|
|
||||||
// default node configuration options
|
|
||||||
var (
|
|
||||||
UseMainnetFlag = "false" // to be overridden via -ldflags '-X geth/params.UseMainnetFlag'
|
|
||||||
UseMainnet = false
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
if UseMainnetFlag == "true" { // set at compile time, here we make sure to set corresponding boolean flag
|
|
||||||
UseMainnet = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// errors
|
// errors
|
||||||
var (
|
var (
|
||||||
ErrMissingDataDir = errors.New("missing required 'DataDir' parameter")
|
ErrMissingDataDir = errors.New("missing required 'DataDir' parameter")
|
||||||
|
@ -436,6 +424,7 @@ func (c *NodeConfig) Save() error {
|
||||||
// updateConfig traverses configuration and adjusts dependent fields
|
// updateConfig traverses configuration and adjusts dependent fields
|
||||||
// (we have a development/production and mobile/full node dependent configurations)
|
// (we have a development/production and mobile/full node dependent configurations)
|
||||||
func (c *NodeConfig) updateConfig() error {
|
func (c *NodeConfig) updateConfig() error {
|
||||||
|
// Update separate configurations.
|
||||||
if err := c.updateGenesisConfig(); err != nil {
|
if err := c.updateGenesisConfig(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
// Package t and its sub-packages are intended to support the testing
|
||||||
|
// of status-go. So the code here is not intended to run on Mainnet.
|
||||||
|
// It only supports Ropsten, Rinkeby, and StatusChain for tests.
|
||||||
|
package t
|
|
@ -164,6 +164,7 @@ func GetRemoteURLFromNetworkID(id int) (url string, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetHeadHashFromNetworkID returns the hash associated with a given network id.
|
// GetHeadHashFromNetworkID returns the hash associated with a given network id.
|
||||||
|
// Mainnet is not supported for tests.
|
||||||
func GetHeadHashFromNetworkID(id int) string {
|
func GetHeadHashFromNetworkID(id int) string {
|
||||||
switch id {
|
switch id {
|
||||||
case params.RinkebyNetworkID:
|
case params.RinkebyNetworkID:
|
||||||
|
@ -173,8 +174,8 @@ func GetHeadHashFromNetworkID(id int) string {
|
||||||
case params.StatusChainNetworkID:
|
case params.StatusChainNetworkID:
|
||||||
return "0xe9d8920a99dc66a9557a87d51f9d14a34ec50aae04298e0f142187427d3c832e"
|
return "0xe9d8920a99dc66a9557a87d51f9d14a34ec50aae04298e0f142187427d3c832e"
|
||||||
}
|
}
|
||||||
|
// Every other ID must break the test.
|
||||||
return ""
|
panic(fmt.Sprintf("invalid network id: %d", id))
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRemoteURL returns the url associated with a given network id.
|
// GetRemoteURL returns the url associated with a given network id.
|
||||||
|
@ -188,7 +189,8 @@ func GetHeadHash() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNetworkID returns appropriate network id for test based on
|
// GetNetworkID returns appropriate network id for test based on
|
||||||
// default or provided -network flag.
|
// default or provided -network flag. Mainnet is not supported for
|
||||||
|
// tests.
|
||||||
func GetNetworkID() int {
|
func GetNetworkID() int {
|
||||||
switch strings.ToLower(*networkSelected) {
|
switch strings.ToLower(*networkSelected) {
|
||||||
case fmt.Sprintf("%d", params.RinkebyNetworkID), "rinkeby":
|
case fmt.Sprintf("%d", params.RinkebyNetworkID), "rinkeby":
|
||||||
|
@ -198,8 +200,8 @@ func GetNetworkID() int {
|
||||||
case fmt.Sprintf("%d", params.StatusChainNetworkID), "statuschain":
|
case fmt.Sprintf("%d", params.StatusChainNetworkID), "statuschain":
|
||||||
return params.StatusChainNetworkID
|
return params.StatusChainNetworkID
|
||||||
}
|
}
|
||||||
|
// Every other selected network must break the test.
|
||||||
return params.StatusChainNetworkID
|
panic(fmt.Sprintf("invalid selected network: %q", *networkSelected))
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAccount1PKFile returns the filename for Account1 keystore based
|
// GetAccount1PKFile returns the filename for Account1 keystore based
|
||||||
|
|
Loading…
Reference in New Issue