Mitra──同伴與契約
聯邦宇宙公民應該都知道,由於去中心化的特性,「證明自己是自己」是一件困難的事情。舉例來說,即便我有10幾個 fedi 帳號,我也很難阻止其他人在別的實例使用「太平洋海岸公路」這個名字。Mastodon 有 rel="me"
的連結認證,證明網站是由你控制的;其他 fedi 平台則沒有這樣的措施。如果說 fedi 帳戶能夠綁定區塊鏈錢包,不就可以作為確認身分的手段了嗎?
或許你會說,已經有區塊鏈的 SNS 專案了。然而社交短貼文適合上鏈嗎?將一則貼文上鏈所需的費用、時間,以及不可刪除的特性,讓我認為區塊鏈其實並不適合 SNS 的應用。如果範圍限縮在 DID (decentralized identification) 就不一樣了,web3 是可以用來填上聯邦宇宙的一塊拼圖。
Mitra 讓你可以用乙太坊錢包註冊及登入,還可以用門羅幣 (Monero, XMR) 訂閱其他 Mitra 使用者。Mitra 這個名字來自雅利安人的神祗密特拉,有「契約」與「同伴」的涵義,對於這個具有支付訂閱功能的社群網路專案而言的確是很適合的名稱。成文時 Mitra 的最新版本為v1.12.0,介面仍然很簡單而清爽,也只有英文介面:
在「Subscriptions」可以加入自己的門羅幣錢包位址,並設定訂閱者的月付金額是多少,預設為0.01XMR。如果所在的實例有設定乙太坊智慧合約的話,可能會有其他 ERC-20 的幣可以選擇。
如果上一步的訂閱有設定了,在個人檔案頁面就會多出一個「Subscribe」按鈕。
作者使用 ERC-20 幣的情況
點擊之後,再按「Connect wallet」(這邊我是用 MetaMask 行動版裡的瀏覽器):
按下「Pay」並以錢包授權之後,訂閱就成立了。我在 MetaMask 行動版的瀏覽器嘗試過更改訂閱月數,但總會跳出去,在 PC 上就沒有這個問題。
作者使用門羅幣的情況
有些 Mitra 帳戶所在的實例如果沒有設定乙太坊智慧合約,只能使用門羅幣,需要多一個步驟輸入 fedi 帳戶(非 Mitra 帳戶也行)。以我的訂閱頁面為例:
輸入之後會顯示你的頭像,以及所需的訂閱費用:
按下「Pay」之後,出現 QR code 與地址,再使用門羅幣錢包在時限內支付。
等交易被確認之後,上一個頁面就會改為顯示支付已完成。
作者這邊貼文的可見範圍有一個「Subscribers」,可以發出訂閱者限定的貼文:
Mitra 的訂閱者會收到通知,而非 Mitra 的訂閱者則是以訊息的方式呈現。
如果喜歡我的文章,歡迎訂閱我的 Mitra!
自架 Mitra
【以下包含技術資訊,一般使用者可以略過本節】
依照聯邦宇宙的精神,可以的話應該擁有自己的實例。我嘗試之後,卡在無法滿足 nodejs 和 npm 的版本要求,導致不能運行 web service。我貢獻一點微薄的經驗,希望有能力的人可以更快上軌道。據Mitra 開發者 silverpill 在 Matrix 群組裡所說,
- 乙太坊的智慧合約比較複雜,沒有經驗的話先略過;Monero 的設定相對單純
- Mitra 本身輕量,所需的資源不多,但如果你同時要運行 Monero 節點就是另一回事了。因此建議使用外部節點
- 在同一台機器上運行 monero-wallet-rpc,建議讓 Mitra 使用全新的錢包地址,以免 Mitra 的活動與現存錢包的活動發生混淆
以下是我成功運行 monero-wallet-rpc 的步驟:
- 至 Monero download 頁面下載 Monero CLI Wallet
- 驗證簽署金鑰
https://www.getmonero.org/resources/user-guides/verification-allos-advanced.html - 解壓縮抓下來的檔案(以Linux 64-bit為例)
tar jxvf monero-linux-x64-v0.18.1.2.tar.bz2
- 建立新的錢包(我使用 Monero Taiwan 的兩個公共節點都失敗,但是隨機節點可以用)
./monero-wallet-cli --daemon-address opennode.xmr-tw.org:18089 --generate-new-wallet MitraWallet
輸入密碼,並抄下 25 個種子 - 執行 rpc
./monero-wallet-rpc --rpc-bind-port 28088 --daemon-address opennode.xmr-tw.org:18089 --trusted-daemon --disable-rpc-login --wallet-file MitraWallet --prompt-for-password
其餘的步驟就請參照 Mitra 專案的說明,祝你順利!