Boost: Testing: Booster-bitswap
testing
#1036
Unanswered
LexLuthr
asked this question in
Storage Provider
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Overview
booster-bitswap
is ready for alpha testing! 🚀booster-bitswap
is a binary that runs alongside theboostd
process, to serve retrievals over the Bitswap protocol. The new release of boost provides a number of tools for managing a production grade Bitswap service for a Storage Provider's content.Note that there is currently no payment method mechanism in booster-bitswap; this endpoint is intended to serve free content.
Why enable retrievals via Bitswap?
Bitswap retrieval introduces interoperability between IPFS and Filecoin, as it enables clients to retrieve Filecoin data over IPFS. This expands the reach of the Filecoin network considerably, increasing the value proposition for users to store data on the Filecoin network. This benefits the whole community, including SPs. Users will be able to access data directly via IPFS, as well as benefit from retrieval markets (e.g. Saturn) and compute over data projects (e.g. Bacalhau).
This is the first step to enable paid retrievals from Saturn etwork and IPFS network directly to the Filecoin SPs.
booster-bitswap
modesThere are two primary modes for exposing
booster-bitswap
to the internet:In
private mode
the booster-bitswap peer ID is not publicly accessible to the internet. Instead, public Bitswap traffic goes to boostd itself, which then acts as a reverse proxy, forwarding that traffic on to booster-bitswap. This is similar to the way one might configure Nginx as a reverse proxy for an otherwise private web server. private mode is simpler to setup but may produce greater load on boostd as a protocol proxy.In
public mode
, the public internet firewall must be configured to forward traffic directly to thebooster-bitswap
instance.boostd
is configured to announce the public address ofbooster-bitswap
to the network indexer (the network indexer is the service that clients can query to discover where to retrieve content).public mode
offers greater flexibility and performance -- you can even setupbooster-bitswap
to run over a separate internet connection fromboostd
. However, it requires additional configuration and changes to your overall network infrastructure.Expectations
After successful initial testing, Boost team is looking to test the product with a wider range of storage providers. We are inviting all the interested storage providers from the community to participate in this testing before launching this feature. The objective of this testing is to test Bitswap retrieval's robustness and performance with different sized storage providers, deal sources and configuration.
Instructions
The test instructions and the number of tests to be performed are uniquely large and complex in this test plan. Here is a quick summary of what we want to test to help SPs get a basic understanding of what this testing entails.
booster-bitswap
and how it connects Filecoin network with IPFS networkbooster-bitswap
binary and retrieve usingbooster-bitswap
to test basic setupbooster-bitswap
to Private mode and test retrieval from IPFS network using Kubo under various conditionsbooster-bitswap
to Public mode and test retrieval from IPFS network using Kubo under various conditionsbooster-bitswap
is now publishing IPFS retrieval address on the indexerInitializing booster-bitswap
booster-bitswap
binarybooster-bitswap
:Record the peer ID output by
booster-bitswap init
-- we will need this peer id laterCollect
boostd
's API Info:booster-bitswap
:To run
booster-bitswap
with verbose logging set these environment variables:Setup IPFS (Kubo) Node
As explained above, we are trying to test the data retrievals in IPFS directly from Filecoin SPs. Thus, from here on all of our tests will use a Kubo (Go implementation of IPFS) node for retrieving the data. Please setup your Kubo node using the below commands.
Alternatively, you can run
make build
to build the go-ipfs binary (storing it incmd/ipfs/ipfs
) without installing it.Over the course of this testing, you would need to reset your Kubo node to test retrievals. If a new Kubo node is not initialised for each test then retrieval command will use the local IPFS cache. You can re-initialize a Kubo node with the below instructions.
Note: This will generate a new peer ID for your Kubo node. Make sure to use the new ID for the test.
In case a test requires you to run multiple Kubo instances, then you can do so by simply exporting a new and different repo path with
export IPFS_PATH=/path/to/ipfsrepo
in a new terminal and then initalize a new Kubo instance.Retrieve from
booster-bitswap
using IPFS (Kubo)Where
booster-bitswap peer ID
is the peer id recorded when you ranbooster-bitswap init
anddeal data root cit
is the CID of a data CID known to be stored on your SP.Configuring Boost To Serve Retrievals Publicly via Boost proxy (Private Mode)
To setup
booster-bitswap
inprivate mode
, you'll need to make some changes toboostd
's config file and restartboostd
.Restart
boostd
Get
boostd
's multiaddr:booster-bitswap
with the--proxy
parameter:Configuring Boost To Serve Retrievals Publicly without proxy (Public Mode)
To setup
booster-bitswap
inpublic mode
, you'll need to make some changes toboostd
's config file and restartboostd
.booster-bitswap
.boostd
configThe libp2p private key file for booster-bitswap is at
~/.booster-bitswap/libp2p.key
boostd
andbooster-bitswap
(with the--port
argument if you've setup your firewall to forward to something other than the defaultbooster-bitswap
port of 8888)Booster Bitswap Tests (To be run in both Proxied and Non-proxied configuration)
BadBits filtering
[{"anchor":"7f26e7813526dfa529020b7611a62e8f2c496558f80a82bc24a95d4e4105125d"}]
booster-bitswap
with custom BadBits list--badbits-lists <URL>
booster-bitswap
serverRequest Filtering - Functional
$ ipfs get <deal data root cid>
Report your results
booster-bitswap fetch
Reminders
Beta Was this translation helpful? Give feedback.
All reactions