Origin Protocol 开发环境搭建全攻略:Docker Compose 一键启动区块链、IPFS 与全套后端服务
【免费下载链接】originMonorepo for our developer tools and decentralized marketplace application项目地址: https://gitcode.com/gh_mirrors/origin1/origin
想要体验去中心化电商应用的魅力,却卡在了Origin Protocol 开发环境搭建这道门槛上?别担心,这篇教程为你准备了最省心的方案:利用Docker Compose 一键启动本地区块链、IPFS 节点以及十余个后端服务,无需手动配置数据库和依赖,十几分钟就能跑起一个功能完整的去中心化市场 DApp。无论你是刚接触区块链开发的新手,还是想快速验证想法的老手,这套开发环境搭建指南都能让你少走弯路。
一、认识 Origin Protocol:不只是去中心化市场
Origin Protocol 是一个开源的去中心化市场应用(Decentralized Marketplace),目标是让买卖双方绕过平台抽成,直接在链上完成交易。它的代码库是一个典型的 monorepo(单体仓库),由 Lerna 统一管理,包含三大类模块:
- DApp 包:
@origin/marketplace(市场前端)、@origin/admin(管理后台)、@origin/graphql-simple-demo(教学示例) - 核心包:
@origin/contracts(智能合约)、@origin/graphql(GraphQL 接口)、@origin/services(本地区块链与 IPFS 工具) - 基础设施包:
@origin/bridge(身份认证服务)、@origin/discovery(搜索服务)、@origin/messaging(消息服务)等十余个后端服务
下面的架构图清晰展示了各组件之间的协作关系:DApp 通过 GraphQL 与各类服务器通信,事件监听器负责同步链上数据,而 IPFS 与以太坊区块链则构成底层去中心化基础设施。
二、两种开发方式,新手该选哪一种?
官方在DEVELOPMENT.md中提供了两条开发路径,选择取决于你的需求:
| 对比项 | 轻量模式(Option 1) | 完整模式(Option 2) |
|---|---|---|
| 启动内容 | DApp + 本地 IPFS + 本地区块链 | 全部后端服务 + 区块链 + IPFS |
| 命令复杂度 | 仅 3 条命令 | Docker Compose 编排 |
| 适合人群 | 新手快速上手 | 需要搜索、消息、通知等完整功能 |
| 资源占用 | 较低 | 较高(约 10 个容器) |
建议:第一次接触 Origin,先用轻量模式跑通页面;当你需要体验完整的去中心化电商功能(搜索、站内信、通知)时,再切换到Docker Compose 完整开发环境。本文重点讲解后者。
三、环境准备:四件套检查清单
开始搭建前,请确认你的机器满足以下要求(参考DEVELOPMENT.md的 System Requirements):
- Docker18 或更高版本:
docker --version验证 - Docker Compose:Mac/Windows 桌面版 Docker 已内置,Linux 需单独安装
- Git:
git --version验证 - Unix 系统(macOS 或 Linux):脚本依赖 bash,Windows 建议使用 WSL
小提示:首次构建需要拉取镜像和安装依赖,请预留10GB+ 磁盘空间和充足的耐心。
四、Docker Compose 一键启动:五步搭建完整开发环境
第一步:克隆 Origin Protocol 仓库
从 GitCode 镜像获取最新代码:
git clone https://gitcode.com/gh_mirrors/origin1/origin cd origin默认在master分支,包含最新开发代码;如需模拟线上环境,可切换stable分支:git checkout --track origin/stable。
第二步:清理旧的 Docker 环境(可选但推荐)
如果之前跑过 Origin 的 Docker 环境,建议先清理,避免端口和卷冲突:
docker system prune --volumes --all第三步:执行 docker-compose up,一键启动全部服务
在仓库根目录直接运行:
docker-compose up首次运行会基于Dockerfile构建镜像并执行yarn install,耗时较长属正常现象。启动过程中,services容器会自动完成智能合约部署(DEPLOY_CONTRACTS=true)、数据库迁移和 IPFS 数据填充,全程无需手动干预。
第四步:启动市场 DApp 前端
另开一个终端,在仓库根目录运行:
yarn start这会启动一个带热更新的 webpack 开发服务器,浏览器自动打开http://localhost:3000,你会看到预置的示例房源和商品列表。
第五步:配置 MetaMask 钱包
市场页面需要 Web3 钱包才能交易:
- 安装 MetaMask 浏览器插件
- 网络选择Localhost 8545(连接本地 Ganache 区块链)
- 点击"导入账户",使用 Ganache 默认助记词:
candy maple cake sugar pudding cream honey rich smooth crumble sweet treat - 导入后账户应显示约 90 ETH 测试余额,足够尽情测试
五、一键启动的服务全景:端口速查表
docker-compose.yml中定义了 13 个服务,以下是核心服务的端口对照,方便你随时访问:
| 服务 | 功能 | 访问地址 |
|---|---|---|
| services | Ganache 区块链 + IPFS | http://localhost:8545 |
| services | IPFS 守护进程 | http://localhost:5002 / 8080 |
| ipfs-proxy | IPFS 安全代理 | http://localhost:9999 |
| discovery | 搜索/发现服务 | http://localhost:4000 |
| graphql | GraphQL 服务器 | http://localhost:4007 |
| bridge | 身份认证服务 | http://localhost:5000 |
| growth | 增长引擎 | http://localhost:4008 |
| messaging | 消息服务 | http://localhost:9012 |
| notifications | 通知服务 | http://localhost:3456 |
| auth-server | 认证服务器 | http://localhost:5200 |
| postgres / redis / elasticsearch | 数据存储层 | 5432 / 6379 / 9200 |
启动完成后,浏览器打开市场首页,即可看到类似下图的全功能去中心化市场界面,包含房源浏览、购买按钮、IPFS 数据查看等特性。
六、开发中的常用命令速查
掌握这几个 Docker Compose 命令,日常开发事半功倍:
- 停止全部服务(保留容器数据):
docker-compose stop - 查看所有容器日志:
docker-compose logs -f - 进入容器调试:
docker exec -ti services /bin/bash - 重启单个容器:
docker-compose restart discovery - 重新构建镜像(依赖变更后):
docker-compose build --no-cache services
⚠️ 重要提醒:停止环境时不要使用
docker-compose down!它会删除容器卷,导致容器内安装的依赖全部丢失。请一律使用docker-compose stop。
七、高频问题排查手册
开发过程中遇到报错很正常,这里汇总了最常出现的四个问题:
1. Elasticsearch 启动失败:虚拟内存不足
Linux 下需要调高 mmap 计数:
sysctl -w vm.max_map_count=2621442. 容器退出码 137:内存溢出
说明 Docker 可用内存不足,请在 Docker Desktop 设置中为引擎分配更多内存。
3. IPFS 报 "Lock file is already being hold"
清理本地 IPFS 缓存数据即可:删除~/.jsipfs/目录后重启。
4. 页面长时间白屏转圈
前端与服务通信超时,刷新浏览器通常即可解决;若仍无效,检查 8545、8080、3000 等关键端口是否被其他程序占用(尤其是先启动了@origin/marketplace或@origin/admin的情况)。
八、进阶:按需调整服务配置
所有服务的环境变量都集中在docker-compose.yml中,例如切换网络、配置通知服务等均可直接修改后重启对应容器。若想更深入地理解各模块,建议从这几个文件入手:
- 服务编排与端口定义:docker-compose.yml
- 镜像构建与依赖安装:Dockerfile
- 官方开发文档:DEVELOPMENT.md
- 服务入口与启动参数:packages/services/start.js
- 市场 DApp 前端代码:dapps/marketplace/
结语:从零到一,跑起你的去中心化市场
借助Docker Compose 一键启动方案,Origin Protocol 开发环境搭建已经从过去的手工配置地狱,变成了十几分钟即可完成的轻松体验。你不需要关心 Postgres 建库、Redis 配置、合约部署这些琐事——一条命令,区块链、IPFS 和全套后端服务自动就绪。
现在,打开 http://localhost:3000,浏览示例房源,用 MetaMask 发起第一笔测试交易,去感受去中心化电商的魅力吧!如果在搭建过程中遇到问题,欢迎查阅仓库中的DEVELOPMENT.md与README.md文档,那里有更完整的排障指引。
【免费下载链接】originMonorepo for our developer tools and decentralized marketplace application项目地址: https://gitcode.com/gh_mirrors/origin1/origin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考