项目地址:GitHub - solana-labs/example-helloworld: Hello world on Solana
操作环境:Windows 10/11
node 版本:v16.17.0
npm 版本:8.15.0
solana命令行工具版本:solana-cli 1.11.10
一. 安装WSL2及各种工具
1. 安装wsl2
管理员身份打开powershell ,输入四条命令
wsl --install
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
看看自己安装的版本
wsl -l -v
2.配置 WSL2 访问 Windows 上的代理
在 Ubuntu 子系统中,通过
cat /etc/resolv.conf
查看 DNS 服务器 IP。# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:# [network]# generateResolvConf = falsenameserver 172.19.80.1
可以看到 DNS 服务器是
172.19.80.1
,通过环境变量ALL_PROXY
配置代理:export ALL_PROXY="http://172.19.80.1:10811"
10811 是 Windows 上运行的代理客户端的局域网接入的端口,记得要在 Windows 代理客户端上配置允许本地局域网请求。
3.WSl安装node和npm
# 安装nodejs
sudo apt install nodejs
# 安装npm
apt-get install npm
到这里node
和npm
已经安装上了,不过版本比较低,接下来是升级版本的方式。
# 安装n模块
sudo npm install -g n
# 升级nodejs到最新的stable(稳定版)
sudo n stable
# 升级npm到最新的latest(最新版)
npm install npm@latest -g
如果提示找不到n
命令,就去安装的n
模块目录的bin目录下去执行。
4. wsl 安装rust环境,网址rustup.rs - The Rust toolchain installer,也可用直接复制下面代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
5. wsl安装solana 命令列工具https://docs.solana.com/cli/install-solana-cli-tools。
直接用复制linux 命令安装:
sh -c "$(curl -sSfL https://release.solana.com/v1.11.10/install)"
二. 编译项目
1. 直接用wsl 编译项目,会报错
/usr/bin/env: ‘bash\r’: No such file or directory
原因是linux 系统处理了windows的文件格式。
2. 使用 windows powershell 打开wsl 编译项目,即可解决问题
注意: mnt 文件夹即为windos此电脑主文件。
进入到windows 系统项目地址,按项目描述编译文件即可
- 将命令列配置的 url 设置成 localhost 集群
$ solana config set --url localhost
- 创建命令列使用的密钥对
如果这是你第一次使用 solana 命令列,你先得生成一个新的密钥对
$ solana-keygen new
启动本地 Solana 集群
默认情况下,此范例连接到本地 Solana 集群。
启动本地 Solana 集群:
$ solana-test-validator
注意: 如果使用 Windows 系统,则需要先设置 WSL,才能用 solana-test-validator
工具
查看交易日志:
$ solana logs
安装 npm 套件
$ npm install
构建链上程序
链上程序有 Rust 版本和 C 版本,最新的版本是运行范例时使用的版本。
$ npm run build:program-rust
$ npm run build:program-c
部署链上程序
$ solana program deploy dist/program/helloworld.so
启动客户端
$ npm run start