Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge upstream #19

Merged
merged 237 commits into from
Apr 29, 2024
Merged

Merge upstream #19

merged 237 commits into from
Apr 29, 2024

Conversation

David-Petrov
Copy link

@David-Petrov David-Petrov commented Apr 29, 2024

  • Merge actual updates from the upstream
  • Remove jar minimisation so that we can rely on some necessary dependencies from the public interface for our use case.

The situation on the latter is as follows:

  1. On the one side, we could minimize the Jar (as the original author initially intended). This leads to only partial "leaks" of transitive dependencies, which results in things like Apache Commons or Guava not leaking entirely into Fruzhin. This is good from a code hygiene (and efficiency) standpoint. However, when it comes to our use case, we're heavily relying on the public interface of Netty which is a direct dependency of Nabu, but since the parts from Netty we need are not directly used in Nabu, they're stripped off and we'd have to go the manual way of re-implementing them or explicitly re-exporting them... which is a viable solution, nonetheless a little too random for now. In other words, particular solutions for this case are not worth it since the jar minimization from the shade plugin doesn't solve the issue of transitive dependency leaks in the first place.

  2. On the other side, a lot of dependencies are still leaking into Fruzhin and we'll have to manage duplications / version mismatches from there. The dev experience of having three kinds of Pair classes loaded into your classpath (for example), or similar issues, will continue to have to be resolved by inner-team conventions for now.

So, we stick with option 1. for now...

ianopolous and others added 30 commits September 7, 2023 10:07
refactor EmbeddedIPFS to configure RAM version of stores.
add shutdown hook implicitly so client does not need to
connected peers before resorting to DHT findProviders
candidates for bitswap broadcast

Make bitswap tolerate errors connecting to some peers

disable TLS by default until it is less noisy (pun intended)
Update jvm-libp2p to remove DNSADDR logspam
ianopolous and others added 26 commits March 28, 2024 07:27
Support resolving rsa ipns mappings
naturally, some things had been missed / messed up whilst merging and only statically analyzing desired behaviour, but alas - we managed to pass all the tests, so we must be good.
turned out later on that this refactor from the upstream is breaking for us since we need to use Nabu with custom protocol IDs which significantly diverge from the upstream's vision. Has been noted in a comment, too.
Issue was: when using transitive dependencies in Fruzhin (unfortunately, a lot of those have sneaked in, but we'll have to clean them out) there was a weird invalid signature exception. Solved using the answer here: https://stackoverflow.com/a/6743609/24275638
Add bulk get links call which can be used to efficiently mirror a whole DAG
This file doesn't belong in source control as a deterministic byproduct of the build process.
@David-Petrov David-Petrov force-pushed the chore/merge-upstream branch from 663427b to 1b7d9f6 Compare April 29, 2024 13:08
@David-Petrov David-Petrov merged commit 16c6586 into master Apr 29, 2024
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants