Tối ưu hóa song song EVM: Nâng cao hiệu suất xử lý giao dịch
Như mọi người đã biết, EVM là động cơ thực thi cốt lõi của Ethereum, chịu trách nhiệm cho việc thực thi hợp đồng thông minh. Để đảm bảo tính nhất quán của kết quả thực thi hợp đồng trên các nút khác nhau, EVM đã áp dụng công nghệ máy ảo, đạt được khả năng tương thích đa nền tảng.
Khi hợp đồng thông minh được triển khai lên chuỗi, nó sẽ được biên dịch thành mã byte EVM trước. Khi EVM thực thi hợp đồng, nó sẽ đọc các mã byte này theo thứ tự, mỗi lệnh có chi phí Gas tương ứng. EVM sẽ theo dõi mức tiêu thụ Gas trong quá trình thực thi lệnh, mức tiêu thụ phụ thuộc vào độ phức tạp của thao tác.
EVM truyền thống sử dụng phương pháp xử lý giao dịch tuần tự, tất cả giao dịch đều được xếp hàng thực hiện trong một hàng đợi duy nhất. Thiết kế này đơn giản và dễ bảo trì, nhưng khi số lượng người dùng tăng lên, yêu cầu về TPS và băng thông cũng tăng theo, khiến cho những hạn chế về hiệu suất của việc thực hiện tuần tự ngày càng rõ rệt, đặc biệt là trong Layer 2.
Ngoài EVM, một thành phần cốt lõi khác liên quan đến việc thực hiện giao dịch trong go-ethereum là stateDB, được sử dụng để quản lý trạng thái tài khoản và lưu trữ dữ liệu. Mỗi lần EVM thực hiện giao dịch, nó sẽ thay đổi dữ liệu trong stateDB, cuối cùng phản ánh trong cây trạng thái toàn cầu.
Trong chế độ tuần tự, các giao dịch phải được thực hiện theo thứ tự xếp hàng. Nếu có giao dịch hợp đồng phức tạp mất nhiều thời gian, các giao dịch khác chỉ có thể chờ đợi, không thể tận dụng tối đa tài nguyên phần cứng, hiệu suất bị hạn chế đáng kể.
Để giải quyết vấn đề này, ngành công nghiệp đã đề xuất giải pháp tối ưu hóa đa luồng cho EVM. Giải pháp này mở nhiều luồng để xử lý nhiều giao dịch cùng một lúc, có thể nâng cao hiệu suất gấp nhiều lần. Tuy nhiên, việc thực thi song song đối mặt với thách thức xung đột trạng thái, cần phải thực hiện các biện pháp tương ứng.
Một số dự án có cách tiếp cận tối ưu hóa song song EVM là: phân bổ một cơ sở dữ liệu trạng thái tạm thời cho mỗi luồng (pending-stateDB). Khi luồng thực hiện giao dịch, các thay đổi trạng thái sẽ được tạm thời lưu trữ trong pending-stateDB, thay vì trực tiếp sửa đổi stateDB toàn cầu. Sau khi tất cả các giao dịch hoàn tất, các thay đổi trong pending-stateDB sẽ được đồng bộ hóa với stateDB toàn cầu.
Giải pháp này cũng đã tối ưu hóa các thao tác đọc và ghi: khi đọc sẽ kiểm tra trước pending-stateDB, nếu không có thì mới đọc từ global stateDB; thao tác ghi sẽ được ghi lại trong pending-stateDB, sau khi thực hiện xong sẽ được hợp nhất vào global stateDB.
Để xử lý xung đột trạng thái, kế hoạch đã giới thiệu cơ chế phát hiện xung đột. Giám sát tập đọc và ghi của các giao dịch khác nhau, khi phát hiện xung đột sẽ đánh dấu các giao dịch liên quan là cần thực hiện lại.
Tối ưu hóa song song đa luồng đã cải thiện đáng kể hiệu suất EVM, đặc biệt là khi xử lý các hợp đồng thông minh phức tạp. Nghiên cứu cho thấy, dưới tải công việc có xung đột thấp, TPS có thể tăng từ 3-5 lần; dưới tải công việc có xung đột cao, lý thuyết có thể đạt 60 lần.
Giải pháp tối ưu hóa song song này thông qua thư viện trạng thái tạm thời và phát hiện xung đột, đảm bảo tính nhất quán của trạng thái trong khi thực hiện việc song song hóa quy mô lớn các giao dịch, đặt nền tảng quan trọng cho sự phát triển của Ethereum Rollup. Trong tương lai, còn có thể nâng cao hiệu suất từ các khía cạnh tối ưu hóa hiệu quả lưu trữ, xử lý các tình huống xung đột cao, tăng tốc GPU.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
11 thích
Phần thưởng
11
6
Chia sẻ
Bình luận
0/400
¯\_(ツ)_/¯
· 10giờ trước
Người dùng cuối cùng không cần phải chờ đợi đến bao giờ.
Xem bản gốcTrả lời0
ReverseTradingGuru
· 10giờ trước
Cuối cùng cũng có thứ cứng cáp rồi.
Xem bản gốcTrả lời0
TxFailed
· 10giờ trước
psa: đã học về evm song song theo cách tốn kém... rip 2.3 eth của tôi
Xem bản gốcTrả lời0
rugpull_survivor
· 10giờ trước
Nghe nói nhanh gấp 60 lần? Có thể giảm phí gas không?
Xem bản gốcTrả lời0
SilentAlpha
· 10giờ trước
60 lần, thế này thì không kiếm lời à?
Xem bản gốcTrả lời0
LiquiditySurfer
· 10giờ trước
Martini đã chạm đáy rồi, cuối cùng không cần chờ phí gas nữa.
Tối ưu hóa song song EVM nâng cao hiệu suất xử lý giao dịch Ethereum lên tới 60 lần
Tối ưu hóa song song EVM: Nâng cao hiệu suất xử lý giao dịch
Như mọi người đã biết, EVM là động cơ thực thi cốt lõi của Ethereum, chịu trách nhiệm cho việc thực thi hợp đồng thông minh. Để đảm bảo tính nhất quán của kết quả thực thi hợp đồng trên các nút khác nhau, EVM đã áp dụng công nghệ máy ảo, đạt được khả năng tương thích đa nền tảng.
Khi hợp đồng thông minh được triển khai lên chuỗi, nó sẽ được biên dịch thành mã byte EVM trước. Khi EVM thực thi hợp đồng, nó sẽ đọc các mã byte này theo thứ tự, mỗi lệnh có chi phí Gas tương ứng. EVM sẽ theo dõi mức tiêu thụ Gas trong quá trình thực thi lệnh, mức tiêu thụ phụ thuộc vào độ phức tạp của thao tác.
EVM truyền thống sử dụng phương pháp xử lý giao dịch tuần tự, tất cả giao dịch đều được xếp hàng thực hiện trong một hàng đợi duy nhất. Thiết kế này đơn giản và dễ bảo trì, nhưng khi số lượng người dùng tăng lên, yêu cầu về TPS và băng thông cũng tăng theo, khiến cho những hạn chế về hiệu suất của việc thực hiện tuần tự ngày càng rõ rệt, đặc biệt là trong Layer 2.
Ngoài EVM, một thành phần cốt lõi khác liên quan đến việc thực hiện giao dịch trong go-ethereum là stateDB, được sử dụng để quản lý trạng thái tài khoản và lưu trữ dữ liệu. Mỗi lần EVM thực hiện giao dịch, nó sẽ thay đổi dữ liệu trong stateDB, cuối cùng phản ánh trong cây trạng thái toàn cầu.
Trong chế độ tuần tự, các giao dịch phải được thực hiện theo thứ tự xếp hàng. Nếu có giao dịch hợp đồng phức tạp mất nhiều thời gian, các giao dịch khác chỉ có thể chờ đợi, không thể tận dụng tối đa tài nguyên phần cứng, hiệu suất bị hạn chế đáng kể.
Để giải quyết vấn đề này, ngành công nghiệp đã đề xuất giải pháp tối ưu hóa đa luồng cho EVM. Giải pháp này mở nhiều luồng để xử lý nhiều giao dịch cùng một lúc, có thể nâng cao hiệu suất gấp nhiều lần. Tuy nhiên, việc thực thi song song đối mặt với thách thức xung đột trạng thái, cần phải thực hiện các biện pháp tương ứng.
Một số dự án có cách tiếp cận tối ưu hóa song song EVM là: phân bổ một cơ sở dữ liệu trạng thái tạm thời cho mỗi luồng (pending-stateDB). Khi luồng thực hiện giao dịch, các thay đổi trạng thái sẽ được tạm thời lưu trữ trong pending-stateDB, thay vì trực tiếp sửa đổi stateDB toàn cầu. Sau khi tất cả các giao dịch hoàn tất, các thay đổi trong pending-stateDB sẽ được đồng bộ hóa với stateDB toàn cầu.
Giải pháp này cũng đã tối ưu hóa các thao tác đọc và ghi: khi đọc sẽ kiểm tra trước pending-stateDB, nếu không có thì mới đọc từ global stateDB; thao tác ghi sẽ được ghi lại trong pending-stateDB, sau khi thực hiện xong sẽ được hợp nhất vào global stateDB.
Để xử lý xung đột trạng thái, kế hoạch đã giới thiệu cơ chế phát hiện xung đột. Giám sát tập đọc và ghi của các giao dịch khác nhau, khi phát hiện xung đột sẽ đánh dấu các giao dịch liên quan là cần thực hiện lại.
Tối ưu hóa song song đa luồng đã cải thiện đáng kể hiệu suất EVM, đặc biệt là khi xử lý các hợp đồng thông minh phức tạp. Nghiên cứu cho thấy, dưới tải công việc có xung đột thấp, TPS có thể tăng từ 3-5 lần; dưới tải công việc có xung đột cao, lý thuyết có thể đạt 60 lần.
Giải pháp tối ưu hóa song song này thông qua thư viện trạng thái tạm thời và phát hiện xung đột, đảm bảo tính nhất quán của trạng thái trong khi thực hiện việc song song hóa quy mô lớn các giao dịch, đặt nền tảng quan trọng cho sự phát triển của Ethereum Rollup. Trong tương lai, còn có thể nâng cao hiệu suất từ các khía cạnh tối ưu hóa hiệu quả lưu trữ, xử lý các tình huống xung đột cao, tăng tốc GPU.