VersionDB: Tối ưu lưu trữ Cronos Node

Trong quá trình Cronos tiếp tục mở rộng và tạo các khối mới, việc quản lý các nút lưu trữ lưu trữ trở nên phức tạp hơn do kích thước cơ sở dữ liệu ngày càng tăng lên. Hiện tại, nút lưu trữ lưu trữ đã đạt kích thước 2,4 terabyte. Điều này liên quan đến sự mở rộng về kích thước của cơ sở dữ liệu IAVL trong các nút lưu trữ lưu trữ.

Để đảm bảo rằng chuỗi khối Cronos có thể tiếp tục phát triển, đội phát triển Cronos đã giới thiệu hỗ trợ cho VersionDB từ phiên bản 1.0.4 ban đầu và đã quan sát hiệu suất của nó. Lấy cảm hứng từ các tính năng mạnh mẽ của động cơ RocksDB, VersionDB mang đến một giải pháp mạnh mẽ cho thách thức về kích thước đĩa. Một trong những tính năng đáng chú ý nhất của nó là khả năng tích hợp mượt mà với các cơ sở dữ liệu backend khác nhau, bao gồm cả pebbleDB nổi tiếng.

Mặc dù VersionDB mang lại nhiều lợi ích, nhưng điều quan trọng là nhận thức rằng tính thích hợp của nó phụ thuộc vào từng trường hợp sử dụng cụ thể của người dùng. Trong bài viết này, chúng tôi muốn cung cấp một cái nhìn tổng quan về VersionDB, những ưu điểm của nó và những yếu tố quan trọng để giúp các nhà điều hành nút Cronos có thể đưa ra quyết định thông thái về việc tích hợp nó vào dự án của họ. Hãy cùng khám phá và tìm hiểu về những khía cạnh chính của VersionDB!

Lợi ích và Giới Hạn của VersionDB đối với các nhà điều hành nút

VersionDB mang đến những lợi ích đáng chú ý:

Giảm kích thước cơ sở dữ liệu

VersionDB giải quyết vấn đề về kích thước của cơ sở dữ liệu IAVL bằng cách lưu trữ trực tiếp nhiều phiên bản của cặp khóa-giá trị trạng thái trên chuỗi. Điều này loại bỏ nhu cầu về cấu trúc cây Merklized như cây IAVL và giảm kích thước cơ sở dữ liệu một cách đáng kể. Sau khi di chuyển sang VersionDB, người dùng có thể cắt tỉa cây IAVL để thu hồi kích thước đĩa. Chúng tôi đã thực hiện quá trình di chuyển này cho các nút công khai Cronos của mình và quan sát được việc giảm khoảng 63% kích thước đĩa cho các nút lưu trữ lưu trữ.

Hiệu suất truy vấn cải thiện

Bằng cách lưu trữ dữ liệu một cách hiệu quả hơn, VersionDB cho phép truy xuất thông tin từ cơ sở dữ liệu nhanh chóng và hiệu quả hơn, gây ra hiệu suất truy vấn tốt hơn so với cây IAVL.

Mặc dù VersionDB mang lại nhiều lợi ích, nhưng cần nhận thức về những hạn chế và yếu tố cần xem xét của nó:

Các Hiện Thực Khác Nhau

VersionDB có các hiện thực khác nhau. Hiện thực hiện tại của chúng tôi dựa trên độc tốt thử nghiệm về thời gian, lưu trữ dữ liệu trong một phiên bản độc lập của RocksDB. Tuy nhiên, hiện tại nó không hỗ trợ các cơ sở dữ liệu backend khác.

Thiếu Root Hash và Tạo Chứng Chứng Từ Dữ Liệu Lịch Sử

VersionDB không thực hiện tạo Root Hash và chứng chứng từ dữ liệu lịch sử. Do đó, chúng ta vẫn cần cây IAVL cho những trường hợp sử dụng cụ thể đó. VersionDB không hỗ trợ 1) eth_getProof cho các phiên bản lịch sử bị cắt tỉa trong cây IAVL, và 2) non-grpc / abci_query cho các phiên bản lịch sử bị cắt tỉa trong cây IAVL.

Tổng Quan Về Quá Trình Di Chuyển

Khi bạn đã quyết định di chuyển sang VersionDB, bạn cần xem xét các bước chính sau cho quá trình di chuyển. Chi tiết và hướng dẫn chi tiết hơn được bao gồm trong Hướng Dẫn Di Chuyển VersionDB.

Cấu hình: Thêm VersionDB vào app.toml. Nút sẽ đăng ký theo dõi các thay đổi trạng thái mới nhất theo thời gian thực và lưu chúng vào VersionDB.

Quá Trình Di Chuyển: Quá trình di chuyển cố gắng song song hóa các nhiệm vụ càng nhiều càng tốt và sử dụng bộ nhớ RAM đáng kể.

Ba bước chính cho quá trình di chuyển trạng thái cũ là như sau:

