You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
458 B

Allow serving API only via new cli command - Add new command to the cli/node: `serveapi` that alows serving the API just by connecting to the PostgreSQL database. The mode flag should me passed in order to select whether we are connecting to a synchronizer database or a coordinator database. If `coord` is chosen as mode, the coordinator endpoints can be activated in order to allow inserting l2txs and authorizations into the L2DB. Summary of the implementation details - New SQL table with 3 columns (plus `item_id` pk). The table only contains a single row with `item_id` = 1. Columns: - state: historydb.StateAPI in JSON. This is the struct that is served via the `/state` API endpoint. The node will periodically update this struct and store it int he DB. The api server will query it from the DB to serve it. - config: historydb.NodeConfig in JSON. This struct contains node configuration parameters that the API needs to be aware of. It's updated once every time the node starts. - constants: historydb.Constants in JSON. This struct contains all the hermez network constants gathered via the ethereum client by the node. It's written once every time the node starts. - The HistoryDB contains methods to get and update each one of these columns individually. - The HistoryDB contains all methods that query the DB and prepare objects that will appear in the StateAPI endpoint. - The configuration used in for the `serveapi` cli/node command is defined in `config.APIServer`, and is a subset of `node.Config` in order to allow reusing the same configuration file of the node if desired. - A new object is introduced in the api: `StateAPIUpdater`, which contains all the necessary information to update the StateAPI in the DB periodically by the node. - Moved the types `SCConsts`, `SCVariables` and `SCVariablesPtr` from `syncrhonizer` to `common` for convenience.
3 years ago
  1. [API]
  2. Address = "localhost:8386"
  3. Explorer = true
  4. MaxSQLConnections = 10
  5. SQLConnectionTimeout = "2s"
  6. [PostgreSQL]
  7. PortWrite = 5432
  8. HostWrite = "localhost"
  9. UserWrite = "hermez"
  10. PasswordWrite = "yourpasswordhere"
  11. NameWrite = "hermez"
  12. [Coordinator.L2DB]
  13. SafetyPeriod = 10
  14. MaxTxs = 512
  15. TTL = "24h"
  16. PurgeBatchDelay = 10
  17. InvalidateBatchDelay = 20
  18. PurgeBlockDelay = 10
  19. InvalidateBlockDelay = 20
  20. [Coordinator.API]
  21. Coordinator = true