该教程在Silent大佬的教程上进行补充,更适合新手使用。Silent的原教程如下:
Gnoland是Cosmos前创始人Jae Kwon创立的可互操作的高并发智能合约平台。开发者可以用Gno语言在链上构建智能合约。(Gno是一种类似于go的语言)
Gnoland是Cosmos前创始人Jae Kwon创立的可互操作的高并发智能合约平台。开发者可以用Gno语言在链上构建智能合约。(Gno是一种类似于go的语言)
Gnoland官方测试网使用教程如下:
**测试网使用前提:**需要安装ubuntu,在ubuntu的环境下测试。官网安装教程如下:
(1)基础环境安装:
以下代码都是直接在ubuntu上运行
第一步:安装GO
cd
sudo rm -rf /usr/local/go;
curl https://dl.google.com/go/go1.18.2.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf - ;
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile
第二步:安装完成后运行以下命令查看版本
go version
第三步:安装环境一
sudo apt-get update -y && sudo apt-get upgrade -y;
第四步:安装环境二
sudo apt-get install curl build-essential jq git -y;
(2)下载项目源码并编译:
cd
git clone https://github.com/gnolang/gno/
cd gno
make
sudo cp build/gnokey /usr/local/bin/
**注意事项:**如果你用国内的网络,请一定要配置goproxy,否则接下来的步骤运行会不成功。
goproxy配置教程如下:
golang 的 goproxy 配置_墨一鉴的博客-CSDN博客_goproxy
**提醒:**如果以上的goproxy配置教程不知道怎么使用,可自行百度搜索:如何开启go module的方法。
以上准备工作已经完成,接下来就是创建钱包。
(3)创建钱包教程:
第一步:创建助记词(24位)
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey。包括下面步骤的代码也需要替换,每一步我也会做提示
**注意事项:**记住钱包地址,助记词为24个单词,请一定要备份起来,第二步也需要通过助记词恢复钱包
第二步:恢复钱包
gnokey add <钱包名> --recover
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
**注意事项一:**代码中的<钱包名> 替换为你自己设置的钱包名,不需要保留<>
**注意事项二:**请记住你设置的密码,如果后面忘记密码,也可以用助记词重新恢复钱包
第三步:查看钱包是否设置成功
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
完成以上步骤,钱包就已经创建成功了,接下来让我们去Gnoland水龙头去领测试币。
(4)领取测试币:
第一步:打开 https://test2.gno.land/faucet 或用这个 https://test2.gno.land/faucet
第二步:输入自己的钱包地址,示例:g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5
第三步:验证人机,点击GO按钮领取。成功会显示 faucet success
**重点注意事项:**水龙头一次只能领取50个测试币,请确保一个地址要领取成功5次。领取要是显示错误,请更换你的IP。一个IP只能领取一次(如果一直更换IP一直不成功,要嘛等待一会再试,要嘛就是继续切换IP)
(5)查询钱包详情
gnokey query auth/accounts/<你的钱包地址> --remote test2.gno.land:36657
**注意事项一:**代码中的<你的钱包地址> 替换为你自己的钱包地址,不需要保留<>
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
**注意事项二:**记住你钱包详情中的account_number 数值和 sequence 数值,下面会用
(6)创建用户:
第一步:获取account_number和sequence
cd
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
**注意事项一:**代码中的<钱包地址> 替换为你自己的钱包地址,不需要保留<>
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
第二步:创建用户的TX
gnokey maketx call <钱包地址> --pkgpath "gno.land/r/users" --func "Register" --gas-fee 1000000ugnot --gas-wanted 2000000 --send "200000000ugnot" --args "" --args "<你自定义的用户名>" --args "" > unsigned.tx
**注意事项一:**代码中的<钱包地址> 替换为你自己的钱包地址,不需要保留<>
注意事项二:<你自定义的用户名>需要是6位以上的小写字母,可以包含下划线,不需要保留<>,但需要保留双引号 “ ”
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
第三步:签名
gnokey sign <钱包地址> --txpath unsigned.tx --chainid test2 --number $account_number --sequence $sequence > signed.tx
**注意事项一:**代码中的<钱包地址> 替换为你自己的钱包地址,不需要保留<>
注意事项二:$account_number 和 $sequence 替换成你自己钱包的数值
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
第四步:广播
gnokey broadcast signed.tx --remote test2.gno.land:36657
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
第五步:查询是否广播成功
打开 https://test2.gno.land/r/users ,查看是否有自己的用户名。
如果失败
情况一:有可能是余额不够 204 GNOT,请确保你已经成功领取了5次水龙头。
情况二:可能是sequence错误,请再一次查询钱包详情,并使用最新的account_number和sequence,删除unsigned.tx和signed.tx,重新完成以上四个步骤(获取account_number和sequence,创建注册用户的tx,签名该tx,广播该tx),再试一次。
**注意事项:**删除unsigned.tx和signed.tx方法:运行 rm unsigned.tx 和`rm signed.tx`
(7)Create board(选做)
第一步:运行代码
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
**注意事项一:**代码中的<钱包地址> 替换为你自己的钱包地址,不需要保留<>
**注意事项二:**代码中的<版名> 替换为你自己想设置的名字,不需要保留<>,但需要保留双引号 “ ”
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
第二步:查询是否成功
打开https://test2.gno.land/r/boards,查看是否有自己刚刚创建的版名。
(8)版内发帖(选做)
第一步:获取BoardID
BoardID=$(gnokey query "vm/qeval" --data "gno.land/r/boards
GetBoardIDFromName(\"<版名>\")" --remote test2.gno.land:36657 |grep data | sed 's/[^0-9]//g')
echo $BoardID
**注意事项一:**代码中的<版名> 替换为你刚设置的名字,不需要保留<>,但需要保留双引号 “”
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
第二步:新建一个md文档作为发帖内容,例如我新建一个helloworld.md
cd
sudo cat <<'EOF' >> $HOME/helloworld.md
Hello,world!
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
**注意事项一:**代码中的<钱包地址> 替换为你自己的钱包地址,不需要保留<>
**注意事项二:**代码中的<贴名> 替换为你自己想设置的名字,不需要保留<>,但需要保留双引号 “”
**注意事项三:**代码中的xxx.md为md文件名,如 helloworld.md。不需要保留<>,但需要保留双引号 “”
第四步:查看发帖是否成功
打开 https://test2.gno.land/r/boards:silent/1查询
(9)官方的第一个任务:
至此,我们已经完了测试。接下来我们需要完成官方的第一个任务。要求如下:
第一步:再媒体上发布250字以上的短文
在您最喜欢的媒体(无论是 Twitter、Medium 还是 Mirror)上写一篇短文**(250字以上)**,说明您对 Gnoland 感兴趣的原因。如果您需要示例,请访问Gnoland的第一篇博文。
Our initial thoughts on Gnoland
第二步:复制自己在媒体上所发帖子的链接,运行以下代码
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
**注意事项一:**代码中的<钱包地址> 替换为你自己的钱包地址,不需要保留<>
**注意事项二:**代码中的<文章URL> 替换为你自己在媒体上所发帖子的URL,不需要保留<>,但需要保留双引号 “”
**重点注意事项:**如果代码运行不成功,请将 gnokey 替换成 :$HOME/gno/build/gnokey
第三步:查询
打开 https://test2.gno.land/r/boards:testboard/4 查看是否有自己的帖子,内容包括URL和自己的用户名
到此,官方的第一个任务我们就做完了。
