Replies: 6 comments 3 replies
-
maybe follow what we already have with miner/worker:
all, let em call them, satellites take the head miners API info as input. the head miner takes care that every satellite in the setup gets the others satellites API info's it needs to operate. |
Beta Was this translation helpful? Give feedback.
-
Here is an outline of the tasks that I think would help alleviate the problems mentioned above: Design for how
|
Beta Was this translation helpful? Give feedback.
-
Another potentially confusing point to consider -- some commands accept a path as an argument e.g.:
The path isn't read by the client, it's read by the server process. The help doesn't necessarily make that clear:
So if you have files you want to import, you could easily do this and get confused:
|
Beta Was this translation helpful? Give feedback.
-
@neondragon this is indeed absolutely confusing. We are certainly considering renaming/refactoring commands so that they convey whether they are talking to a remote process or not - for example if we had In any case having |
Beta Was this translation helpful? Give feedback.
-
to follow known patterns |
Beta Was this translation helpful? Give feedback.
-
I think the binary separation between daemon processes and client commands is the way to go. That way the lotus client commands binary can be really light, as all it's doing is offering a CLI that ends up invoking JSON-RPC commands on the appropriate process. There is no reason that binary should include all of lotus. To configure the processes it can talk to, we would have a In the future, we could add fancier "discovery" options like mDNS, Consul registries, and more. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Problem statement
Since Lotus v1.11, Lotus can be run in a variety of configurations, for example:
It is getting increasingly difficult to manage various deployments with the existing configuration params and values, such as: LOTUS_MINER_PATH, MINER_API_INFO, MARKETS_API_INFO, etc.
lotus-miner
binary, not only starts a given lotus-miner process (markets, or miner subsystems), but also acts as a CLI tool to inspect processes. Somelotus-miner
commands target a specific process (i.e. a markets process), while others target multiple processes and aggregate the information from all of them (such aslotus-miner info
).Due to this complexity, miners/users often have a hard time configuring their deployments and getting results out of their interaction with their deployment, for example:
#7044
#7072
#6869
This is only going to get worse, once we introduce more components to Lotus, such as multiple markets nodes, or indexer services.
Currently Lotus can be configured at a few different places, which makes it difficult to report bugs accurately - we support config files, command line flags, as well as environment variables. Multiple times during the development/test process for Lotus v1.11 we’ve had to request additional information from bug reporters, just so that we understand their deployment and reproduce the issues they’ve had, which is not optimal.
Therefore I am starting a discussion on how to refactor the current codebase in order to lay the foundations for ease of management and operations of future Lotus deployments, where we have many more process types (mining/proving subsystems, markets subsystems, indexing subsystems, etc.)
Requirements
Ideas / Areas for improvement
lotusctl
- build tooling to allow users/miners to easily report issues and include full information about their configuration and deployment setupThe idea for this discussion is to collect pain points / more requirements and ideas for Lotus improvements, and then propose a development plan.
Beta Was this translation helpful? Give feedback.
All reactions