跳到主要内容

思维碎片

提示
  • 精卫 (JingWei) 的设计仍在逐步改进与完善中,本文将随时发生变化,感兴趣的朋友们可以时刻保持关注;
  • 在下方的版权声明中有本文作者的联系方式,有不同意见和相关建议的朋友可以与其保持联系;
  • 也可在本文底部的评论区登录 Github 后,直接发表您的观点;
版权声明
  • 应用的作用:为具体用户提供数据收集,整理,分析服务。可以一次性收费,也可以按功能收费。
  • 平台的作用:为一群用户提供数据索引,聚合和分享服务。
  • 应用向用户提供一组运行函数,由用户侧提供参数,再由应用侧返回函数执行结果。函数可以在应用服务端执行,也可以在用户环境执行。应用和用户侧都需要为函数创建独立且隔离的运行环境。
  • 远端应用的本质:访问地址就是调用其入口函数,然后其向客户端返回 交互视图函数 (可能携带数据),视图函数在客户端的本地容器运行,在交互过程中会产生对本地或远端函数(含第三方)的调用。

用户资产库

  • 向用户的应用函数提供用户数据的存取,对用户数据的读写只能通过用户资产库
  • 应用函数向外部发送数据的行为都是被监控的,甚至是不被允许的(不提供网络能力)
    • 需要与其他用户同步指定数据时,应用函数指定源和目标数据的唯一标识, 再由用户资产库在底层完成同步,应用层面不参与数据传输过程
    • 交互的用户数据都是使用用户的私钥加密后的二进制数据
  • 在当前的技术框架下,可采用 LocalDb+WebViewLocalDb + WebView 方案
    • Tauri
    • SQLite
    • DuckDB: 嵌入式数据库,类似 SQlite,可直接处理 CSV、JSON 等文件
  • 用户数据会记录变更历史,对于数据被恶意加密、恶意删除等,可以通过历史数据恢复

应用平台

  • 负责聚合和索引与应用相关的用户数据,但一般不保留用户数据本身
  • 作为可对其他用户访问的数据,平台只是告知其他用户相关数据在哪里可以获取到, 需由用户根据地址列表自己去拉取数据
    • 若是目标用户的资产库未上线,则访问用户需要等待其上线后才能查阅到数据
    • 查阅数据的用户将缓存目标用户的数据,后续可作为数据源向其他访问用户提供该数据
      • 本地留存的也是数据所有者私钥加密后的数据,仅在查看时才通过数据所有者的公钥解密
  • 考虑 NAT 等因素,应用平台一般还需要提供中继代理,以打通数据提供侧和数据消费侧之间的数据交互通道

参考资料