Metacat (storage) and d1-synchronize both have the code to compute the checksum
Both Metacat (storage) and d1-synchronize have the code to compute the checksum. It is redundant. I think we need to keep the mechanism on Metacat since it really computes the checksum of the output stream writing the file.
#1 Updated by Rob Nahf over 4 years ago
In general, the dataone infrastructure was designed to avoid burdening the CN with calculating checksums, and instead use a callback to the MN to recalculate the checksum on the object (MNRead.getChecksum(identifier, algorithm). With the new implementation in Metacat of always verifying the checksum, we make have inadvertently gone against this design if the checksum verification is done in a CN/MN common method.
The synchronization validateChecksum method is there to get the member node to recalculate the checksum on the Member Node when needed