分享在 LikeCoin 中怎樣提交議案
BusinessAsMission 作為驗證人有差不多一個月時間了,常常也想著如何貢獻社群。由於驗證人均可以提交議案,所以我們今次借此機會學習提交議案,及把經驗與大家分享。
我不打算在此講解為何需要提交議案,為何要投票,這是 DAO ( decentralized autonomous/democratic organization, 分散式自治機構 ) 的特點,就是任何持有 LikeCoin 的人都是持份者,每個持份者都能參與讚賞公民共和國的治理。
詳情可以參考:(https://docs.like.co/v/zh/guides/governance/liquid-democracy)
怎樣投票(https://docs.like.co/v/zh/guides/governance/direct-vote)
為何我會提交議案?
事原我在2022年1月的社群治理會議 (可參考:https://docs.like.co/v/zh/guides/governance/community-call) 中得知道Proposal 25 的議案需要修改部份內容,所以需要發出一個新的議案讓所有LikeCoin 的持份者表決接受修改的內容,通過後才能執行議案。
在會議中我們可以實時討論,像這次我想參與某些項目或提出問題,很多資深的驗證人或 LikeCoin 持份者也十分樂意幫助。
就這樣我就去參與第一次的議案提交
有什麼類型的 proposal?
首先要知道有什麼proposal 種類, 所以先找一些參考,在discord 社群中人求問是最直接的方法。
我得到以下的資料:https://t.me/decentralizehk/19888
(LikeCoin/Cosmos)的 proposals 有幾種:
1. parameter change proposal: 修改某項參數,比如鑄幣頻率、投票期、抵押所需等,議案一旦通過,代碼自動在下一個區塊執行,不經人手。議案 #2、3、5、7、8、18 等很多都是這種
2. community-pool-spend proposal: 議案指定了花某一數額的公帑作某用途,發到指定錢包(有時是 multisig),也是議案通過,下一區塊自動執行。事實上,community pool 沒有人有 key,唯一的使用方法就是透過提交議案,說服社群通過。最近的議案 #25、26、27、28 都是這種。
3. upgrade proposal: 議案指定某特定時間更新到某特定版本,也是自動執行,各驗證人自行手動更新節點。因為議案通過才會更新,是社群共識,因此不會產生 hardfork。LikeCoin 暫時沒有先例
4. signalling proposal: 社群共識一個意願,比如參與 ATOM hackathon、成立 Creators Fund Committee 並指定成員等等,如議案 19、20。這是唯一一類牽涉人手跟進的議案,一般就會在議案裡面共識執行者。
再以一個議案 #28 為例,是「decentralized procurement」,提案動用 community pool 裡面的 4500 鎂等值 LIKE 去招聘一家推廣公司負責維護 @likecoin Twitter 帳號,而該公司的人正在 Discord 回應社群的提問,比如是否打算投放廣告( https://discord.com/channels/763001015712350231/796036074396844052/923424673050542100 )。比如你是個 coder,也可以自己提案,讓社群撥款給你,寫一個 LikeCoin 的功能和應用。
整體來說,任何人都可以提案,任何人都可以是執行者,不需得到任何人批准,但需要爭取整個社群支持提案,這就是 LikeCoin 的無大台,跟開源軟件類似,但再加上整個治理的機制,所有議案寫在鏈上,能自動執行的都自動執行。
之前的議案可以在這裡找到 (https://likecoin.bigdipper.live/proposals)
由於今次是去修改proposal 25 的內容,而不是提出一個新的airdrop 議案,所以用signalling proposal 去提出修改的動議。
實際是要怎樣做?
好了,現在好像知道要做什麼了,那就預備一下要怎樣做:(我先列出我所要做的,下面再詳留講解我的做法)
1. 嘗試在 testnet 上提交一個議案 a. 我有一個 testing node 是用 testnet 的,之前做驗證人前用來做測試用的 (這是我的選擇,其實可以在任何能行 liked command 的地方也可執行,只要其它的 parameters 填對就是了) b. 了解要行什麼 commands 來 raise proposal c. 預備好議案的內容 (把詳細的議案內容放到 IPFS 或 ISCN, 再把link放入 JSON file ) d. 去領取一點 ekil (testnet 用的 like) e. 提交議案到 testnet 並檢查一下 (https://testnet.likecoin.bigdipper.live/proposals) 2. 到 Discord 裡的 proposal-discussions 與大家討論一下 3. 到 mainnet 去提交議案
詳細的解說:
1. 先要在Testnet 裡 raise a proposal 好讓大家去討論
a. 我在我的 Testing node 上開始預備 proposal 內容 (怎樣setup a node: https://docs.like.co/validator/likecoin-chain-node/setup-a-node)
通常做 validator 前也會setup 一個 testing node 在 testnet 作測試。
注意事項:
要用 LIKECOIN_CHAIN_ID="likecoin-public-testnet-3"
Testnet 會用 nanoekil,而不是 nanolike
b. 我在discord 找到 @nnkken 曾經分享過怎 raise a text proposal.
但由於我要先 submit 在 testnet 作測試, 所以我更改了一部份,更改為
docker-compose run --rm liked-command \ tx gov submit-proposal \ --proposal=/host/text-proposal.json \ --from validator \ --node https://node.testnet.like.co:443/rpc/ \ --chain-id likecoin-public-testnet-3
解說:
--proposal 的 content 會用 json file 注入
--以 validator 身份來提議案
--node: 就是用那個 rpc server 的 endpoint (要有 port number), 所以現在要用 testnet 的rpc endpoint (請參考:https://github.com/likecoin/testnets/tree/master/likecoin-public-testnet-3 )
--chain-id, 當然也是用 testnet 的 chain-id (請參考:https://github.com/likecoin/testnets/tree/master/likecoin-public-testnet-3)
注意,如要raise 另一種類的 proposal, 如 community-pool-spend, param-change, software-upgrade, 就要用該 command,如:
docker-compose run --rm liked-command \ tx gov submit-proposal param-change some-proposal.json \ --from private-key \ --node https://node.testnet.like.co:443/rpc/ \ --chain-id likecoin-public-testnet-3
c. 先把詳細的議案內容放到 IPFS 或 ISCN。我支持likecoin, 當然是用 ISCN 註冊。
我的做法是把議案先轉為 PDF, 再到 https://app.like.co/ 去把 PDF 註冊. 詳細教程請看(https://docs.like.co/general-guides/decentralized-publishing/app.like.co)
完成後我會得到下面的資料,如ISCN ID, Content Fingerprints, ifps link... 等
議案內容要放在 text-proposal.json 裡,例子如下。而text-proposal.json 要放在 docker-compose.yaml 同一層
如我想要把下面的文字放入 JSON 內的 dsecription
This is a Test! To rectify Proposal 25 Full Text: ipfs://QmeJCtRT78G2cWEyTP2Ufj73sobYvaPjacDtkbFn8ymTeh or https://3oinsmptugqipuluhj4iv6txqxep7za3ngnbrpauf55uquiikova.arweave.net/25DZMfOhoIfRdDp4ivp3hcj_5Btpmhi8FC97SFEIU6o”
注意,這是json file, description 內的隔行要用\n 來分隔. 這是Text Proposal 所以 type 是 Text. Deposit 裡用的是用 nanoekil. (1 ekil = 1000000000nanoekil)
{ "title": "[Rectify Proposal 25]XXXX", "description" : "This is a Test!\nTo rectify Proposal 25\nFull Text:\nipfs://QmeJCtRT78G2cWEyTP2Ufj73sobYvaPjacDtkbFn8ymTeh\nor\n https://3oinsmptugqipuluhj4iv6txqxep7za3ngnbrpauf55uquiikova.arweave.net/25DZMfOhoIfRdDp4ivp3hcj_5Btpmhi8FC97SFEIU6o", "type": "Text", "deposit": "1000000000nanoekil" }
d. 由於要用 ekil (mainnet 是用likecoin 的,testnet 就是用ekil), 可到這裡 (https://likecoin-public-testnet-faucet.nnkken.dev/ )去取, 每次可取 100,000ekil.
取了後可到 https://testnet.likecoin.bigdipper.live/ 根據 height 去檢查一下 Transaction
e. 預備好了,我就在我的 testing node 上執行這 command. 成功後,可在https://testnet.likecoin.bigdipper.live/proposals/24 查看一下。
2. 當提交了議案在 testnet, 可以讓社群知道並作出討論,看看有沒有其它地方需要更正或補充
收集好所有 comments 以作出最後修改後,就可以準備在 mainnet 提交議案了
3. 在mainnet 上提交議案其實和在 testnet 差不多,主要是要更改回 mainnet 的 parameters (可參考:https://github.com/likecoin/mainnet),並在我 BAM 的 node 上執行,當然也要預備一些likecoin.
Command 現改為:
docker-compose run --rm liked-command \ tx gov submit-proposal \ --proposal=/host/text-proposal.json \ --from validator \ --node https://mainnet-node.like.co:443/rpc/ \ --chain-id likecoin-mainnet-2
Text-proposal.json (現在要用 nanolike)
{ "title": Real Title", "description" : "Real Content XXX)", "type": "Text", "deposit": "1000000000nanolike" }
提交後就直接進入 deposit 及 vote 的程序了. 議案可在這裡看 (https://likecoin.bigdipper.live/proposals/30)
今次提交議案的程序不算太繁複,但對新手來說有點不知從何問起的困難,幸好在社群中大家都會幫助解難,希望之後可有更多的驗證人及 likecoin 持份者都可參與及嘗試不同的工作,讓 likecoin 社群更成熟及壯大。
LikeCoin驗證人:BusinessAsMiossion
我們(YK 和@保羅.真 )是一個關心香港的團隊。我們會以「授人以漁」原則,為這城市創造有價值的項目,讓更多人可以分享到區塊鏈和密碼貨幣帶來的好處。
怎樣把你的LikeCoin委託給我們,請你照以下步驟:
在Liker Land app(如沒有請下載Liker Land App) 的「我的錢包」中的按「委託」後點選「所有驗證人」,找到「BusinessAsMission」,按下「委託」,輸入你想委託的數額即可。謝謝您的支持!
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 来自作者
- 相关推荐