Analisis Mendalam Mekanisme Proposal Kontrak Cerdas Sputnik DAO

robot
Pembuatan abstrak sedang berlangsung

Rust smart contract pengembangan jurnal (11): Penjelasan mekanisme proposal Sputnik DAO

Sputnik-DAO sebagai infrastruktur NEAR Protocol, dengan kuat mendorong ekosistem NEAR menuju "desentralisasi". Saat ini, platform ini telah memfasilitasi banyak proyek NEAR yang membentuk komunitas otonomi "desentralisasi", sambil menyediakan solusi tata kelola keputusan komunitas yang lengkap, fleksibel, dan efisien.

Sputnikdaov2 adalah smart contract yang digunakan untuk pemungutan suara dalam tata kelola komunitas Sputnik-DAO. Artikel ini akan memperkenalkan konsep inti dari kontrak tersebut: proposal (Proposal), dan dalam artikel selanjutnya akan memperkenalkan model tata kelola komunitas DAO yang terkait dengan "proposal" (Policy).

1. Pengajuan Proposal

Setiap anggota di Sputnik-DAO dapat memberikan pendapat atau mengajukan proposal mengenai tata kelola atau manajemen proyek. Setiap anggota komunitas yang memiliki saham dapat meninjau dan memberikan suara pada proposal. Anggota dapat mempengaruhi arah masa depan proyek melalui pemungutan suara atau dengan mengajukan proposal baru.

Di tingkat kontrak, anggota DAO dapat memanggil metode add_proposal() dari kontrak sputnikdaov2 untuk mengajukan proposal baru:

karat u64

Pengusul harus memberikan rincian lengkap tentang proposal (ProposalInput):

  • Deskripsi teks proposal (Description)
  • Jenis proposal ( kind )

Informasi ini akan digunakan sebagai parameter untuk metode add_proposal(), metode ini akan melakukan verifikasi, menghasilkan proposal yang sepenuhnya diinisialisasi (Proposal). Proposal akhir akan terikat dengan proposal_id yang unik dan ditambahkan ke dalam kolam proposal yang dikelola secara global oleh kontrak.

Informasi atribut lengkap dari proposal meliputi:

  • Deskripsi (description)
  • 类型(jenis)
  • proposor(proposer)
  • status(status)
  • waktu pengiriman(submission_time)
  • Status voting(vote_counts, votes)

Perlu dicatat bahwa dalam Sputnik-DAO terdapat konsep proposal bond (proposal_bond). Kontrak mengharuskan pengusul untuk mengunci sejumlah token NEAR sebagai jaminan saat memanggil add_proposal(). Deposit tersebut akan dikembalikan kepada pengusul saat proposal berakhir dengan normal.

2. Status Proposal

Proposal dalam Sputnik-DAO dapat mengalami berbagai status:

  • InProgress: status awal proposal baru
  • Disetujui: memperoleh persetujuan
  • Ditolak:被否决
  • Dihapus:被移除
  • Expired: Sudah Kadaluarsa
  • Dipindahkan:已转移
  • Gagal: eksekusi gagal

Perubahan status proposal didorong oleh metode act_proposal(). Anggota DAO dapat memanggil metode ini untuk melakukan pemungutan suara dan operasi lainnya pada proposal:

  • VoteApprove: setuju
  • VoteReject:menolak
  • VoteRemove: Hapus

Setelah pemungutan suara, akan memanggil policy.proposal_status() untuk menghitung suara. Untuk proposal yang memenuhi ambang suara, status akan berubah sesuai.

  • Proposal dengan status Disetujui akan dieksekusi
  • Proposal yang berstatus Rejected atau Removed akan menjalankan operasi penutupan.

Proposal dengan status Removed akan dihapus dari kolam proposal dan tidak akan mengembalikan deposit. Proposal dengan status Rejected akan tetap berada di kolam dan deposit akan dikembalikan.

3. Eksekusi Proposal

Jika status proposal berubah menjadi Disetujui, act_proposal() akan memanggil internal_execute_proposal() untuk mengeksekusi konten proposal.

Sputnik-DAO mendukung berbagai jenis proposal, seperti ChangeConfig, ChangePolicy, FunctionCall, Transfer, dll. Setiap jenis memiliki cabang penanganan yang sesuai.

Berikut adalah dua jenis alur proses proposal yang khas:

( 3.1 Proposal Eksekusi Fungsi Kontrak)FunctionCall###

Proposal tipe FunctionCall dapat mengeksekusi metode kontrak tertentu. Proposal tersebut berisi fungsi operasi yang akan dieksekusi (actions), setiap action dapat menentukan nama metode kontrak dan argumen.

Akhirnya menyelesaikan pemanggilan fungsi dalam bentuk Tindakan Batch Janji.

( 3.2 Proposal Transfer Dana Kontrak ) Transfer ###

Proposal jenis Transfer dapat memindahkan token dari akun kontrak ke akun yang ditentukan.

internal_execute_proposal() akan memanggil fungsi internal_payout(), untuk melakukan operasi transfer untuk berbagai jenis token dan akun penerima.

4. Kesimpulan

Artikel ini memperkenalkan konsep inti dari kontrak Sputnik DAO—proposal (Proposal), termasuk pembuatan proposal, pemungutan suara, perubahan status, dan proses pelaksanaan. Selanjutnya, akan dijelaskan lebih lanjut tentang model tata kelola Sputnik-DAO berdasarkan proposal (Policy).

ACT10.51%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 5
  • Posting ulang
  • Bagikan
Komentar
0/400
Layer2Arbitrageurvip
· 7jam yang lalu
meh, implementasi pemerintah dao lainnya... sudah memeriksa angka gas - sebenarnya 47% lebih efisien daripada pemungutan suara eth
Lihat AsliBalas0
RektButSmilingvip
· 7jam yang lalu
Ini terlalu dao ya
Lihat AsliBalas0
MaticHoleFillervip
· 7jam yang lalu
Pemain dao yang mengerti, mengerti.
Lihat AsliBalas0
UnluckyLemurvip
· 7jam yang lalu
near pemain infrastruktur ayo!
Lihat AsliBalas0
AirdropHarvestervip
· 7jam yang lalu
near juga bisa diselesaikan ya?
Lihat AsliBalas0
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)