Cập nhật kỹ thuật hàng tuần (28/5/2021) từ Ava Labs

Avalanche - Việt Nam
8 min readMay 29, 2021

--

Sự phát triển trên toàn hệ sinh thái Avalanche đang tăng lên nhanh chóng, với các nhóm, ứng dụng và nội dung mới được tạo ra mỗi ngày. Để giữ cho cộng đồng luôn cập nhật công việc mà Ava Labs đang thực hiện để hỗ trợ những nỗ lực tuyệt vời này, chúng tôi xuất bản blog hàng tuần này để tóm tắt lại những đóng góp của chúng tôi đối với các lĩnh vực kỹ thuật chính.

Blog này cũng cung cấp thông tin về cách các nhà phát triển có thể tham gia nhiều hơn vào hệ sinh thái Avalanche, thông qua các chương trình như tiền thưởng lỗi, giờ làm việc của nhà phát triển và cơ hội nghề nghiệp. Không cần phải quảng cáo thêm, đây là bản cập nhật kỹ thuật của tuần này:

Tóm tắt Di chuyển cơ sở dữ liệu

Tuần trước, mã cho việc di chuyển cơ sở dữ liệu đã được phát hành với tên AvalancheGo@v1.4.5. Bởi vì bản phát hành đó lớn nhất từ trước đến nay mà chúng tôi đã làm việc vào tuần trước, tôi đã chọn tóm tắt mọi thứ trong một chuỗi Twitter ngắn thay vì trên Medium. Tôi nghĩ những người trên Discord đã tổng kết kỳ vọng của chúng tôi về việc giảm> 90% IO đã đọc:

Tuần này, chúng tôi đã giới thiệu một số cải tiến và tối ưu hóa dựa trên phản hồi của cộng đồng và gần đây đã phát hành AvalancheGo@v1.4.7 . Nếu bạn chưa di chuyển (bạn vẫn đang sử dụng phiên bản <v1.4.5), thì việc thực hiện việc này giờ đây dễ dàng hơn bao giờ hết với hướng dẫn hướng dẫn từng bước mới của chúng tôi . Bạn KHÔNG cần phải nâng cấp từ v1.4.4 lên v1.4.5 trước khi nâng cấp lên v1.4.7 (trình quản lý di chuyển tự động có thể chuyển trực tiếp từ v1.4.0-v1.4.4 sang v1.4.7). Để biết tất cả các chi tiết xung quanh bản nâng cấp này và để có câu trả lời cho Câu hỏi thường gặp, bạn có thể xem toàn bộ hướng dẫn nâng cấp .

Kể từ khi phát hành mã này, nhiều người đã liên hệ với tôi để hỏi làm cách nào chúng tôi có thể đạt được những lợi ích lớn về hiệu quả DB. Tôi đã làm việc với nhóm Nền tảng để biên soạn một bản tóm tắt về ba thay đổi lớn nhất:

Đã xóa tất cả cơ sở dữ liệu lặp lại khỏi xử lý khối

Trước đây, tập hợp trình xác thực hiện tại được lưu trữ dưới dạng danh sách được sắp xếp theo thời gian kết thúc của trình tạo và tập hợp trình xác thực đang chờ xử lý được lưu trữ dưới dạng danh sách được sắp xếp theo thời gian bắt đầu của trình tạo. Khi AddDelegatorTxs và RewardDelegatorTxs được xác minh, nó yêu cầu một phân tích phức tạp về bộ trình xác thực. Điều này khiến AddDelegatorTxs và RewardDelegatorTxs thực hiện lặp lại trên mỗi cơ sở dữ liệu này, dẫn đến một số lượng đáng kể các lần đọc cơ sở dữ liệu.

Bây giờ, bộ xác nhận được lưu trong bộ nhớ cache ở định dạng đối tượng của nó, điều này tránh việc đọc cơ sở dữ liệu trong khi cũng tránh phân tích cú pháp lặp lại cấu trúc dữ liệu. Để duy trì bộ xác thực trên nhiều khối xử lý mà không có sự cố bộ nhớ, bộ xác thực hiện được quản lý dưới dạng cấu trúc dữ liệu Copy on Write được truyền giữa các khối.

Đã thêm Bộ nhớ đệm Platformvm

Trước đây, platformvm có ít hoặc không có bộ nhớ đệm được triển khai. Platformvm được sử dụng để theo dõi sự khác biệt của khối bằng cách sử dụng triển khai giao diện cơ sở dữ liệu. Giao diện cơ sở dữ liệu cố ý không chứa bộ nhớ đệm để tránh việc sử dụng bộ nhớ tăng lên nhiều. Sự gia tăng này sẽ không phải là nhỏ vì bộ nhớ đệm sẽ phải được thực hiện trên cơ sở từng lớp, giữ cho các giá trị trùng lặp nằm rải rác trong bộ nhớ.

Bây giờ, có hai cách triển khai khác nhau quản lý trạng thái chuỗi. Việc triển khai đầu tiên này nằm trên cơ sở dữ liệu và lưu vào bộ nhớ cache các giá trị đã được phân tích cú pháp. Việc triển khai thứ hai theo dõi sự khác biệt giữa hai giá trị trạng thái chuỗi. Khi một khối được chấp nhận, sự khác biệt được áp dụng cho trình quản lý trạng thái của chuỗi cơ sở. Điều này cho phép lưu trữ hiệu quả các giá trị được phân tích cú pháp trong khi giảm thiểu dung lượng bộ nhớ.

Nhóm các giá trị có liên quan thành các cặp khóa-giá trị duy nhất

