Đã phát hành Wasmd 0.30

Dec 20 2022
Phát hành cuối năm! Đó là một năm 2022 đầy sự kiện theo nhiều cách, cả mặt tốt và mặt xấu, vậy tại sao không kết thúc nó bằng một bản phát hành Wasmd tuyệt vời? Chúng tôi đã có một số lượng lớn các yêu cầu về tính năng cộng đồng để xem xét và ưu tiên, và chúng tôi vui mừng thông báo rằng với Wasmd v0.30, chúng tôi đã quản lý để có được nhiều yêu cầu trong số đó trong bản phát hành cuối năm này.

Phát hành cuối năm!

Ảnh của Aaron Burden trên Bapt

Đó là một năm 2022 đầy sự kiện theo nhiều cách, cả mặt tốt và mặt xấu, vậy tại sao không kết thúc nó bằng một bản phát hành Wasmd tuyệt vời?

Chúng tôi đã có một số lượng lớn các yêu cầu về tính năng cộng đồng để xem xét và ưu tiên, và chúng tôi vui mừng thông báo rằng với Wasmd v0.30, chúng tôi đã quản lý để có được nhiều yêu cầu trong số đó trong bản phát hành cuối năm này.

Như thường lệ, xin chân thành cảm ơn tất cả những người đóng góp đã giúp cho bản phát hành này có thể thực hiện được!

Tổng quan ( TLDR )

Wasmd v0.30 chứa khá nhiều thay đổi do cộng đồng yêu cầu nhiều, bên cạnh các bản sửa lỗi và cải tiến thông thường, chúng tôi cũng đã gửi những điều sau:

  • Tích hợp mô-đun Authz
  • IBC nâng cấp lên v4.2.0 với tài khoản liên chuỗi v0.2.4
  • Thêm Hướng dẫn dành cho nhà phát triển và các phương pháp hay nhất
  • Bump Go tối thiểu đến 1,19
  • Lưu trữ và khởi tạo đề xuất gov
  • Cho phép phiếu bầu của chính phủ tải lên mã byte wasm lớn hơn
  • Giới thiệu AcceptListStargateQuerier
  • Nhận hợp đồng theo địa chỉ người tạo
  • Hỗ trợ quyền khởi tạo > quyền chuỗi cho cửa hàng gov

Tích hợp mô-đun Authz

Mô-đun authz là mô-đun Cosmos-SDK để cấp quyền cho một tài khoản khác (người được cấp) và thực hiện các hành động trên chuỗi thay mặt cho tài khoản ban đầu (người cấp).

Điều này đặc biệt hữu ích để bảo vệ khóa tài khoản cá nhân vì nó chỉ cần thiết cho hoạt động cấp, nhưng sau đó khóa của người được cấp có thể được sử dụng. Điều này cũng có thể hữu ích để phù hợp với cấu trúc tổ chức hoặc quy trình nơi quyền truy cập vào khóa riêng của người cấp bị hạn chế.

Một ủy quyền được cấp đi kèm với rất nhiều quyền lực vì nó được thực thi bằng tài khoản của người cấp. Do đó, một số phần mở rộng authz tồn tại trong các mô-đun khác giới hạn phạm vi của các hành động. Ví dụ, trong ngân hàng. Ủy quyền, tổng số lượng mã thông báo, được xác định có thể được chuyển.

Mô-đun authz đi kèm với ủy quyền chung chấp nhận loại thông báo. Điều này hoạt động với bất kỳ mô-đun Cosmos nào, kể cả wasmd. Vấn đề ở đây là các hợp đồng wasm thường hỗ trợ một số hoạt động và việc kiểm soát truy cập chi tiết sẽ không thể thực hiện được.

Tiện ích mở rộng Ủy quyền wasmd được xây dựng để hỗ trợ mức độ kiểm soát truy cập tốt hơn. Các bộ lọc có thể được xác định để khớp với thông báo hợp đồng khi thực hiện và di chuyển. Wasmd xuất hiện trong lần lặp đầu tiên với các bộ lọc sau:

AllowAllMessagesFilter — ký tự đại diện để khớp với bất kỳ thông báo hợp đồng nào

