Bug được phát hiện trên Testnet của Ethereum và được fix kịp thời
Một bug thực hiện việc phân tách chuỗi (chain-split) Testnet Ropsten của Ethereum vừa được phát hiện và fix trong vài giờ đồng hồ.
Đúng như dự đoán, nó có liên quan đến một đề xuất cải tiến Ethereum mới (EIP), trong đó bổ sung hiệu quả đạt được để hỗ trợ cho việc tính toán với duy nhất Parity bị ảnh hưởng.
“Bug đã được sửa. Nó ảnh hưởng đến Parity và Aleth, đều có cùng một bug,” Wei Tang, một nhà phát triển Rust tại Parity nói với Trustnodes, trong đó Aleth là một client C++ của Ethereum .
“Tôi đã sửa bug saturating_sub refund của sstore và xác nhận rằng nó thực sự đã tính toán cùng một state root như geth.” Ông Tang cho biết lúc đó là vào khoảng nửa đêm giờ London và thêm rằng:
“Tôi đoán khi Afri tỉnh dậy, chúng tôi sẽ cố gắng phát hành phiên bản khác thật sớm để khắc phục vấn đề đồng thuận hiện tại trên Ropsten.”
Martin Holst Swende, một nhà phát triển Ethereum, đã thử nghiệm bản sửa lỗi, trong đó cho thấy rằng Geth và Parity, hai client chính của ethereum, giờ đây có thể đồng bộ. Alexey Akhunov, một nhà nghiên cứu và phát triển phần mềm độc lập, cho biết:
“Tôi cho rằng Parity chỉ sử dụng một cách khác để tính tiền hoàn lại. Thay vì có bộ đếm toàn cầu + những thay đổi trong báo cáo, họ đã thay thế bằng các bộ đếm riêng của họ, có thể được áp dụng hoặc không được áp dụng (nếu được khôi phục) trong quá trình hoàn thành.
Tôi nhớ rằng geth có cách tiếp cận tương tự trước Shanghai DoS, và sau đó thay đổi nó thành báo cáo. Nhưng tôi cho rằng Parity sẽ tiết kiệm hơn với việc phân phối, vì vậy họ có thể chi trả cho nó.”
Nói cách khác, họ có cách tiếp cận khác nhau để tính toán gas, điều này cũng ổn miễn là cả hai đều đạt cùng “con số”. Điều đó không xảy ra với dòng tweet của Trump được chèn vào testnet của ethereum, mà đã tách chuỗi thành Parity và Geth tính lượng gas khác nhau.
“Nó liên quan đến việc hoàn lại gas cho việc giảm thiểu gas của SSTORE. Code của chúng tôi không giải thích được trường hợp khoản tiền hoàn lại có thể bị âm,” Tang nói. Khi được hỏi về độ nghiêm trọng của bug, Tang trả lời rằng:
“Ý tưởng chung để hard fork Ropsten đó là để chúng ta có thể có dữ liệu thực tế để kiểm tra hard fork Constantinople, để các lỗi như thế này có thể được phát hiện. Chúng tôi đã có một số kỳ vọng rằng Ropsten có thể ngừng hoạt động trong một vài ngày (nhưng chúng tôi không mong đợi nó sẽ vào ngày thứ Bảy!).
Tất nhiên là bất kỳ lỗi đồng thuận nào trên mainnet cũng sẽ rất nghiêm trọng. Đó là lý do tại sao chúng tôi muốn thực hiện kiểm tra và đánh giá code rộng rãi – bằng cách sử dụng testnet Ropsten hoặc qua testcase viết tay – trước khi nó chạm đến mainnet.”
Với bug hiện giờ đã được xác định và fix, Parity cần phát hành một client phân loại mới, sau đó một khối testnet mới sẽ được thiết lập, do đó bắt đầu lại quá trình thử nghiệm.
Liệu có phải việc này vẫn có thể kịp thời gian cho tháng 11 không? “Tôi không có bình luận gì thêm,” Tang nói, hẳn ông đang rất bận rộn với việc giải quyết cho Parity.
Chúng tôi không thể đoán được rằng điều này liệu có thể kịp thực hiện cho tháng 11 nếu không tìm thấy vấn đề nào khác hay không. Đó là bởi vì với bug này nhanh chóng được xác định và sửa ngay lúc đó, sự chậm trễ có thể chỉ là một vài ngày.
Tuy nhiên, Devs đang chuẩn bị cho Devcon4, do đó điều đó có thể gây chút “phân tâm”. Và rồi đến Giáng sinh – một sự phân tâm lớn hơn nữa. Sau đó là sinh nhật của Bitcoin vào ngày 3 tháng 1, có thể là khoảng thời gian họ ra mắt bản nâng cấp eth giảm phát hành nếu họ không thể thực hiện nó trong tháng 11.
Sau đó, bản nâng cấp Ethereum 2.0 lớn bắt đầu diễn ra, bắt đầu với Beacon Chain dựa trên cơ chế Proof of Stake, điều này có thể làm giảm sự phát hành hơn nữa. Sau đó, vào năm 2020 chúng ta sẽ có các shard, tiếp theo là sự hoàn thành giai đoạn đầu tiên của Ethereum 2.0.
Một khi hoàn thành xong, họ sẽ phân chia các shard. Ngoài ra, EVM chỉ được sao chép bằng Tron sẽ bị loại bỏ cho eWASM.
Xem thêm: Hard fork Constantinople của Ethereum đối mặt với “Vấn đề đồng thuận” trong thử nghiệm
Theo TapchiBitcoin/trustnodes