Thực thi chương trình BPF
Ngữ cảnh
Hình này xuất hiện trong phần 'Kiến trúc Hệ thống', cụ thể trong mô tả về runtime hợp đồng thông minh song song Sealevel tại giai đoạn Banking. Phần này giải thích rằng các chương trình Solana (hợp đồng thông minh) được biên dịch thành bytecode BPF (Berkeley Packet Filter), được thực thi trong máy ảo sandbox cung cấp an toàn bộ nhớ, thực thi tất định và ngân sách tính toán để ngăn chương trình chạy vô hạn.
Nội dung hình này
Sơ đồ minh họa cách nhiều chương trình BPF do người dùng cung cấp được thực thi đồng thời trong runtime Sealevel: mỗi chương trình chạy trong máy ảo BPF sandbox riêng, cách ly khỏi bộ nhớ chương trình khác. Các chương trình truy cập tập tài khoản không giao nhau được lập lịch song song qua các lõi CPU sẵn có, trong khi các chương trình có phụ thuộc tài khoản chồng lấn được tuần tự hóa để ngăn điều kiện tranh chấp. Tất cả chương trình chia sẻ quyền truy cập vào tập hàm nội tại — syscall do runtime Solana cung cấp — cho các thao tác như hash mật mã, gọi chương trình chéo và ghi log, mà không cần nhúng các thao tác tốn kém này trong bytecode. VM BPF thực thi ngân sách tính toán (đo bằng số lệnh BPF tương tự gas EVM) giới hạn tiêu thụ tài nguyên của mỗi giao dịch.
Tầm quan trọng
Mô hình thực thi song song dựa trên BPF là yếu tố khác biệt kiến trúc chính của Solana so với EVM tuần tự của Ethereum. Bằng cách yêu cầu chương trình khai báo phụ thuộc tài khoản trước, Sealevel chuyển đổi vấn đề lập lịch từ quyết định runtime thành phân tích tĩnh, cho phép giai đoạn Banking tối đa hóa sử dụng lõi CPU. Thiết kế gọi nội tại chung giảm kích thước bytecode và đảm bảo triển khai nhất quán, có thể kiểm toán của các thao tác quan trọng về bảo mật như xác minh chữ ký trên tất cả chương trình.