初始化应用程序
逐步设置基于应用链的应用程序,参考 Adrift 的模型
入门指南
本指南将帮助您设置一个新的基于应用链的项目,遵循 Adrift 的结构。您将创建一个包含 Next.js 前端、Ponder 索引器、Bun 驱动的后端和 Foundry 合约的单一代码库(monorepo)。
快速开始
1. 安装 Bun 和 Foundry
Bun 是一个快速、现代的 JavaScript/TypeScript 包管理器和运行时,在 Adrift 中用于安装依赖项、运行脚本和执行后端任务。Foundry 是一个强大的工具包,用于开发、测试和部署 Solidity 智能合约,因其速度和开发者体验而被选用。
请按照您的平台的官方说明安装这两个工具,然后继续。
2. 创建项目结构
Adrift 使用单一代码库(monorepo)结构,将前端、索引器、后端和合约组织在一个地方。这使得开发、依赖管理和部署对于复杂的多组件应用程序来说更加容易。
mkdir my-appchain-project && cd my-appchain-project
mkdir -p apps/site apps/indexer apps/cron contracts3. 搭建前端(Next.js + Bun)
Next.js 是一个流行的 React 框架,用于构建快速、现代的 Web 应用程序。在 Adrift 中,它为用户界面和客户端逻辑提供支持。Bun 在这里用于依赖管理和运行应用程序。
bun create next ./apps/site
cd apps/site
bun install4. 搭建索引器(Ponder)
Ponder 是一个以 TypeScript 为核心、对开发者友好的工具,用于索引区块链事件并将链上数据同步到本地数据库。Adrift 使用 Ponder 来跟踪游戏和玩家状态,从而轻松构建实时的链上驱动用户界面。
cd ../../apps/indexer
bun init
bun add ponder
# Add your ponder.config.ts and ponder.schema.ts (see Adrift for examples)5. 搭建合约(Foundry)
Foundry 用于 Adrift 中所有智能合约的开发。它为 Solidity 合约提供快速的编译、测试和部署,并在以太坊生态系统中被广泛采用。
cd ../../contracts
forge init
# Add your contracts and scripts (see Adrift for factory pattern)项目结构
这种结构使您的 appchain 项目的每个部分都保持模块化和可维护性,遵循 Adrift 的示例。
my-appchain-project/
apps/
site/ # Next.js frontend
indexer/ # Ponder indexer
cron/ # Backend/cron jobs
contracts/ # Solidity contracts (Foundry)
bun.lock # Bun lockfile安装依赖
cd apps/site && bun install
cd ../indexer && bun install
cd ../cron && bun install
cd ../../contracts && forge install运行应用程序
-
前端 (Next.js + Bun):
cd apps/site bun run dev -
索引器 (Ponder):
cd apps/indexer bun run dev -
合约:
cd contracts forge build forge test # Deploy: forge script script/Deploy.s.sol:DeployFactories --rpc-url <your_rpc_url>
下一步
- 在
apps/site/utils/chain.ts中配置您的链连接 - 在前端使用 Wagmi 和 Para 设置钱包集成
- 在索引器中定义您的 Ponder 模式和事件处理程序
- 在
contracts/中实现您的合约逻辑和部署脚本 - 构建您的 UI 和钩子,用于游戏逻辑、玩家状态和随机性
有关更多详细信息,请参阅 Adrift 仓库 以及关于合约、钱包设置、排序、索引器和游戏逻辑的深入指南。