# 未发币项目:GNØ Land,cosmos上的下一个大毛 **Published by:** [Charger](https://paragraph.com/@charger/) **Published on:** 2022-08-28 **URL:** https://paragraph.com/@charger/gn-land-cosmos ## Content 该教程在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字以上的短文 在您最喜欢的媒体(无论是 Twitter、Medium 还是 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和自己的用户名 到此,官方的第一个任务我们就做完了。 ## Publication Information - [Charger](https://paragraph.com/@charger/): Publication homepage - [All Posts](https://paragraph.com/@charger/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@charger): Subscribe to updates