FireFly CLI
The FireFly CLI can be used to create local FireFly stacks
for offline development of blockchain apps. This allows developers to rapidly iterate on their idea without
needing to set up a bunch of infrastructure before they can write the first line of code.
Prerequisites
In order to run the FireFly CLI, you will need a few things installed on your dev machine:
Install the CLI
The easiest way to get up and running with the FireFly CLI is to download a pre-compiled binary of the latest release.
Download the package for your OS
Go to the latest release page and download the package for your OS and CPU architecture.
Extract the binary and move it to /usr/local/bin
Assuming you downloaded the package from GitHub into you Downloads
directory, run the following command:
sudo tar -zxf ~/Downloads/firefly-cli_*.tar.gz -C /usr/local/bin ff
If you downloaded the package from GitHub into a different directory, you will need to change the tar
command above to wherever the firefly-cli_*.tar.gz
file is located.
macOSUsers
NOTE: On recent versions of macOS, default security settings will prevent the FireFly CLI binary from running, because it was downloaded from the internet. You will need to allow the FireFly CLI in System Preferences, before it will run.
Windows Users
NOTE: For Windows users, we recommend that you use Windows Subsystem for Linux 2 (WSL2). Binaries provided for Linux will work in this environment.
Linux Users
NOTE: For Linux users, it is recommended that you add your user to the docker
group so that you do not have to run ff
or docker
as root
or with sudo
. For more information about Docker permissions on Linux, please see Docker's documentation on the topic.
Install via Go
If you have a local Go development environment, and you have included ${GOPATH}/bin
in your path, you can install with:
go install github.com/hyperledger/firefly-cli/ff@latest
Create a new stack
$ ff init <stack_name>
Start a stack
$ ff start <stack_name>
View logs
$ ff logs <stack_name>
NOTE: You can use the -f
flag on the logs
command to follow the log output from all nodes in the stack
Stop a stack
$ ff stop <stack_name>
Clear all data from a stack
This command clears all data in a stack, but leaves the stack itself. This is useful for testing when you want to start with a clean slate but don't want to actually recreate the resources in the stack itself. Note: this will also stop the stack if it is running.
$ ff reset <stack_name>
Completely delete a stack
This command will completely delete a stack, including all of its data and configuration.
$ ff remove <stack_name>
Get stack info
This command will print out information about a particular stack, including whether it is running or not.
$ ff info <stack_name>
List all stacks
This command will list all stacks that have been created on your machine.
$ ff ls