The local ZFS array is the “source of truth”. ZFS has built-in end-to-end checksumming. I also have a monthly scrub that should correct any untouched corrupt blocks.
Thanks, that is one way to do it. But if you don’t know about par2 (sorry, I can’t tell from what you’ve said) it’s worth chasing down. It is way, way beyond checksums in what it can do.
It’s an old project and information on the internet is getting thin but the math is sound, the tool works, and there is a wikipedia page:
Details on ZFS checksums: https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Chec...