Đường đến Neo3: Truy xuất dữ liệu khối theo chỉ mục

TIN TỨC NEO
2020-03-26



Trong bài viết hôm nay, chúng ta sẽ xem xét một số cuộc thảo luận trước đây về chủ đề tối ưu hóa mạng, điều này dẫn đến những cải tiến hiện đang nằm ở cốt lõi của phương pháp đồng bộ hóa khối dựa trên chỉ mục mới. Theo cách tiếp cận này, các node có thể yêu cầu dữ liệu khối bị thiếu trong một tin nhắn nhỏ gọn, đơn lẻ chứa một loạt các chỉ mục khối mong muốn.


Đọc loạt bài Đường đến Neo3 tại đây.


Các đề xuất cải thiện giao thức mạng Neo có từ năm 2018, với nhiều sự không hiệu quả được xác định. Một số đề xuất từ ​​nhà phát triển cộng đồng Kevaundray đã lưu ý một số vấn đề này, tập trung vào việc cải thiện thời gian phản hồi để ngắt kết nối node và giảm độ trễ trong đồng bộ hóa khối.


Những đề xuất này dẫn đến các cải tiến đã thực hiện, chẳng hạn như bổ sung các thông điệp nhịp tim ping / pong để kiểm tra chiều cao node, nhưng cũng truyền cảm hứng cho một giải pháp khác. Một đề xuất của nhà bảo trì neo-python của COZ - IZje vào tháng 12 năm 2018 đã cung cấp ví dụ đầu tiên về đồng bộ hóa dựa trên chỉ mục. Trong đề xuất, Ixje lưu ý các vấn đề không hiệu quả và ngữ nghĩa hiện tại với lệnh getblocks:


“Các lệnh getblocks hiện tại không hiệu quả và cũng có một cái tên sai. Tên cho thấy bạn sẽ nhận được khối. Trong thực tế, bạn nhận được băm (thông qua một tin nhắn inv). Sau đó, bạn về cơ bản đóng gói lại thông tin tương tự của thông báo inv này nhưng bây giờ với lệnh getdata để cuối cùng nhận được các tin nhắn khối.”


Ixje đã đề xuất một lệnh hiệu quả hơn, getfullblocks, giúp giảm lưu lượng mạng và logic nghiệp vụ để truy xuất các khối bằng cách chuyển quy trình thành quy trình hai bước. Thay vì yêu cầu các tiêu đề, nhận các tiêu đề, sau đó sử dụng các giá trị băm để yêu cầu và truy xuất dữ liệu khối, các node sẽ có thể yêu cầu các khối mong muốn và nhận trực tiếp dữ liệu tương ứng.


Tiến lên một bước nữa, đó là đề xuất sử dụng chỉ mục khối lần đầu tiên được đưa ra, điều này mang lại lợi thế giảm kích thước thư và loại bỏ nhu cầu biết băm (bao gồm cả băm khối genesis) để bắt đầu truy xuất khối .


Đồng bộ hóa chỉ mục

Phương pháp đề xuất của Ixje đã bỏ qua cách tiếp cận tiêu đề đầu tiên có mặt khắp nơi trong ngành công nghiệp blockchain mà chúng ta đã thảo luận trong bài viết trước. Bằng cách tận dụng tính chất không thể làm được của Neo được cung cấp bởi cơ chế đồng thuận dBFT, các node trên mạng có thể yêu cầu dữ liệu khối theo chỉ mục.


Điều này là do dBFT đảm bảo rằng mọi node sẽ chia sẻ cùng một quan điểm về blockchain như các node đồng thuận, có nghĩa là họ có thể được đảm bảo rằng dữ liệu tại mỗi chỉ số khối luôn giống hệt nhau. Trong trường hợp các node có dữ liệu hoặc trạng thái chặn không chính xác, họ có thể nhanh chóng nhận ra vấn đề bằng cách tham khảo trạng thái đã ký được chia sẻ qua tin nhắn P2P.


Cùng với sự đơn giản hóa trong logic truy xuất khối, về mặt lý thuyết, đề xuất đã đưa ra những cải tiến đáng kể cho quá trình đồng bộ hóa. Mặc dù vậy, các cuộc thảo luận đã bị hoãn lại sau thông báo của Neo3. Cuối năm nay, khi nhóm nhà phát triển cốt lõi bắt đầu đánh giá các thay đổi sẽ được thực hiện như một phần của Neo3, sự thiếu hiệu quả xuất phát từ cách tiếp cận đồng bộ hóa đầu tiên đã xuất hiện trở lại.


