Rust smart contract pengembangan jurnal (11): Analisis mekanisme proposal Sputnik DAO
Sputnik-DAO sebagai infrastruktur NEAR Protocol, sedang mendorong ekosistem NEAR menuju arah desentralisasi. Saat ini, platform ini telah memfasilitasi beberapa proyek NEAR untuk membangun komunitas otonomi terdesentralisasi, dan menyediakan solusi tata kelola keputusan komunitas yang lengkap dan fleksibel.
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 (, dan dalam artikel selanjutnya akan membahas model tata kelola komunitas DAO terkait Proposal ).
1. Pengajuan Proposal
Setiap anggota di Sputnik-DAO dapat memberikan pendapat atau mengajukan proposal mengenai tata kelola atau manajemen proyek. Selanjutnya, setiap anggota komunitas yang memiliki saham dapat meninjau dan memberikan suara terhadap proposal tersebut. Anggota dapat mempengaruhi pengembangan masa depan proyek dengan memberikan suara pada proposal atau mengajukan proposal baru.
Dari sisi kontrak, anggota DAO dapat memanggil metode add_proposal() dari kontrak sputnikdaov2 untuk mengajukan proposal baru. Pengusul harus memberikan rincian proposal(ProposalInput):
Deskripsi teks proposal (Description)
Jenis proposal (kind )
metode add_proposal() akan memverifikasi dan memproses informasi proposal, menghasilkan sebuah proposal lengkap (Proposal), dan mengikatnya dengan proposal_id yang unik, menambahkannya ke dalam kolam proposal yang dikelola secara global oleh kontrak.
Informasi lengkap tentang atribut yang terkandung dalam proposal adalah:
description: Deskripsi
jenis: 类型
proposer: pengusul
status: Status
submission_time: waktu pengajuan
vote_counts: statistik suara
votes: Detail pemungutan suara
Sputnik-DAO mengharuskan pengusul untuk mempertaruhkan sejumlah token NEAR sebagai jaminan saat mengajukan proposal. Deposit ini akan dikembalikan kepada pengusul setelah proposal berakhir dengan normal.
2. Status Proposal
Proposal standar dalam Sputnik-DAO mungkin mengalami status berikut:
InProgress: Sedang berlangsung
Disetujui: Sudah disetujui
Ditolak: Sudah ditolak
Dihapus: Telah dihapus
Expired: Sudah Kedaluwarsa
Dipindahkan: Sudah dipindahkan
Perubahan status proposal dipicu oleh metode act_proposal(). Anggota DAO dapat melakukan tindakan berikut pada proposal:
VoteApprove: Setuju
VoteReject: Menolak
VoteRemove: Hapus
Setelah pemungutan suara, kontrak akan memanggil policy.proposal_status() untuk menghitung suara. Status proposal yang memenuhi ambang suara akan berubah sesuai:
Disetujui: Melalui internal_execute_proposal() eksekusi
Ditolak/Dihapus: Lanjutkan operasi setelah mengeksekusi internal_reject_proposal()
Proposal dengan status Removed akan dihapus dari kolam proposal, dan deposit tidak akan dikembalikan. Proposal dengan status Rejected akan tetap berada di kolam dan deposit akan dikembalikan.
3. Pelaksanaan Proposal
Untuk proposal dengan status Approved, act_proposal() akan memanggil internal_execute_proposal() untuk mengeksekusi isi proposal.
Sputnik-DAO mendukung berbagai jenis proposal, seperti ChangeConfig, ChangePolicy, FunctionCall, Transfer, dan lain-lain.
Berikut adalah pengenalan tentang dua jenis alur eksekusi proposal yang khas:
( 3.1 Proposal Eksekusi Fungsi Kontrak)FunctionCall###
Proposal tipe FunctionCall akan menerima fungsi spesifik yang akan dieksekusi saat dibuat (actions). Setiap action dapat menentukan nama metode kontrak dan parameter.
Sputnik-DAO menggunakan bentuk Promise Batch Actions untuk menyelesaikan pelaksanaan proposal jenis fungsi kontrak.
( 3.2 Proposal Transfer Dana Kontrak ) Transfer ###
Proposal jenis Transfer dapat memindahkan token (NEAR atau token standar NEP-141 ) yang terakumulasi di 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. Ringkasan
Artikel ini memperkenalkan konsep inti dari kontrak Sputnik DAO - Proposal(, menjelaskan cara membuat proposal baru dan melakukan pemungutan suara untuk mengeksekusinya, serta aturan perubahan status proposal. Selanjutnya, akan diperkenalkan lebih lanjut mengenai model tata kelola Sputnik-DAO berdasarkan proposal)Policy( dan implementasi serta konfigurasinya.
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.
8 Suka
Hadiah
8
6
Posting ulang
Bagikan
Komentar
0/400
quietly_staking
· 08-08 17:11
Hanya pemungutan suara jiwa
Lihat AsliBalas0
ProposalDetective
· 08-06 17:22
Jelas salah memilih orang.
Lihat AsliBalas0
GasGasGasBro
· 08-06 06:18
Kontrak tidak ada urusannya dengan saya, saya hanya mengenal uang.
Analisis lengkap mekanisme proposal Sputnik DAO: dari penciptaan hingga eksekusi siklus hidup
Rust smart contract pengembangan jurnal (11): Analisis mekanisme proposal Sputnik DAO
Sputnik-DAO sebagai infrastruktur NEAR Protocol, sedang mendorong ekosistem NEAR menuju arah desentralisasi. Saat ini, platform ini telah memfasilitasi beberapa proyek NEAR untuk membangun komunitas otonomi terdesentralisasi, dan menyediakan solusi tata kelola keputusan komunitas yang lengkap dan fleksibel.
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 (, dan dalam artikel selanjutnya akan membahas model tata kelola komunitas DAO terkait Proposal ).
1. Pengajuan Proposal
Setiap anggota di Sputnik-DAO dapat memberikan pendapat atau mengajukan proposal mengenai tata kelola atau manajemen proyek. Selanjutnya, setiap anggota komunitas yang memiliki saham dapat meninjau dan memberikan suara terhadap proposal tersebut. Anggota dapat mempengaruhi pengembangan masa depan proyek dengan memberikan suara pada proposal atau mengajukan proposal baru.
Dari sisi kontrak, anggota DAO dapat memanggil metode add_proposal() dari kontrak sputnikdaov2 untuk mengajukan proposal baru. Pengusul harus memberikan rincian proposal(ProposalInput):
metode add_proposal() akan memverifikasi dan memproses informasi proposal, menghasilkan sebuah proposal lengkap (Proposal), dan mengikatnya dengan proposal_id yang unik, menambahkannya ke dalam kolam proposal yang dikelola secara global oleh kontrak.
Informasi lengkap tentang atribut yang terkandung dalam proposal adalah:
Sputnik-DAO mengharuskan pengusul untuk mempertaruhkan sejumlah token NEAR sebagai jaminan saat mengajukan proposal. Deposit ini akan dikembalikan kepada pengusul setelah proposal berakhir dengan normal.
2. Status Proposal
Proposal standar dalam Sputnik-DAO mungkin mengalami status berikut:
Perubahan status proposal dipicu oleh metode act_proposal(). Anggota DAO dapat melakukan tindakan berikut pada proposal:
Setelah pemungutan suara, kontrak akan memanggil policy.proposal_status() untuk menghitung suara. Status proposal yang memenuhi ambang suara akan berubah sesuai:
Proposal dengan status Removed akan dihapus dari kolam proposal, dan deposit tidak akan dikembalikan. Proposal dengan status Rejected akan tetap berada di kolam dan deposit akan dikembalikan.
3. Pelaksanaan Proposal
Untuk proposal dengan status Approved, act_proposal() akan memanggil internal_execute_proposal() untuk mengeksekusi isi proposal.
Sputnik-DAO mendukung berbagai jenis proposal, seperti ChangeConfig, ChangePolicy, FunctionCall, Transfer, dan lain-lain.
Berikut adalah pengenalan tentang dua jenis alur eksekusi proposal yang khas:
( 3.1 Proposal Eksekusi Fungsi Kontrak)FunctionCall###
Proposal tipe FunctionCall akan menerima fungsi spesifik yang akan dieksekusi saat dibuat (actions). Setiap action dapat menentukan nama metode kontrak dan parameter.
Sputnik-DAO menggunakan bentuk Promise Batch Actions untuk menyelesaikan pelaksanaan proposal jenis fungsi kontrak.
( 3.2 Proposal Transfer Dana Kontrak ) Transfer ###
Proposal jenis Transfer dapat memindahkan token (NEAR atau token standar NEP-141 ) yang terakumulasi di 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. Ringkasan
Artikel ini memperkenalkan konsep inti dari kontrak Sputnik DAO - Proposal(, menjelaskan cara membuat proposal baru dan melakukan pemungutan suara untuk mengeksekusinya, serta aturan perubahan status proposal. Selanjutnya, akan diperkenalkan lebih lanjut mengenai model tata kelola Sputnik-DAO berdasarkan proposal)Policy( dan implementasi serta konfigurasinya.
![])https://img-cdn.gateio.im/webp-social/moments-4aed25bcefecb3d554dbe01447d4a0e8.webp(