Công nghệ

Go 1.27 ra mắt mã hóa hậu lượng tử và cắt giảm chi phí bộ nhớ máy chủ 30%

Adrian Kessler

Go 1.27 mang đến hai thay đổi tác động đến tầng hạ tầng trước khi chạm tới màn hình người dùng. Ngôn ngữ này hiện tích hợp mật mã hậu lượng tử vào TLS và giảm chi phí bộ nhớ cho các cấp phát nhỏ tới 30%, kiểu cập nhật tiết kiệm chi phí ở quy mô lớn, trong khi câu chuyện chính vẫn là framework AI được công bố cùng tuần.

Bổ sung hậu lượng tử là gói crypto/mldsa mới triển khai ML-DSA, lược đồ chữ ký được chuẩn hóa trong FIPS 204. TLS 1.3 trong Go giờ có thể xác thực kết nối bằng ba biến thể ML-DSA (MLDSA44, MLDSA65 và MLDSA87), và thư viện crypto/x509 có thể phân tích và xác minh chứng chỉ mang các biến thể này. Mối đe dọa mà các biện pháp phòng vệ này bảo vệ chống lại — một máy tính lượng tử đủ mạnh để phá vỡ RSA hoặc mã hóa đường cong elliptic — hiện chưa tồn tại ở quy mô thực tế. Nhưng việc di chuyển mất nhiều năm; các tổ chức trong lĩnh vực tài chính, y tế và chính phủ quản lý hồ sơ có thời gian sử dụng dài đã coi đây là vấn đề lập kế hoạch chủ động.

Thay đổi về bộ nhớ ít thấy rõ hơn nhưng có giá trị tức thì hơn. Trình chạy Go giờ tạo ra các quy trình cấp phát chuyên biệt theo kích thước nhắm vào các đối tượng dưới 80 byte — lớp chiếm phần lớn các cấp phát trong một máy chủ điển hình xử lý hàng nghìn yêu cầu đồng thời. Kết quả là giảm 30% chi phí cấp phát cho lớp đó, và các điểm chuẩn chuyển thành tốc độ tăng 3–5% trong khối lượng công việc máy chủ. Go chạy các API đám mây, bộ xử lý thanh toán và dịch vụ nền tảng nội bộ ở quy mô lớn; ở đó, sự khác biệt đó là chi phí hạ tầng thực tế.

Go 1.27 cũng lấp đầy một khoảng trống tồn tại kể từ khi generics ra mắt trong Go 1.18: các phương thức generic. Trước đây, một phương thức không thể mang tham số kiểu riêng của nó, điều này đẩy các thao tác đa kiểu vào các hàm cấp gói bên ngoài không gian tên của kiểu. Sửa lỗi hiện rõ trong thư viện chuẩn: math/rand/v2.Rand gộp ba phương thức kiểu số nguyên riêng biệt thành một phương thức N() generic duy nhất. Đối với các cơ sở mã từng phải tìm cách khắc phục, thay đổi này tháo gỡ một mẫu thay vì giới thiệu một mẫu mới.

Hai lưu ý đáng kể. Hỗ trợ hậu lượng tử là tùy chọn; cấu hình TLS hiện tại vẫn hoạt động không thay đổi, và việc áp dụng trên toàn hệ sinh thái sẽ diễn ra dần dần. Cải thiện 30% bộ nhớ chỉ áp dụng cho lớp cấp phát dưới 80 byte, và các kỹ sư sẽ cần định hình khối lượng công việc cụ thể của họ trước khi kỳ vọng con số chính giữ được.

Các bổ sung khác bao gồm gói uuid gốc loại bỏ một phụ thuộc bên thứ ba gần như phổ biến, một profiler rò rỉ goroutine hiện có sẵn chung để bắt các goroutine bị chặn vĩnh viễn trong sản xuất, và một triển khai encoding/json/v2 mới hỗ trợ ngầm gói encoding/json hiện tại mà không thay đổi API của nó. Go 1.27, phát hành ngày 19 tháng 8, có sẵn tại go.dev; macOS giờ yêu cầu phiên bản 13 Ventura trở lên.

Thẻ: , , , , ,

Thảo luận

Có 0 bình luận.