Sự khác biệt giữa việc sử dụng Event và lưu trữ dữ liệu trực tiếp vào Storage trong Smart Contract về mặt chi phí Gas là gì?
Lưu trữ dữ liệu vào Storage (biến trạng thái) là thao tác tốn kém nhất trong Solidity vì dữ liệu được ghi vĩnh viễn vào trạng thái của blockchain và mọi node đều phải lưu trữ. Ngược lại, Event là cơ chế ghi dữ liệu vào log của giao dịch. Dữ liệu trong Event không thể được truy cập bởi các Smart Contract khác, nhưng nó rẻ hơn đáng kể và cho phép các ứng dụng Frontend (thông qua Web3.js hoặc Ethers.js) truy vấn dữ liệu lịch sử một cách hiệu quả. Kinh nghiệm thực chiến là chỉ lưu trữ vào Storage những dữ liệu cần thiết cho logic của hợp đồng, còn lại hãy sử dụng Event để lưu trữ dữ liệu phục vụ mục đích hiển thị hoặc phân tích.
Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp
Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.
Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)
Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?
Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.
Kiểm Tra CV Chuẩn ATS Miễn Phí
Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.
Câu hỏi blockchain liên quan cùng chủ đề
- Làm thế nào để triển khai và tối ưu hóa thuật toán hoặc cấu trúc dữ liệu liên quan đến Smart Contracts trong chủ đề Blockchain? Entry
- Trong Solidity, tại sao việc sử dụng tx.origin để xác thực quyền sở hữu (Authentication) lại tiềm ẩn rủi ro bảo mật nghiêm trọng? Junior
- Giải thích khái niệm Shadowing trong Solidity và tại sao nó lại gây ra các lỗi logic khó phát hiện trong quá trình phát triển Smart Contract? Junior
- Trong kiến trúc Blockchain, tại sao việc sử dụng các hàm tạo số ngẫu nhiên (Random Number Generation) trực tiếp trong Smart Contract lại không an toàn? Junior
- Tại sao việc sử dụng modifier trong Solidity lại được coi là một Best Practice để tối ưu hóa code và đảm bảo tính bảo mật? Junior


