hermez-node/README.md
README.mdRaw
1# hermez-node [](https://goreportcard.com/report/github.com/hermeznetwork/hermez-node) [](https://github.com/hermeznetwork/hermez-node/actions?query=workflow%3ATest) [](https://github.com/hermeznetwork/hermez-node/actions?query=workflow%3ALint) [](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=history -e POSTGRES_USER=hermez -e POSTGRES_PASSWORD="$POSTGRES_PASS" -d postgres && sleep 2s && sudo docker exec hermez-db-test psql -a history -U hermez -c "CREATE DATABASE l2;"
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## Lint
24
25- Install [golangci-lint](https://golangci-lint.run)
26- Once installed, to check the lints
27
28```
29golangci-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
30```