-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Gradle witness for 'jtorctrl' not updated for Tor 0.4.5 #5807
Comments
Thanks for opening your first issue here! |
@cd2357 Can you comment? |
TLDR: This happens because jitpack is serving one of two different versions of the jtorctl jar, depending on the caller's IP. I came to this based on:
Both versions of the jar are attached. Change extension from zip to jar: jtorctl-1.5-389.zip -- hash Root-cause analysisWhat I suspect happened is this:
Q: If the artefact was simply re-built by jitpack, why does it have a different hash?@ripcurlx pointed out it could be because the new build used a different JDK version (1.8.0_212 vs. 1.8.0_252). I checked and this could indeed be the case. I built jtorctl from source using those specific JDK versions (from here). Indeed, the resulting jars had different hashes. They were also different than the two hashes from jitpack. Q: Ok so Jitpack now serves a different jtorctl. How do we know this is entirely due to a different JDK? Can we trust the new jar to not contain code modifications?I would say yes we can trust it. I used http://java-decompiler.github.io to decompile both jars and compare the sources. See Then using Q: What now? What's the next step?The only option I can think of is wait until Cloudflare propagates the new jar to all its regional servers. In other words, wait until downloading the jar from jitpack reliably results in the same jar, no matter from which location its downloaded. Until then, we can alternatively work with either of the two jtorctl hashes in (Not the best solution, but can't think of a better one.) There are other open questions to consider for medium / long-term:
What do you guys think? Do you see another way to tackle this at the moment? cc @bisq-network/bisq-devs |
Thanks @cd2357 for the details report!
We use a tool for removing meta data which cause diff. hashes in jars in the build script. That was an intent to get to deterministic builds. At least for the Bisq jar file that should work. If we would include that step in those binaries (if those are not hosted from Bisq we should do that so we can adjust the build process) the hash of the jar should be the same (I assume the diff. hash is mostly because of those metadata which includes timestamps not because of the jdk change - though that might have differences as well, but then we should freeze the jdk version in the build as well). So in short we should try to get a step further to deterministic builds.
That does not sound good as well. We should control which jdk is used for builds. As said I think we should fork that repo anyway and host it on Bisq. There might be another sub dependency in netlayer (socksproxy) - if so that should also be moved to Bisq IMO. |
May i run and use Bisq without installing on Arch ? |
Fixed as per discussion above. |
Description
Bisq does not build due to checksum mismatch in gradle witness
Version
v1.7.5
Steps to reproduce
Build from scratch
Expected behaviour
Build successfull
Actual behaviour
Stops on error:
Checksum failed for com.github.JesusMcCloud:jtorctl:389d61b1b5a85eb2f23c582c3913ede49f80c9f2b553e4762382c836270e57e5
Additional info
Change in gradle-witness.gradle from:
com.github.JesusMcCloud:jtorctl:389d61b1b5a85eb2f23c582c3913ede49f80c9f2b553e4762382c836270e57e5
to:
com.github.JesusMcCloud:jtorctl:6465e0b22b921344a065a6e82a5390ab2f9dac5ab293c38bd8a76baddead6492
The text was updated successfully, but these errors were encountered: