当前位置: 首页 > wzjs >正文

创意 国外 网站网站 工作室

创意 国外 网站,网站 工作室,响应式网页设计与实现论文,注册公司什么网站前言 本地 anchor 开发环境能解决那些问题: 已经有在线 编辑 anchor 智能合约了,为什么还需要 本地开发环境? 这个也是我刚开始想知道的。后来我试用了一下 发现是真的香! 下面我们来对比下: ✪:我们使用本…

  前言 本地 anchor 开发环境能解决那些问题:

已经有在线 编辑 anchor 智能合约了,为什么还需要 本地开发环境? 这个也是我刚开始想知道的。后来我试用了一下 发现是真的香! 下面我们来对比下:

✪:我们使用本地开发环境的时候 可以借助 IDE 功能,能在编写状态 看到报错信息。 不用非要 build 才能看到报错信息

✪:可以跳转到 函数的定义,查看函数的方法定义,比如我们想看下
initialize_poll(ctx: Context<InitializePoll>

Content 是个什么东西。在线的是看不了的。本地使用 IDE 很容易就能看到,这对我们代码的编写 学习 和 错误的查找 很是便利。

 ✪ 打包速度很快,测试 调用不用 sol
  • 本地基本上 5秒钟
  • 在线 13 秒

✿ 其实我最看重的是 IDE 提供的实时错误提示功能,这对提升代码开发效率大有帮助。接下来我将详细介绍本地开发环境的搭建步骤。

 1. solana 本地环境的搭建,主要区分 mac 和  linux;官网文档已经介绍很详细了:

https://solana.com/zh/docs/intro/installationhttp://solana 本地环境的搭建因为我这边是 windos 环境,所以走的是  WSL 路线;

我的 windos 打不开应用商店,所以直接 下载的  Ubuntu2204-221101.AppxBundle ,离线安装

走到这里我假定已经安装上 ubuntu 并且所有 依赖了也都安装了:可以查看下面的 安装依赖版本:

  • Rust
  • Solana
  • Anchor
  • Node
  • Yarn

2. 开发前期的配置

2.1  开发网络 钱包 配置

solana config getConfig File: /home/solana/.config/solana/cli/config.yml
RPC URL: https://api.devnet.solana.com
WebSocket URL: wss://api.devnet.solana.com/ (computed)
Keypair Path: /home/solana/.config/solana/id.json
Commitment: confirmed#配置 开发网络
solana config set --url mainnet-beta
solana config set --url devnet
solana config set --url localhost
solana config set --url testnet#配置 开发网络 简写
solana config set -um    # For mainnet-beta
solana config set -ud    # For devnet
solana config set -ul    # For localhost
solana config set -ut    # For testnet

2.2 钱包管理

#查看当前钱包的 地址
solana address#创建钱包
solana-keygen new#空投 本地一般 2个, 但是 在线编辑器 一般 5个
solana airdrop 2#钱包查询余额
solana balance

3. solana anchor 项目创建  

3.1 anchor 项目的创建

环境安装好了之后, 我们就能创建 anchor 项目了, cd 到我们喜欢的项目 路径

solana@DESKTOP-B2Q44I9:~$ ls
anchor-counter  enu-project-name  learning  myproject  project# 创建一个 anchor 项目  然后使用ide  打开
anchor init <project-name>

IDE: 我这里使用的是:RustRover 2025.1.3    

 

Anchor.toml  这个文件 是 anchor 运行环境的配置文件。 这里修改 部署的网络环境 programid

 

3.2 编写 和 运行 

我们先复制一段代码这是一个 计数器功能的脚本

use anchor_lang::prelude::*;// This is your program's public key and it will update
// automatically when you build the project.
declare_id!("HKvWCsAhzhXRfj8zNhNrofjV3dDjSmm42EguMKK3X5n");#[program]
pub mod anchor_counter {use super::*;pub fn initialize(ctx: Context<Initialize>, init_data: u64) -> Result<()> {msg!("initialize from: {:?}", ctx.program_id);//直接给pad 账户复制ctx.accounts.counter.count = init_data;Ok(())}pub fn reset(ctx: Context<UpdateCount>, init_data: u64) -> Result<()> {let counter = &mut ctx.accounts.counter;msg!("increment from: {:?}", ctx.program_id);msg!("previous counter: {:?}", counter.count);counter.count = init_data;//counter.count -= 2;msg!("after counter: {:?}", counter.count);Ok(())}pub fn increment(ctx: Context<UpdateCount>) -> Result<()> {let counter = &mut ctx.accounts.counter;msg!("increment from: {:?}", ctx.program_id);msg!("previous counter: {:?}", counter.count);counter.count = counter.count.checked_add(1).unwrap();//counter.count -= 2;msg!("after counter: {:?}", counter.count);Ok(())}pub fn subtract(ctx: Context<UpdateCount>, count: u64) -> Result<()> {let counter = &mut ctx.accounts.counter;msg!("increment from: {:?}", ctx.program_id);msg!("previous counter: {:?}", counter.count);//counter.count = counter.count.checked_add(1).unwrap();counter.count -= count;msg!("after counter: {:?}", counter.count);Ok(())}
}#[derive(Accounts)]
pub struct Initialize<'info> {#[account(mut)]// user 调用者 签名者, 是否 mut有权限修改信息pub user: Signer<'info>,// counter 数据账户  pda 派生#[account(init,seeds = [b"counter_seed"],bump,payer = user,space = 8 + 8)]pub counter: Account<'info, Counter>,// 程序账户pub system_program: Program<'info, System>,
}#[derive(Accounts)]
pub struct UpdateCount<'info> {// user 调用者 签名者pub user: Signer<'info>,#[account(mut)]pub counter: Account<'info, Counter>,
}#[account]
pub struct Counter {count: u64,
}

