200-重拾Solana和Anchor

好久没做solana了

现在重新搞一下

但是这次用anchor了

之前anchor生态还搞得不是很好

有非常多坑

现在我估计能好一点了吧

本来我这些博客都是随便乱写的

没人来看

但是最近看我博客的人越来越多了

搞得我压力很大

所以我要严正声明一下

我不是什么技术大神

就是一个很菜的程序员

大家最好不要看我的博客

因为肯定有很多很多的错误

打开Anchor文档

Installation - Docs

我们来装一下rust和solana

之前我也写过装rust和solana的步骤

但是如果去翻看以前的东西

就学不到新的东西

就不能走新的路

所以重新尝试是比较好的

再比如

之前一直是在wsl里面搞

如果现在可以在windows里直接搞

那么就是很牛的一件事了

当然我对此不报很高的期待

估计搞个半天还是得在wsl里面搞

打开Rust官网

Install Rust - Rust Programming Language

和以前一样

还是推荐我装windows版本

我有点忘记之前是rust失败还是solana失败了

应该是solana失败

rust应该是比较顺利的

所以这次依然是试一下windows

算了还是尝试windows环境了

因为要装c++环境

这个特别麻烦

还是老老实实wsl吧

先装一下wsl吧

整个流程下来还是挺麻烦的

先来安装一下

wsl --install

之前是要在系统设置里面打开和虚拟机相关的东西的

现在不知道还需不需要

希望windows也稍微智能一点

装完了

重启试试看

无法访问

那我们采用比较科学的方式进行上网试试看

出来了

我们装一下ubuntu吧

但是我们选择18还是20还是22呢

要不折中一下,选择20吧

wsl --install Ubuntu-20.04

网速还是挺快的,马上就装好了

又要重启一下

真麻烦

重启完

发现还是这样

看来还是得开启一下系统设置

无语了

搜索一下

启用或关闭windows功能

这里有一个

适用于linux的windows子系统

把这个打开

然后重启一下

遇到一个很尴尬的事情

刚刚电脑坏了

又重新买了一台电脑

无语

直接总结下装wsl的过程吧

1.wsl --install

2.启用windows功能的虚拟机平台和linux

3.wsl --install

其实我觉得正确的顺序应该是

先打开windows功能的虚拟机平台和linux

然后再wsl --install

但是我第一次就是这么尝试的

结果报错了

下次再试试吧

然后我们创建一下unix账户密码

然后我们创建成功了

可以使用wsl了

现在我们来装rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

试试看

一直卡在这

看来要用更加科学的上网办法了

但是这边不能分享这些东西

简单来说

搞完科学办法

成功了

我们就按回车

选择默认就可以了

成功了

然后我们来搞个rust的helloworld来试试看

但是我们要先装一下cargo 

sudo apt update

sudo apt install cargo

然后

cargo init rust_test

然后进入文件夹

cargo run

成功啦

然后我们来装solana

sh -c "$(curl -sSfL https://release.solana.com/v1.18.4/install)"

sh -c "$(curl -sSfL https://release.solana.com/v1.18.4/install)"

sh -c "$(curl -sSfL https://release.solana.com/v1.18.4/install)"

安装成功了

但是这里他提示让我加个环境变量

那我们就加一下好了

打开/home/howger/.profile配置文件

然后把这行东西复制到里面

然后重启一下terminal

打开.profile发现

里面已经有这个环境变量了

那就不用管了

重启一下terminal

然后我们现在来用一下solana的东西

比如

solana --version

好了

现在我们来用一下solana/web3.js

npm install --save @solana/web3.js

先来试试airdrop

import {clusterApiUrl, Connection, Keypair, LAMPORTS_PER_SOL,} from '@solana/web3.js';

(async () => {
    const secret = Uint8Array.from([]);
    const payer = Keypair.fromSecretKey(secret);

    const connection = new Connection(clusterApiUrl('devnet'), 'confirmed');

    const airdropSignature = await connection.requestAirdrop(payer.publicKey, 1 * LAMPORTS_PER_SOL);
    console.log(airdropSignature);
})();

然后我们来创建一个token


    const mintAuthority = Keypair.generate();
    const freezeAuthority = Keypair.generate();

    const mint = await createMint(
        connection,
        payer,
        mintAuthority.publicKey,
        freezeAuthority.publicKey,
        9
    );

    console.log(mint.toString());

然后我们来

查询一下token信息

    const mintAuthority = Keypair.generate();
    const freezeAuthority = Keypair.generate();

    const mint = await createMint(
        connection,
        payer,
        mintAuthority.publicKey,
        freezeAuthority.publicKey,
        9
    );
    console.log(mint.toString());

    let mintInfo = await getMint(
        connection,
        mint
    );
    console.log(mintInfo.supply);

    const tokenAccount = await getOrCreateAssociatedTokenAccount(
        connection,
        payer,
        mint,
        payer.publicKey
    );
    console.log(tokenAccount.address.toString());

    let tokenAccountInfo = await getAccount(
        connection,
        tokenAccount.address
    );
    console.log(tokenAccountInfo.amount);

    await mintTo(
        connection,
        payer,
        mint,
        tokenAccount.address,
        mintAuthority,
        100 * LAMPORTS_PER_SOL
    );

    mintInfo = await getMint(
        connection,
        mint
    );
    console.log(mintInfo.supply);

    tokenAccountInfo = await getAccount(
        connection,
        tokenAccount.address
    );
    console.log(tokenAccountInfo.amount);

然后这些基础的东西就搞得差不多了

不错不错

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值