Trước đây, các cặp khóa-giá trị có liên quan được lưu trữ riêng biệt. Ví dụ: một trình xác thực duy nhất sẽ khiến một giao dịch, trạng thái giao dịch, một mục nhập trong tập hợp trình xác thực được sắp xếp và thời gian hoạt động của nút được theo dõi trong cơ sở dữ liệu.

Bằng cách kết hợp các giá trị này, giờ đây chúng tôi lưu trữ ít cặp khóa-giá trị hơn trong cơ sở dữ liệu và thực hiện ít lần đọc cơ sở dữ liệu hơn. Việc tăng kích thước của cặp khóa-giá trị sẽ làm tăng thời gian đọc và ghi giá trị, tuy nhiên, sự gia tăng này ít hơn đáng kể so với sự cải thiện từ việc giảm số lần đọc và ghi.

Tiến trình tái cấu trúc API

Hôm qua, chúng tôi đã triển khai vòng cải tiến hiệu suất API đầu tiên của mình và hiện đang cung cấp các phản hồi được lưu trong bộ nhớ cache từ CDN 30% thời gian:

Tại sao điều này lại quan trọng với bạn? Chà, chúng tôi càng có nhiều phản hồi vào bộ nhớ cache thì CDN càng có thể phục vụ bạn trực tiếp mà không cần chuyển tiếp yêu cầu của bạn đến một nút. Các phản hồi do CDN trả về có xu hướng đến trong thời gian ít hơn ~ 80% so với các phản hồi do một nút API phân phối trực tiếp. Vì vậy, bất kỳ thứ gì sử dụng api.avax.network sẽ xuất hiện nhanh hơn đáng kể mà không có bất kỳ thay đổi nào ở phía máy khách.

Ví dụ: bây giờ bạn có thể tìm nạp một khối trong ~ 50–60 ms từ bất kỳ đâu trên thế giới:

curl --location \
--request POST 'https://api.avax.network/ext/bc/C/rpc' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "eth_getBlockByHash",
"params": [
"0x73e8bc7dc66c50714f5b5240a4d478db411355dac5e3ecf69335ccf3aa8a284b",
true
],
"id": 1
}'

Tài liệu và Hướng dẫn Blast

Một trong những tính năng mới tuyệt vời được kích hoạt bởi quá trình di chuyển cơ sở dữ liệu là theo dõi tốt hơn các UTXO được tặng thưởng. Chúng tôi đã thêm một trang tài liệu mới cho biết cách có thể truy cập những trang này vào platform.getRewardUTXOs . Đối với tất cả các giai đoạn xác thực lịch sử, giờ đây có thể biết chính xác số tiền đã được thưởng.

Ngoài ra, chúng tôi đã hoàn thành nhiều hướng dẫn mới cho C-Chain. Chúng tôi hiện có tài liệu và hướng dẫn cho:

Cập nhật mỗi ngày

Mỗi tuần, có nhiều cải tiến nhỏ nhưng có ý nghĩa được thực hiện đối với các repo mà chúng tôi duy trì (thường dựa trên phản hồi từ cộng đồng Avalanche). Thông thường, họ không đảm bảo phần riêng của họ nhưng vẫn đáng được chú ý. Dưới đây là những cải tiến “mỗi ngày” của tuần này:

  • Phần thưởng staking trên Wallet hiện có thể truy cập trong lịch sử giao dịch của địa chỉ (sử dụng điểm cuối platform.getRewardUTXOs mới ):

Giờ hành chính

Trong vài tuần qua, nhóm kỹ sư của Ava Labs đã tổ chức các giờ hành chính tập trung vào Discord từ 2–4 giờ chiều ET mỗi Thứ Tư. Tuần trước, nhóm Ứng dụng khách (Wallet, Ledger, Ortelius) đã tổ chức giờ hành chính. Thứ Tư tuần này, giờ hành chính sẽ được tổ chức bởi nhóm Platform (avalanchego, coreth).

Nếu bạn không thể làm theo giờ hành chính, bạn luôn có thể liên hệ với các câu hỏi trên Discord hoặc trên Twitter .

Tham gia Ava Labs

Ava Labs được thành lập bởi các nhà khoa học máy tính ở Cornell, những người đã thu hút nhân tài từ Phố Wall để thực hiện tầm nhìn của họ. Công ty đã nhận được tài trợ từ Andreessen Horowitz, Initialized Capital và Polychain Capital, với các khoản đầu tư thiên thần từ Balaji Srinivasan và Naval Ravikant.

Chúng tôi đang tích cực tuyển dụng cho một số vai trò kỹ thuật quan trọng. Để đảm bảo chúng tôi thu hút được những người giỏi nhất và sáng giá nhất tham gia vào nhóm của mình, chúng tôi hỗ trợ tuyển dụng các ứng viên từ xa từ mọi nơi trên thế giới. Nếu công việc chúng tôi đang làm khiến bạn hứng thú, chúng tôi rất muốn trò chuyện! Bạn có thể đăng ký tại đây .

Nếu bạn không biết vai trò nào để ứng tuyển hoặc muốn đưa ứng dụng của mình lên đầu bảng xếp hạng, bạn có thể thực hiện một bài đánh giá kỹ thuật ngắn trong 25 phút để thể hiện kỹ năng của mình. Chúng tôi sẽ liên hệ ngay nếu bạn chứng tỏ được tài năng có thể khiến bạn phù hợp nhất tại Ava Labs.

Kết nối với cộng đồng Việt Nam tại:
Telegram VN
|Twitter VN

Nguồn bài viết: https://medium.com/avalancheavax/weekly-update-5-28-2021-ava-labs-engineering-c54098a450b8

--

--

Avalanche - Việt Nam
Avalanche - Việt Nam

Written by Avalanche - Việt Nam

Chào mừng bạn đến với Avalanche - Việt Nam: https://t.me/avalanche_vn

No responses yet