Điều này đã khiến Ixje nhắc lại đề xuất trước đó của mình, chính thức hóa việc sử dụng các chỉ mục khối thay vì băm để đồng bộ hóa:


“Đề xuất này giới thiệu một lệnh getfullblocks mới. Nó có các tham số IndexStart và Count cho biết chiều cao Khối bắt đầu và có bao nhiêu khối từ điểm đó trở về trước. Nó sử dụng lại các tải trọng kiểu inv tương tự được sử dụng trong phản hồi cho các tin nhắn getdata, có nghĩa là không cần phải thay đổi bất kỳ logic nhận khối nào. Nó chỉ làm giảm rất nhiều chi phí và độ phức tạp của các khối đồng bộ hóa thông qua các tiêu đề.”


Bên cạnh đề xuất, Ixje cung cấp một ví dụ hoạt động về code từ neo3-python và cũng nêu bật hiệu quả của cách tiếp cận với một ví dụ đơn giản về giảm kích thước thông báo để yêu cầu các khối với cách tiếp cận chỉ mục.


Mặc dù có những lợi thế, nhưng những nỗ lực để thực hiện hỗ trợ cho đồng bộ hóa chỉ mục cho thấy những thay đổi sẽ là cần thiết trong các khu vực bị ảnh hưởng khác, chẳng hạn như Trình quản lý tác vụ. Trong tập tiếp theo, chúng ta sẽ cùng khám phá việc thực hiện đồng bộ hóa chỉ mục và các thay đổi cần thiết chi tiết hơn và xem xét các cải tiến liên quan khác.


TINTUCNEO – Tham gia các cộng đồng Tin tức NEO tại:




0 bình luận. Để lại câu hỏi & nhận trả lời nhanh qua email.




Bài cùng chủ đề
Bản tin tuần TINTUCNEO: 23/11 - 29/11
Flamingo Finance đã thông báo về việc triển khai các thành phần quản trị sắp tới, cho phép người dùng bỏ phiếu cho các đề xuất mới. Đề xuất quản trị đầu tiên của Flamingo sẽ được đưa ra biểu quyết vào đầu tháng 12. Đề xuất này sẽ cho phép cộng đồng quyết định có sử dụng GAS được tạo ra bởi NEO bị khóa trong hợp đồng nNEO cho một cuộc thi giao dịch Perp hay không. Đội ngũ FLM cũng đang thử nghiệm hợp đồng Perp để chuẩn bị cho bản phát hành vào giữa tháng 12 và đang làm việc trên một cơ chế mới để giải quyết các vấn đề liên quan đến tài sản n.

2020-12-01

Flamingo mở biểu quyết về đề xuất quản trị đầu tiên để chuẩn bị cho việc ra mắt hợp đồng Perp
Flamingo đã thông báo về việc triển khai các thành phần quản trị sắp tới cho nền tảng, cho phép người dùng bỏ phiếu cho các đề xuất mới. Đội ngũ cũng đang thử nghiệm hợp đồng Perp để chuẩn bị cho bản phát hành vào giữa tháng 12 và đang làm việc trên một cơ chế mới để giải quyết các vấn đề neo tài sản-n.

2020-11-28

Elrond thông báo tích hợp sắp tới với giao thức tương tác không token Poly Network.
Elrond, một mạng lưới blockchain ưu tiên khả năng mở rộng thông qua phân tích trạng thái tương thích, đã thông báo về việc bắt đầu tích hợp với Poly Network. Sau khi hoàn tất, việc triển khai sẽ cho phép các ứng dụng và token trên Elrond MainNet kết nối và chuyển sang các blockchains tham gia khác.

2020-11-27

Alchemint bắt đầu chuyển một nửa NEP-5 SDS sang ERC-20 ALM.
Alchemint đã bắt đầu chuyển 50% nguồn cung cấp token SDS của mình sang blockchain Ethereum. Để tránh nhầm lẫn với token NEP-5, mã biểu tượng của phiên bản ERC-20 là ALM.

2020-11-26

Tham gia Cộng đồng NEO Việt Nam - TINTUCNEO
NEO-based projects? Contact us at [email protected] for collaborations in the Vietnam market