Validation while using Backblaze B2

Hi everyone,

Since this is my first post let me start by thanking Kenkendk and everybody else that has pitched in somehow in creating Duplicati.

Like many other I’m a CrashPlan orphan and I’m currently reimplementing my backup infra based on Duplicati and B2.

I’ve noticed that Duplicati does a sanity check at the end of backup job. I’ve also noticed that B2 requires a SHA1 checksum when you uploading a file.

Is it safe to assume that I can disable the verification done at the end of the job trusting the SHA1 checksum or am I missing something else?

Thanks in advance for your time and support,
Rui Santos

Duplicati will verify random files at the end of the backup. In the spirit of trust no one. If you trust B2 you could skip it. I wouldn’t.

B2 does offer the SHA1 checksums for remote pieces, but AFAIK Duplicati has not yet implemented any functionality to use this for chunk verification (though it seems to me it could fairly easily). I’ve asked for this in the past. Even with this functionality it would probably be a good idea to allow Duplicati to download and manually check at least 1 dBlock per backup run, but I would imagine that it could do hash verifications on several other (still random) pieces at the same time if it had this functionality. Hopefully someday.

Thank you both for your response.

From what I could read in the B2 documentation providing the SHA1 hash when POST the files (uploading) is their preferred method of uploading.

I also took a quick peek at what I understand is the code to post to B2 (duplicati/Duplicati/Library/Backend/Backblaze/B2.cs). Assuming I found the right spot and assuming I read it right then the SHA1 hash is being computed and used in the POST.

Strangely from what I read from Backblaze B2 API they don’t seem to have a specific error code for when the SHA1 fails. The error handling code in Duplicati is therefore also generic.

If I read everything right Duplicati is already making use of the B2 SHA1 remote checking.

If I can get some authority (@kenkendk ?) to certify what I found this would close my question and be used for future reference.

Also if it makes sense and is necessary (with some guidance on how to make the appropriate changes) I would be happy to reach out to Backblaze, understand if they have a specific code for SHA1 verification failure and make use of that info on the interface with B2, perhaps specifically logging it and repeating the upload. I actually imagine that the code calling B2.Put is already doing this but in the remote chance it is helpful I’m happy to contribute.