Gnoland弥补cosmos,可扩展的可互操作的智能合约平台

Gnoland是cosmos创始人jae的又一力作,补充了cosmos部署智能合约的生态,目前项目还在开发状态,明确会有空投。现在人不多,进dc活跃起来

前置条件

开始今天的教程之前,需要有一定的前置条件:

====================================

本次教程不涉及服务提供,可以使用自己的电脑,如果你的电脑是win10,可以参考

https://zhuanlan.zhihu.com/p/62658094 在win10下安装Ubuntu系统。

如果不是win10,只能想办法获取一台Ubuntu的电脑或服务器了

====================================

一台ubuntu服务器(最好是国外的服务器,问题会少很多),最低配置如下

  • CPUs: 2

  • RAM: 2GB

  • Storage: 50GB

  • OS:Ubuntu 22.04

1、使用ssh登录服务器(mac、linux系统下操作

ssh root@服务器ip 

回车确认,如果出现提示”Are you sure you want to continue connecting (yes/no/[fingerprint])?“

输入 yes 回车确认

窗口等待输入服务器密码,回车确认。进入服务器

运行成功结果

2、确认当前用户是root,(如果已经是root用户请略过)

开启root用户,为root用户创建密码,输入两次密码

切换到root用户,在输入刚才创建的密码

3、安转GO环境

更新服务器现有环境

apt update && apt upgrade -y 

安装必须的软件

apt install build-essential git curl gcc make jq -y

安装GO1.8

国内可以使用替代地址 https://studygolang.com/dl/golang/go1.18.4.linux-amd64.tar.gz

wget -c https://go.dev/dl/go1.18.3.linux-amd64.tar.gz && rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz && rm -rf go1.18.3.linux-amd64.tar.gz

设置本地环境变量(方便操作)

echo 'export GOROOT=/usr/local/go' >> $HOME/.bash_profile
echo 'export GOPATH=$HOME/go' >> $HOME/.bash_profile
echo 'export GO111MODULE=on' >> $HOME/.bash_profile
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && . $HOME/.bash_profile

测试GO安装是否成功

go version

安装GNO

1、安装gno

git clone https://github.com/gnolang/gno.git
cd ./gno
make

2、生成种子(助记词),助记词一定要记住

./build/gnokey generate

3、生成账号 rainight可以改成你自己的信息

需要创建密码(输入两次)、输入刚才生成的助记词,会生成自己的账户地址

./build/gnokey add rainight --recover

4、领水(需要领5次)

访问地址 https://test2.gno.land/faucet,领完一次重新回到这个页面,更换ip,在领取

5、查看本地账号

./build/gnokey list

6、查看账号余额 g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx改成你的账户地址

余额要250000000

./build/gnokey query auth/accounts/g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx --remote test2.gno.land:36657

注册用户

1、查询账户信息

./build/gnokey query auth/accounts/g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx --remote "test2.gno.land:36657"

2、生成未签名的交易信息unsigned.tx

g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx改成你的账户地址,rainight 改成你的昵称,@0xrainight改成你的信息

./build/gnokey maketx call g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx --pkgpath "gno.land/r/users" --func "Register" --gas-fee 1000000ugnot --gas-wanted 2000000 --send "200000000ugnot" --args "" --args "rainight" --args "@0xrainight" > unsigned.tx

3、签名交易信息ACCOUNTNUMBER SEQUENCENUMBER 需要改成账户信息中的值(红框)

./build/gnokey sign g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx --txpath unsigned.tx --chainid "test2" --number ACCOUNTNUMBER --sequence SEQUENCENUMBER > signed.tx

4、广播上链

./build/gnokey broadcast signed.tx --remote "test2.gno.land:36657"

创建一个带有智能合约调用的板块

g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx 改成你的账户地址,rainight改成你的板块名称(英文)

会让输入密码。成功后返回boardId(板块id),后面会用

./build/gnokey maketx call g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx --pkgpath "gno.land/r/boards" --func "CreateBoard" --gas-fee 1000000ugnot --gas-wanted 10000000 --send 1000000ugnot --broadcast true --chainid test2 --args "rainight" --remote test2.gno.land:36657

在自己的板块里发布帖子

1、创建一个文件

cat <<'EOF' >> ./rainight.md
Hello,GNO!
EOF

2、发布帖子

g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx 改成你的账户地址,rainight.md改成你的文件名称,134改成你的板块id

gnokey maketx call g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx --pkgpath "gno.land/r/boards" --func CreateThread --args 134 --args "rainight1" --args#file "rainight.md" --gas-fee 1000000ugnot --gas-wanted 2000000 --chainid test2   --broadcast true  --remote test2.gno.land:36657

做任务

任务地址 https://test2.gno.land/r/boards:testboard/4

1、在推特上发布一篇对gno的推文或者其他平台,将链接回复到 boardId 1 的板块

g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx 改成你的账户地址,

https://mirror.xyz/jackmusk.eth/T0Q088lYSmp5UBBjOD7CGcHs_scEcS2IfVG8KdiK0iU改成你的链接

./build/gnokey maketx call g18an6agz9q8xn8psxla6qmcv9y4t9u0jpmaxpmx --pkgpath "gno.land/r/boards" --func "CreateReply" --gas-fee 1000000ugnot --gas-wanted 2000000 --send "2000000ugnot" --broadcast true --chainid "test2" --args "1" --args "4" --args "4" --args "https://mirror.xyz/jackmusk.eth/T0Q088lYSmp5UBBjOD7CGcHs_scEcS2IfVG8KdiK0iU" --remote "test2.gno.land:36657"

你会在这里 https://test2.gno.land/r/boards:testboard/4 查询到你发布的内容

好了任务完成了。