mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-06 19:06:42 +01:00
Update coordinator to work better under real net
- cli / node
- Update handler of SIGINT so that after 3 SIGINTs, the process terminates
unconditionally
- coordinator
- Store stats without pointer
- In all functions that send a variable via channel, check for context done
to avoid deadlock (due to no process reading from the channel, which has
no queue) when the node is stopped.
- Abstract `canForge` so that it can be used outside of the `Coordinator`
- In `canForge` check the blockNumber in current and next slot.
- Update tests due to smart contract changes in slot handling, and minimum
bid defaults
- TxManager
- Add consts, vars and stats to allow evaluating `canForge`
- Add `canForge` method (not used yet)
- Store batch and nonces status (last success and last pending)
- Track nonces internally instead of relying on the ethereum node (this
is required to work with ganache when there are pending txs)
- Handle the (common) case of the receipt not being found after the tx
is sent.
- Don't start the main loop until we get an initial messae fo the stats
and vars (so that in the loop the stats and vars are set to
synchronizer values)
- eth / ethereum client
- Add necessary methods to create the auth object for transactions manually
so that we can set the nonce, gas price, gas limit, etc manually
- Update `RollupForgeBatch` to take an auth object as input (so that the
coordinator can set parameters manually)
- synchronizer
- In stats, add `NextSlot`
This commit is contained in:
1
cli/node/.gitignore
vendored
1
cli/node/.gitignore
vendored
@@ -1 +1,2 @@
|
||||
cfg.example.secret.toml
|
||||
cfg.toml
|
||||
|
||||
@@ -39,12 +39,12 @@ TokenHEZ = "0x5D94e3e7aeC542aB0F9129B9a7BAdeb5B3Ca0f77"
|
||||
TokenHEZName = "Hermez Network Token"
|
||||
|
||||
[Coordinator]
|
||||
# ForgerAddress = "0x05c23b938a85ab26A36E6314a0D02080E9ca6BeD" # Non-Boot Coordinator
|
||||
ForgerAddress = "0x05c23b938a85ab26A36E6314a0D02080E9ca6BeD" # Non-Boot Coordinator
|
||||
# ForgerAddressPrivateKey = "0x30f5fddb34cd4166adb2c6003fa6b18f380fd2341376be42cf1c7937004ac7a3"
|
||||
ForgerAddress = "0xb4124ceb3451635dacedd11767f004d8a28c6ee7" # Boot Coordinator
|
||||
# ForgerAddress = "0xb4124ceb3451635dacedd11767f004d8a28c6ee7" # Boot Coordinator
|
||||
# ForgerAddressPrivateKey = "0xa8a54b2d8197bc0b19bb8a084031be71835580a01e70a45a13babd16c9bc1563"
|
||||
ConfirmBlocks = 10
|
||||
L1BatchTimeoutPerc = 0.4
|
||||
L1BatchTimeoutPerc = 0.999
|
||||
ProofServerPollInterval = "1s"
|
||||
ForgeRetryInterval = "500ms"
|
||||
SyncRetryInterval = "1s"
|
||||
@@ -82,7 +82,7 @@ ReceiptTimeout = "60s"
|
||||
ReceiptLoopInterval = "500ms"
|
||||
CheckLoopInterval = "500ms"
|
||||
Attempts = 4
|
||||
AttemptsDelay = "200ms"
|
||||
AttemptsDelay = "500ms"
|
||||
CallGasLimit = 300000
|
||||
GasPriceDiv = 100
|
||||
|
||||
|
||||
@@ -119,10 +119,17 @@ func cmdRun(c *cli.Context) error {
|
||||
// catch ^C to send the stop signal
|
||||
ossig := make(chan os.Signal, 1)
|
||||
signal.Notify(ossig, os.Interrupt)
|
||||
const forceStopCount = 3
|
||||
go func() {
|
||||
n := 0
|
||||
for sig := range ossig {
|
||||
if sig == os.Interrupt {
|
||||
log.Info("Received Interrupt Signal")
|
||||
stopCh <- nil
|
||||
n++
|
||||
if n == forceStopCount {
|
||||
log.Fatalf("Received %v Interrupt Signals", forceStopCount)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
Reference in New Issue
Block a user