Ai & Web3 Builder.

Ai & Web3 Builder.

I'm a Ai & Web3 Builder and Developer.
twitter
telegram
github
github
youtube
email

Gnoland智能合約平台測試任務教程

Gno 項目簡介

Gnoland 是 Cosmos 前創始人 Jae Kwon 創立的可互操作的高並發智能合約平台,開發者可以用 Gno 語言在 Gno 鏈上構建高並發智能合約,Gno 語言是類似於 Go 語言的智能合約開發語言,語法簡單,憑藉大量的 Go 開發人員,相對 Solidity、Rust、Move 等語言大大降低了開發者的入門門檻,目前 Gnoland 還處於 Test2 測試網階段,周邊配套工具還很欠缺,使用門檻比較高,需要一定的技術能力才能率先體驗,也正是因為這一點目前體驗的人還比較少,不卷,自然大家的機會也會比較大。

基礎環境安裝

本系列教程的操作系統環境為基於 ubuntu,大家也可以使用 Windows 的 WSL 版 Ubuntu 在自己的電腦上部署。

首先大家在伺服器上的 / 目錄下創建一個新的目錄 /data 用於存放平時所需要軟體操作的統一目錄,主要是方便後續對伺服器資源進行統一管理,主要是不同的軟體都會有自己默認的安裝目錄,如果不統一管理,後面軟體安裝多了就容易亂套。

sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install curl build-essential jq git -y

cd /

mkdir data

cd /data

mkdir app software soft source blockchain

目錄說明

/data/app 主要存放安裝軟體(主要以軟體鏈接的方式連接到 /data/soft 目錄下的軟體)

/data/software 主要存放從網上下載的軟體

/data/soft 主要存放安裝軟體(軟體安裝的真目錄)

/data/source 主要存放從 Github 上 clone 下來的源代碼

/data/blockchain 主要存放區塊鏈相關工具服務

當然目錄結構大家可以根據自己的喜好自己定義。

Go 開發環境安裝

cd /data/software
wget https://go.dev/dl/go1.18.5.linux-amd64.tar.gz
tar -xzvf go1.18.5.linux-amd64.tar.gz
tar -xzvf go1.18.5.linux-amd64.tar.gz -C/data/soft
cd /data/soft
mv go go1.18.5
ln -s /data/soft/go1.18.5 /data/app/go

cat << 'EOF' >> /etc/profile
export PATH=$PATH:/data/app/go/bin
EOF

source /etc/profile

go version
下載安裝 Gno 源代碼並編譯
cd /data/source
git clone https://github.com/gnolang/gno
cd gno
make

如果編譯的時候下載安裝包時網路超時出錯,則配置一個 Goproxy 代理,具體使用如下命令,然後再重新編譯#

export GO111MODULE=on
export GOPROXY=https://goproxy.cn

或者這樣設置代理也可以(這樣的話永久有效)#

echo "export GO111MODULE=on" >> ~/.profile
echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
source ~/.profile

cat << 'EOF' >> /etc/profile
export PATH=$PATH:/data/source/gno/build
EOF

source /etc/profile

創建錢包

gnokey generate

注意請保存你的錢包地址及助記詞,助記詞若不保存,之後將無法恢復錢包,切記不要隨便洩露助記詞。

從助記詞恢復錢包

gnokey add <錢包名> --recover
<錢包名> 替換為你自選的錢包名,不需要 <>,後面的所有命令也都不需要 <>,只需要替換 <> 內的內容,此命令同時會讓你設置一個錢包密碼,請記住你設置的錢包登錄密碼,如果後面忘記密碼,也可以用助記詞重新恢復錢包。

查看現有錢包列表

gnokey list
領取測試幣
打開水龍頭網站 https://test2.gno.land/faucet

輸入你的 Gnoland 錢包地址(如 g1f68ckw5yy8nccke6kva0mnf3sg2qv4qm8cf0u0)領取測試幣。

目前水龍頭只能領 50 GNOT,如果想領取更多測試幣,需要更換一下 vpn 的 ip,簡單的方法就是更換一下 vpn 的區域,因為水龍頭每次領取的時候會檢測你的 ip,限制了頻繁領取。

