Ответ
Файл go.sum — это автоматически генерируемый файл, который обеспечивает целостность и воспроизводимость зависимостей в Go-проекте. Он содержит криптографические хеш-суммы для каждой версии каждого модуля, от которого зависит проект.
Ключевые назначения go.sum:
Верификация целостности (Integrity Verification): При сборке проекта Go использует хеши из
go.sumдля проверки того, что загруженные из интернета модули не были изменены или подменены. Это защищает от атак на цепочку поставок (supply-chain attacks).Воспроизводимость сборок (Build Reproducibility):
go.sumгарантирует, что все разработчики в команде, а также CI/CD-системы, используют абсолютно идентичный код зависимостей. Это предотвращает ошибки вида «у меня работает, а у тебя нет».
Отличие от go.mod:
go.modопределяет требования к версиям зависимостей (например,github.com/gin-gonic/gin v1.7.0или новее).go.sumфиксирует факт использования конкретной версии, записывая её точную хеш-сумму.
Пример строки в go.sum:
github.com/example/module v1.2.3 h1:abCdEfGh...
github.com/example/module v1.2.3/go.mod h1:ijKlMnOp...Здесь h1: означает, что используется хеш-алгоритм SHA-256.
Важно: Файл go.sum необходимо коммитить в систему контроля версий (Git) вместе с go.mod, чтобы обеспечить консистентность для всей команды и сборочных процессов.