Hi Mauro,
The irsync -K option *does* calculate/verify and store the checksum in the catalog
$ ls -l mytest
total 8
-rw-rw-r-- 1 tgr tgr 4 May 18 07:18 again
-rw-rw-r-- 1 tgr tgr 5 Feb 26 2021 thefile
$ irsync -rK mytest i:imytest
Running recursive pre-scan... pre-scan complete... transferring data...
C- /tempZone/home/alice/imytest:
again 0.000 MB | 0.089 sec | 0 thr | 0.000 MB/s
thefile 0.000 MB | 0.074 sec | 0 thr | 0.000 MB/s
$ ils -L imytest
/tempZone/home/alice/imytest:
alice 0 demoResc 4 2022-05-18.07:19 & again
sha2:3Jh27QbVRbZ8nvfhcKPiJaOO3iyjKw8SSS5dabqINcw= generic /var/lib/irods/Vault/home/alice/imytest/again
alice 0 demoResc 5 2022-05-18.07:19 & thefile
sha2:BXj/69UYoghc2PjZWPMF7enmxBFA7cc3gdze7u8X4cI= generic /var/lib/irods/Vault/home/alice/imytest/thefile
The same happens with `iput -rK`.
$ iput -rK mytest puttest
Running recursive pre-scan... pre-scan complete... transferring data...
$ ils -L puttest
/tempZone/home/alice/puttest:
alice 0 demoResc 4 2022-05-18.07:23 & again
sha2:3Jh27QbVRbZ8nvfhcKPiJaOO3iyjKw8SSS5dabqINcw= generic /var/lib/irods/Vault/home/alice/puttest/again
alice 0 demoResc 5 2022-05-18.07:23 & thefile
sha2:BXj/69UYoghc2PjZWPMF7enmxBFA7cc3gdze7u8X4cI= generic /var/lib/irods/Vault/home/alice/puttest/thefile
And yes, `ichksum` can be used after the data objects are within iRODS - but like irsync and iput, the calculation of the checksum will be synchronous (and possibly slow, depending on the size of the files being checked).
If you're interested in asynchronous checksums, you have two options...
1) Via PEPs, you can synchronously put the checksum calculations on the delay queue - so they run later, in the background.
or
2) You can implement a query-based recurring sweeper that checks the catalog for data objects without a checksum, and enqueue them to be calculated.
This could be a crontab entry at the OS level, or a delay rule itself that is set to run hourly/daily, etc.
This same conversation is happening in this issue:
I hope that helps answer your question.
Terrell