本教程基于Ubuntu。
测试节点的搭建,solana已经准备好了docker镜像,因此先要保证你本机上已经可以运行docker。
基于上文:
solana1.4.x提供了一个localnet.sh的脚步可以搭建一个本地的solana节点,然后在上面发布合约。 但是从solana1.5.0以后,官方又为我们增加了一个”solana-test-validator”命令,方便我们启动自己的测试节点。
使用npm
1、在自己的机子上安装好npm
sudo apt install nodejs -y sudo apt install npm -y
查看当前安装的版本
root@ubuntu:~# sudo node -v v8.11.4 root@ubuntu:~# sudo npm -v 5.8.0
这里主要借助npm对”@solana/web3.js”的包管理,将相关脚本通过node_modules拉下来,并提供启动 入口。使用npm主要是可以方便集成,不需要关心太多细节。
2、创建一个目录”localnet_test”,然后执行:
npm init npm install @solana/web3.js
注意:执行 npm install @solana/web3.js可能会出错,升级npm到最新版本即可解决。
3、初始化好目录并安装好”@solana/web3.js”。然后添加启动脚本,编辑pacakge.json,增加scripts字段:
"localnet:up": "set -x; solana-localnet down; set -e; solana-localnet up",
"localnet:down": "solana-localnet down",
"localnet:logs": "solana-localnet logs -f"
如图所示:
solana-test-validator安装
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
4、这里我们以这样的命令来启动本地测试节点:
nohup solana-test-validator --log > solana.log 2>&1 &
5、这里首先通过”nohup” 加上最后的”&”,让节点程序在后台运行。然后通过” — log > solana.log”选项, 让节点打印出日志。并通过2>&1
将错误日志也重定向到文件中。
之后我们通过 :
tail -f solana.log
6、就可以查看滚动的节点日志了。如果再加上”grep”和我们日志的中的关键字,就可以过滤出我们自己合约中的关键 日志了。
注:可能会出现异常,根据下面的图片处理
通过Solana的源码编译启动
首先我们去到solana的github 下载最新的版本,然后在本地解压,并设置bin目录到Path路径。或者直接在bin目录下执行
solana-test-validator -h
如图:
这些选项中,通过 — log可以打印节点运行日志;通过-C指定使用的config文件, 默认为”~/.config/solana/cli/config.yml”;通过-l指定节点区块信息存储目录,不指定时为当前目录; — rpc-port指定了RPC的端口,默认为8899以及websocket的8900。
启动本地测试节点:
nohup solana-test-validator --log > solana.log 2>&1 &
校验
执行下面命令
curl -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1, "method":"getTransactionCount"}' http://localhost:8899
如果出现下图所示提示,则表示本地的测试网已经搭好了。
配置本地测试网地址
如果需要设置我们的solana命令配置到本地测试网地址,执行:
solana config set --url http://localhost:8899
提示这个则设置成功:
可以通过下面命令查看Solana的docker镜像版本:
solana cluster-version
如下图所示: