ãªããžããªåœ¢åŒãããŒãžã§ã³2ã«å€æŽããæ¹æ³ã«ã€ããŠèª¬æããŸããããã¯ãå§çž®ããµããŒãããããã«å¿ èŠã§ãïŒïŒ21ãåç §ïŒã
以äžã®ãªã¹ãã¯ãæ°ããææ¡ãå ¥ã£ãŠãããšãã«æŽæ°ãããŸãã
æ¿èªæžã¿ïŒ
README
ãã¡ã€ã«ãæ°ãããªããžããªã«è¿œå ããŸãããã®ãã¡ã€ã«ã«ã¯ããã®ãã£ã¬ã¯ããªã®å
容ãèšè¿°ãããŠããŸãã話ãåããŸãïŒ
延æ/æåŠïŒ
ä»ã«äœãïŒ
ããããŒãåã«ç§»åãããã©ããã¯ããããŸããã ããã¯çŸåšå®è£ ãããŠããªãããšã¯ç¥ã£ãŠããŸãããããŒã«ã«ãªããžããªã®å ŽåãæåŸã«ããããŒããããšããããšã¯ããã¡ã€ã«ã®ã³ããŒãä¿åã§ããããšãæå³ããŸãã
èå³æ·±ãç¹ãããããšãã äœãè¯ãããå€æããæ¹æ³ã¯ãŸã ããããŸããã ãªã¢ãŒãããã¯ãšã³ãã®å Žåã¯ãïŒããã¯ãšã³ãã€ã³ã¿ãŒãã§ã€ã¹ã«ããã€ãã®å€æŽãå ããåŸïŒ io.Reader
ãæž¡ãã ãã§ãstdlibãsendfile
ã䜿çšããŠãã¡ã€ã«ããã£ã¹ã¯ããçŽæ¥ã¹ããªãŒãã³ã°ããããšãã§ããŸãã ããŒãã
åèãŸã§ã«ããªãGCMã䜿çšããªãã®ãçåã«æã£ãŠããã®ã§ããã³ãããŒã¯ãå®è¡ããŸããã CPUã«AES-NIããªãå ŽåãAES-CTR + Poly1305ã¯ããªãé«éã§ãïŒGoçµã¿èŸŒã¿GCMããã50ïŒ é«éã§ãïŒã AES-NIã䜿çšãããšãGoã®GCMçšã«æé©åãããã¢ã»ã³ããªã³ãŒãã¯ããããç¡æµã§ãã
Intel Xeon E312xx
restic:
BenchmarkEncrypt-4 50 32470322 ns/op 258.35 MB/s
stupidgcm:
Benchmark4kEncStupidGCM-4 200000 10620 ns/op 385.67 MB/s
Benchmark4kEncGoGCM-4 300000 5540 ns/op 739.22 MB/s
Intel Pentium G630ïŒAES-NIãªãïŒ
restic:
BenchmarkEncrypt-2 10 108468078 ns/op 77.34 MB/s
stupidgcm:
Benchmark4kEncStupidGCM-2 50000 24182 ns/op 169.38 MB/s
Benchmark4kEncGoGCM-2 20000 96391 ns/op 42.49 MB/s
ããã¯ãã®åé¡ã«ã¯å±ããŠããŸãããããšã«ããçããŸãïŒ
ç§ãresticãå§ãããšããGoã«ã¯æé©åãããããŒãžã§ã³ã®GCMããªãã£ããšæããŸãã ããã«ãGCMãç解ã§ããªãã£ãããã䜿ãå¿å°ãæªããªããŸããããPoly1305ã®çšçŽã®æ¹ãã¯ããã«èªã¿ããããç解ããããã£ãã§ãã
ããªãã®ãã³ãããŒã¯ã¯ã¯ããã«å°ããªããŒã¿ã®ããããåŠçããŠãããšæããŸãããããã倧ããã»ã©ãããè¿ããªããããããŸããã
åãããŸããã ãããæé©åãããGCMã¯ããæè¿ã®ãã®ã§ãCloudflareãGo1.5ã«å¯ä»ãããšæããŸãã
ãããã¯ãµã€ãºã«é¢ããŠã¯ãresticãã³ãããŒã¯ã¯8 MiBã䜿çšããstupidgcmã¯4kiBã䜿çšããŸãã stupidgcmã«å¯ŸããŠ8MiBã®ãããã¯ãµã€ãºã§åè©Šè¡ããŸããããçµæã¯å®è³ªçã«åãã§ãã
ã§ããããããã«æéãç¡é§ã«ããªãããã«ããŸããããCTR+Poly1305ã¯ååã«é«éã ãšæããŸãã
ã€ã³ããã¯ã¹ãã¡ã€ã«ãŸãã¯ããã¯ããã¿ãŒã«éå§çž®ãµã€ãºãå«ããããšã¯éèŠã§ããïŒ ãããå ã§ããããããªããŠã倧äžå€«ã ãšæããŸããããããã°ãã¬ã¹ãã£ãã¯ã§å¿ èŠãªå€æŽã¯å°ãªããªããŸãã ãã®è¿œå ã®å Žæã§æ°ããæ©èœãèªèã§ããããã«ãªããŸããïŒ
ç§ã®æèŠã§ã¯ããªããžããªåœ¢åŒ2 ==BLOBããŒã¿ã®æåã®ãã€ãã¯å§çž®åœ¢åŒã瀺ããŠããŸããå¿ èŠãªã®ã¯ããã ãã§ãã ããããã255ã®å¯èœãªåœ¢åŒã®1ã€ã¯ã{64ãããã®éå§çž®é·}{å§çž®ããŒã¿}ã§ããå¯èœæ§ããããŸãã
ããã¯ã¢ããã«ã¯ãšã©ãŒèšæ£ãè¯ãèãã ãšæããŸãã ããããç§ã¯ããããã¡ã€ã«ã·ã¹ãã ã®è²¬ä»»ã ãšæããŸãã ãŸããresticå ã«RAIDãå®è£ ããŸããïŒ
ã€ã³ããã¯ã¹ãã¡ã€ã«ãŸãã¯ããã¯ããã¿ãŒã«éå§çž®ãµã€ãºãå«ããããšã¯éèŠã§ããïŒ
ã¯ãïŒããã¯ããããŒã¯ããã¯ã®å 容ãèšè¿°ããããã¯æœåºããã»ã¹ã«äœãæåŸ ããããæ瀺ããŸãïŒå§çž®ã¢ã«ãŽãªãºã ãéå§çž®ãµã€ãºãããã³åŸã§æå·åã«äœ¿çšãããããŒãªã©ã®ä»ã®å±æ§ã«é¢ããŠïŒã åãããšãã€ã³ããã¯ã¹ã«è¡šç€ºãããå¿ èŠããããŸããããã¯ãresticãããã¯ããããŒå ã®ãã¹ãŠã®blobãæ€çŽ¢ããå¿ èŠããªãããã«å°å ¥ããããã®ã§ãã ãããã£ãŠãåãæ å ±ãããã«ååšããå¿ èŠããããŸãã
ç§ã®æèŠã§ã¯ããªããžããªåœ¢åŒ2 ==BLOBããŒã¿ã®æåã®ãã€ãã¯å§çž®åœ¢åŒã瀺ããŠããŸããå¿ èŠãªã®ã¯ããã ãã§ãã ããããã255ã®å¯èœãªåœ¢åŒã®1ã€ã¯ã{64ãããã®éå§çž®é·}{å§çž®ããŒã¿}ã§ããå¯èœæ§ããããŸãã
ãã®ã¢ã€ãã¢ã¯å¥œãã§ã¯ãããŸããããã¡ã€ã«åœ¢åŒãããè€éã«ãªããŸããBLOBã®å é ãšããããŒã®2ã€ã®ç°ãªãå Žæã«å¶åŸ¡æ å ±ããããŸãã ããããŒã¯ãæ£ç¢ºã«ã¯å¶åŸ¡æ å ±ãå«ãå Žæã§ãã
ããã¯ã¢ããã«ã¯ãšã©ãŒèšæ£ãè¯ãèãã ãšæããŸãã ããããç§ã¯ããããã¡ã€ã«ã·ã¹ãã ã®è²¬ä»»ã ãšæããŸãã
ååãšããŠç§ã¯åæããŸããããã¡ã€ã«ã·ã¹ãã ã¯éåžžã«è€éãªãã®ã§ããããšã©ãŒã®äŒæïŒããšãã°ãã¡ãã£ã¢ã®èªã¿åã/æžã蟌ã¿ãšã©ãŒïŒã¯ãã°ãã°æé©ã§ã¯ãããŸããã å€§å¹ ã«åæžãããïŒåé·æ§ã®èŠ³ç¹ãããããšãã°éè€æé€ãããïŒããã¯ã¢ããããŒã¿ã®å Žåã§ãããšã©ãŒèšæ£ã®å¥ã®ã¬ã€ã€ãŒãè¿œå ããïŒãŸãã¯è¿œå ããããšãææ¡ããïŒããšããå§ãããŸãã
ãªãŒããœãã¢ã³ã³ãŒãã®å Žåã httpsïŒ//github.com/klauspost/reedsolomonã«ããã€ãã®ããã©ãŒãã³ã¹ããŒã¿ãå«ãçŽç²ãªGoå®è£ ããããŸãã
https://www.usenix.org/legacy/event/fast09/tech/full_papers/plank/plank_html/ã«ãããšãZFECã®æ¹ãé«éã§ããã¯ãã§ãã å®è£ ã¯https://gitlab.com/zfec/go-zfecã«ãããhttpsïŒ//pypi.python.org/pypi/zfecã«åºã¥ããŠããããã§ãã
ECCã¯å§çž®åŸã«é©çšãããéåžžã¯ããŒã¿ãã¡ã€ã«ã«ã€ã³ã¿ãŒãªãŒããããŸããããã¯ãããŒã¿ãä¿¡é Œæ§ã®äœãããŸãã¯ãã€ãºã®å€ãéä¿¡ãã£ãã«ãä»ããŠè»¢éãããå ŽåãECCãé åžãããšECCãããå ç¢ã«ãªãããã§ãã
Usenetãã€ããªã°ã«ãŒãã§ã¯ãECCæ å ±ãå«ãåå¥ã®ãã¡ã€ã«ïŒhttps://en.wikipedia.org/wiki/Parchiveãåç §ïŒã䜿çšããŸãã ããã«ããããªããžããªã¬ã€ã¢ãŠãã«å¥ã®ãµããã£ã¬ã¯ããªãè¿œå ããããªããžããªç®¡çæ å ±ïŒconfigãindexã...ïŒã«ECCãé©çšããããšãç°¡åã«ãªããŸãã ãããããã®ããã«ãããšECCã¹ããŒãã匱ããªããã©ããã¯ããããŸããïŒECCæ å ±å ã®ã¯ã©ã¹ã¿ãŒãšã©ãŒã«å¯Ÿããå ç¢æ§ãäœäžããå¯èœæ§ããããŸãïŒã
ãã³ããããããšãã ç§ã¯ããã§è«æã®PDFããŒãžã§ã³ãèŠã€ããŸããïŒ https ïŒ//www.usenix.org/legacy/event/fast09/tech/full_papers/plank/plank.pdf
ZFEC Goã®å®è£ ã¯ãCã©ã€ãã©ãªã®ã©ãããŒã«ãããŸããã
ZFECã®å Žåã[https://github.com/korvus81/jfec]ã«jfecãšããååã®è¿œå ïŒãŽã«ãŒãã³ã®äœ¿çšïŒãè¿œå ãããGoããŒãããããŸãã
æ°ãããªããžããªåœ¢åŒã®å®è£ ã远跡ããããã«ããããžã§ã¯ããïŒGitHubã«æè¿è¿œå ããããã®ïŒãè¿œå ããŸããïŒ https ïŒ//github.com/restic/restic/projects/3
äžäœäºææ§ãç Žããšãã«èª¿ã¹ãããšãã§ããããã€ãã®ã¢ã€ãã¢ïŒ
sha256ã®ä»£ããã«sha512ïŒãŸãã¯sha512 / 256ïŒã䜿çšãããšãããã¯ã¢ããé床ãåäžããŸããïŒ ç§ãèŠãéããããã¯ARMãé€ãã»ãšãã©ã®ãã©ãããã©ãŒã ã«åœãŠã¯ãŸããŸãã
Syncthingãã£ã¹ã«ãã·ã§ã³ïŒhttps://github.com/syncthing/syncthing/issues/582ïŒ
ããŒã°ãã£ã¹ã«ãã·ã§ã³ïŒhttps://github.com/jborg/attic/issues/209ïŒ
sha512 / 256ã«é¢ããè«æïŒhttps://eprint.iacr.org/2010/548.pdfïŒ
çŸåšããªããžããªãžã®æžã蟌ã¿ã«ã¢ã¯ã»ã¹ã§ãããã¹ãŠã®äººãããªããžããªããã®èªã¿åãã«ã¢ã¯ã»ã¹ã§ããŸãã å ¬ééµæå·åã¯ãããæé€ããããã·ã¥ã«åºã¥ãéè€æé€ãå¯èœã«ããŸãã
å ¬ééµæå·åãããŒã¿BLOBã«é©çšããããšã¯æ©èœããŸãããresticãããªãŒæ§é ãåŠçããæ¹æ³ã«ç²ŸéããŠãããããã®ããã«ãæ£åžžã«å®è£ ã§ãããã©ãããç¥ãããšãã§ããŸããã ããã¯ããããå€ãã®è€éããããããå¯èœæ§ããããŸãã ããŒã¿ãããã®ã¿ãé衚瀺ã«ãªã£ãŠããå Žåã§ããããªãŒã«ã¯å€ãã®æ å ±ããããŸãã
NaCl- https://godoc.org/golang.org/x/crypto/nacl/box
çŸåšããªããžããªã«åºãããããšãã«ãresticãªããžããªãèŠãŠããããšãç¥ãæ¹æ³ã¯ãããŸããã çŸåšãããŒãã¡ã€ã«ã§"created":"TIMESTAMP","username":"XXXXX","hostname":"XXXXX"
ããªãŒã¯ããŠããŸãã ãã®æ
å ±ãé衚瀺ã«ããŠã代ããã«restic repository version X
ãªã©ã®resticã«é¢ããæ
å ±ãå«ããããšããå§ãããŸãã READMEãšåããããç°¡åãããããŸããã
以åã®è°è«ã«ã€ããŠ; ç§ã¯ãäœããã®åœ¢ã®ãšã©ãŒèšæ£ãå®è£ ããããšã«éåžžã«è³æã§ãã
@oysolsã¢ã€ãã¢ãè¿œå ããŠããã ãããããšãããããŸãïŒ
以äžã«ç§ã®èããè¿œå ããŸãïŒ
sha256ããsha512ã«å€æŽïŒé床çšïŒ
çŸæç¹ã§ã¯ãé床ã«ã¯é¢å¿ããªãã®ã§ïŒã¬ã¹ãã£ãã¯ã¯ãã§ã«éåžžã«é«éã§ãïŒãå°ãªããšãç§ã«ãšã£ãŠã¯ããã®ã¢ã€ãã ã®åªå 床ã¯äœããªã£ãŠããŸãã SIMD察å¿ããã»ããµçšã«æé©åãããããŒãžã§ã³ã®SHA256ããããç°¡åã«åãæ¿ããããšãã§ããŸãã äžæ¹ãresticãé«éåããããšã決å®ããããã·ã¥ã«ã€ããŠèª¬æããå Žåã¯ãããããKeccakïŒSHA3ïŒãŸãã¯Blake2ããå§ãããŸãããããã¯ïŒç§ãç¥ãéãããŸã ãã³ãããŒã¯ãå®è¡ããŠããŸããïŒã¯ããã«é«éã
ããã§ãç§ã®èŠ³ç¹ããããã®ã¢ã€ãã ã¯ä»ã®ãšãã延æãããŠããŸãã
åçŽãªãã¹ã¯ãŒãã®ä»£ããã«å ¬ééµæå·åã䜿çšãã
ãã®æ©èœã¯èšç»ãããŠããŸããïŒïŒ187ãåç §ïŒãè€éã§ãããå€ãã®æ€èšãšããã€ãã®äž»èŠãªã€ã³ãã©ã¹ãã©ã¯ãã£ã®å€æŽãå¿ èŠã§ãã ãŸããããã延æãããã¹ãŠãå€æŽãããã®ã§ã¯ãªããããå°ããªå¢åæŽæ°ãå®è¡ããã->延æããŸãã
ãªããžããªã®èå¥ïŒREADMEãã¡ã€ã«ããªããžããªã«è¿œå ããŸãïŒ
éåžžã«è¯ãç¹ã§ããäœãå£ããã«è¿œå ããããšãã§ããŸãã
ãªããžããªã®ãæ å ±æŒãããïŒããŒãã¡ã€ã«ãããŠãŒã¶ãŒåããã¹ãåãäœæãããã¿ã€ã ã¹ã¿ã³ããåé€ïŒ
ãããè¯ãç¹ã§ãã çŸåšããã®æ
å ±ã¯ã key list
ã³ãã³ãã®ããŒIDãšäžç·ã«è¡šç€ºããããã«ã®ã¿äœ¿çšãããŠããŸãã username
ãšhost
ã¯ç°¡åã«åé€ã§ããŸããã¿ã€ã ã¹ã¿ã³ãã¯å€ãã®æ
å ±ãæäŸããŸãããã»ãšãã©ã®å Žåããã¡ã€ã«ã®äœææ¥ãšåãã«ãªããŸãã
username
ãšhost
ãããããããŠãäœæããã¿ã€ã ã¹ã¿ã³ããæ®ããŠããããã®ã§ããã
ä»æ¥ã¯https://github.com/klauspost/reedsolomonã§éãã ããšããããŸãããããã¯ãã¡ã€ã«ã®æåŸã«ãšã©ãŒèšæ£ã³ãŒããç°¡åã«è¿œå ã§ãããšæããŸãïŒããã¯ããããŒããã¡ã€ã«ã®å é ã«ç§»åãããšïŒ ïŒã ãã ãã2ã€ã®æ¬ ç¹ããããŸãã
èãïŒ
ããã§ã¯ãããŒã¿ãããä¿è·ã¯ãªãã·ã§ã³ã§ããããïŒ ãµã€ãºãéç以äžã«å€§ãããªã£ãŠãããšæããŸãïŒä¿¡ããŠããŸãããä»ã®äººã«ãšã£ãŠã¯çŽ æŽãããæ©èœã§ãïŒïŒ
ãããå°ãè©ŠããŠã¿ãŸããããECCãšå§çž®ãçµã¿åããããšãã«ãªããžããªãã©ãã ã倧ãããªããïŒãŸãã¯å°ãããªããïŒãæããããšãã§ããŸãã ãã¶ãã2çš®é¡ã®ã³ãŒããè¿œå ããŸãã1ã€ã¯ããã¯ããããŒçšã§ããã1ã€ïŒãããããªãã·ã§ã³ïŒã¯ããŒã¿çšã§ãã
ãŠãŒã¶ãŒåãšãã¹ããåé€ããŸã
ããèãã®ããã§ããã æ å ±ãä¿æãããå Žåã¯ããã¹ã¿ãŒããŒãšåãæ¹æ³ã§ãå¥ã®æå·åããããã£ãŒã«ãã«è¿œå ã§ããŸãã
ECCïŒãã¡ã€ã«ãµã€ãºã¯çŽ14ã30ïŒ å¢å ããŸãã
ããã¯ãã¡ã€ã«èªäœã«ECCãå«ããã®ã¯è¯ãèãã§ã¯ãªããšæããŸãã ãããã¯éåžžã®åŸ©å ã·ããªãªã§ã¯åœ¹ã«ç«ãããããã¯ãã¡ã€ã«ãç ŽæããŠããå Žåã«ã®ã¿äœ¿çšãããŸãã
ããªãã£ããŒã¿ãå¥ã®ãã£ã¬ã¯ããªã«é 眮ããããšããå§ãããŸãã
repo/data/1e/1ef7267...
repo/parity/1e/1ef7267...
ãããã©ã®ããã«å®è£ ãããŠããŠãã å§çž®ãšæå·åã®å€ãã®å±€ãããã®ã§ãããçš®ã®ECCãå¿ èŠã ãšæããŸãã 1ã€ã®ééã£ããããã¯å€ãã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
ã³ã¡ã³ãããããšãããããŸãããã£ã¹ã«ãã·ã§ã³ããäœæããã°ããã®å¥ã®åé¡ïŒ804ã«ç§»ããŸãããã
Resticã®åæ¹èª€ãèšæ£ã³ãŒãã«ã€ããŠ2ã€ã®ã°ã«ãŒããäºãã«è©±ãåã£ãŠãããšããå°è±¡ãåããã«ã¯ããããŸããã ããã°ã«ãŒãã¯ãã¬ããããããããããïŒãã ïŒä¿è·ããããšèããŠããŸããããã¯ãåäžã®ãããããªããã§ããéè€ããŠããªãã¬ãã§å€§ããªåé¡ãåŒãèµ·ããå¯èœæ§ãããããã§ãã ãã1ã€ã®ã°ã«ãŒãã¯ãã€ã¬ã€ãžã£ãŒã³ãŒãã䜿çšããŠããªããžããªãè€æ°ã®é害ãã¡ã€ã³ïŒRAID以å€ã®ãã£ã¹ã¯ãªã©ïŒã«åæ£ãããããšèããŠããŸãã ã©ã¡ãã®ç®æšããªãŒããœãã¢ã³ã³ãŒãã§å®çŸã§ããŸãããå¿ èŠãªãã©ã¡ãŒã¿ãŒãšã¹ãã¬ãŒãžã¬ã€ã¢ãŠããç°ãªããŸãã
Pythonã¹ã¯ãªããïŒhttps://github.com/oysols/restic-pythonïŒã䜿çšããŠãªããžããªã®ã¯ã€ãã¯ãã§ãã¯ãå®è¡ããŸããã
header_length: 8688549
tree_length: 53898054
data_length: 146443506727
treeblobs: 8466
datablobs: 200975
packfiles: 29351
---- repo size by dir ----
155 config
146 510 470 574 data
27 538 629 index
4 545 keys
4 243 locks
14 041 snapshots
4 096 tmp
-----
Currently 116071 original files contained in the backup.
146 GBã®ããã¯ã¢ããã®ãã¡ãããªãŒBLOBã¯ããã54 MBã§ãããå§çž®ãå®è£ ãããšãå ã®ã¹ããŒã¹ã®çŽ3åã®1ãŸã§é©åã«å§çž®ãããŸãã
ããªãŒBLOBãããŒã¿BLOBããåé¢ããããšã§ãããã©ãŒãã³ã¹ãåäžããŸããïŒ
埩å äžã«å®è¡ãããæäœã®ã»ãšãã©ã¯ãå®éã«ããŒã¿ã埩å ããåã«ãããªãŒãããã«åºã¥ããŠå®è¡ãããããã§ãã ããããå¥ã ã®ããã¯ãã¡ã€ã«ã«åé¢ãããšãããã¯ã¢ããã®ããªãŒã解æããããã«ããŠã³ããŒãããå¿ èŠã®ããããŒã¿ã®éãæå°éã«æããããšãã§ããŸãã ããªãŒBLOBã®ãµã€ãºãå°ããå Žåã埩å ããã»ã¹ãéå§ããåã«ãã¹ãŠã®ããªãŒBLOBãããŠã³ããŒãããæ¹ãé«éãªå ŽåããããŸãã
ãã¡ãã; ãã®ååžã¯ããã¹ãŠã®ãªããžããªã§åãã§ã¯ãªãå ŽåããããŸãã
ããã¯ããã«èª¿æ»ãã䟡å€ããããšæããŸããïŒ
ããªãŒBLOBãããŒã¿BLOBããåé¢ããããšã§ãããã©ãŒãã³ã¹ãåäžããŸããïŒ
ãã¶ããããã¯ç§ãå°æ¥ã«åããŠèããŠããæé©åã®1ã€ã§ãã
ãããšã¯å¥ã«ãã¡ã¿ããŒã¿çšã®ããŒã«ã«ãã£ãã·ã¥ãè¿œå ããŠããªããžããªãããã§ããããå¿ èŠããŸã£ãããªãããã«ããŸãã ããã«ãããå€ãã®æäœã®é床ãå€§å¹ ã«åäžããã¯ãã§ãã
ããªãŒBLOBãããŒã¿BLOBããåé¢ããããšã§ãããã©ãŒãã³ã¹ãåäžããŸããïŒ
ããã«ãããçè«çã«prune
ã®æäœãæ¹åãããå¯èœæ§ããããŸããããã¯ãããªãŒBLOBãšããŒã¿BLOBãå¥ã
ã®ããã¯ãã¡ã€ã«ã«ããå Žåã«å¿
èŠãªåããã¯ãå°ãªããªãããã§ãïŒå€ãããã¯ãã¡ã€ã«ãåããã¯ãã代ããã«å€§èŠæš¡ã«åé€ã§ããå¯èœæ§ããããŸãïŒã
ç§ã¯ãã§ã«ïŒ842ã®éã«ãããèŠãŠããŸã
gcm vs ctrïŒ http ://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html
sym vs asymïŒã¢ã€ãã¢ã¯ããã»ãã·ã§ã³ãããŒãpubkey-encryptããããšã§ãããïŒ
ä»ã®ãšãã延æãããŠããã®ã§ããã®åé¡ã§ã¯æå·ã«ã€ããŠè°è«ããªãã§ãã ããã é察称æå·ã®è°è«ã«é¢é£ããåé¡ã¯ïŒ187ã§ãã ãŸãããŠãŒã¹ã±ãŒã¹ã確å®ãããŸã§ããã€ã¬ãã«ãªè°è«ãç¶ããŠãããããšæããŸãã 次ã«ãäœã¬ãã«ã®æå·ã«ã€ããŠè©±ãããšãã§ããŸãã
ããŒãã¡ã€ã«ãããŠãŒã¶ãŒåãšãã¹ãåãåé€ããŸãã
巚倧ãªã¡ã¿ããŒã¿ãªãŒã¯ïŒ
ããšãã°ã "username":"WorldBank\\JimYongKim"
ã¯ãäžäœã®ææè
ãæ確ã«ç€ºããŸãã
2017幎1æã«æåã®Windowsãã€ããªãã³ã³ãã€ã«ãããŠãããããã_åé€_ïŒãŸãã¯_æå·å_ïŒãããã®ãåŸ
ã£ãŠããŸãã
幞ãããã©ã€ãã·ãŒãæèãããã§ããŒã«Resticãã¢ããããŒããŸãã¯æšå¥šããåã«ãããã¯ã¢ããã調ã¹ãŸããã
ç·šéïŒãŠãŒã¶ãŒã®ã¿ã€ã ãŸãŒã³ããã¬ãŒã³ããã¹ãã§èšèŒãããŠãããæ©å¯ä¿æã®ååã«ãåããŠããŸãã
ReïŒSHA3-æ¡çšãã䟡å€ããªãçç±ã«ã€ããŠã®1ã€ã®æèŠããããŸãïŒãŸã ïŒïŒïŒ https ïŒ//www.imperialviolet.org/2017/05/31/skipsha3.html
ãããã£ãŠãSHA-3ã¯ãããã䜿çšãã¹ãã§ã¯ãªããšæããŸãã SHA-2ã«åãé åçãªå©ç¹ã¯ãªããå€ãã®ã³ã¹ããããããŸãã ç§ãä¿¡ããããšãã§ããå¯äžã®è°è«ã¯ãããã¯ã¢ããããã·ã¥é¢æ°ãããã®ã¯ããããšã§ãããSHA-256ãšSHA-512ã®äž¡æ¹ãäžè¬çã«ãµããŒããããŠãããã³ã¢ãç°ãªããŸãã ãããã£ãŠããã§ã«2ã€ã®å®å šãªããã·ã¥é¢æ°ããããã€ãããŠããããã1ã€ã¯å¿ èŠãªããšæããŸãã
ç§ã¯æçš¿ãèªã¿ãaglã®è°è«ãç解ããŸããã Resticã®å Žåãããã¯ããã»ã©éèŠã§ã¯ãããŸãããæå·åãããã³ã«ã®æ§æèŠçŽ ãšããŠã§ã¯ãªããããã·ã¥é¢æ°ã䜿çšããŠããããïŒäžæã«ïŒèå¥ããŠããŸãã ä»ã®ããã·ã¥é¢æ°ã調ã¹ãç§ã®èãã¯ãç¹ã«ããŒãšã³ãã·ã¹ãã ã§ã¯ãSHA-256ã®èšç®ãé ããšããããšã§ããã ä»ã®ããã·ã¥é¢æ°ã¯ã¯ããã«é«éã§ãïŒäŸïŒblake2ïŒã
ãããã¬ã圢åŒã®ãã®ãã©ããããããªãïŒæå·åããªãã·ã§ã³ã«ããã®ã¯ã©ãã§ããïŒ ãã§ã«æå·åããããã£ã¹ã¯ãããä¿¡é Œã§ããããã¯ã¢ãããµãŒããŒã«ä¿åãããããã¯ã¢ãããèããŠããŸãã
@mschiffãã®è°è«ã«ã€ããŠã¯ãïŒ1018ãåç §ããŠãã ããã ;ïŒ
ããŒããµã€ãºããªãã·ã§ã³ã«ããŠã¿ãŸãããïŒ
çŸåšããã¡ã€ã«ããšã«4ã6MBãããŸãã ãã¡ã€ã«ã¯å°ãªãã倧ããã»ã©ããªã¢ãŒãããã¯ã¢ããã¯ã¯ããã«é«éã«ãªããŸãã
@ fd0ã¯æžããïŒ
çŸæç¹ã§ã¯ãé床ã«ã¯é¢å¿ããªãã®ã§ïŒã¬ã¹ãã£ãã¯ã¯ãã§ã«éåžžã«é«éã§ãïŒãå°ãªããšãç§ã«ãšã£ãŠã¯ããã®ã¢ã€ãã ã®åªå 床ã¯äœããªã£ãŠããŸãã SIMD察å¿ããã»ããµçšã«æé©åãããããŒãžã§ã³ã®SHA256ããããç°¡åã«åãæ¿ããããšãã§ããŸãã äžæ¹ãresticãé«éåããããšã決å®ããããã·ã¥ã«ã€ããŠèª¬æããå Žåã¯ãããããKeccakïŒSHA3ïŒãŸãã¯Blake2ããå§ãããŸãããããã¯ïŒç§ãç¥ãéãããŸã ãã³ãããŒã¯ãå®è¡ããŠããŸããïŒã¯ããã«é«éã
ããé«éã§CPUè² è·ã®å°ãªãããã·ã¥ã¢ã«ãŽãªãºã ïŒBlake2ãªã©ïŒã«é¢ãããã1ã€ã®èæ ®äºé ã¯ãé»æºã«æ¥ç¶ãããŠããªããšãã«ããã¯ã¢ãããäœæãããšãã®ã©ãããããã®ããããªãŒäœ¿çšéãæžããããšã§ãã
æåã®æçš¿ãžã®è¿ä¿¡ïŒ
ããŒãã¡ã€ã«ãããŠãŒã¶ãŒåãšãã¹ãåãåé€ããŸãã
ããã¯ãããŒåãŸãã¯ããçš®ã®èª¬æã«çœ®ãæããããŸããïŒ ç°ãªãããŒãåºå¥ããäœããã®æ¹æ³ïŒããšãã°ããããã·ã³ã®ã¢ã¯ã»ã¹ãåãæ¶ãå Žåãªã©ãããŒèªäœã«ã¢ã¯ã»ã¹ããããšãªãïŒã¯ãããŒç®¡çãæçšã«ããã®ã«åœ¹ç«ã€ãšæããŸããïŒ
1ã€ã®æ°ããææ¡ïŒããããããªãŒãã¹ãããã·ã§ããã«å¥ã®ããŒã䜿çšããã®ã¯ã©ãã§ããïŒ ããã«ãããAFAICSã¯ãã¯ã©ã€ã¢ã³ãã§ã¯ãªãããã¯ã¢ããã¹ãã¬ãŒãžãµãŒããŒã§å¿åŽãšãã«ãŒãã³ã°ãçºçããã·ããªãªãå¯èœã«ããŸãã ã¹ãã¬ãŒãžãµãŒããŒã«ããªãŒãªããžã§ã¯ããšã¹ãããã·ã§ãããªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ãèš±å¯ããããšã«ãããã©ã®ã¹ãããã·ã§ããã§ã©ã®ãªããžã§ã¯ããå¿ èŠã§ãã©ã®ãªããžã§ã¯ãã䜿çšãããªããªã£ãããå€æããã®ã«ååãªæ å ±ãå¿ èŠã«ãªããŸãã ã¹ãã¬ãŒãžãµãŒããŒããã¹ãŠäŸµå®³ãããå ŽåãããªãŒã¡ã¿ããŒã¿ãžã®ã¢ã¯ã»ã¹ã¯ååŸãããŸãããå®éã®ãã¡ã€ã«ã®å 容ãžã®ã¢ã¯ã»ã¹ã¯ååŸãããŸããã
ããã¯ãæ®ãã®ã¡ã¿ããŒã¿ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããã«ãããªãŒã«ãã£ãŠåç §ããããªããžã§ã¯ãIDã®ãªã¹ããžã®ã¢ã¯ã»ã¹ã®ã¿ãèš±å¯ããããšã§ããããã«åŒ·åã§ããŸãïŒãã ããããã«ã¯ãããªãŒããšã«è¿œå ã®ããŒã¿æ§é ãå¿ èŠã«ãªããŸãïŒã
äžèšãå¯èœã«ãªãã°ãèªåãã«ãŒãã³ã°ãèªåãã«ãŒãã³ã°ãç ç²ã«ããããšãªããæžã蟌ã¿å°çš/è¿œå å°çšã®çš®é¡ã®ã¹ãã¬ãŒãžïŒããã¯ã¢ãããããã¯ã©ã€ã¢ã³ããããã¯ã¢ãããåé€ã§ããªãå ŽåãïŒ784ãåç §ïŒã䜿çšããæ¹æ³ãéãããŸããããŒã¿ã»ãã¥ãªãã£ã
以åã®ã³ã¡ã³ãïŒããŒã¿ãžã®ãã«ã¢ã¯ã»ã¹ãå¿ èŠãšããªããã«ãŒãã³ã°ïŒã«ã€ããŠïŒããã¯ãããã¯ã¢ããã®ãã§ãã¯ã«ãåœãŠã¯ãŸããŸãïŒããããããã«åŒ·åã§ãïŒã å¹çäžã®çç±ããïŒãªããžããªããªã¢ãŒãã§ãã§ãã¯ããã«ã¯ãã¹ãŠã®ã³ã³ãã³ãã転éããå¿ èŠãããïŒããŸãã¯çã®æžã蟌ã¿å°çšãµããŒããå®è£ ããå ŽåïŒhttps://github.com/ncw/rclone/issuesãåç §ïŒãã¹ãã¬ãŒãžãµãŒããŒäžã®ãªããžããªããã§ãã¯ããããšã¯çã«ããªã£ãŠããŸãã / 2499ïŒã
ãŸããçã®æžã蟌ã¿å°çšã¢ãããŒãã®å Žåãèªã¿åãå¿ èŠã®ãããã¡ã€ã«ãå¶éããããã«å¶éãå€æŽããå¿ èŠããããŸãïŒhttps://github.com/ncw/rclone/issues/2499#issuecomment-418609301ã«ããïŒã ãªããžããªåœ¢åŒã®å€æŽãå¿ èŠãã©ããããããŸãããå€æŽãå¿ èŠãªå Žåã¯ãããã«å«ãããšäŸ¿å©ã§ãã
ãªã¢ãŒããµãŒããŒäžã®ãªããžããªããã§ãã¯ããŠæŽçããã®ã¯æ¬åœã«çŽ æŽãããããšã§ãã ç§ã¯è€æ°ã®ãã¹ããããã¯ã¢ããããããã«resticãã»ããã¢ããããŠããæäžã§ãããã¯ã©ã€ã¢ã³ãã®ã»ããã¢ãããå¯èœãªéãç°¡åã§ãããã¯ã¢ãããå®æçã«å®è¡ããã ãã§ããããã«ããªã¢ãŒãã§ãã¹ãŠã®ã¡ã³ããã³ã¹ã¿ã¹ã¯ãå®è¡ããããšèããŠããŸãã
ã¹ãããã·ã§ãããã¡ã€ã«åœ¢åŒãžã®ããã€ãã®ïŒãããããªãã·ã§ã³ã®ïŒè¿œå ã«ã€ããŠèª¬æããããšæããŸãã
ããã¯ãã¡ã€ã«åœ¢åŒã«ã€ããŠãããããŒãå®å
šã«åé€ããªãçç±ã«ã€ããŠè³ªåããããšæããŸãã
æ
å ±ã¯ãã€ã³ããã¯ã¹ãã¡ã€ã«ã«åé·ã«å«ãŸããŠããŸãã ãšã©ãŒèšæ£ã®ããã«åé·æ§ãè¿œå ããããšã«ã€ããŠããã€ãã®è°è«ããããŸããããIMOã¯ãããäžè¬çãªãªããžããªåœ¢åŒããåé¢ããå¿
èŠãããïŒãããŠåé¢ã§ãïŒããã®äžã«è¿œå ãããå Žåãšãããªãå ŽåããããŸãã
ç°¡åã«èšããšããšã©ãŒèšæ£ã®ããã®è¿œå æ å ±ãå¿ èŠãªãããŸãã¯å¿ èŠãªãå Žåã¯ãããã¯ããããŒãã¡ã€ã«ãšã€ã³ããã¯ã¹ãã¡ã€ã«ã®æ å ±ãè€è£œããå¿ èŠã¯ãããŸããã ã€ã³ããã¯ã¹ãã¡ã€ã«ã¯ãããã©ãŒãã³ã¹ã®é«ãæäœã«å¿ èŠã§ãããããããå Žæã§äœ¿çšãããŸãã ããã¯ããããŒã䜿çšãããããšã¯ãã£ãã«ãããŸããããã®å Žåã¯ãããã«ãã§ãã¯ãŸãã¯ãšã©ãŒèšæ£ã®ããã«ã®ã¿äœ¿çšãããŸãã
å¥ã®ææ¡ïŒãŠãŒã¶ãŒåããã¹ãåãããã³æ§æãã¡ã€ã«ã®å
容ãããŒãã¡ã€ã«ã®data
ã»ã¯ã·ã§ã³ã«è¿œå ããŸãã ãããã£ãŠãæ§æãã¡ã€ã«ãå®å
šã«åé€ããŸãã
ãã§ã«ææ¡ãããŠããããã«ããŠãŒã¶ãŒåãšãã¹ãã¯æå·åããã圢åŒã§ã®ã¿ååšããå¿
èŠããããŸãã KDFãã掟çããããŒãæå¹ãã©ããã確èªããã«ã¯ãæå·åãããdata
ã»ã¯ã·ã§ã³ã®MACã確èªããã ãã§ååã§ãã
IMOã«ã¯ãããŒãèå¥ããããã«å¿
èŠãªãã¹ãŠã®æ
å ±ãããã«çœ®ãã®ãçã«ããªã£ãŠããŸãã config
ãã¡ã€ã«ã«ä¿åãããŠããæ
å ±ãè¿œå ãããšãATMã¯ãªããžããªããäœåãªãã¡ã€ã«ãåé€ããã ãã§ããªããžããªã®åæåã容æã«ãªããŸãã
ãã°ãããã質åã§ç³ãèš³ãããŸããããããã«æ¹åããããã©ãŒããããå°å ¥ããããã«çå£ãªåªåãè¡ãããŠããŸããïŒ ç§ã¯ãã®åé¡ãäœå¹Žããã©ããŒããŠããŸãã çŸåšãresticã¯ã倧èŠæš¡ãªããŒã¿ã»ããã®å ŽåããŸãã¯ã¹ãããã·ã§ãããå€æ°ããã倧éã®ã¡ã¢ãªãå¿ èŠãšããå Žåã«ã¯ããŸãæ©èœããŸããã å§çž®ã®æ¬ åŠãšJSONãšã³ã³ãŒããããã¡ã¿ããŒã¿ã®å€§ããªãªãŒããŒãããããresticã®å€§ããªåé¡ã®ããã§ãã ãå®ç§ããéæããå¿ èŠæ§ãèªèãããŠãããããåªåãè¡ãè©°ãŸã£ãŠããã®ã§ã¯ãªãã§ããããã
ãŸããæªæ¥ãã¬ã¹ãã£ãã¯ã«ãããããã®ã«ãèå³ããããŸãã ç¹ã«é察称æå·åãšå§çž®ã§ã
ã¡ãªã¿ã«ãæ°ããããã·ã¥é¢æ°ã«ã¯ãéåžžã«æ°ãããéåžžã«é«éãªblake3ããããŸãïŒ https ïŒ//github.com/BLAKE3-team/BLAKE3
ããã·ã¥é¢æ°ã®å€æŽã«é¢ããŠãŸã 決å®ããªãããŠããªãå Žåãããã¯èå³æ·±ããããããŸããã
repo.v2ã®ãã®ä»ã®ã¢ã€ãã¢ïŒ
ããã«ãããamazon Glacierã®ããã«éåžžã«äœéãŸãã¯é«äŸ¡ãªããŠã³ããŒãã§ããã³ãŒã«ããã¹ãã¬ãŒãžã®ãµããŒããç°¡çŽ åãããŸãã
* save tree and data blobs to different directories (in the past tree and data was mixed, but this was deprecated with introduction of cache).
ç§ã¯ãã®ã¢ã€ãã¢ã奜ãã§ã¯ãããŸãããããã¯ãããã¯ã¢ããã®ãã¡ã€ã«ãµã€ãºãæšæž¬ããã®ãã¯ããã«ç°¡åã«ããŸããããã®å©ç¹ã¯ããããŸããã
* add 'created time' info to data blobs.
ãäœæãããæéããè¿œå ããããšã®äœ¿çšã¯èŠåœãããŸããã ãŠãŒã¹ã±ãŒã¹ãæããŠããã ããŸããïŒ
ããã«ãããamazon Glacierã®ããã«éåžžã«äœéãŸãã¯é«äŸ¡ãªããŠã³ããŒãã§ããã³ãŒã«ããã¹ãã¬ãŒãžã®ãµããŒããç°¡çŽ åãããŸãã
ãã³ãŒã«ãã¹ãã¬ãŒãžãã®ãµããŒãã¯ãçŸåšã®ã¬ã圢åŒã§ãã§ã«éæã§ããŸããããã¯ãããŒã«ã«ãã£ãã·ã¥ãªã©ãé »ç¹ã«äœ¿çšããããã¡ã€ã«ã埩å ããã³äºéä¿åããããã®åŸ®èª¿æŽã®å¯èœæ§ãè¿œå ããããšã«ãã£ãŠå®çŸã§ããŸãã ïŒ2504ãåç §ããŠãã ãã
* save tree and data blobs to different directories (in the past tree and data was mixed, but this was deprecated with introduction of cache).
ç§ã¯ãã®ã¢ã€ãã¢ã奜ãã§ã¯ãããŸãããããã¯ãããã¯ã¢ããã®ãã¡ã€ã«ãµã€ãºãæšæž¬ããã®ãã¯ããã«ç°¡åã«ããŸããããã®å©ç¹ã¯ããããŸããã
ãã®å©ç¹ã¯ããã®åé¡ã«é¢ãã以åã®ã³ã¡ã³ãã§è©³ãã説æãããŠããŸãã
https://github.com/restic/restic/issues/628#issuecomment -280436633
https://github.com/restic/restic/issues/628#issuecomment -280833405
æåã®ã³ã¡ã³ãã®çµæã¯ãããã2ã€ã®ã¿ã€ãã®blobãæ··åããŠããæå³ã®ããæ¹æ³ã§ãã¡ã€ã«ãµã€ãºãäžæçã«ãªããªãããšã瀺ããŠããŸãã
é¢é£ãããã©ãŒã©ã æçš¿ïŒ
https://forum.restic.net/t/feature-using-an-index-for-restic-find/1773
@cfbaoããªããåç §ããŠããã³ã¡ã³ãã¯ã1ã€ã®ããŒã¿ãã¡ã€ã«ïŒããã¯ïŒå ã§ããªãŒãšããŒã¿ããããæ··åããããšã«é¢ãããã®ã§ãã ãããåé¢ãããšããã£ãã·ã¥åŠçãæå¹ã«ããã®ã«åœ¹ç«ã¡ãŸããã ãããresticå ã§ãã§ã«å€æŽãããŠããŸãã
ãã ããããªãŒãšããŒã¿ã®BLOBãå¥ã®ãã£ã¬ã¯ããªã«ä¿åããã¡ãªããã¯ãŸã ããããŸããã ãŠãŒã¹ã±ãŒã¹ãæããŠããã ããŸããïŒ ïŒIMOã®ãã©ãŒã©ã æ€çŽ¢ãããã¯ã¯é¢é£ããŠããŸãã-ããã§åçããŸãïŒ
ãã ããããªãŒãšããŒã¿BLOBãšã³ããªãå¥ã ã®ã€ã³ããã¯ã¹ãã¡ã€ã«ïŒãã£ã¬ã¯ããªãindex-dataããšãindex-treeããªã©ïŒã«åé¢ãããšãããã€ãã®æ¹åãå¯èœã«ãªããŸãã
ããªãŒãããã¯ãã§ã«å¥ã®ããã¯ãã¡ã€ã«ã«ä¿åãããŠããŸãïŒããã¯ãã£ãã·ã¥ãšäžç·ã«å°å
¥ãããŸããïŒã
ããããå¥ã®ãã£ã¬ã¯ããªã«æžã蟌ãã ãã§ãããŠã³ããŒããéåžžã«é
ãã¹ãã¬ãŒãžã®ãµããŒããæ¹åããæ¹æ³ãéãããŸãïŒAmazon Glacieræšæºã®å Žåã¯3ã5æéïŒã ãã¹ãŠã®ã¡ã¿ããŒã¿ïŒéåžžã®S3ã§ã¯ã€ã³ããã¯ã¹+ã¹ãããã·ã§ãã+ããªãŒãGlacierã§ã¯ããŒã¿ïŒãä¿åããã®ãšåãã§ãã
éåžžã®S3ãŸãã¯ãã®ä»ã®å Žæã«tree+index+snapshots
ãæ ŒçŽãããªããŒã¹ãããã·ãäœæãããšããã¢ã€ãã¢ãã¯ããã«å¥œãã§ãããããŒã¿ã¯ãã£ãŒãã¢ãŒã«ã€ãã«ä¿åãããŸãã
ãããã«ããã確ãã«restic
ããã®ãŸãŸäœ¿çšããããšã¯å¯èœã§ãããããã€ãã®å¶éããããŸãã ãã ããäžéšã®åœ¢åŒã®å€æŽã«ãããç¶æ³ãæ¹å/ç°¡çŽ åãããå ŽåããããŸãã
@cfbaoã¯ãã³ãŒãrestic find
ããèŠãéããããã«ããã¡ãªããã¯ãããŸããã ãã§ã«ã¹ãããã·ã§ããããŠã©ãŒã¯ãªãŒããŒããŠããŸãã åºæ¬çã«ã¯restic ls <all-snapshots> | grep something
ãšã»ãšãã©åãã§ãã
@dionorgua
ããŒã¿ããã¯ãé€ããã¹ãŠããã£ãã·ã¥ããããè¿œå ã®ããã£ãã·ã¥ãšããŠä»»æã®ãªããžããªãè¿œå ãããšããã¢ã€ãã¢ã奜ãã§ãã ããã¯ãªããžããªã¬ã€ã¢ãŠããå€æŽããå¿
èŠããªããIMOã¯ã¯ããã«æè»æ§ããããŸãã
ç§ã¯ãã§ã«ããã«åãçµãã§ããŸããïŒ2516ã®æåŸã®ã³ã¡ã³ããåç
§ããŠãã ããã
ã°ãããèããããããŸããããborgãkopiaãšäºææ§ã®ãããã©ãŒãããã¯ã©ãã§ããããã
@aawsome
ããªããåç §ããŠããã³ã¡ã³ãã¯ã1ã€ã®ããŒã¿ãã¡ã€ã«ïŒããã¯ïŒå ã§ããªãŒãšããŒã¿ããããæ··åããããšã«é¢ãããã®ã§ãã
æ¬åœã§ãã ç§ã®æªãã ããããããç§ãæ°ã«ããå¯äžã®ããšã§ãã
ãããresticå ã§ãã§ã«å€æŽãããŠããŸãã
ãããã©ã®PR/ããŒãžã§ã³ã§å€æŽããããç¥ã£ãŠããŸããïŒ ååã¬ããžããªããã§ãã¯ãããšããåãããã¯ãã¡ã€ã«ã«ããŒã¿ãšããªãŒããããæ··åšããŠããããšã«æ°ã¥ããŸããã ãªããžããªãããé©åã«åé¢ããããã«ïŒãããããã£ãããšïŒå€æã§ããæ¹æ³ã¯ãããŸããïŒ
ããªãŒãšããŒã¿ã®BLOBãå¥ã®ãã£ã¬ã¯ããªã«ä¿åããã¡ãªããã¯ãŸã ããããŸããã ãŠãŒã¹ã±ãŒã¹ãæããŠããã ããŸããïŒ
äœãæãã€ããŸããã åã«è¿°ã¹ãããã«ãç§ã¯ããã«ã€ããŠã¯ããŸãæ°ã«ããŸããã
@dionorgua
ç§ãã³ãŒãããèŠãéããresticfindã¯ããããå©çãåŸãããšãã§ããŸããã ãã§ã«ã¹ãããã·ã§ããããŠã©ãŒã¯ãªãŒããŒããŠããŸãã åºæ¬çã«ããã¯resticlsãšã»ãšãã©åãã§ã
| grepäœãã
ããªãŒããããããŒã¿ãããããåé¢ãããšãæ€çŽ¢ã«å¿ èŠãªAPIåŒã³åºãã®æ°ãæžããŸãããïŒ éäžãããšãããªãŒBLOBãå«ãããã¯ãã¡ã€ã«ã®æ°ãæžããresticã¯ãå€ãã®ããã¯ãã¡ã€ã«ããå€ãã®ã»ã°ã¡ã³ãããã§ãããã代ããã«ãå°æ°ã®ãã¡ã€ã«å šäœãããŠã³ããŒãã§ããŸãã ããã¯ãæ¯èŒçäœéã§ã¬ãŒãå¶éãå³ããããã¯ãšã³ãïŒGoogleãã©ã€ããªã©ïŒã«ãšã£ãŠéèŠã§ãã
ã©ããªæ¹æ³ã§ãïŒãããããã£ãããšïŒãªããžããªãããè¯ããã®ã«å€æããããšãã§ããŸã
åé¢ïŒ
æè¿ã®ããŒãžã§ã³ã®resticã§ã¯ããpruneããå®è¡ãããšããããã®æ··åããã¯ãåæ§ç¯ãããŸãã
'prune'ã®å®éã®å®è£
ã¯ããªã¢ãŒããªããžããªã«å€§éã®ãã©ãã£ãã¯ãçæããããšã«æ³šæããŠãã ããã ïŒ2718ã®å®éšçãªåå®è£
ã§ã¯ããã©ãã£ãã¯ãæå°éã«æããªãããæ··åããã¯ã®ã¿ãåããã¯ã§ããŸãã
ããªãŒããããããŒã¿ãããããåé¢ããªããšãAPIã®æ°ãæžããŸã
æ€çŽ¢ã«å¿ èŠãªåŒã³åºãïŒ
æè¿ã®ããŒãžã§ã³ã§ã¯ãæ··åããã¯ããªããªããžããªã§ã¯ãå¿ èŠãªãã¹ãŠã®æ å ±ãããŒã«ã«ã«ãã£ãã·ã¥ãããŸãã
æ¹åããããªããžããªåœ¢åŒã®å¥ã®ã¢ã€ãã¢ïŒ
ãããŸã§èŠãŠããããã«ãããã¯ãã¡ã€ã«ãblobã¿ã€ãããšã«åããããšã¯æçã§ãïŒããªãŒãšããŒã¿ã®blobã¯ç°ãªãããã¯ãã¡ã€ã«ã«å
¥ããããŸãïŒã ã€ã³ããã¯ã¹ãã¡ã€ã«ãblobã¿ã€ãã§åºåãã®ã¯è¯ãèãã§ã¯ãªãã§ããããã æè¿ã®ã€ã³ããã¯ã¹PRã¯ãã¡ã¢ãªå
è¡šçŸã§ããªãŒãšããŒã¿BLOBã®ã€ã³ããã¯ã¹ãšã³ããªãåé¢ããæ¹åã«ãã§ã«é²ãã§ããŸãã
ãŸããã€ã³ããã¯ã¹ã®äžéšã®ã¿ãããŒãããããã®æé©åãå¯èœã§ãã
ãªããžããªã§ããããè¡ããšãããã³ã³ãã¯ããªè¡šçŸãå¯èœã«ãªããŸãã
{
"supersedes": [
"ed54ae36197f4745ebc4b54d10e0f623eaaaedd03013eb7ae90df881b7781452"
],
"type": "data",
"packs": [
{
"id": "73d04e6125cf3c28a299cc2f3cca3b78ceac396e4fcf9575e34536b26782413c",
"blobs": [
{
"id": "3ec79977ef0cf5de7b08cd12b874cd0f62bbaf7f07f3497a5b1bbcc8cb39b1ce",
"offset": 0,
"length": 25
},{
"id": "9ccb846e60d90d4eb915848add7aa7ea1e4bbabfc60e573db9f7bfb2789afbae",
"offset": 38,
"length": 100
},
{
"id": "d3dc577b4ffd38cc4b32122cabf8655a0223ed22edfd93b353dc0c3f2b0fdf66",
"offset": 150,
"length": 123
}
]
}, [...]
]
}
æãåèã«ãªãã³ã¡ã³ã
ã¯ãïŒããã¯ããããŒã¯ããã¯ã®å 容ãèšè¿°ããããã¯æœåºããã»ã¹ã«äœãæåŸ ããããæ瀺ããŸãïŒå§çž®ã¢ã«ãŽãªãºã ãéå§çž®ãµã€ãºãããã³åŸã§æå·åã«äœ¿çšãããããŒãªã©ã®ä»ã®å±æ§ã«é¢ããŠïŒã åãããšãã€ã³ããã¯ã¹ã«è¡šç€ºãããå¿ èŠããããŸããããã¯ãresticãããã¯ããããŒå ã®ãã¹ãŠã®blobãæ€çŽ¢ããå¿ èŠããªãããã«å°å ¥ããããã®ã§ãã ãããã£ãŠãåãæ å ±ãããã«ååšããå¿ èŠããããŸãã
ãã®ã¢ã€ãã¢ã¯å¥œãã§ã¯ãããŸããããã¡ã€ã«åœ¢åŒãããè€éã«ãªããŸããBLOBã®å é ãšããããŒã®2ã€ã®ç°ãªãå Žæã«å¶åŸ¡æ å ±ããããŸãã ããããŒã¯ãæ£ç¢ºã«ã¯å¶åŸ¡æ å ±ãå«ãå Žæã§ãã
ååãšããŠç§ã¯åæããŸããããã¡ã€ã«ã·ã¹ãã ã¯éåžžã«è€éãªãã®ã§ããããšã©ãŒã®äŒæïŒããšãã°ãã¡ãã£ã¢ã®èªã¿åã/æžã蟌ã¿ãšã©ãŒïŒã¯ãã°ãã°æé©ã§ã¯ãããŸããã å€§å¹ ã«åæžãããïŒåé·æ§ã®èŠ³ç¹ãããããšãã°éè€æé€ãããïŒããã¯ã¢ããããŒã¿ã®å Žåã§ãããšã©ãŒèšæ£ã®å¥ã®ã¬ã€ã€ãŒãè¿œå ããïŒãŸãã¯è¿œå ããããšãææ¡ããïŒããšããå§ãããŸãã