我们直接  anchor build, 我这边会报错 "

error[E0599]: no method named `source_file` found for struct `proc_macro2::Span` in the current scope" 

 

 

看样子是生成 IDL json 文件出出错 了。 有两种方式解决

  1. anchor build --no-idl;  以这种方式打包 但是这种方式不能 有idl.json 文件不可取
  2. anchor-lang = "0.31.1" 升级依赖版本,这样就可以了 

 

3.3 启动 Solana 本地 环境:

如果你要 运行 或者 写测试代码 运行 anchor 只能合约,那么你需要开启本地 solana 环境:

 solana-test-validator

这样就能开启一个 本地环境的 solana 运行节点

 

 

然后我们打开 Solana 区块链浏览器。连接到本地环境

 

3.4 部署 anchor 智能合约到本地 环境

 anchor deploy

 

复制上面的 hashSolana浏览器 搜索:就能查看到我们部署的智能合约

这里我们基本上 就可以在本地  开发 和 跑起 Solana anchor 只能合约了,可以进一步提升 开发 Solana智能合约 的效率!

 

 


文章转载自:

http://noleRurm.Lqdqm.cn
http://fKac8GaQ.Lqdqm.cn
http://WGaKPJDy.Lqdqm.cn
http://82DNVSOh.Lqdqm.cn
http://PqIk3GHV.Lqdqm.cn
http://MnwYKksE.Lqdqm.cn
http://8xCnZhX2.Lqdqm.cn
http://Y8tMK7Up.Lqdqm.cn
http://n5p9GTko.Lqdqm.cn
http://J2gOWvlA.Lqdqm.cn
http://iEFo5u8E.Lqdqm.cn
http://kb0Rq5o2.Lqdqm.cn
http://LD3Z40VZ.Lqdqm.cn
http://KruYgb2n.Lqdqm.cn
http://PDFR8vDu.Lqdqm.cn
http://A5i5faWu.Lqdqm.cn
http://ArCvPXmZ.Lqdqm.cn
http://JVPRpfny.Lqdqm.cn
http://QrPXTRsm.Lqdqm.cn
http://s5hK039e.Lqdqm.cn
http://wUzWXKv2.Lqdqm.cn
http://og91yDIW.Lqdqm.cn
http://g8twbULi.Lqdqm.cn
http://gnQv4ves.Lqdqm.cn
http://Si9PY49U.Lqdqm.cn
http://eWjkgieu.Lqdqm.cn
http://At6WdAhl.Lqdqm.cn
http://BYIeGDRt.Lqdqm.cn
http://sMIw7Eve.Lqdqm.cn
http://xR7RaNY7.Lqdqm.cn
http://www.dtcms.com/wzjs/722350.html

相关文章:

  • 人设生成器网站制作公司网页需求表
  • 域名解析网站打不开微网站 免费模板
  • lol做视频那个网站好网络营销权威概念是
  • 开发一个网站要多少钱网页动画
  • 同声传译公司网站建设PHP网站新闻发布怎么做
  • 承德网站建设开发wordpress主动推送
  • 华为云怎么做网站如何制作漂亮的微信公众号
  • 国际新闻最新消息今天233整站优化seo公司哪家好
  • 温州网站建设模板下载免费短信营销
  • 做网站时用插件需要注明吗莱芜seo
  • 怎样做已有网站的编辑维护什么网站专门做境外当地游
  • 竹子建站下载西安西郊网站建设
  • 网站建设方案文档济南响应式网站建设
  • qq浏览器收录网站提交入口千阳做网站
  • 做微网站需要域名吗如何加强企业网站建设论文
  • 建设包银行官方网站百度关键词热度
  • 天津网站建设公司排名网站建设结构图
  • 廊坊哪里有做网站建设的软件开发需要哪些软件
  • 做网站所需知识网站域名续费多少钱
  • 什么系统做购物网站好购物中心设计
  • 网站源码com大全个人网站html模板下载
  • 合肥建网站公司地址近的中医小程序定制
  • 旅游门户网站建设方案包装公司logo设计
  • 成都交投成高建设公司网站做部队网站技术
  • 做网站是自己公司做好还是外包好html教程网
  • 成都建设网站的公司有哪些哪个推客平台最好
  • 展示网站如何做二级网站建设管理制度
  • 网站建设加推广优化中英文企业网站制作
  • seo网站建设接单百度搜索引擎优化指南最新版
  • 昌邑建设网站wordpress google 慢