mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-07 03:16:45 +01:00
a79cb4edfdc99ff0d9e46f509cbaba6a214ff92f
- Node - Load Coordinator Fee Account from config - Sign the AccountCreationMsg to generate the AccountCreationAuth - Resolve #465 - Wait for synchronizer termination before stopping coordinator to avoid getting stuck when closing in the following case: - The coordinator stops reading the synchronizer msg channel, and the node gets stuck sending a message to that channel. - Common - Move account creation auth signature code to common. - Update RollupConstInputSHAConstantBytes - Coordinator - Set batch status in the debug file - Propagate SCVariables on reorg - Pipeline: Get SCVariables updates - Resolve #457 - Fix off by 1 error in Pipeline.shouldL1L2Batch() (which shouldn't have caused any problem, but it was not right) - KVDB - Delete future checkpoints after reset - In `ResetFromSynchronizer`, remove all checkpoints first, and follow the same logic as `reset()`. - Cli - Add command to generate a BabyJubJub key pair (to be used for the Coordinator Fee Account) - Node - Adjust example config `Coordinator.L1BatchTimeoutPerc` to avoid missing the L1Batch deadline with the following setup: - a block is mined every 2 seconds - single proof server that takes 2 seconds to calculate a proof - TxProcessor - Close temporary pebble used for the exit tree after usage. - Resolve #463
hermez-node

Go implementation of the Hermez node.
Test
- First run a docker instance of the PostgresSQL (where
yourpasswordhereshould be your password)
POSTGRES_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
- Then, run the tests with the password as env var
POSTGRES_PASS=yourpasswordhere go test -p 1 ./...
NOTE: -p 1 forces execution of package test in serial. Otherwise they may be
executed in paralel and the test may find unexpected entries in the SQL
databse because it's shared among all tests.
- 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 go test -timeout 0 ./api -p 1 -count 1 -v
Lint
- Install golangci-lint
- Once installed, to check the lints
golangci-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
Languages
Go
98.6%
PLpgSQL
1.1%
Makefile
0.2%