You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rationale
A single-binary Visor that embeds CometBFT, Fendermint, and optional relayer/EVM services simplifies distribution and eliminates the need to manage multiple executables. This approach allows signature checks during unpacking, consolidates node configuration (in visor.toml), and provides a unified CLI for starting, stopping, and logging processes.
Actions
Embed Dependencies with libsui
Bundle CometBFT, Fendermint, and relayer/eth inside the Visor binary.
Unpack them to a secure or temporary location at runtime, performing signature checks.
Implement Initialization
Add visor init to create ~/.mychain/ and generate default configs (visor.toml, CometBFT, Fendermint, Relayer).
Provide key generation if necessary.
Start/Stop & Logging
Add visor start to spawn all embedded binaries (CometBFT, Fendermint, Relayer).
Add visor stop to gracefully terminate processes.
Direct logs to console or ~/.mychain/logs.
Global Configuration
Store global settings (chain ID, run_relayer, etc.) in visor.toml.
I disagree with introducing yet another new thing/layer of complexity here. We need to simplify, not introduce more indirection! Would propose the following approach:
Consolidate everything into a single ipc process, except for the CLI. ipc-cli can be renamed to ipcctl (following the kube and kubectl convention).
Repurpose the existing Fendermint config.toml and turn it into an ipc.toml. Extend it to define consensus engine choice (only one choice available today: cometbft) and the consensus engine parameters.
This ipc.toml is a single configuration that can be used to start any service: consensus, node, eth-api, relayer. So you'd do: ipc run --config=ipc.toml [service_name...].
We can have predefined profiles, e.g. the default profile could be to start everything within a single process. So if you simply do ipc run --config=ipc.toml, it would start all of the above services. And we can define other profiles going forward, and select with --profile.
To manage CometBFT, we will want to use Docker. We can repurpose quite a bit of code from the Materializer to do just that.
Rationale
A single-binary Visor that embeds CometBFT, Fendermint, and optional relayer/EVM services simplifies distribution and eliminates the need to manage multiple executables. This approach allows signature checks during unpacking, consolidates node configuration (in visor.toml), and provides a unified CLI for starting, stopping, and logging processes.
Actions
~/.mychain/
and generate default configs (visor.toml
,CometBFT
,Fendermint
,Relayer
).CometBFT
,Fendermint
,Relayer
).~/.mychain/logs
.visor init
,visor start
,visor stop
, and any specialized subcommands.The text was updated successfully, but these errors were encountered: