我为一个点对点图形处理器网格构建了一个三层单体仓库——这就是为什么应用程序接口是最孤独的部分
市面上有许多“去中心化计算”项目。它们大多数拥有精美的落地页、代币白皮书,以及一个后端,而该后端最终往往被发现只是运行在单个虚拟机上的三个定时任务。我想构建这样一个项目:其枯燥的基础设施也是开源的,今天即可部署,并且足够小巧,让一个人能够真正从头到尾理解它。这就是 萨尔瓦 —— 一个约两百行代码的快速应用程序接口枢纽、一个下一代网页技术十四版本的仪表盘,以及一个仅依赖十二个库的 Python 代理程序,你只需在笔记本电脑上运行 pip install 即可使用。
以下是每一层实际执行的功能,以及那些使得将这三层保留在一个仓库中而不至于导致单体仓库腐化的设计决策。
系统的形态
┌──────────────┐ 轮询 ┌────────────────────────────┐
│ 萨尔瓦节点 │ ◄──────────────► │ 萨尔瓦应用程序接口 (快速应用程序接口+霓虹数据库) │
│ (Python) │ 心跳信号 │ /jobs/next, /jobs/complete│
│ │ 任务认领 │ /credits/*, /nodes/* │
└──────────────┘ └────────────────────────────┘
│ ▲
本地运行任务 │ 提交 / 监控
▼ │
┌──────────────┐ ┌────────────────────────────┐
│ 机器学习输出 │ │ 萨尔瓦网页端 (下一代网页技术十四版本) │
│ / 日志 / png │ │ 维尔塞尔 · 积分用户界面 · │
└──────────────┘ │ 节点地图 · 排行榜 │
└────────────────────────────┘
这种拆分是有意为之:应用程序接口对机器学习一无所知,节点可以运行任何能表示为脚本的任务,而网页端是一个纯粹的读写客户端。最后一条规则使我避免陷入困境——下一代网页技术应用程序中完全没有任何业务逻辑。
后端:快速应用程序接口 + SQL炼金术 + 霓虹数据库
枢纽仅由一个文件(main.py,包含注释约三百四十行)和五个 SQL炼金术模型组成。我使用霓虹数据库来托管 PostgreSQL,因为我不希望 docker-compose.yml 成为部署的先决条件;DATABASE_URL 是应用程序接口唯一关心的环境变量。
定价逻辑位于模块顶部的三个字典中:
GPU_MULT = {
"rtx-4090": 3.0, "rtx-5090": 3.0, "rtx-3090": 2.5,
"rtx-4070": 2.5, "rtx-3060": 2.0, "rtx-2070": 2.0,
"gtx-1080ti":
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。