Boost is a tool for Filecoin storage providers to manage data storage and retrievals on Filecoin.
It replaces the lotus-miner
markets
service, as well as the go-fil-markets
package with a standalone binary that runs alongside a lotus
daemon and lotus-miner
.
Boost exposes libp2p
interfaces for making storage and retrieval deals, a web interface for managing storage deals, and a GraphQL interface for accessing and updating real-time deal information.
git clone https://github.com/filecoin-project/boost
cd boost
make build
make install
Boost Documentation website is located at: https://boost.filecoin.io/
boost
- Boost client for interacting with Filecoin storage providers that support Boost protocols
boostd
- Boost daemon which is run by storage providers
boostx
- Experimental utilities used for development and testing of Boost
Boost comes with a client boost
executable that can be used to send a deal proposal to a boostd
server.
The client is intentionally minimal. It does not require a daemon process, and can be pointed at any public Filecoin gateway API for on-chain operations. This means that users of the client do not need to run a Filecoin node that syncs the chain.
- Set the API endpoint environment variable
export FULLNODE_API_INFO=<filecoin API endpoint>
- Initialize the client
boost -vv init
The init command:
a) Creates a Boost client repo (at ~/.boost-client by default)
b) Generates a libp2p peer ID key
c) Generates a wallet for on-chain operations and outputs the wallet address
- Add funds to the wallet and to the market actor
To make deals you will need to:
a) add funds to the wallet;
b) add funds to the market actor for that wallet address;
- Make a storage deal
boost -vv deal --provider=<f00001> \
--http-url=<https://myserver/my.car> \
--commp=<commp> \
--car-size=<car-size> \
--piece-size=<piece-size> \
--payload-cid=<payload-cid>
Refer to the Documentation website.
- Make sure you have a local Lotus fullnode and miner running and listening to
localhost:1234
andlocalhost:2345
respectively, for example with a devnet:
devnet
Note that currently devnet
is using the default paths that lotus
and lotus-miner
use for their repositories, and you should make sure these directories are empty:
LOTUS_PATH=~/.lotus
LOTUS_MINER_PATH=~/.lotusminer
rm -rf ~/.lotus ~/.lotusminer
- Create Boost repository
export $(lotus auth api-info --perm=admin)
export $(lotus-miner auth api-info --perm=admin)
boostd --vv init \
--api-sealer=`lotus-miner auth api-info --perm=admin` \
--api-sector-index=`lotus-miner auth api-info --perm=admin` \
--wallet-publish-storage-deals=`lotus wallet new bls` \
--wallet-collateral-pledge=`lotus wallet new bls` \
--max-staging-deals-bytes=50000000000
- Run the Boost daemon service
export $(lotus auth api-info --perm=admin)
boostd --vv run
- Interact with Boost
Pass the client address (wallet) and the provider address to the dummydeal
command.
Note that
- the client address is the address of a wallet with funds in
lotus wallet list
- you can find the provider address in
~/.boost/config.toml
under the config keyWallets.Miner
boostd dummydeal <client address> <provider address>
- Install and build
cd react
npm install
npm run build
- Open UI
http://localhost:8080
To run the web UI in development mode:
- Run the server
cd react
npm install
npm start
- Open UI
http://localhost:3000
Dual-licensed under MIT + Apache 2.0