# 未发币项目：GNØ Land，cosmos上的下一个大毛

By [Charger](https://paragraph.com/@charger) · 2022-08-28

---

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

[Gnoland 新手入门教程](https://mirror.xyz/exploring.eth/t7do6nCssGgDksiUFxoFi9oJSiD1IoYxK2fht8hhlEA)

[Gnoland是Cosmos前创始人Jae Kwon创立的可互操作的高并发智能合约平台。开发者可以用Gno语言在链上构建智能合约。（Gno是一种类似于go的语言）](https://mirror.xyz/exploring.eth/t7do6nCssGgDksiUFxoFi9oJSiD1IoYxK2fht8hhlEA)

[mirror.xyz](https://mirror.xyz/exploring.eth/t7do6nCssGgDksiUFxoFi9oJSiD1IoYxK2fht8hhlEA)

[Gnoland test2任务中文教程](https://mirror.xyz/exploring.eth/tN0KxudavKOLQz0Mw2b_4FE1ZmrQAKAp6C-e5nUeMd8)

[Gnoland是Cosmos前创始人Jae Kwon创立的可互操作的高并发智能合约平台。开发者可以用Gno语言在链上构建智能合约。（Gno是一种类似于go的语言）](https://mirror.xyz/exploring.eth/tN0KxudavKOLQz0Mw2b_4FE1ZmrQAKAp6C-e5nUeMd8)

[mirror.xyz](https://mirror.xyz/exploring.eth/tN0KxudavKOLQz0Mw2b_4FE1ZmrQAKAp6C-e5nUeMd8)

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

[5](https://test2.gno.land/r/boards:testboard/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).](https://test2.gno.land/r/boards:testboard/5)

[test2.gno.land](https://test2.gno.land/r/boards:testboard/5)

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

[安装 WSL](https://docs.microsoft.com/zh-cn/windows/wsl/install)

[使用 wsl --install 命令安装适用于 Linux 的 Windows 子系统。 在 Windows 计算机上使用首选 Linux 发行版（Ubuntu、Debian、SUSE、Kali、Fedora、Pengwin、Alpine 等都可用）运行的 Bash 终端。](https://docs.microsoft.com/zh-cn/windows/wsl/install)

[docs.microsoft.com](https://docs.microsoft.com/zh-cn/windows/wsl/install)

**（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](https://blog.csdn.net/c2682736/article/details/121040704)

[首先开启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](https://blog.csdn.net/c2682736/article/details/121040704)

[blog.csdn.net](https://blog.csdn.net/c2682736/article/details/121040704)

\*\*提醒：\*\*如果以上的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) 或用这个 [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](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](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](https://test2.gno.land/r/boards:silent/1)查询

**（9）官方的第一个任务：**

至此，我们已经完了测试。接下来我们需要完成官方的**第一个任务**。**要求如下**：

第一步：再媒体上发布**250字以上**的短文

在您最喜欢的媒体（无论是 **Twitter**、**Medium** 还是 **Mirror**）上写一篇短文\*\*（250字以上）\*\*，说明您对 Gnoland 感兴趣的原因。如果您需要示例，请访问Gnoland的[第一篇博文](https://medium.com/@onbloc/if-you-gno-you-know-63610bf99cc4)。

[If You Gno, You Know](https://medium.com/@onbloc/if-you-gno-you-know-63610bf99cc4)

[Our initial thoughts on Gnoland](https://medium.com/@onbloc/if-you-gno-you-know-63610bf99cc4)

[medium.com](https://medium.com/@onbloc/if-you-gno-you-know-63610bf99cc4)

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

    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](https://test2.gno.land/r/boards:testboard/4) 查看是否有自己的帖子，内容包括URL和自己的用户名

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

---

*Originally published on [Charger](https://paragraph.com/@charger/gn-land-cosmos)*
