genlayerlabs/genlayer-project-boilerplate
摘要
这个 GitHub 仓库提供了一个用于 GenLayer 的模板项目,包含一个示例智能合约,集成了 LLM,并附带测试、代码检查和一个 Next.js 前端。
查看缓存全文
缓存时间: 2026/08/18 15:42
genlayerlabs/genlayer-project-boilerplate
来源:https://github.com/genlayerlabs/genlayer-project-boilerplate
GenLayer 项目示例
许可证:MIT (https://opensource.org/license/mit/) Discord (https://discord.gg/8Jm4v89VAu) Telegram (https://t.me/genlayer) Twitter (https://x.com/GenLayer) GitHub 星标历史 (https://star-history.com/#yeagerai/genlayer-js)
关于
本项目包含一个 GenLayer 用例实现的样板代码,具体是一个足球博彩游戏。
包含内容
- 一个集成了网络访问和LLM功能的智能合约示例(足球博彩)
- 直接模式测试 —— 快速的、内存中的单元测试,通过模拟Web/LLM交互(每个测试约需毫秒级时间)
- 集成测试 —— 针对 GenLayer Studio 的完整端到端测试
- 合约代码检查 —— 在部署前进行静态分析,以捕获常见的合约问题
- CI 流水线 —— 用于代码检查和直接测试的 GitHub Actions 工作流
- 一个生产就绪的 Next.js 15 前端,使用 TypeScript、TanStack Query 和 Radix UI 构建
- 配置文件模板和部署脚本
要求
- Python >= 3.12
- 全局安装的 GenLayer CLI (https://github.com/genlayerlabs/genlayer-cli):
npm install -g genlayer - GenLayer Studio(用于集成测试和部署):从文档安装 (https://docs.genlayer.com/developers/intelligent-contracts/tooling-setup#using-the-genlayer-studio) 或使用托管的 GenLayer Studio (https://studio.genlayer.com/)
项目结构
contracts/ # Python 智能合约
tests/
direct/ # 快速内存测试(无需 Studio)
test_create_bet.py # 投注创建逻辑
test_resolve_bet.py # 使用 Web/LLM 模拟的投注结算
test_views.py # 只读视图方法
integration/ # 针对 GenLayer Studio 的完整测试
test_football_bets.py
fixtures.py # 预期状态的测试夹具
frontend/ # Next.js 15 应用(TypeScript, TanStack Query, Radix UI)
deploy/ # TypeScript 部署脚本
gltest.config.yaml # 测试运行器的网络配置
pyproject.toml # Python/pytest 配置
.github/workflows/ # CI 流水线
快速开始
1. 设置 Python 环境
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
2. 检查你的合约
运行 GenVM 代码检查器,在部署前发现问题:
genvm-lint check contracts/football_bets.py
代码检查器可捕获:
- 禁止的导入和非确定性调用
- 无效的存储类型(必须使用
TreeMap,DynArray,u256等) - 缺少的装饰器和返回类型注解
- 在等效原则块之外的非确定性操作
- 以及超过 20 条其他规则 (https://github.com/genlayerlabs/genvm-linter)
3. 运行直接模式测试
直接模式测试在内存中运行合约,无需 GenLayer Studio。它们使用模拟的Web请求和LLM调用,为你提供快速反馈(每个测试约毫秒级):
pytest tests/direct/ -v
这些测试中使用的直接模式特性:
direct_deploy("contracts/file.py")—— 在内存中部署合约direct_vm.sender = address—— 设置交易发送者direct_vm.mock_web(pattern, response)—— 模拟 HTTP/渲染调用direct_vm.mock_llm(pattern, response)—— 模拟 LLM 响应direct_vm.expect_revert("message")—— 断言预期的失败direct_vm.clear_mocks()—— 在调用之间重置模拟器
4. 部署合约
- 选择你的网络:
genlayer network - 部署:
genlayer deploy(运行/deploy/deployScript.ts中的脚本)
5. 运行集成测试
集成测试将合约部署到 GenLayer Studio,并使用真实共识进行测试:
gltest tests/integration/ -v -s
这需要 GenLayer Studio 处于运行状态(本地或托管版本)。
6. 设置前端
- 将
frontend/.env.example复制到frontend/.env - 添加你已部署的合约地址作为
NEXT_PUBLIC_CONTRACT_ADDRESS - 运行:
cd frontend
npm install
npm run dev
应用将可在 http://localhost:3000/ 访问。
足球博彩合约工作原理
- 创建投注:用户提供比赛日期、参赛队伍和预测的获胜方来进行投注。
- 结算投注:比赛结束后,合约从 BBC Sport 获取结果,使用 LLM 提取比分,并通过等效原则进行验证。
- 积分:预测正确可获得积分。用户可以查询自己的积分或排行榜。
测试策略
| 测试类型 | 命令 | 速度 | 是否需要 Studio |
|---|---|---|---|
| 代码检查 | genvm-lint check contracts/*.py | 约 250 毫秒 | 否 |
| 直接模式 | pytest tests/direct/ -v | 约毫秒/测试 | 否 |
| 集成测试 | gltest tests/integration/ -v -s | 约分钟/测试 | 是 |
推荐工作流:
- 每次更改合约后进行代码检查
- 开发过程中频繁运行直接模式测试
- 在部署前运行集成测试以验证共识行为
对于AI编码助手(Claude Code, Cursor等),代码检查器和直接模式测试提供了迭代开发所需的快速反馈循环,无需运行Studio实例。
社区
- Discord (https://discord.gg/8Jm4v89VAu):讨论、支持与公告
- Telegram (https://t.me/genlayer):非正式聊天与快速更新
文档
详细信息,请参阅我们的文档 (https://docs.genlayer.com/)。
许可证
本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
相似文章
@XAMTO_AI: 以前写AI合约:搭环境、写测试、配前端、搞部署,业务逻辑一行没写,时间没了。 现在:GenLayer Project Boilerplate,clone,跑。 足球竞猜完整示例,网络访问+LLM集成直接给你写好 Direct模式测试毫秒级…
GenLayer实验室发布了项目模板,简化智能合约开发,提供足球竞猜完整示例,集成网络访问和LLM,支持快速测试和CI流水线。
@DanKornas: GenAI项目在提示词、模型设置、实验和应用逻辑没有明确归宿时,会变得难以驾驭。
一个用于组织生成式AI应用的项目结构脚手架,将配置、数据、示例、笔记本、测试和核心源代码模块分离。它采用Apache 2.0开源许可。
@DanKornas: 每个层都有自己的笔记本,从零开始构建LLM就更容易了。EveryonesLLM是一个基于Google Colab的教程…
EveryonesLLM是一个开源的基于Google Colab的教程仓库,用于从零开始构建nanoGPT风格的LLM,包含逐步章节,涵盖数据加载、嵌入、注意力机制、训练和指令调优。
Genkit 中间件(10分钟阅读)
Google 宣布 Genkit 中间件,这是一种可组合的钩子,可拦截 AI 生成调用,实现重试、回退、工具审批和技能,用于构建可靠的智能代理应用。
@DanKornas: 别再通过随机图表学习大语言模型系统设计了。genai-llm-ml-case-studies 是一个精心策划的 GitHub 合集,包含 500 多个…
一个精心策划的 GitHub 合集,包含来自 130 多家公司的 500 多个真实的 GenAI、LLM 和 ML 系统设计案例研究,按行业、用例、公司和架构模式组织。基于 MIT 许可证开源。