0.0.1 • Published 6 years ago

p2pweb-cli v0.0.1

Weekly downloads
3
License
MPL-2.0
Repository
github
Last release
6 years ago

p2pweb-cli

安装

安装请运行

npm install -g p2pweb

安装后,请运行 p2pweb -h 查看帮助。

模板可以定制一些任务

  1. 渲染变量名生成html
  2. 抽取指定文字的字体
  3. push到git
  4. 定制统一的数据格式,方便用户自己生成

第一步,新建项目或导入项目

如何新建项目?

到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 确认后,服务器签名 向用户展示付款码

https://www.paysapi.com/

回调本站通知 空间商先像本站支付钱

资产证券化流程

把收益证券化,变成空间币,发币。

代码更新

第一次运行

git clone 下载

监测到有新版本,更新

console.log -> 事件 ,可以阻止继续运行

发布新版本