The current implementation of CLI does not have a Rust native setup command.
Impact
We rely on the wrapped CLI for this command. Let's re-write this! 🦀
We also have a bit of a bootstrapping problem. To use the wrapped CLI, a user must already have the existing CLI installed and available on their path.
Solution
Rewrite the fission setup command in Rust.
Tasks will at least include:
Detect the user's OS and Arch (for example, ARM64 vs AMD64)
Add Windows support
Download the existing CLI and Kubo binaries
Generate key pairs for user
Agent key
ed25519 key pair (currently named machine key)
Sharing key
Currently known as exchange key
Used for compatibility with Webnative shared private files?
Ask the user if they have an existing account (skip prompt on first version)
Prompt the user to create an account with username and email
Do we still need email?
Create IPFS configs and CLI configs
IPFS config
Add bootstrap peers
More?
Considerations
We should already have the ability to communicate with local IPFS daemon using the HTTP RPC API.
Summary
Problem
The current implementation of CLI does not have a Rust native
setup
command.Impact
We rely on the wrapped CLI for this command. Let's re-write this! 🦀
We also have a bit of a bootstrapping problem. To use the wrapped CLI, a user must already have the existing CLI installed and available on their path.
Solution
Rewrite the
fission setup
command in Rust.Tasks will at least include:
ed25519
key pair (currently named machine key)Considerations
We should already have the ability to communicate with local IPFS daemon using the HTTP RPC API.