Solana DeFi 交易的“大脑”:Jupiter (JUP) 如何通过聚合器重塑用户体验?
在 Solana 的 DeFi 世界中,有一个应用扮演着至关重要的角色,它不是一个交易所,但处理着 Solana 上大部分的交易量。它就是 Jupiter (JUP)。https://jup.ag/
如果你想在 Web3 领域建立深度认知,理解 JUP 的核心业务逻辑和技术优势是必不可少的一步。
什么是 Jupiter (JUP)? —— Solana 上的“打车软件”
JUP 是 Solana 生态中最大的“去中心化交易所聚合器”(DEX Aggregator)。
你可以把 JUP 理解为 DeFi 领域的 “打车软件”(比如滴滴或 Uber)。它的核心任务是:帮用户以最快速度、最低成本,找到最佳的交易路径。
传统 DEX 的困境: Solana 上有许多独立的 DEX,如 Orca、Raydium、Meteora。它们就像一家家独立的流动性提供商。用户想要兑换代币时,必须一家家去比较价格,费时费力。
JUP 的核心价值: JUP 不自己提供流动性,而是作为“最优路径规划师”。当你输入 ...
Solana
未读解决 Rust 版本兼容性问题 error: rustc 1.79.0-dev is not supported by the following packages:
问题背景
在开发 Solana Anchor 项目时,经常会遇到工具链版本不兼容的问题。本文档记录了一次典型的工具链重装过程,旨在帮助开发者快速解决类似的版本冲突问题。
问题现象
1. 初始编译错误
Error: Function _ZN131_$LT$solana_program_ed25519_dalek_bump..instruction..InstructionError$u20$as$u20$solana_frozen_abi..abi_example..AbiEnumVisitor$GT$13visit_for_abi17h93da246eef4af815E Stack offset of 6592 exceeded max offset of 4096 by 2496 bytes, please minimize large stack variables. Estimated function fram ...
加密基础巩固1
历史发展总结
一、底层协议:从比特币到以太坊的范式跃迁
比特币(2009年):
中本聪在白皮书中提出“点对点电子现金系统”,通过工作量证明(PoW)解决拜占庭容错问题,区块奖励每4年减半(2009年50 BTC/块→2024年3.125 BTC/块)。
早期仅支持转账功能,2013年通过“多重签名”实现简单智能合约(如联名账户),但脚本语言非图灵完备。
以太坊(2015年):
Vitalik Buterin受《魔兽世界》道具中心化事件启发,提出“世界计算机”概念,通过**以太坊虚拟机(EVM)**支持图灵完备的智能合约。
2016年因“The DAO事件”硬分叉为ETH(以太坊)和ETC(以太坊经典),催生了“代码即法律”的争议与反思。
二、智能合约与标准:ERC-20/ERC-721开启生态爆发
智能合约进化:
2017年,ERC-20标准(同质化代币)由Fabian Vogelsteller提出,允许代币跨平台兼容(如USDT、UNI),直接推动ICO热潮(EOS通过ICO融资40亿美元)。
2018年,ERC-721标准(非同质化代币)由 ...
TypeScript测试文件语法与关键词
实战中发现测试文件ts的语法有很多不懂,集中总结一份供学习和参考备用。。。
1. 基础测试结构
describe('测试组名称', () => {
it('测试用例名称', () => {
// 测试代码
})
})
2. 核心关键词解释
describe - 测试组/测试套件
describe('User Management', () => {
// 这是一个测试组,包含多个相关的测试用例
// 所有用户相关的测试都可以放在这里
})
作用:
组织相关的测试用例
提供测试的上下文描述
可以嵌套使用
it - 单个测试用例
it('should validate user state structure', () => {
// 这是一个具体的测试用例
// 测试用户状态结构是否正确
})
作用:
定义具体的测试场景
描述测试的目的和期望结果
每个it都是独立的测试
expect - 断言(验 ...
DeFi相关概念
什么是 DeFi?
定义:去中心化金融(Decentralized Finance,简称 DeFi)是基于区块链技术,提供无需中介的金融服务,如借贷、交易、保险等。
特点:
○ 去中心化:无需传统金融机构
○ 开放性:任何人都可以参与
○ 透明性:所有交易记录公开可查
什么是 Swap?
定义:Swap 是一种去中心化交易功能,允许用户在无需中介的情况下直接交换两种加密资产。
常见场景:
○ 兑换小额代币(如将 USDC 换成 ETH)。
○ 调整投资组合。
○ 提供交易流动性。
其他概念
1. AMM(Automated Market Maker,自动做市商)
权威定义:
一种基于算法的去中心化交易机制,通过数学公式(如恒定乘积公式 x*y=k)自动匹配买卖订单、定价资产,无需传统订单簿和中心化机构。
通俗解释:
把“交易”变成“从资金池里取币”。比如你想拿ETH换USDT,不用等有人卖USDT给你,直接从一个存着ETH和USDT的池子里兑换,价格由公式自动算(池里ETH少了,价格就涨;USDT少了,价格就跌)。
2. 流动性池(Liquidity P ...
Solana
未读Solana[part21]_ETF的赎回
代码:https://github.com/SoniaChan33/iswap/commit/c648cb122b2cc9a80a8085d78bdc9033ab83c954
赎回 ETF
以 ETF No.1 为例,ETF No.1 包含 jitoSOL 和 mSOL,权重为 20%、80%
当前价格: 1 JitoSOL = 1.06 SOL 1 mSOL = 1.35 SOL
用户当前持有 100 份 ETF No.1,计划卖出 ETF No.1 100 份
获得:(100 \times 20% \times 1.06 + 100 \times 80% \times 1.35 = 129.2 \ \text{SOL})
方案:
【用户】【Burn】100 份 ETF No.1(注:原文 “ETE” 为笔误,应为 “ETF”)
【合约】【Transfer】JitoSOL 20 份和 mSOL 80 份到【用户】
【用户】通过 ray 或者 okx 等平台,将 80 mSOL 和 20 JitoSOL 兑换为 129.2 SOL
➜ ...
Solana
未读Solana[part20]_ETF的购买
购买 ETF
基本思路
以 ETF No.1 为例,ETF No.1 包含 jitoSOL 和 mSOL,权重分别为 20%、80%。 「 etf里面不是token账户吗 拿来的sol 」
当前价格
1 JitoSOL = 1.16 SOL
1 mSOL = 1.25 SOL
用户需求与成本计算
用户当前持有 SOL,计划购买 ETF No.1 100 份,需花费:100×20%×1.16+100×80%×1.25=123.2 SOL
方案一:前端 swap
【用户】 通过 ray 或 okx 等平台,将 123.2 SOL 换出 80 mSOL 和 20 JitoSOL。
【用户】 执行【Transfer】操作,将 JitoSOL 20 份和 mSOL 80 份转入【合约】。
【合约】 执行【Mint】操作,向【用户】发行 100 份 ETF No.1。
方案二:合约 swap
【用户】 执行【Transfer】操作,将 123.2 SOL 转入【合约】。
【合约】 通过 ray 或 okx 等平台,将 123.2 SOL 换出 ...
Solana
未读Solana实战Bug记录
Cross-program invocation with unauthorized signer or writable account
问题
解决方案
PDA 派生路径不一致
统一 seeds 和 signer_seeds
Mint Authority 未授权
在 CPI 中使用 signer_seeds 显式授权
Metadata 账户约束错误
显式指定 Token Metadata Program 地址
Mint Authority 设置错误
确保 mint::authority 指向 PDA 并通过签名授权
let signer_seeds: &[&[&[u8]]] = &[&[
EtfToken::SEEDS_PREFIX.as_bytes(),
m.as_ref(),
&[ctx.bumps.etf_token_info],
]];
// 需要和创建账户的时候设置的约束一致
-----
#[account( ...
ETF的介绍和创建指令实现
代码提交地址:https://github.com/SoniaChan33/iswap/commit/25b017929923a3d1e46d853f3a12da05f0b77172
一、项目概述
iSwap项目中的ETF创建功能用于在Solana区块链上生成自定义ETF(交易所交易基金),核心目标是实现ETF相关账户的创建与管理,包括ETF信息存储账户、资产关联账户(ATA)、ETF代币铸造账户(Mint)及元数据(Metadata)账户,确保所有操作的原子性与链上数据一致性。
二、核心链上组件(Rust程序)
链上逻辑通过Solana程序(智能合约)实现,负责ETF相关账户的初始化、数据存储及跨程序调用(CPI)。
1. 账户结构定义(etf_token.rs)
定义了链上存储ETF数据的核心账户结构,用于持久化ETF的关键信息。
EtfToken 账户
存储ETF的整体信息,包括铸造账户地址、创建者、创建时间、描述及资产列表:
#[account]
#[derive(InitSpace)]
pub struct EtfToken {
...
Solana DAPP-前端单元测试与合约接入
一、初始化 Solana DApp 项目
1. 环境准备
先确保安装基础工具:
# 安装 Node.js(推荐 v16+)
# 安装 Solana CLI(用于本地节点和钱包管理)
sh -c "$(curl -sSfL https://release.solana.com/v1.18.4/install)"
# 检查版本
solana --version
node --version
2. 初始化项目
使用官方模板创建项目:
npx create-solana-dapp@latest my-solana-dapp
cd my-solana-dapp
3. 项目结构解析(核心文件)
my-solana-dapp/
├── app/ # 前端代码(React)
├── programs/ # 后端程序(Rust)
│ └── my_solana_dapp/ # 核心逻辑
├── tests/ # ...





![Solana[part22]_DeFi项目拆解](https://img.soniachen.com/IMG_5493.jpg?_r_=dedbcc64-945a-3fc3-4723-7fe92040e77d)
![Solana[part21]_ETF的赎回](https://img.soniachen.com/IMG_5493.jpg?_r_=6c81c5b5-ef68-5531-c9f9-400a688fb9ab)
![Solana[part20]_ETF的购买](https://img.soniachen.com/IMG_5493.jpg?_r_=26df4393-560f-728d-3505-02dbbaaf7ffe)

![Solana[part19]_ETF的介绍和创建指令实现](https://img.soniachen.com/blog/posts/2025/08/image-20250825111246391.png)
![Solana[part18]_Solana DAPP-前端单元测试与合约接入](https://img.soniachen.com/blog/posts/2025/08/solanapart18.jpg)

