mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
* Feat: http retrieval as experimental feature This introduces the http-retrieval capability as an experimental feature. It can be enabled in the configuration `Experimental.HTTPRetrieval.Enabled = true`. Documentation and changelog to be added later. * refactor: HTTPRetrieval.Enabled as Flag * docs(config): HTTPRetrieval section * refactor: reusable MockHTTPContentRouter * feat: HTTPRetrieval.TLSInsecureSkipVerify allows self-signed certificates in tests * feat(config): HTTPRetrieval.MaxBlockSize * test: end-to-end HTTPRetrieval.Enabled this spawns two http services on localhost: 1. HTTP router that returns HTTP provider when /routing/v1/providers/cid i queried 2. HTTP provider that returns a block when /ipfs/cid is queried 3. Configures Kubo to use (1) instead of cid.contact this seems to work (running test with DEBUG=true shows (1) was queried for the test CID and returned multiaddr of (2), but Kubo never requested test CID block from (2) – needs investigation * fix: enable /routing/v1/peers for non-cid.contact we artificially limited every delegated routing endpoint because of cid.contact being limited to one endpoint * feat: Routing.DelegatedRouters make it easy to override the hardcoded implicit HTTP routeur URL without having to set the entire custom Router.Routers and Router.Methods (http_retrieval_client_test.go still needs to be fixed in future commit) * test: flag remaining work * docs: review feedback * refactor: providerQueryMgr with bitswapNetworks this fixes two regressions: (1) introduced in https://github.com/ipfs/kubo/issues/10717 where we only used bitswapLib2p query manager (this is why E2E did not act on http provider) (2) introduced in https://github.com/ipfs/kubo/pull/10765 where it was not possible to set binary peerID in IgnoreProviders (we changed to []string) * refactor: Bitswap.Libp2pEnabled replaces Bitswap.Enabled with Bitswap.Libp2pEnabled adds tests that confirm it is possible to disable libp2p bitswap fully and only keep http in client mode also, removes the need for passing empty blockstore in client-only mode * docs: changelog --------- Co-authored-by: Marcin Rataj <lidel@lidel.org> |
||
|---|---|---|
| .. | ||
| changelogs | ||
| examples | ||
| production | ||
| specifications | ||
| add-code-flow.md | ||
| AUTHORS | ||
| cli-http-api-core-diagram.png | ||
| command-completion.md | ||
| config.md | ||
| content-blocking.md | ||
| customizing.md | ||
| datastores.md | ||
| debug-guide.md | ||
| delegated-routing.md | ||
| developer-certificate-of-origin | ||
| EARLY_TESTERS.md | ||
| environment-variables.md | ||
| experimental-features.md | ||
| file-transfer.md | ||
| fuse.md | ||
| gateway.md | ||
| generate-authors.sh | ||
| http-rpc-clients.md | ||
| implement-api-bindings.md | ||
| libp2p-resource-management.md | ||
| plugins.md | ||
| README.md | ||
| RELEASE_CHECKLIST.md | ||
| RELEASE_ISSUE_TEMPLATE.md | ||
| releases_thunderdome.md | ||
| releases.md | ||
| transports.md | ||
| windows.md | ||
Developer Documentation and Guides
If you are looking for User Documentation & Guides, please visit docs.ipfs.tech or check General Documentation.
If you’re experiencing an issue with IPFS, please follow our issue guide when filing an issue!
Otherwise, check out the following guides to using and developing IPFS:
General Documentation
Developing kubo
- First, please read the Contributing Guidelines for IPFS projects and then the Contributing Guidelines for Go code specifically
- Building on…
- Performance Debugging Guidelines
- Release Checklist
Guides
- How to Implement an API Client
- Connecting with Websockets — if you want
js-ipfsnodes in web browsers to connect to yourkubonode, you will need to turn on websocket support in yourkubonode.
Advanced User Guides
- Transferring a File Over IPFS
- Installing command completion
- Mounting IPFS with FUSE
- Installing plugins
- Setting up an IPFS Gateway
Other
- Thanks to all our contributors ❤️ (We use the
generate-authors.shscript to regenerate this list.) - How to file a GitHub Issue