ftu/README.md
2024-07-06 11:18:33 -04:00

14 lines
2.2 KiB
Markdown

# FTU - the FemtoStar Token Utility
FTU is a command line frontend for fstoken, FemtoStar's implementation of its Credit Token system, allowing users to manually generate, sign, handle, and validate Credit Tokens for use with the FemtoStar Protocol. It is, at present, developed and tested only on GNU/Linux.
FTU and fstoken are under development, and should not expected to be secure or stable yet! They haven't been extensively tested or audited by anyone, they are not guaranteed to follow best practices for BLS or for security in general, and they almost certainly contain bugs! FTU also currently does very little to protect its secret keys on-disk or during usage (including printing them to the console!). fstoken is not currently a feature-complete implementation of the FemtoStar Credit Token system. There is no "stable" version! You have been warned!
To get started, run `get_dependencies.sh` - at present this just clones the blst Git repo, which ftu statically links. Then run `./build` to get
an `ftu` executable.
The FemtoStar Credit Token system is a Chaumian-style token system, based on BLS blind signatures. Tokens are issued for "targets", a generic term for an entity having a set of keys against which tokens can be issued and verified. In the FemtoStar Network's intended application, each satellite has its own corresponding token target, for which the network operator can issue, and the satellite can verify tokens. FTU can be used with arbitrary targets, including user-generated ones, and at present it does not include any "out of the box". You can create your own target named `mytarget` with `./ftu keygen mytarget`, interactively request a token for it with `./ftu ireq mytarget`, sign token requests for it with `./ftu sign mytarget [request]`, and verify tokens for it with `./ftu verify mytarget [token]`.
To use ftu, you will need a directory at your token path containing a directory named `targets`. Set the environment variable FEMTOSTAR_TOKEN_PATH to the path you want to store your targets at. For testing without modifying your environment, you can run `source set_token_path.sh` to set the token path, by default to `~/fstokens` in your home directory, and, if needed, create these directories.
For more information on usage of FTU, run `./ftu help`.