原子可组合性
程序在同一笔交易中通过 Cross Program Invocation(CPI)相互调用。只要任何一步失败,整笔交易都会回滚,因此多协议策略不会只执行一半。
DeFi 开发者
每个 Solana 程序读写的都是同一个状态,因此兑换、还款和预言机更新可以在一笔原子交易中完成。从一个可运行的 Anchor 应用起步,集成实时流动性,并遵循生产级最佳实践发布。
npx -y create-solana-dapp@latest -t solana-foundation/templates/kit/nextjs-anchor为什么选择 Solana
程序在同一笔交易中通过 Cross Program Invocation(CPI)相互调用。只要任何一步失败,整笔交易都会回滚,因此多协议策略不会只执行一半。
每笔交易都会预先声明它读取和写入的账户。运行时会并行执行不涉及相同可写账户的交易,因此一个繁忙的市场不会拖慢其他无关的市场。
写入热点账户的交易会竞争该账户在区块中的份额。请根据你写入的账户来定价优先费用,而不是参考全网平均值。
主网 slot 时间正在分阶段缩短,Alpenglow 将取代现有的投票和最终性协议。在调整报价有效期、超时和清算窗口之前,请先关注这两方面的进展。
开发者技术栈
新协议的默认路径:用 Anchor 编写程序,用 LiteSVM 和 Surfpool 测试,用 Codama 生成客户端,用 Kit 构建应用。
01编写程序
对于大多数程序,推荐使用 Anchor 框架,它内置了账户验证、IDL 生成和 CPI 辅助工具。对于每个计算单元都至关重要的热点路径,可以选用零依赖库 Pinocchio。
02测试
使用 LiteSVM 或 Mollusk 运行快速的进程内测试。然后在 Surfpool 上运行集成测试,这是一个可按需加载主网账户的本地网络,让你能够针对真实的资金池和预言机进行测试。
03生成客户端
根据程序的 IDL 生成带类型的 TypeScript 和 Rust 客户端,使指令构建器和账户解码器随每次部署保持同步。
04构建应用
@solana/kit 是标准的 JavaScript SDK。其钱包插件通过 Wallet Standard 发现已安装的钱包,无需为每个钱包单独安装适配器包。
基础构件
这些协议为其程序和 API 发布了开发者文档。在通过某个协议路由用户资金之前,请先阅读其文档和审计报告。
通过聚合器 API 在 Solana 流动性中路由兑换,或请求原始指令,在你自己的交易中组合兑换操作。
创建资金池、提供集中流动性,并直接针对链上 AMM 报价。
通过借贷市场 SDK 存入抵押品、借款并读取储备状态。
开仓、管理和清算杠杆头寸,或设计你自己的全链上永续合约市场。
将签名的价格更新拉取到你的交易中,并在使用价格之前检查其置信度和时效性。
接受流动性质押代币作为抵押品,或将 SOL 路由到可赚取 validator 奖励的质押池。
使用在 Solana 上原生发行的法币支持稳定币进行结算。
通过 Circle 的 CCTP 原生转移 USDC,或在不同链之间桥接其他资产和消息。
发行内置特定行为的资产,你的协议必须能够处理这些行为:转账钩子、计息余额、缩放 UI 数量和保密转账。
仅为示例。列出某个协议并不代表 Solana 基金会对其背书。
交易投递
DeFi 流量在市场波动期间达到峰值,而此时恰恰是用户最需要交易成功上链的时候。请在主网上线前将这些措施构建到你的客户端中。
安全
DeFi 程序自首次部署起就可能持有用户资金。你需要控制谁可以修改它,证明已部署的内容,并监控它的行为。
将程序升级权限和管理员权限交由 Squads 多签持有,并为变更设置时间锁。
让用户和集成方能够确认已部署的程序与其公开源代码一致。
在主网上线前进行独立审计,并设立漏洞赏金计划。Solana 基金会为生态团队提供 STRIDE 安全评估资助和免费工具。
Microscope 可将你程序的指令和 Squads 提案解码,并生成自托管的仪表板和告警。
提出技术问题、评审设计方案,并寻找可以共同构建的团队。