Go開發團隊正式發布Go模組鏡像網站、索引以及校驗和資料庫功能,而官方也預告,在即將推出的Go 1.13中,將會預設啟用模組鏡像網站以及校驗和資料庫。

模組鏡像網站是一個特殊的模組代理,會將元資料和原始碼快取在自己的儲存系統中,即便未來模組原始碼已經在原始位置消失,模組鏡像網站仍可以繼續提供這些消失的模組,因此其除了可以加速使用者模組下載的速度外,模組鏡像網站還能保護開發者的專案,持續擁有相依項目支援。Go開發團隊表示,模組鏡像網站在proxy.golang.org上提供,Go 1.13的上的指令將預設使用鏡像網站,而對於使用較舊版本的開發者,也能透過配置代理,使用模組鏡像網站。

而模組擁有一個稱為go.sum的檔案,Go指令可以使用其中包含的雜湊,偵測原始伺服器或是代理的錯誤行為,像是為同一個版本模組提供不同的程式碼。開發團隊提到,go.sum檔案機制的侷限,在於其運作完全仰賴開發者第一次使用,當開發者將新的相依項目添加進模組的時候,Go指令會擷取程式碼,並動態地在go.sum檔案中新增。

但問題在於,在go.sum中新增的內容沒有被檢查過,因此Go指令新增的內容可能與為其他人產生的內容不同,而這可能是因為代理故意針對開發者產生的惡意程式碼。Go團隊為了解決這個問題,現在推出了校驗和資料庫功能,以確保Go指令總是為所有人的go.sum檔案,產生相同的內容。當Go指令收到新的原始碼的時候,可以根據全域資料庫驗證原始碼的雜湊,驗證確保所有人在特定版本模組都擁有相同的原始碼。

模組索引功能由index.golang.org提供,並且為模組鏡像網站上的新模組版本公開饋給(Feed),能方便地讓工具開發者,在proxy.golang.org中快取可用的內容,或是隨時取得模組更新的資訊。


Advertisement

更多 iThome相關內容