查看錢包餘額

gnokey query auth/accounts/<你的錢包地址> --remote test2.gno.land:36657
創建註冊帳戶
cd

mkdir gnoland

cd gnoland

account_number=$(gnokey query auth/accounts/< 錢包地址> --remote test2.gno.land:36657 | grep account_number| sed's/[^0-9]//g')

echo $account_number

sequence=$(gnokey query auth/accounts/< 錢包地址> --remote test2.gno.land:36657 | grep sequence | sed's/[^0-9]//g')

echo $sequence

創建註冊帳戶的 Tx

你自定義的用戶名必須是 6 位以上的小寫字母,可包含下劃線#

gnokey maketx call <錢包地址> --pkgpath "gno.land/r/users" --func "Register" --gas-fee 1000000ugnot --gas-wanted 2000000 --send "200000000ugnot" --args ""--args"< 你自定義的用戶名 >"--args"" > unsigned.tx

# 簽名事務 Tx

gnokey sign <錢包地址> --txpath unsigned.tx --chainid test2 --number $account_number --sequence $sequence > signed.tx

# 廣播事務 Tx

gnokey broadcast signed.tx --remote test2.gno.land:36657
事務廣播成功後,就可以在 https://test2.gno.land/r/users 看到你的用戶名。

如果廣播失敗,有可能是餘額不夠 204 GNOT,請確保你已經領取了 5 次水龍頭。

rm unsigned.tx
rm signed.tx
也有可能是 sequence 錯誤,請查詢並使用最新的 account_number 和 sequence,刪除 unsigned.tx 和 signed.tx,重新完成以上 2 個步驟(獲取 account_number 和 sequence,創建註冊用戶的 tx,簽名該 tx,廣播該 tx),重試一次。

創建你自己的留言版

注意留言版名只能是 英文名,不能包含中文(希望後續版本能夠修復這個 Bug)#

gnokey maketx call <錢包地址> --pkgpath "gno.land/r/boards" --func "CreateBoard" --gas-fee 1000000ugnot --gas-wanted 10000000 --send 1000000ugnot --broadcast true --chainid test2 --args "< 留言版名 >" --remote test2.gno.land:36657

獲取剛剛發布的留言版 id

BoardID=$(gnokey query "vm/qeval" --data "gno.land/r/boardsGetBoardIDFromName ("< 留言版名>")" --remote test2.gno.land:36657 |grep data | sed's/[^0-9]//g')
echo $BoardID

創建發帖內容

cd gnoland
sudo cat <<'EOF' >> /gnoland.md
This is a demo of Gno smart contract programming.
EOF

# 發帖

gnokey maketx call <錢包地址> --pkgpath "gno.land/r/boards" --func CreateThread --args $BoardID --args "< 帖名 >" --args#file "<xxx.md>" --gas-fee 1000000ugnot --gas-wanted 2000000 --chainid test2 --broadcast true --remote test2.gno.land:36657

領取任務

test2.gno.land
test2.gno.land
在你喜歡的媒體上(Twitter、Medium 或者 Mirror)用一篇文章(250 字以上)描述,為什麼你對 gno.land 和 gnoland 感興趣,可以參考

Gnoland 高並發智能合約平台介紹
介紹
medium.com
在此回覆,將你的文章的 URL 鏈接作為評論,以獲得獎勵。

Gno 介紹文章發表成功後,使用如下命令提交

gnokey maketx call <錢包地址> --pkgpath "gno.land/r/boards" --func "CreateReply" --gas-fee 1000000ugnot --gas-wanted 2000000 --send ""--broadcast true --chainid test2 --args"1"--args"4"--args"4"--args"< 文章 URL>" --remote test2.gno.land:36657

文章鏈廣播成功後,你就能在 https://test2.gno.land/r/boards:gnoland/4 看到你的帖子。

到此 Gnoland 第一個任務已經圓滿完成,期待更多任務。

如果您沒覺得此文章有用,敬請關注我的推特 https://twitter.com/tujiao

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。