AcceptedMessageKeysFilter — các thông báo hợp đồng được hiểu là một đối tượng json với chính xác một khóa. Khóa này có thể được đặt trong danh sách chấp nhận để được chấp nhận. Ví dụ: với ` rút tiền, ủy quyền` được đặt, các thông báo `{“rút tiền”: {}}` và `{“đại biểu”:{}}` được cho phép nhưng `{“đã gửi”:{}}` thì không chìa khóa không có trong danh sách.

AcceptedMessagesFilter — bộ lọc này không đưa ra các giả định về thông báo hợp đồng. Chúng được hiểu là dữ liệu nhị phân thuần túy và được so sánh. Những thay đổi nhỏ trong định dạng đã rất quan trọng. Ví dụ: với {"withdraw":{}}thông báo hợp đồng đã đặt phải là {"withdraw":{}}while {"withdraw":{} }sẽ bị từ chối (lưu ý khoảng trắng).

Tuy nhiên, lợi ích của bộ lọc này là nó cũng chứa dữ liệu sau khóa đối tượng. Ví dụ: {"vote":"yes"}không thể thay đổi thành{"vote":"no"}

Một yếu tố khác của tiện ích mở rộng Cấp quyền wasmd là các giới hạn. Khi hoạt động được thực hiện trong phạm vi của tài khoản người cấp, nó có toàn quyền truy cập vào số dư ngân hàng của họ. Người cấp phép có một số lợi ích trong việc hạn chế điều này và duy trì quyền kiểm soát. Ví dụ: thao tác {“rút tiền”:{}} có thể không cần quyền truy cập vào số dư trong khi thao tác {“delegate”:{}} thì có. Để hỗ trợ các trường hợp sử dụng khác nhau, chúng tôi có thể đặt các giới hạn sau với các bộ lọc:

MaxCallsLimit — xác định số lần cấp hợp đồng có thể được sử dụng, không cho phép chuyển mã thông báo từ tài khoản người cấp.

MaxFundsLimit — đặt ngân sách mã thông báo sẽ được chi tiêu, không giới hạn số lượng lệnh gọi.

CombineLimit — đặt ngân sách mã thông báo và số lần thực thi có thể được thực hiện

Các giới hạn được cập nhật sau mỗi lần thực hiện trợ cấp. Khi giới hạn hết hạn, thì ủy quyền kết thúc và bị xóa.

Đọc thêm:

https://github.com/cosmos/cosmos-sdk/tree/main/x/authz

IBC nâng cấp lên v4.2.0 với tài khoản liên chuỗi v0.2.4

Bản nâng cấp này bao gồm bắt tay giao thức IBC và mô-đun phần mềm trung gian tính phí, tài khoản liên chuỗi v0.2.4, cũng như cập nhật gói ibctesting.

Đọc thêm:

https://github.com/CosmWasm/wasmd/issues/960

https://github.com/cosmos/ibc-go/blob/v4.2.0/CHANGELOG.md

https:///the-interchain-foundation/moving-relayer-incentives-on-chain-fee-middleware-fee-grant-and-budget-modules-b6a13eced375

Thêm Hướng dẫn dành cho nhà phát triển và các phương pháp hay nhất.

Các nguyên tắc mã hóa đã được cập nhật để giúp người mới cũng như các nhà phát triển có kinh nghiệm hơn dễ dàng tìm thấy và định hướng hơn. Các phương pháp hay nhất cũng đã được thêm vào và bạn có thể tìm thấy hướng dẫn mới và cập nhật tại đây:

Bump Go tối thiểu đến 1,19

Để tuân theo cosmos-SDK, phiên bản Go tối thiểu đã được tăng lên 1.19, điều này cũng ngăn chặn các vấn đề đồng thuận trên chuỗi Go 1.18/19 hỗn hợp.

Đọc thêm:

https://github.com/CosmWasm/wasmd/issues/1041

Lưu trữ và khởi tạo đề xuất gov

Trong các phiên bản trước, tải lên wasm (lưu trữ) và khởi tạo hợp đồng yêu cầu 2 đề xuất chính phủ riêng biệt.

Bây giờ có một loại đề xuất mới của chính phủ cho phép thực hiện cả hai bước như một.

Vì vậy, bây giờ chúng tôi có ít chi phí tổ chức hơn và sự phụ thuộc vào việc tạo đề xuất. (Vì cửa hàng phải được lên lịch và thực hiện trước khi khởi tạo)

Đọc thêm:

https://github.com/CosmWasm/wasmd/issues/785

Cho phép phiếu bầu của chính phủ tải lên mã byte wasm lớn hơn.

Chúng tôi đã từng giới hạn kích thước wasm ở mức 800 KB, điều này hợp lý đối với hầu hết các hợp đồng, vì việc tăng giới hạn toàn cầu của chuỗi có thể là điều không mong muốn; người ta đã đề xuất rằng các hợp đồng của chính phủ có thể phục vụ chức năng này và cho phép kích thước wasm lên tới 4 MB cùng lúc với Tx bình thường ở mức 800 KB.

Đọc thêm:

Giới thiệu Danh sách Chấp nhận Stargate Querier

Truy vấn Stargate là một điểm mở rộng chung mạnh mẽ để truy vấn trạng thái hệ thống thông qua định dạng protobuf chung “Stargate”. Với chuỗi này, dữ liệu bất khả tri có thể được truy vấn bằng hợp đồng, giống như nhóm thanh khoản.

Tính năng này đã gây ra rất nhiều vấn đề trong quá khứ khi trạng thái trả về không mang tính quyết định và do đó, phá vỡ sự đồng thuận. Chúng tôi đã thêm danh sách chấp nhận này để cho phép mọi chuỗi dễ dàng định cấu hình danh sách trắng của riêng mình mà không cần duy trì nhiều nhánh và có khả năng gây ra lỗi. Osmosis rẽ nhánh để kích hoạt tính năng này cho các mô-đun tùy chỉnh của họ và các chuỗi khác muốn có chức năng tương tự.

Tuy nhiên, danh sách chấp nhận là một cách để các kiến ​​trúc sư chuỗi thêm hỗ trợ trở lại cho các truy vấn Stargate riêng lẻ mà họ muốn duy trì và hỗ trợ (có nguy cơ của riêng họ). Bây giờ, danh sách chấp nhận mặc định trống và bạn cần đặt một biến trong mã Go của chuỗi để thêm bất kỳ loại truy vấn nào bạn muốn bật.

Đọc thêm:

https://github.com/CosmWasm/wasmd/issues/904

Nhận hợp đồng theo địa chỉ người tạo

Trong các phiên bản trước, chúng tôi có một truy vấn để lấy tất cả các phiên bản hợp đồng cho một mã-id. Một trường hợp sử dụng phổ biến là cung cấp cho tôi tất cả các phiên bản hợp đồng được tạo bởi địa chỉ x.

Kể từ bản phát hành này, điều này hiện được hỗ trợ và cho phép UX tốt hơn

Đọc thêm:

https://github.com/CosmWasm/wasmd/issues/998

Hỗ trợ quyền khởi tạo > quyền chuỗi cho cửa hàng gov

Đây cũng là về việc tạo một phiên bản trên các chuỗi được phép.

Trong các phiên bản trước, mã wasm lưu trữ và cập nhật cấu hình trên cài đặt khởi tạo mã là cần thiết; giờ đây, với bản phát hành này, đề xuất quản trị cửa hàng đã có thể đặt quyền khởi tạo phù hợp rồi.

Điều này cải thiện quy trình làm việc của chính phủ và lưu một đề xuất

Đọc thêm:

https://github.com/CosmWasm/wasmd/issues/1020

Tham gia vào

Giống như những gì bạn nhìn thấy? Hãy cho cả thế giới biết trên Twitter hoặc tham gia thảo luận trên Discord. Và hãy nhớ theo dõi chúng tôi trên phương tiện để được thông báo về các nhóm Học viện CosmWasm sắp tới, hoặc truy cậphttp://academy.cosmwasm.com, nơi bạn có thể nâng cao kỹ năng của mình.

Và vui lòng xem cuộc gọi Cộng đồng cuối cùng trong năm của chúng tôi, trong đó nhiều thông báo thú vị sẽ được đưa ra vào Thứ Ba, ngày 20 tháng 12 lúc 6 giờ chiều CET để biết thêm thông tin chi tiết ban đầu và không gian để đặt câu hỏi.

Chương trình nghị sự: https://github.com/CosmWasm/cosmwasm/issues/1548