arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/README.md
README.mdRaw
 1# hermez-node [![Go Report Card](https://goreportcard.com/badge/github.com/hermeznetwork/hermez-node)](https://goreportcard.com/report/github.com/hermeznetwork/hermez-node) [![Test Status](https://github.com/hermeznetwork/hermez-node/workflows/Test/badge.svg)](https://github.com/hermeznetwork/hermez-node/actions?query=workflow%3ATest) [![Lint Status](https://github.com/hermeznetwork/hermez-node/workflows/Lint/badge.svg)](https://github.com/hermeznetwork/hermez-node/actions?query=workflow%3ALint) [![GoDoc](https://godoc.org/github.com/hermeznetwork/hermez-node?status.svg)](https://godoc.org/github.com/hermeznetwork/hermez-node)
 2
 3Go implementation of the Hermez node.
 4
 5## Test
 6
 7- First run a docker instance of the PostgresSQL (where `yourpasswordhere` should be your password)
 8
 9```
10POSTGRES_PASS=yourpasswordhere; sudo docker run --rm --name hermez-db-test -p 5432:5432 -e POSTGRES_DB=hermez -e POSTGRES_USER=hermez -e POSTGRES_PASSWORD="$POSTGRES_PASS" -d postgres
11```
12
13- Then, run the tests with the password as env var
14
15```
16POSTGRES_PASS=yourpasswordhere ETHCLIENT_DIAL_URL=yourethereumurlhere go test -p 1 ./...
17```
18
19NOTE: `-p 1` forces execution of package test in serial.  Otherwise they may be
20executed in paralel and the test may find unexpected entries in the SQL
21databse because it's shared among all tests.
22
23- There is an extra temporal option that allows to run the API server through the Go tests. This should be removed once the API can be properly initialized, with data from the synchronizer and so on. To use this, run `FAKE_SERVER=yes POSTGRES_PASS=yourpasswordhere ETHCLIENT_DIAL_URL=yourethereumurlhere go test -timeout 0  ./api -p 1 -count 1 -v`
24
25## Lint
26
27- Install [golangci-lint](https://golangci-lint.run)
28- Once installed, to check the lints
29
30```
31golangci-lint run --timeout=5m -E whitespace -E gosec -E gci -E misspell -E gomnd -E gofmt -E goimports -E golint --exclude-use-default=false --max-same-issues 0
32```