Skip to content
Snippets Groups Projects
  1. Oct 03, 2024
    • Andrew Gillis's avatar
      feat: pebbleds profile and plugin (#10530) · 52b00624
      Andrew Gillis authored
      * include pebble as built-in plugin
      
      Pebble provides a high-performance alternative to leveldb as the datastore, and will serve as a replacement for badger1.
      
      There are a number of tuning parameters available for tuning pebble's performance to your specific needs. Default values are used for any that are not configured or are set to the parameter's zero-value.
      
      Requires https://github.com/ipfs/go-ds-pebble/pull/39
      
      Closes #10347
      
      * docs: remove mention of ipfs-ds-convert. Rationale: https://github.com/ipfs/ipfs-ds-convert/issues/50
      * docs: pebbleds profile
      * test: meaningful t0025-datastores.sh
      * Update config/init.go
      * Update docs/config.md
      * Do not hard-code zero values into pebble config
      52b00624
  2. Sep 29, 2024
  3. Aug 28, 2024
  4. Nov 29, 2023
  5. Oct 28, 2023
  6. Sep 18, 2023
  7. Aug 17, 2023
  8. Jun 29, 2023
  9. Jun 27, 2023
  10. May 31, 2023
  11. Mar 29, 2023
  12. Sep 09, 2022
  13. Sep 08, 2022
  14. Aug 12, 2022
    • Gus Eggert's avatar
      feat: add fx options plugin · 310dca55
      Gus Eggert authored
      This adds a plugin interface that lets the plugin modify the fx
      options that are passed to fx when the app is initialized. This means
      plugins can inject their own implementations of IPFS interfaces. This
      enables granular customization of go-ipfs behavior by plugins, such
      as:
      
      - Bitswap with custom filters (e.g. for CID blocking) Custom interface
      
      - implementations such as Pinner or DAGService
      
      - Dynamic configuration of libp2p ...
      
      One downside of this is that we're exposing the entire dependency
      graph, init hooks, initialization, etc. to users, so this comes with a
      caveat that we reserve the right to make breaking changes to the graph
      structure and initialization logic (although this historically happens
      rarely). If these things are changed, we should mention them in
      release notes and changelogs though, since they could impact users of
      this plugin interface.
      
      I'm not particularly fond of DI frameworks (and neither are some of
      the folks work on/near go-ipfs), but it seems unlikely that somebody
      will rewrite the dependency wiring and lifecycle hooks of go-ipfs, and
      add dynamic extension points, so this seems like a palatable
      compromise.
      
      There are also problems that we should clean up in how model the
      go-ipfs app in fx, such as:
      
      - We make extensive use of nested fx.Options, which fx itself
      discourages because it "limits the user's ability to customize their
      application". It should be easy to flatten these out into a single
      []fx.Option slice.
      
      - We pass around a list of opaque libp2p opts, which makes it hard to
      customize after-the-fact...we should consider naming each of these
      opts and providing them to fx as proper dependencies, so that they can
      be explicitly overridden.
      
      - We call fx.Invoke() in some places with anonymous functions. We
      should instead only pass exported functions to fx.Invoke(), so that
      they have exported names, which would make it easier to remove/augment
      the invocations that happen when the app is initialized.
      
      These aren't blocking issues, they just make it harder and more
      brittle to customize go-ipfs with this plugin.
      310dca55
  15. Jul 06, 2022
  16. May 03, 2022
  17. Apr 15, 2022
  18. Apr 04, 2022
    • Gus Eggert's avatar
      feat: add basic gateway tracing (#8595) · f855bfe6
      Gus Eggert authored
      
      * add deprecation warning when tracer plugins are loaded
      * add response format attribute to span in gateway handler
      * add note about tracing's experimental status in godoc
      * add nil check for TTL when adding name span attrs
      * add basic sharness test for integration with otel collector
      * add nil check in UnixFSAPI.processLink
      * test: sharness check all json objs for swarm span
      * add env var docs to docs/environment-variables.md
      * chore: pin the otel collector version
      * add tracing spans per response type (#8841)
      * docs: tracing with jaeger-ui
      
      Co-authored-by: default avatarMarcin Rataj <lidel@lidel.org>
      f855bfe6
  19. Mar 04, 2022
  20. Nov 30, 2021
  21. Nov 17, 2021
  22. Oct 15, 2021
  23. Sep 28, 2021
  24. Aug 25, 2021
  25. Aug 17, 2021
  26. Jul 17, 2021
  27. May 16, 2021
  28. Dec 09, 2020
  29. Oct 12, 2020
  30. Aug 09, 2020
  31. May 13, 2020
  32. Apr 28, 2020
  33. Apr 20, 2020
  34. Mar 10, 2020
Loading