p2pweb-cli v0.0.1
p2pweb-cli
安装
安装请运行
npm install -g p2pweb
安装后,请运行 p2pweb -h 查看帮助。
模板可以定制一些任务
- 渲染变量名生成html
- 抽取指定文字的字体
- push到git
- 定制统一的数据格式,方便用户自己生成
第一步,新建项目或导入项目
如何新建项目?
到github创建一个新git项目,并clone到本地。
进入目录,运行
p2pweb https://github.com/p2pweb/p2pweb-blog.git
就以 p2pweb/p2pweb-blog 为模板创建了新项目。
如何导入已有项目
git clone 已有的项目,然后到目录下运行 p2pweb , 将自动关联并绑定。
如果是GITHUB的PAGE( xxx.github.io ),将自动识别并绑定域名。
否则,将根据git根目录子下的CNAME识别并绑定域名。
静态网址设计设计
数据存储 与 展示内容生成 分离。方便随时重构数据。
设计升级脚本。
设计细节
首先,需要绑定 GIT目录 ( 会自动根据CNAME或者github page的路径识别域名 )
当有请求的时候,根据 req.headers.referer 来判断本地的目录
如果找不到对应的目录返回 0
提供一个 p2pweb 的 前端sdk
如果请求出错,需要提醒用户更新或启动p2pweb(普通用户下载图形界面,程序员给命令行流程)
如果请求返回0, 当期域名没有编辑权限,提醒用户导入目录
~/Library/LaunchAgents/p2pweb.cli.startup.plist launchctl load -w ~/Library/LaunchAgents/p2pweb.cli.startup.plist
用户存储文件流程
用户如果找不到可用空间商(就去github或其镜像更新空间商列表)
用户每24小时刷新一下可用空间商列表,刷新流程如下
空间商列表格式为
[
[域名(或ip),权重]
数值签名
]
用户随机请求一个空间商A(如果失败,就请求下一个)
空间商A返回最新所有的空间商列表和版本号,并付加上监察者的数字签名
用户对比版本号,如果版本号小于自己的版本号,就帮助该空间商A更新,并请求另外一个空间商B(并惩罚空间商A,90天内不访问,除非没有其他可用的了)
用户会加权随机选择空间商测速, 选择一个空间商
用户上传文件到空间商
空间商上传文件到中央存储
检查者对上传后的文件hash签名,并告知空间商,空间商告知用户,用户确认上传成功
用户向空间商支付信用点(金额+用户签名+时间戳)
空间商信用点找监察者
学习苹果 30% 的收益归监察者
需要预先支付押金 Paypal
空间商API
ping // 返回剩余空间 最新空间商列表 // 空间商返回最新所有的空间商列表和版本号,并付加上监察者的数字签名 更新最新空间商列表 // 通过监察者的签名校验, 每个IP每小时最多调用1次
空间商认证流程
客户端 -> 大量第三方授权存储服务器 -> 任务派发服务器 -> 备份存储服务器(Backblaze B2)
文件存储到第三方服务器 第三方服务器通过接口上传到备份服务器 服务器检查sha 确认后,服务器签名 向用户展示付款码
回调本站通知 空间商先像本站支付钱
资产证券化流程
把收益证券化,变成空间币,发币。
代码更新
第一次运行
git clone 下载
监测到有新版本,更新
console.log -> 事件 ,可以阻止继续运行
发布新版本
6 years ago