Migrate a monolith lotus-miner to Boost
If you have already split a your lotus-miner into a separate markets process (MRA), follow the steps in Migrate a Lotus markets service process to Boost.
Please note that a monolith miner can only split into boost(market)+miner on the same physical machine as it requires access to the miner repo to migrate the deal metadata.
Prepare to migrate
1. Make sure you have a Lotus node and miner running
2. Create and send funds to two new wallets on the lotus node to be used for Boost
Boost currently uses two wallets for storage deals:
The publish storage deals wallet - This wallet pays the gas cost when Boost sends the
PublishStorageDeals
message.
If you already have a PublishStorageDeal control wallet setup then it can be reused in boost as the PUBLISH_STORAGE_DEALS_WALLET
.
The deal collateral wallet - When the Storage Provider accepts a deal, they must put collateral for the deal into escrow. Boost moves funds from this wallet into escrow with the
StorageMarketActor
.
If you already have a wallet that you want to use as the source of funds for deal collateral, then it can be reused in boost as the COLLAT_WALLET
.
3. Set the publish storage deals wallet as a control wallet.
Add the value ofPUBLISH_STORAGE_DEALS_WALLET
to the parameter DealPublishControl
in the Address
section of lotus-miner configuration if not present. Restart lotus-miner if configuration has been updated.
4. Set up environment variables needed for Boost migration
Export the environment variables needed for boostd migrate-monolith
to connect to the lotus daemon and lotus miner.
Export environment variables that point to the API endpoints for the sealing and mining processes. They will be used by the boost
node to make JSON-RPC calls to the mining/sealing/proving
node.
Shut down lotus-miner
1. Stop accepting incoming deals
2. Wait for incoming deals to complete
3. Shutdown the lotus-miner
4. Backup the lotus-miner repository
5. Backup the lotus-miner datastore (in case you decide to roll back from Boost to Lotus) with:
6. Set the environment variable LOTUS_FULLNODE_API
to allow access to the lotus node API.
Migrate from the lotus-miner repo to the Boost repo
Run boostd migrate-monolith
to create and initialize the boost repository:
The migrate-monolith
command
Initializes a Boost repository
Migrates markets datastore keys to Boost
Storage and retrieval deal metadata
Storage and retrieval ask data
Migrates markets libp2p keys to Boost
Migrates markets config to Boost (libp2p endpoints, settings etc)
Migrates the markets DAG store to Boost
Update the lotus-miner config
1. Backup lotus-miner's config.toml
2. Disable the markets subsystem in miner config:
Boost replaces the markets subsystem in the lotus-miner, so we need to disable the subsystem in config:
Under the [Subsystems]
section set EnableMarkets = false
3. Change the miner's libp2p port
Boost replaces the markets subsystems, and listens on the same libp2p port, so we need to change the libp2p port that the miner is listening on.
Under the [Libp2p]
section change the port in ListenAddresses
Restart lotus-miner
Start lotus-miner up again so that Boost can connect to the miner when it starts.
Run the boostd
service
boostd
serviceThe boostd
service will start:
libp2p listeners for storage and retrieval
the JSON RPC API
the graphql interface (used by the react front-end)
the web server for the react front-end
In your firewall you will need to ensure that the libp2p ports that Boost listens on are open, so that Boost can receive storage and retrieval deals.
See the Libp2p
section of config.toml
in the Repository
Web UI
Open http://localhost:8080 in your browser.
To access a web UI running on a remote server, you can open an SSH tunnel from your local machine:
API Access
Boost API can be accessed by setting the environment variable BOOST_API_INFO
same as LOTUS_MARKET_INFO
.
Migrating Boost from one machine to another
Once the Boost has been split from the monolith miner, it can be moved to another physical or virtual machine by following the below steps.
Build the boost binary on the new machine by following the Getting Started step.
Copy the boost repo from the original monolith miner machine to the new dedicated boost machine.
Set the environment variable
LOTUS_FULLNODE_API
to allow access to the lotus node API.Open the required port on the firewall on the monolith miner machine to allow connection to lotus-miner API.
In your firewall you will need to ensure that the libp2p ports that Boost listens on are open, so that Boost can receive storage and retrieval deals. See the
Libp2p
section ofconfig.toml
in the RepositoryStart the
boostd
process.
Last updated