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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
booster-bitswapis ready for alpha testing! 🚀booster-bitswapis a binary that runs alongside theboostdprocess, 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-bitswapmodesThere are two primary modes for exposing
booster-bitswapto the internet:In
private modethe 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-bitswapinstance.boostdis configured to announce the public address ofbooster-bitswapto the network indexer (the network indexer is the service that clients can query to discover where to retrieve content).public modeoffers greater flexibility and performance -- you can even setupbooster-bitswapto 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-bitswapand how it connects Filecoin network with IPFS networkbooster-bitswapbinary and retrieve usingbooster-bitswapto test basic setupbooster-bitswapto Private mode and test retrieval from IPFS network using Kubo under various conditionsbooster-bitswapto Public mode and test retrieval from IPFS network using Kubo under various conditionsbooster-bitswapis now publishing IPFS retrieval address on the indexerInitializing booster-bitswap
booster-bitswapbinarybooster-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-bitswapwith 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 buildto 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/ipfsrepoin a new terminal and then initalize a new Kubo instance.Retrieve from
booster-bitswapusing IPFS (Kubo)Where
booster-bitswap peer IDis the peer id recorded when you ranbooster-bitswap initanddeal data root citis 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-bitswapinprivate mode, you'll need to make some changes toboostd's config file and restartboostd.Restart
boostdGet
boostd's multiaddr:booster-bitswapwith the--proxyparameter:Configuring Boost To Serve Retrievals Publicly without proxy (Public Mode)
To setup
booster-bitswapinpublic mode, you'll need to make some changes toboostd's config file and restartboostd.booster-bitswap.boostdconfigThe libp2p private key file for booster-bitswap is at
~/.booster-bitswap/libp2p.keyboostdandbooster-bitswap(with the--portargument if you've setup your firewall to forward to something other than the defaultbooster-bitswapport of 8888)Booster Bitswap Tests (To be run in both Proxied and Non-proxied configuration)
BadBits filtering
[{"anchor":"7f26e7813526dfa529020b7611a62e8f2c496558f80a82bc24a95d4e4105125d"}]booster-bitswapwith custom BadBits list--badbits-lists <URL>booster-bitswapserverRequest Filtering - Functional
$ ipfs get <deal data root cid>Report your results
booster-bitswap fetchReminders
Beta Was this translation helpful? Give feedback.
All reactions