Fix panic when backup bootstrap peer load and save funcs are nil
A panic occurs when the first bootstrap round runs is these functions are not assigned in the configuration:
- `LoadBackupBootstrapPeers`
- `SaveBackupBootstrapPeers`
This fix assumes that it is acceptable for these functions to be nil, as it may be desirable to disable the backup peer load and save functionality.
This is a Q&D fix to get kubo building again, this is completely equivalent to what we used to have.
I'll submit a patch that DI the verifcid.Allowlist interface with fx later but this is needed to unblock something else.
Mplex does not implement backpressure, our implementation will randomly reset streams if buffers overflow instead of risking deadlocks.
In the past we had a bug where kubo nodes would prefer mplex over yamux. Turning off mplex make our connections to thoses nodes negociate yamux.
Closes#9958
* fix: mark ipns pubsub router DoNotWaitForSearchValue
That means if the DHT has finished searching and no one responded over pubsub *yet*, we will not spend 1 minute searching for no reason.
This also include other error handling bug fixes inside `go-libp2p-routing-helpers`.
Fixes: #9927
* routing: bring back the old IPNS behaviour
Stop making this configurable let everything race like it used to do.
* feat!: dag import - don't pin roots by default
Fixes: https://github.com/ipfs/kubo/issues/9765
* test(ipip-402): dag import
this adds basic regression test that guards behavior
around partial cars with or without pinning
* docs(ipip-402): ipip and dag import changelog
---------
Co-authored-by: Marcin Rataj <lidel@lidel.org>
* fix: useful errors during dag import
Most of the time the error is either a bitflip in one of blocks,
or a truncation of car stream.
This allows user to understand what happened
and at which place in the car stream, making debug more humane.
* fix: correct message when root pin failed
this also correctly exits CLI commands with code 1 (was silent
false-positive 0 before)
* feat(bootstrap): save connected peers as backup temporary bootstrap ones
* fix: do not add duplicated oldSavedPeers, not using tags, reuse
randomizeList
* test: add regression test
* chore: add changelog
---------
Co-authored-by: Henrique Dias <hacdias@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>