Trung tâm Năng lực Neo St. Petersburg (NeoSPCC) gần đây đã phát hành phiên bản 0.72.0 của NeoGo, bao gồm hơn 50 yêu cầu kéo với các tính năng mới, cải tiến và sửa lỗi. Ngay sau khi ra mắt, bản phát hành đã nhanh chóng được theo sau với phiên bản phát hành hiện tại 0.72.1, giúp khắc phục lỗi được phát hiện trong quá trình đồng bộ hóa TestNet.
Đồng thuận và thay đổi mempool
Thông qua việc sử dụng cơ sở hạ tầng kiểm tra độ ổn định (stress testing) node được phát triển gần đây, nhóm đã xác định được các vấn đề và tối ưu hóa cho các thành phần mạng, đồng thuận và mempool. Các cải tiến mục tiêu tại các khu vực này nhằm cải thiện khả năng của node trong việc đối phó với tải giao dịch cao.
Hỗ trợ đồng thuận lần đầu tiên được thêm vào NeoGo trong bản cập nhật trước đó vào tháng 12. Kể từ đó, NeoSPCC đã tập trung vào việc tinh chỉnh việc triển khai dBFT. Trong quá trình đo điểm chuẩn, các vấn đề dẫn đến ngăn đồng thuận và đề xuất khối không chính xác đã được phát hiện và giải quyết.
Công cụ đo điểm chuẩn cũng nêu bật các nút thắt cổ chai với việc triển khai mempool NeoGo hiện tại. PR #647 (PR: pull request - yêu cầu kéo) mang đến một loạt các cải tiến giúp cải thiện đáng kể hiệu năng và quản lý các giao dịch chưa được xác minh, khắc phục rò rỉ bộ nhớ và ngăn chặn chi tiêu gấp đôi tiềm năng.
Bên cạnh các thay đổi đối với dBFT và mempool, nhóm đã thêm các thay đổi về mạng giúp giải quyết các vấn đề kết nối và ưu tiên tin nhắn đồng thuận. Theo Roman Khimov - nhà phát triển NeoSPCC, những cải tiến đã giúp NeoGo thực hiện ổn định hơn nhiều trong các bài kiểm tra điểm chuẩn.
Chức năng nhà phát triển
Một loạt các tính năng nhằm cải thiện trải nghiệm của nhà phát triển cũng đã được bao gồm trong các bản phát hành 0.72.x. NeoSPCC đặt nỗ lực đáng kể vào các cải tiến trình biên dịch, các sản phẩm mà kinh nghiệm có được trong khi chuyển hợp đồng thông minh NeoFS sang Go. Các tính năng biên dịch mới bao gồm:
Bổ sung một interop để xác minh chữ ký - PR #617
Hỗ trợ các vòng lặp với điều kiện duy nhất - PR #618
Các biến hỗ trợ theo nghĩa đen - PR #619
Hỗ trợ bản đồ bằng chữ và chuỗi chỉ số - PR #620
Cho phép chuỗi chuyển đổi [] byte - PR #622
Hỗ trợ báo cáo chuyển đổi - PR #626
Hỗ trợ sự bất ngờ (cho phép ném lỗi trong khi thực hiện hợp đồng) - PR #629
Tối ưu hóa lưu trữ liên tục - PR #637
Các tính năng này, cùng với một số bản sửa lỗi cho các vấn đề về trình biên dịch, nhằm mục đích làm cho việc viết các hợp đồng Neo trong Go trở nên hấp dẫn hơn đối với các nhà phát triển. Các bổ sung hữu ích khác cho các nhà phát triển bao gồm khả năng chạy mạng riêng một node và khả năng giới hạn các cuộc gọi gọi RPC bằng mức tiêu thụ GAS thông qua tùy chọn cấu hình MaxGasInvoke mới.
Tìm hiểu về NeoSPCC tại:
TINTUCNEO – Tham gia các cộng đồng Tin tức NEO tại:
Tham gia Cộng đồng NEO Việt Nam - TINTUCNEO
NEO-based projects? Contact us at [email protected] for collaborations in the Vietnam market