2a) Trích xuất và Xác minh Các Bộ Thay Đổi: Trích xuất các bộ thay đổi từ cây IAVL, chơi lại các bộ thay đổi và xác minh hash ứng dụng.

2b) Xây dựng VersionDB

2c) Khôi phục và Nắp Chậm Với Cây IAVL: Xây dựng lại ứng dụng.db từ đầu, sau đó đồng bộ hóa VersionDB với ứng dụng.db hoặc khôi phục ứng dụng.db với bản snapshot chính xác.

Xem xét về Di Chuyển và Mẹo Tối Ưu Hóa cho Quá Trình Di Chuyển VersionDB

Trong hành trình di chuyển sang VersionDB, chúng tôi đã đạt được việc giảm kích thước đĩa đáng kể, khoảng 63%, cho một nút lưu trữ trên Cronos. Ở giai đoạn này, giải pháp này chỉ được khuyến nghị cho các nút lưu trữ và nút không xác nhận thử nghiệm. Các cải tiến trong tương lai được dự đoán sẽ mở rộng tính ứng dụng của nó.

**Dịch vụ truy vấn GRPC hiện tại không cần hỗ trợ tạo chứng cứ, vì vậy VersionDB một mình đủ để hỗ trợ dịch vụ truy vấn GRPC, đã có một cờ –grpc-only để mọi người có thể bắt đầu dịch vụ truy vấn GRPC độc lập. Điều này có nghĩa là các truy vấn GRPC có thể được thực hiện chỉ bằng VersionDB một mình, làm đơn giản quá trình truy vấn. Tuy nhiên, cần nhận thức rằng cấu trúc cơ sở dữ liệu cụ thể của nó, so với các nút thông thường, hạn chế khả năng kéo cây Merkle, và một số điểm cuối được dành và vẫn không có sẵn.

Cuối cùng, cần lưu ý rằng quá trình di chuyển từ đầu có thể mất một vài ngày, với bước trích xuất bộ thay đổi là bước tốn thời gian nhất. Cụ thể, việc chạy các kiểm tra trên nút lưu trữ thử nghiệm có thể tiêu thụ khoảng 11 giờ trên một máy SSD 8 lõi, trong khi xác minh các tệp bộ thay đổi chỉ mất vài phút. Để giải quyết vấn đề này, chúng tôi đã chuẩn bị một liên kết có thể tải xuống cho người dùng, cho phép bạn truy cập các tệp và xác minh độ chính xác của chúng cục bộ: [VersionDB Archive Snapshot] và [VersionDB Default Snapshot].

Ngoài ra, đối với bản snapshot VersionDB mặc định, người dùng có thể tải xuống bằng một trong các lệnh sau:

Sử dụng curl:

ruby

curl -LOJ https://snapshot.cronos.org/cronos/mainnet-snapshot/cronosmainnet_25-1-versiondb-default-latest.tar.lz4

Sử dụng wget:

ruby

wget https://snapshot.cronos.org/cronos/mainnet-snapshot/cronosmainnet_25-1-versiondb-default-latest.tar.lz4

Đối với những người chọn thực hiện quá trình di chuyển bản thân, việc lên kế hoạch cho thời gian chờ cần thiết trước là khuyến nghị. Ngoài ra, người dùng có thể tăng bộ nhớ RAM của họ để tránh đọc từ đĩa. Hơn nữa, tăng cường mức đồng thời lên 128 có thể làm tăng tốc quá trình, tuy nhiên điều này có thể đòi hỏi các nguồn tài nguyên CPU bổ sung như R6g.2xlarge.

Bằng cách xem xét những điều này, người dùng có thể đảm bảo một quá trình chuyển đổi mượt mà và hiệu suất cải thiện với VersionDB.

Những Gì Sẽ Đến

Thời kỳ thú vị đang chờ đợi chúng ta khi chúng tôi tiếp tục tinh chỉnh quá trình di chuyển VersionDB. Hãy tiếp tục theo dõi cập nhật và cải tiến sắp tới, sẽ tối ưu hóa hiệu suất và khả năng truy cập của nó. Bằng cách tham gia và phản hồi tích cực, chúng ta có thể mở ra những cấp độ hiệu suất và sử dụng tài nguyên mới trên chuỗi Cronos. Sự tham gia và phản hồi của người dùng đóng một vai trò quan trọng trong việc hình thành tương lai của VersionDB và cùng nhau, chúng ta sẽ đưa vào một trải nghiệm mạnh mẽ và đáng giá hơn trên chuỗi Cronos.

Click Digital

  • If you’d like to invest in blockchain advertising companies, just BUY token Saigon (SGN) at Pancakeswap: https://t.co/KJbk71cFe8 (do not worry about low liquidity)
  • Backed by Click Digital Company
  • Enhancing blockchain knowledge
  • BSC address: 0xa29c5da6673fd66e96065f44da94e351a3e2af65
  • Twitter: https://twitter.com/SaigonSGN135
  • Staking SGN: http://135web.net
Rate this post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *