Ở thời điểm hiện tại, có quá nhiều người dùng đang phải phụ thuộc vào hệ thống client của Ethereum đến mức độ chỉ cần một lỗi bug nhỏ có thể làm tê liệt cả hệ thống. Cũng vì lí do này, đội ngũ lập trình viên của Ethereum Core đã quyết định vào thứ Sáu rằng họ sẽ trì hoãn hard fork Berlin đến tháng 08 nhằm giúp các máy client khác có cơ hội tương tác với hệ thống nhiều hơn.
Geth chỉ chiếm khoảng 11 máy client, nhưng 79% lượng node của Ethereum là vận hành trên Geth. Con số này đã tăng thêm 5% nữa kể từ tháng 12. Các lập trình viên lo ngại rằng, chỉ một lỗi bug trầm trọng có thể sẽ phá huỷ hệ thống Ethereum – đặc biệt là trong giai đoạn cập nhật Eth 1.x trước khi mạng lưới dịch chuyển lên cơ chế PoS của Eth 2.0.
Ngôn ngữ của Ethereum
Có một hệ thống client đa dạng là điều tốt cho mạng lưới. Điều này giúp nhiều dự án có thể tham gia vào cộng đồng lập trình viên của Ethereum. Ethereum có khoảng 8 ngôn ngữ trải dài theo nhiều cấp độ. Theo đó, Ethereum Foundation cho biết hiện hệ thống client của mình sẽ bao gồm 5 ngôn ngữ là Go, Solidity, Java, JavaScript và Python.
Và vì mỗi ngôn ngữ có một cơ chế riêng, việc thực hiện triển khai đa ngôn ngữ trong lúc cập nhật hoàn toàn có thể khiến mạng lưới gặp phải nhiều thách thức.
“Lí do chính đằng sau việc trì hoãn Berlin đó là nhằm giảm thiểu sự phụ thuộc lên Geth cũng như không để lệnh này gặp lỗi và ảnh hưởng đến toàn hệ thống. Áp lực hiện tại là quá lớn, vì sự chính xác của Geth là vô cùng quan trọng, và việc đảm bảo chúng làm việc ổn định là vô cùng cần thiết.” – lập trình viên độc lập Alexey Akhunov cho biết.
Vấn đề này càng trở nên quan trọng sau khi hệ thống client của Parity Ethereum thông báo rời đi trong hội nghị Parity Technologies vào tháng 12 năm 2019. “Parity ngày càng không thể cung cấp quá nhiều tài nguyên để duy trì dự án này.” – bài blog từ đội ngũ Parity cho biết.
Do đó, hệ thống code của dự án trên được chuyển giao cho một tổ chức các lập trình viên phân quyền được tài trợ bởi ConsenSys. Tổ chức hiện vận hành dưới tên gọi “Open Ethereum”. Kể từ cột mốc này, mạng lưới client mất gần 60% tổng số node.
Geth bị quá tải?
Một câu hỏi quan trọng hơn cần phải trả lời đó là liệu các client khác có thể bắt kịp với sự thay đổi của Geth hay không.
Lập trình viên của Ethereum là Greg Colvin cho biết đây là câu hỏi về vấn đề kinh doanh và không thể xử lý hoàn toàn bởi những nỗ lực từ đội ngũ lập trình viên. Dự án sẽ phải làm việc với một số client nhỏ, vì họ có những nhu cầu đặc biệt mà Geth không hoàn toàn đáp ứng được.
Việc trì hoãn thử nghiệm Đề xuất Cải thiện Ethereum (EIP) cho Berlin là lựa chọn mà các lập trình đưa ra. Ngoài ra, Szilagyi cho biết trách nhiệm để duy trì mạng lưới “máy tính toàn cầu” vận hành trơn tru đang đè nặng lên đội ngũ của anh.
“Nếu chúng tôi gặp lỗi, nhưng client của Ethereum, ví dụ như là Nethermind, lại chính xác, sẽ có sự không đồng đều trong các dòng code, vì mạng lưới sẽ dịch chuyển sang một chuỗi khác hoàn toàn sai.”
Theo CoinDesk
Có thể bạn quan tâm: