Nhật ký phát triển hợp đồng thông minh Rust ( Phân tích cơ chế đề xuất của Sputnik DAO
Sputnik-DAO như một cơ sở hạ tầng của NEAR Protocol, đang thúc đẩy hệ sinh thái NEAR phát triển theo hướng phi tập trung. Hiện tại, nền tảng này đã tạo điều kiện cho nhiều dự án NEAR thiết lập cộng đồng tự trị phi tập trung, cung cấp giải pháp quản trị quyết định cộng đồng toàn diện, linh hoạt và hiệu quả.
Sputnikdaov2 là hợp đồng thông minh dùng để bỏ phiếu quản trị cộng đồng Sputnik-DAO. Bài viết này sẽ giới thiệu các khái niệm cốt lõi của hợp đồng: đề xuất )Proposal(, các bài viết tiếp theo sẽ xoay quanh đề xuất để giới thiệu các mô hình quản trị cộng đồng DAO liên quan )Policy(.
1. Khởi xướng đề xuất
Các thành viên trong cộng đồng Sputnik-DAO có thể đưa ra ý kiến hoặc nộp đề xuất về việc quản trị hoặc quản lý dự án. Các thành viên nắm giữ cổ phần có thể xem xét và bỏ phiếu cho các đề xuất, từ đó ảnh hưởng đến hướng đi tương lai của dự án.
Tại cấp hợp đồng, các thành viên DAO có thể gọi phương thức add_proposal)( của hợp đồng sputnikdaov2 để khởi xướng đề xuất mới:
gỉ
u64
Người đề xuất cần cung cấp thông tin chi tiết về đề xuất )ProposalInput(:
Mô tả văn bản đề xuất )Description(
Loại đề xuất ) kind (
Phương thức add_proposal)( sẽ thực hiện xử lý kiểm tra, tạo ra một đề xuất hoàn chỉnh đã được khởi tạo )Proposal(, và gắn nó với proposal_id duy nhất, thêm vào bản đồ Contract.proposals được duy trì toàn cầu bởi hợp đồng.
Đề xuất bao gồm thông tin thuộc tính đầy đủ sau:
description: Mô tả đề xuất
kind: loại đề xuất
proposer: người đề xuất
status: Trạng thái đề xuất
submission_time: Thời gian nộp
vote_counts: số phiếu
votes: Chi tiết bỏ phiếu
Cần lưu ý rằng, Sputnik-DAO có khái niệm tiền đặt cọc đề xuất )proposal_bond(, được quản lý bởi mô hình quản trị cộng đồng cụ thể )Policy(. Người đề xuất khi gọi add_proposal)( cần đặt cọc một số lượng NEAR token nhất định làm tiền bảo đảm. Khoản tiền đặt cọc này sẽ được hoàn lại khi đề xuất kết thúc bình thường.
Các đề xuất trong Sputnik-DAO có thể trải qua nhiều trạng thái:
InProgress: Trạng thái ban đầu, bỏ phiếu đang diễn ra
Đã phê duyệt: Bỏ phiếu thông qua
Bị từ chối: Bỏ phiếu không thông qua
Đã bị xóa: 被移除
Expired: Hết hạn
Đã di chuyển
Thất bại: Thực hiện không thành công
Trạng thái đề xuất thay đổi được điều khiển bởi phương thức act_proposal)(. Các thành viên DAO có thể gọi phương thức này để thực hiện các thao tác bỏ phiếu cho đề xuất.
VoteApprove: Tán thành
VoteReject: phản đối
VoteRemove: Xóa
Sau khi bỏ phiếu, sẽ gọi policy.proposal_status)( để tiến hành kiểm phiếu, cập nhật trạng thái đề xuất khi thỏa mãn điều kiện.
Đề xuất đã được bỏ phiếu thông qua ) trạng thái Approved ( sẽ gọi hàm internal_execute_proposal)( để thực hiện nội dung quyết định.
Sputnik-DAO hỗ trợ nhiều loại đề xuất, chủ yếu liên quan đến việc cập nhật cấu hình mô hình quản trị DAO. Dưới đây là giới thiệu về cách xử lý hai loại đề xuất điển hình:
) 3.1 Đề xuất thực hiện hàm hợp đồng
Đề xuất loại FunctionCall cho phép thực hiện các hàm hợp đồng được chỉ định. Đề xuất bao gồm các thao tác hàm sẽ thực hiện (actions), có thể chỉ định nhiều function_call liên tiếp.
Sputnik-DAO áp dụng hình thức Promise Batch Actions để hoàn thành việc thực hiện hàm hợp đồng.
3.2 Đề xuất chuyển tiền hợp đồng
Đề xuất loại chuyển nhượng được sử dụng để chuyển token tích lũy từ tài khoản hợp đồng đến tài khoản chỉ định.
internal_execute_proposal() sẽ gọi hàm internal_payout###(, thực hiện các hoạt động chuyển tiền cho các loại Token Fungible khác nhau và tài khoản nhận.
Bài viết này giới thiệu các khái niệm cốt lõi của hợp đồng thông minh Sputnik DAO - Đề xuất )Proposal(, bao gồm việc tạo đề xuất, bỏ phiếu, thay đổi trạng thái và quá trình thực hiện. Sau đó sẽ dựa trên cơ chế đề xuất, mô hình quản trị của Sputnik-DAO )Policy( sẽ được mô tả chi tiết hơn.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Phân tích hợp đồng thông minh Sputnik DAO: Thiết kế và thực hiện cơ chế đề xuất
Nhật ký phát triển hợp đồng thông minh Rust ( Phân tích cơ chế đề xuất của Sputnik DAO
Sputnik-DAO như một cơ sở hạ tầng của NEAR Protocol, đang thúc đẩy hệ sinh thái NEAR phát triển theo hướng phi tập trung. Hiện tại, nền tảng này đã tạo điều kiện cho nhiều dự án NEAR thiết lập cộng đồng tự trị phi tập trung, cung cấp giải pháp quản trị quyết định cộng đồng toàn diện, linh hoạt và hiệu quả.
Sputnikdaov2 là hợp đồng thông minh dùng để bỏ phiếu quản trị cộng đồng Sputnik-DAO. Bài viết này sẽ giới thiệu các khái niệm cốt lõi của hợp đồng: đề xuất )Proposal(, các bài viết tiếp theo sẽ xoay quanh đề xuất để giới thiệu các mô hình quản trị cộng đồng DAO liên quan )Policy(.
1. Khởi xướng đề xuất
Các thành viên trong cộng đồng Sputnik-DAO có thể đưa ra ý kiến hoặc nộp đề xuất về việc quản trị hoặc quản lý dự án. Các thành viên nắm giữ cổ phần có thể xem xét và bỏ phiếu cho các đề xuất, từ đó ảnh hưởng đến hướng đi tương lai của dự án.
Tại cấp hợp đồng, các thành viên DAO có thể gọi phương thức add_proposal)( của hợp đồng sputnikdaov2 để khởi xướng đề xuất mới:
gỉ u64
Người đề xuất cần cung cấp thông tin chi tiết về đề xuất )ProposalInput(:
Phương thức add_proposal)( sẽ thực hiện xử lý kiểm tra, tạo ra một đề xuất hoàn chỉnh đã được khởi tạo )Proposal(, và gắn nó với proposal_id duy nhất, thêm vào bản đồ Contract.proposals được duy trì toàn cầu bởi hợp đồng.
Đề xuất bao gồm thông tin thuộc tính đầy đủ sau:
Cần lưu ý rằng, Sputnik-DAO có khái niệm tiền đặt cọc đề xuất )proposal_bond(, được quản lý bởi mô hình quản trị cộng đồng cụ thể )Policy(. Người đề xuất khi gọi add_proposal)( cần đặt cọc một số lượng NEAR token nhất định làm tiền bảo đảm. Khoản tiền đặt cọc này sẽ được hoàn lại khi đề xuất kết thúc bình thường.
![])https://img-cdn.gateio.im/webp-social/moments-84ee9ca630a4cdcdb0d2eb63450a7cf4.webp(
2. Trạng thái đề xuất
Các đề xuất trong Sputnik-DAO có thể trải qua nhiều trạng thái:
Trạng thái đề xuất thay đổi được điều khiển bởi phương thức act_proposal)(. Các thành viên DAO có thể gọi phương thức này để thực hiện các thao tác bỏ phiếu cho đề xuất.
Sau khi bỏ phiếu, sẽ gọi policy.proposal_status)( để tiến hành kiểm phiếu, cập nhật trạng thái đề xuất khi thỏa mãn điều kiện.
![])https://img-cdn.gateio.im/webp-social/moments-427716593b21fa32b47855ceb5e101fc.webp(
3. Thực hiện đề xuất
Đề xuất đã được bỏ phiếu thông qua ) trạng thái Approved ( sẽ gọi hàm internal_execute_proposal)( để thực hiện nội dung quyết định.
Sputnik-DAO hỗ trợ nhiều loại đề xuất, chủ yếu liên quan đến việc cập nhật cấu hình mô hình quản trị DAO. Dưới đây là giới thiệu về cách xử lý hai loại đề xuất điển hình:
) 3.1 Đề xuất thực hiện hàm hợp đồng
Đề xuất loại FunctionCall cho phép thực hiện các hàm hợp đồng được chỉ định. Đề xuất bao gồm các thao tác hàm sẽ thực hiện (actions), có thể chỉ định nhiều function_call liên tiếp.
Sputnik-DAO áp dụng hình thức Promise Batch Actions để hoàn thành việc thực hiện hàm hợp đồng.
3.2 Đề xuất chuyển tiền hợp đồng
Đề xuất loại chuyển nhượng được sử dụng để chuyển token tích lũy từ tài khoản hợp đồng đến tài khoản chỉ định.
internal_execute_proposal() sẽ gọi hàm internal_payout###(, thực hiện các hoạt động chuyển tiền cho các loại Token Fungible khác nhau và tài khoản nhận.
![])https://img-cdn.gateio.im/webp-social/moments-ef0b959c42e1f5fc6263cd4a86fd078e.webp(
4. Tóm tắt
Bài viết này giới thiệu các khái niệm cốt lõi của hợp đồng thông minh Sputnik DAO - Đề xuất )Proposal(, bao gồm việc tạo đề xuất, bỏ phiếu, thay đổi trạng thái và quá trình thực hiện. Sau đó sẽ dựa trên cơ chế đề xuất, mô hình quản trị của Sputnik-DAO )Policy( sẽ được mô tả chi tiết hơn.
![])https://img-cdn.gateio.im/webp-social/moments-eb73d5e15f6161f0a4b442cd4b99a91e.webp(