未发币项目:GNØ Land,cosmos上的下一个大毛

该教程在Silent大佬的教程上进行补充,更适合新手使用。Silent的原教程如下:

Gnoland 新手入门教程

Gnoland是Cosmos前创始人Jae Kwon创立的可互操作的高并发智能合约平台。开发者可以用Gno语言在链上构建智能合约。(Gno是一种类似于go的语言)

mirror.xyz

Gnoland test2任务中文教程

Gnoland是Cosmos前创始人Jae Kwon创立的可互操作的高并发智能合约平台。开发者可以用Gno语言在链上构建智能合约。(Gno是一种类似于go的语言)

mirror.xyz

Gnoland官方测试网使用教程如下:

5

This is a demo of Gno smart contract programming. This document was constructed by Gno onto a smart contract hosted on the data Realm name “gno.land/r/boards” (github).

test2.gno.land

**测试网使用前提:**需要安装ubuntu,在ubuntu的环境下测试。官网安装教程如下:

安装 WSL

使用 wsl --install 命令安装适用于 Linux 的 Windows 子系统。 在 Windows 计算机上使用首选 Linux 发行版(Ubuntu、Debian、SUSE、Kali、Fedora、Pengwin、Alpine 等都可用)运行的 Bash 终端。

docs.microsoft.com

(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

首先开启go modulego env -w GO111MODULE=on // Windows export GO111MODULE=on // macOS 或 Linux配置goproxy:阿里配置:go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/ // Windows export GOPROXY=https://mirrors.aliyun.com/goproxy/ // macOS 或 Linux

blog.csdn.net

**提醒:**如果以上的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字以上的短文

在您最喜欢的媒体(无论是 TwitterMedium 还是 Mirror)上写一篇短文**(250字以上)**,说明您对 Gnoland 感兴趣的原因。如果您需要示例,请访问Gnoland的第一篇博文

If You Gno, You Know

Our initial thoughts on Gnoland

medium.com

第二步:复制自己在媒体上所发帖子的链接,运行以下代码

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和自己的用户名

到此,官方的第一个任务我们就做完了。