kinode-dao/kit

feature: kit run-node

Closed this issue · 2 comments

Is your feature request related to a problem? Please describe.
Kit for fake nodes is great, easy bootup.

Real nodes however, whether run from binary or runtime paths, need the lengthy cargo command in the main runtime repo.

Describe the solution you'd like
I'd like to do something like

kit r second -p 8082

Where "second" is a home folder or maybe even a cached name in kinode-kit-cache.

Imagine booting/running several nodes with this and tmux.

Additional context
We could use much of the flags used in kit boot-fake-node

Usage: kit boot-fake-node [OPTIONS]

Options:
  -r, --runtime-path <PATH>
          Path to Kinode core repo or runtime binary (overrides --version)
  -v, --version <VERSION>
          Version of Kinode binary to use (overridden by --runtime-path) [default: latest] [possible values: latest, v0.7.2, v0.7.1, v0.7.0]
  -p, --port <NODE_PORT>
          The port to run the fake node on [default: 8080]
  -h, --home <HOME>
          Where to place the home directory for the fake node [default: /tmp/kinode-fake-node]
  -f, --fake-node-name <NODE_NAME>
          Name for fake node [default: fake.dev]
  -c, --fakechain-port <FAKECHAIN_PORT>
          The port to run the fakechain on (or to connect to) [default: 8545]
      --rpc <RPC_ENDPOINT>
          Ethereum RPC endpoint (wss://)
      --persist
          If set, do not delete node home after exit
      --password <PASSWORD>
          Password to login [default: secret]
      --release
          If set and given --runtime-path, compile release build [default: debug build]
      --verbosity <VERBOSITY>
          Verbosity of node: higher is more verbose [default: 0]
      --help
          Print help
          

My initial reaction was negative because the scope of kit has been -- and will continue to be, I think -- for developers.

But, thinking about it more, this is a nice UX win in some ways.

Current UX to boot a real node:

  1. Navigate to github
  2. Download binary
  3. Extract
  4. Move it somewhere
  5. Run it

UX with kit boot-real-node:

  1. Run kit boot-real-node

We've already built out the infra to fetch releases etc from remote, so why not do it for real as well as for fake nodes? Def makes a certain amount of sense 🤔