本系统的本质就是一个由图数据库支撑的云文件系统。
github 地址:third
文章有一点长和墨迹,不善表达,先表示抱歉,但是内容中包含我最近的很多思考,希望可以看完。
以下为仓库正文:
一个关于信息存储、查询与分享的生态设想,按照固定方式的分享与存储信息,任意自选存储服务,基于公钥证书体系的生态系统。
在这个生态中,信息应该属于每个人,而服务商应该只提供计算(高级查询)和存储功能。每个人都能选择任何接入协议的任意工具进行编辑,每个人对自己的信息安全负责,信息的安全问题(仅泄漏问题,不包括安全问题)仅依赖自己,不需要运维或开发人员介入。
- 2020 年 04 月 15 日 13:29
看楼下的小姑娘在骑车,骑着车的时候她能进行刹车、向前、向左、向右等等操作,但是只是一堆选项合集,人脑的决定只能根据输入(当前环境)进行生成一系列选择,永远也跳脱不出当前环境的影响,所以说人脑思维不自由。依照 I(nput 输入)-P(rocess 处理)-O(utput 输出)模型来看,多拓宽视野,多找点没了解过的事情,当经历沉淀成记忆的时候,你的思维才会相对来说更自由一些。多接触牛人,多看些历史,多去些地方去采集不同的环境输入,沉淀成记忆影响处理,最终输出一些不简单的东西。广度决定处理方法,深度决定是否专业。
- 2020 年 04 月 17 日 12:19
世间发明大多都是仿生学,环境如此,你很难跳脱出当前环境去思考问题,大部分发明无非是现有的东西的模拟并加一点点小小的突破。就如《三体》所说的“三与三十万综合症”一般,在三维空间这个环境里你无法真正理解四维空间,光速本身的限制让你无法超脱出光速之外去思考问题。我们所做的一切,都是在既有的框架之内,通过理解已存在的事物本身,再加上一点点思维上的突变,创造出一个世界上本不存在的东西。而这个东西,也将是下一次突破的基石。但如果世界本身不是这个样子,那个世界的未来和这个世界的未来是否有一些共通性?单纯从智慧体的角度来考虑,最重要的不是任何的外在展示形式,而是数据本身。数据内容会变,但数据永远存在,而数据处理也将永不停歇。说到底,世界自身也只是数据聚合体罢了。
在了解 https 和 git 的时候,我觉得这两样东西很美,类似的还有拟态防御和 spacex 火箭的 cpu 冗余机制。
以上所有的设计理念都是一致的,就是在相对不可信的环境上提供可信服务,主要涉及两种策略:
人的决定取决与他所了解信息的广度与深度。信息深度需要时间去理解与学习,很难快速提升,但是信息广度取决于周围的信息输入,可以通过增加信息输入快速提升,有时候你知道另一种方式会更容易理解一些信息或做出更好的决定。
有一段时间看微积分相关的一些基础知识时,看到一个有关加速度与距离的说法,求距离等同于几何求面积,所以从零匀加速一定时间后的移动距离本质上就是求三角形面积(以上内容我已经忘记了课程中是否包含)。
你现在做什么行业,本质并非是因为喜欢,而是因为接触过这个概念,知道有这个行业。如果对于一件事的解决方案,你可能只知道 a,b 两种,但是实际上还有 c 和 d,一共四种。你的决定,取决于你知道两种还是四种解决方案。举例来讲,前段时间给手机换电池,但是手机螺丝滑丝了,查了下发现用胶水粘,实在不行就把周边挖出个坑然后用指甲刀拧出来(用的这个方法)。过后了一个月,我才又知道还有别的方法,用焊锡,还有专门处理滑丝的工具。
信息在不同的时间是有不同价值的,你要用到的时候能浮现的信息才是有用的信息。在看《真实一刻》纪录片的时候,看到两个场景很有感触。冰面塌陷时,人最好的解决方式应该是趴着去救,增加接触面积降低压强,降低自己脚下冰面也碎裂的风险。有山体滑坡风险的地方,游客可能并不知道,但是这些事却是很重要的事情。基于时间、地点、事件、声音、情景等触发器触发的信息更有价值。
基于情景触发可能很难,但是未来终有一天会实现,而我们要做的其实就是为未来的要使用的数据做好储备。
信息要辩证地看,特别是在信息泛滥的今天。可能今天你想购买一件物品,查到的数据全都是说这个商品有多好有多好的宣传文,而买到手之后才发现各种各样的问题。1000 个好评应该跟 1 个差评并列展示,查找信息的时候应该有正反两方向结果,也能避免一部分类似魏则西事件的悲剧发生。(此处因 seo 和水军刷评等原因,需要设计信任链机制,详见下方信任链解释)
看《人类简史》后,理解了一份理念,当文字这种工具出现以后,人的思维得以延续,外置性的存储机制得以实现,这是一个 0 到 1 的过程,而造纸术是从 1 到 10 的过程,数据量急剧增加,各种典籍层出不穷。而近代计算机的发展,是 10 到 100 的过程,量变引起质变,在计算机体系下,不仅可以存储大量的数据,最重要的是快速通信以及自动化,不论是使用工具还是某些公司的服务,真正意义上的可以达到只要数据产生,就可以“永远”无法消失的“永恒”状态。
纵观人类历史,发展都是极其相似的:
总结来讲,我对人类世界的认知是空间以及速度的变化,是一遍又一遍不断提升的轮回,像自相似分形,每一部分都自相似,像佛教中的一花一世界。
随着科技的进步,每个人的数据也越来越多(照片、视频、笔记、节选内容、收藏文档),分布在不同的平台上,松散且难以管理,一个人的数据尚且如此,更何况将所有数据聚合到一起的互联网。互联网是现代人的共有记忆,互联网是一本书,一本由无数个节点拼接而成,由无数个人去读与写的一本书,一个不属于某个人而是全人类共有的一个数据存储装置。
一个乱堆东西的屋子和整理有序的仓库的查找效率是不一致的,就如同平衡二叉树一样,东西在存放的时候就应该考虑用的时候如何去查找的问题,按固定的方式去整理数据,回头数据才能真正的产生用处。
每个人搜索数据时,都是一种整理和过滤。每个人在收藏或分享某些数据的时候,都是对数据的一个认可。网络爬虫与人的行为一致,都是爬取数据的过程,反过来看也是这样,人浏览的行为本身就是在爬取数据,分享与收藏就是在过滤、筛选数据,我们可以拿人采集的数据构建一个更优良的人人为我、我为人人的搜索引擎。
你的数据安全,不仅仅取决于你自己,依赖于公司运营状况,网络情况,开发、运维人员的安全意识。
服务商问题
数据未备份而导致的数据丢失 /被勒索者病毒加密;服务停运,限期下载;正常内容被错误的审核机制拦截,导致数据丢失
网络不可达
网络拥堵、断网 /局域网环境(线下比赛、家庭内部网络、高铁、飞机)或极端环境下(星际移民,高延迟通信)数据无法使用
恶意攻击
身份信息中心化认证,信息没有安全验证机制,导致身份信息冒用,信息泄露等情况发生。
某某平台用户信息被拖库;某某平台身份认证服务器被攻击导致身份冒用( twitter:我-秦始皇-打比特币)
你的体验取决于运营人员的 kpi
信息应该在你需要的时候自动浮现,而非主动查询。人与人的一个重大区别是查询能力而不是理解能力。
数据是有相关性的。一个人做出一个决定不仅取决于他自己,也跟当时的社会环境有关。历史的发展轨迹需要多个人掺杂在一起去看。
跨平台追踪
你关注的人(亲朋好友、up 、明星等)、事(新闻、重要通知)在不同平台下的数据的线性查看。
时间线理顺
看到某些事情,不明白之前发生了什么,事件应该是以时间线的形式来查看的
一个由图数据库支撑的云文件系统,采用 gpg 体系进行身份以及完整性验证,基于触发器的数据自动展示,数据可控,来源可验证,多设备间同步。
用户自己拥有所有数据,可以选择服务商提供的空间和计算能力,也可自行在本机或云主机上搭建服务。
存储节点的基本信息,类似已有文件系统中的文件内容,包含本节点内的一些信息或基础属性信息。
节点包括签名,内容可为任意内容(包括加密后的信息)
以小明同学举例:
属性 /字典式(更直观且方便解析,亦可直接生成表格,推荐):
描述文本:
与基本节点相关联的节点信息。
以小明同学和他的老师王老师为例:
加入链接信息的小明的信息
本质与节点的基础信息没有区别,但因为是关联实体,所以是链接信息,而非基本的属性信息。
类 gpg 体系的信任链。
如存在一下信任关系(指向则为信任):
当你作为一个新用户,信任 a 的时候,则可以通过信任深度来过滤信息:
假设每人信任十个人,则深度为 1 时,信任网络中的人为 11 个;信任深度为 4 时,信任网络中的人为 11111 个。
按照四 /六度分隔理论(本例以 4 层为例),最多 4 层网络足以筛选掉所有的未经信任的数据。
seed
{
// json 序列化后的 seed,防止不同语言因 json 序列化结果不一致而导致的签名无法验证
// 对象内部结构见下方 json_seed
'json': '...',
// 签名信息列表,如果 json 结构中包含作者信息,则必须包含这个作者的签名,否则视为无效
'sign': [...],
// 全 id 为 metadata.id.value-fingerprint(代表使用这个 id 的人)-sha256(json 字段的 sha256)-timestamp(更新版本时间戳)
// metadata.id.value =
// id 可由 seed 计算出,传输过程中无需携带
'id': '...'
}
seed.json
{
// 元信息
'metadata': {
// 字段 id
'id': {
// 类别,例如 url,默认不指定为 seedid
'type': '...',
// id,唯一性 id,如果是 url 类型,则 id 为 url 值
// fingeprint_short(代表最初创建这个 id 的人或一些人的指纹)_randomstring(随机字符串,防止极端条件下产生的冲突)_metadata.time.update.ts(第一次创建时的时间戳,以秒为单位)
'value': '...'
},
// 作者信息,作者的证书指纹列表,全部大写
'author': ['...'],
// 时间相关信息
'time': {
// 更新 /创建事件
'update': {
// 时间戳
'timestamp': ...,
// 时间精度,比如 year,month,day,hour
'accuracy': '...'
},
// 开始相关信息,结构同 update
"start": {...},
// 结束相关信息,结构同 update
"end": {...}
},
// 地点相关信息
"position": {
// 后续如果有超脱于经纬度的数据,比如宇宙空间坐标,再增加字段进行描述
// 经度
"longitude": 1.111,
// 纬度
"latitude": -1.111
},
// 指向的链接
'link': [
{
// 指向的 seedid
'id': '...',
// 关系名称
'name': '...'
}
]
},
// 数据信息,可以为对象、列表或数据
'data': ...
}
使用者
开发者
服务商(整合服务)
不是所有的人都愿意自建服务,也不是所有的自建服务都能高效利用
服务商主要提供廉价(自建服务利用率不高)和稳定(专门对数据进行备份)的服务。
服务本身也是互动社区。
当然也可以不拉取,直接使用多个服务器,结果在客户端汇总。
注意:目前还不支持,等服务端完善之后做后续支持
利用 keyserver 实现类似 dns 的功能,以公钥中的 uid.comment 进行“域名”解析,实现效果:根据指纹信息自动解析到其使用的服务器和发布的内容。
abc 三个人使用 s1,def 三人使用 s2
当 a 关注 d 的时候:
- s1 根据 d 的指纹信息去 keyserver 中拉取 d 的公钥
- s1 解析 d 公钥中的 uid 信息中包含的 comment 信息获得 d 所使用的服务器信息(标记为 ds )
- s1 根据 ds 去 s2 中拉取 d 的信息并保存
对身份认证极其敏感的信息,自行将 seedid 压入受信区块链。seedid 包含作者指纹和 json 的 sha256,可确定信息发布时间在证书吊销或过期之前。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.