Phân tích cơ chế đề xuất hợp đồng thông minh Sputnik DAO: Từ khởi xướng đến thực hiện toàn bộ quy trình

robot
Đang tạo bản tóm tắt

Nhật ký phát triển hợp đồng thông minh Rust (11): 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ị và cung cấp một giải pháp quản trị quyết định cộng đồng toàn diện và linh hoạt.

Sputnikdaov2 là hợp đồng thông minh được sử dụng cho việc 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), và trong các bài viết tiếp theo sẽ giải thích các chế độ quản trị cộng đồng DAO liên quan đến đề xuất (Policy).

1. Khởi xướng đề xuất

Mỗi thành viên trong Sputnik-DAO đều có thể bày tỏ ý kiến hoặc đề xuất về 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. Các thành viên có thể ảnh hưởng đến hướng đi trong tương lai của dự án thông qua việc bỏ phiếu hoặc khởi xướng đề xuất.

Tại cấp hợp đồng, các thành viên 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ả đề xuất (Description)
  • Loại đề xuất(kind)

Phương pháp add_proposal() sẽ thực hiện xử lý kiểm tra, tạo ra đề xuất (Proposal) với thông tin khởi tạo đầy đủ và được liên kết với proposal_id duy nhất, được thêm vào ánh xạ Contract.proposals được duy trì toàn cầu trong hợp đồng.

Thông tin thuộc tính đầy đủ của đề xuất bao gồm:

  • mô tả ( description )
  • 类型(kind)
  • Người đề xuất(proposer)
  • trạng thái(status)
  • Thời gian khởi xướng(thời gian nộp)
  • Trạng thái bỏ phiếu ( vote_counts, votes )

Hợp đồng yêu cầu người đề xuất đặt cọc một số lượng NEAR token nhất định làm đảm bảo khi gọi add_proposal(). Khoản tiền đặt cọc này sẽ được hoàn trả qua internal_return_bonds() khi đề xuất kết thúc bình thường.

2. Trạng thái đề xuất

Các đề xuất trong Sputnik-DAO có thể trải qua các trạng thái sau:

  • Đang tiến hành ( trạng thái ban đầu )
  • Đã phê duyệt
  • Bị từ chối
  • Đã xóa
  • Hết hạn
  • Di chuyển
  • Thất bại

Trạng thái đề xuất được điều khiển bởi phương pháp act_proposal(). Các thành viên có thể thực hiện các hành động sau đối với đề xuất:

  • VoteApprove: biểu tán thành
  • VoteReject: biểu phản đối
  • VoteRemove: cho rằng không có ý nghĩa, cần loại bỏ

Nội bộ sẽ gọi policy.proposal_status() để thực hiện bỏ phiếu, thay đổi trạng thái của các đề xuất đáp ứng ngưỡng.

  • Đề xuất trạng thái Approved sẽ được thực hiện
  • Trạng thái Rejected hoặc Removed thực hiện các thao tác hoàn tất
  • Đã xóa trạng thái đề xuất sẽ bị loại bỏ khỏi danh sách đề xuất, không hoàn trả tiền đặt cọc.
  • Trạng thái bị từ chối của đề xuất được giữ lại trong bể đề xuất, hoàn lại tiền đặt cọc

3. Thực hiện đề xuất

Các đề xuất có trạng thái Approved sẽ được thực hiện nội dung quyết định thông qua internal_execute_proposal(). Các loại đề xuất được hỗ trợ bao gồm:

  • ChangeConfig
  • ChangePolicy
  • ThêmThànhViênVàoVaiTrò
  • XóaThànhViênKhỏiVaiTrò
  • FunctionCall
  • UpgradeSelf
  • UpgradeRemote
  • Chuyển
  • SetStakingContract
  • AddBounty
  • BountyDone
  • Bỏ phiếu
  • FactoryInfoUpdate
  • ChangePolicyAddOrUpdateRole
  • ChangePolicyRemoveRole
  • ChangePolicyUpdateDefaultVotePolicy
  • ChangePolicyUpdateParameters

Dưới đây là quy trình xử lý của hai loại đề xuất điển hình:

( 3.1 Đề xuất thực hiện chức năng hợp đồng

Đề xuất loại FunctionCall được truyền vào các thao tác hàm cần thực hiện )actions### khi được tạo. Bên trong có thể chứa nhiều đối tượng ActionCall, chỉ định tên phương thức hợp đồng và tham số.

Sputnik-DAO áp dụng hình thức Promise Batch Actions để hoàn thành việc thực hiện các đề xuất loại hàm hợp đồng.

( 3.2 Đề xuất chuyển tiền hợp đồng

Đề xuất loại Transfer được sử dụng để chuyển các token tích lũy từ tài khoản hợp đồng đến receiver_id được chỉ định.

internal_execute_proposal)### Việc xử lý đề xuất loại Transfer sẽ gọi hàm internal_payout(), thực hiện các thao tác chuyển tiền với các loại Fungible Token khác nhau và receiver_id.

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 Sputnik DAO, bao gồm việc tạo đề xuất (Proposal), thực hiện bỏ phiếu và quy tắc thay đổi trạng thái. Tiếp theo sẽ dựa trên đề xuất để mô tả chi tiết việc thực hiện và cấu hình mô hình quản trị Sputnik-DAO (Policy).

ACT8.02%
BATCH5.26%
TOKEN8.06%
Xem bản gốc
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 thưởng
  • 8
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
WhaleMistakervip
· 08-06 16:14
dao có tiền thật đáng nể?
Xem bản gốcTrả lời0
RugPullAlarmvip
· 08-06 10:47
Hả, cái gọi là tự trị chẳng qua chỉ là một thủ thuật che mắt cho một quỹ tài chính trá hình mà thôi. Dữ liệu on-chain đã nói lên tất cả.
Xem bản gốcTrả lời0
BearMarketSurvivorvip
· 08-06 08:36
Cơ chế đề xuất của Near có điểm thú vị nhỉ?
Xem bản gốcTrả lời0
SleepyValidatorvip
· 08-04 05:57
Gần đây rust học đã thanh lý, đã tốt lên.
Xem bản gốcTrả lời0
TestnetScholarvip
· 08-04 04:35
Lại đang chuẩn hóa quy trình卷dao rồi
Xem bản gốcTrả lời0
AirdropHunter007vip
· 08-04 04:34
dao này của near thật vô nghĩa, chỉ cần chuyển tay là bán.
Xem bản gốcTrả lời0
rekt_but_vibingvip
· 08-04 04:34
Có quá nhiều đề xuất, không thể bỏ phiếu được, đang làm cái gì vậy?
Xem bản gốcTrả lời0
StableGeniusDegenvip
· 08-04 04:12
rust lại đến rồi, có chút khắc nghiệt nhỉ
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)