一定程度上对标所有聊天型、帖子型应用系统,不知道有没有描述清楚,有没有人能够看得懂

2019-07-27 10:39:01 +08:00
 oxogenesis
https://github.com/oxogenesis/oxo-chat-client/wiki
只做了个原型系统
源码
https://github.com/oxogenesis/oxo-chat-client
https://github.com/oxogenesis/oxo-chat-server
客户端
https://github.com/oxogenesis/oxo-chat-client/releases
服务端
wss://ru.oxo-chat-server.com
3863 次点击
所在节点    奇思妙想
35 条回复
dawn009
2019-07-27 11:06:49 +08:00
没有描述清楚。
大概知道你想干嘛,但无法建立起直观概念。宏观概览被淹没在了技术细节里面。
hyyou2010
2019-07-27 11:21:01 +08:00
先赞了。欣赏探索与创新以及个体权利意识。

赞同一楼所说,宏观概念应该提取出来做简明说明,半页篇幅,让人几分钟即看懂。
oxogenesis
2019-07-27 11:46:12 +08:00
嗯嗯,后续再梳理下思路,好好表述一下

想法比较简单
聊天型、帖子型的应用系统,本身并不生产内容,只是提供了一个网络存储服务
就开始滥用权利,删号、封号、删帖、看帖子要满足各种条件

那我就使用逻辑账号,把数据都存在本地,然后开一个公网数据中继服务,
要获取我发的、收藏的帖子,借助公网中继从我的本地获取
促进数据的自由流动

聊天也是同样的道理,我用企业提供的服务和客户端,我与朋友聊天内容的保密性完全没有保障,
使用公网数据中介,我和朋友可以做到端到端加密,
而不是使用互联网企业,我与服务器端到端加密,服务器知道、存储我的私人聊天
oxogenesis
2019-07-27 11:48:03 +08:00
这样人人都是内容服务器
dawn009
2019-07-27 11:53:51 +08:00
和 Solid 相比,有哪些异同?
oxogenesis
2019-07-27 12:05:39 +08:00
solid 指的是? https://learnsolid.cn/#about
SoLiD (源自「社交链接数据」,Social Linked Data )是一组约定和工具,主要用于构建基于关联数据的分布式社交应用。Solid 是模块化和可扩展的,它尽可能地依赖于现有的 W3C 标准和协议。
真正的数据所有权
用户可以自由选择数据存储的地方以及谁可以访问数据,Solid 通过将数据与应用程序分离达到了这一效果。

模块化设计
由于用户产生的数据与应用程序是分离的,所以用户能够避免互联网服务提供商随意锁定、删除数据,从而在各个应用之间无缝切换而且不会丢失任何数据或社交关系。

数据重复利用
开发者在创建新应用或改进现有应用时,可以重用现有的数据,其中有些数据可能是由其他程序创建的(但要得到用户的许可才能使用)。

=========================
我的目标是面向普通个人提供可用的
1、本地生产的账号,基于这个账号实现以下两个业务功能
2、与其他个体网上加密聊天,个体到个体的端到端加密,而不是客户端到服务器的加密
3、发布公告供其他个体浏览,无人可以过滤个体的内容

所有数据存放在受个体控制的本地环境
oxogenesis
2019-07-27 12:16:35 +08:00
先定义数据后设计系统,与他的数据程序分离思路类似
不丢失数据和关系,是显然的,所有系统这都是最基本的
他是技术规范、底层设计?面向的是开发者,不知道要解决啥问题
我要直接解决现实问题
oxogenesis
2019-07-27 12:23:03 +08:00
再补充一点
这样做并不是为了盈利,可能需要自己部数据中继节点,规模不大的情况下,个人完全可以负担
如果数据量大,也有可能会有商业机构愿意做公告聚合服务,这样他们就需要部署服务能力强的中继节点,服务质量好的节点能够旁听到大量公告内容

整体上具有完全的可持续性
dawn009
2019-07-27 12:24:14 +08:00
来自维基百科:

Solid (中文:社交互联数据)[1]是由万维网发明者蒂姆·伯纳斯-李( Tim Berners-Lee )领导的网络去中心化项目,由麻省理工学院 ( MIT )运行。该项目为需要链接数据的应用程序开发了一个分布式网络平台,这个平台完全由用户控制,而不是由其他组织或个人控制。它“旨在从根本上改变网络应用程序的工作方式,从而实现让每个人拥有真正的数据所有权,并且改善隐私状况”[2]。


历史

在伯纳斯-李于 1989 年发明万维网二十年之后,他在为万维网联盟撰写的草稿中概述了万维网的设计问题,并提出了 Solid 项目[3][4]。伯纳斯-李越来越沮丧地看到他发明的万维网被滥用,例如:俄罗斯黑客涉嫌干扰 2016 年美国大选,2018 年 Facebook 用户数据泄露风波,Facebook 在 2012 年秘密对近 70 万用户进行心理实验,谷歌和亚马逊为可以识别人类声音情绪变化的设备申请专利[5]。

伯纳斯-李想要改变目前互联网的运行现状,Solid 项目是改变它的第一步,以让个人用户完全控制自己的数据[6]。伯纳斯-李欢迎任何人加入和贡献 Solid 项目[7]。

2015 年,該項目收到万事达为支持 Solid 的开发而捐贈的一百萬美元。伯纳斯-李的 Solid 项目研究团队与卡塔尔计算研究所和牛津大学合作[8]。2018 年,伯纳斯-李创立了商业合资企业 Inrupt 以支持 Solid 的发展[9]。
设计

要实现分布式网络,需要克服许多技术挑战[10]。应用程序和数据必须分开,允许人们将个人数据存储在他们想要的地方。身份验证程序必须正确识别数据所有者,同时确保隐私。与传统的分散的 P2P 网络(如 BitTorrent )相比,Solid 应该增加更多控制权和功能,而不是使用传统的集中式网络 。最后,系统必须易于使用,速度快,并且允许开发人员快捷地开发应用程序[10]。

Solid 的核心是在保护隐私的前提下共享信息。用户将个人数据存储在任何自己想要的“ pods ”( 个人在线数据储存器 )中。在用户授予应用程序权限后,Solid 认证的应用程序可以请求数据。用户可以在几个 pod 之间分发个人信息,例如,不同的 pod 可能包含个人简介、联系方式、财务信息、健康状况、旅行计划或其他信息。用户在注册经认证的社交账户时,可以通过授予其访问特定 pod 中的信息的权限来,以完成账户注册。用户保留对用户 pod 中数据的完全所有权和控制权:用户可以控制每个 pod 包含什么数据、每个 pod 的存储位置以及哪些应用程序有权使用这些数据[1]。

Solid 由以下几部分组成[11]:

一个特定格式的数据库:它包含有个人数据,例如身份证明、权限认证、登录信息、权限列表、联系人、消息、订阅、评论等(与集中式社交媒体服务功能相同)。
一个描述 REST API 的规范文档,以指导开发人员构建服务器或应用程序。
一个用来实现 Solid 规范的服务器。
一个用于测试和验证 Solid 实现的测试套件。
一个由在 Solid 平台上运行的社交应用、身份提供程序和帮助库组成的生态系统。
一个可以互相交流、发布文档和教程的社区。
oxogenesis
2019-07-27 12:29:41 +08:00
“用户在注册经认证的社交账户时,可以通过授予其访问特定 pod 中的信息的权限来,以完成账户注册。”
向谁注册,注册账户就相当于把蛋蛋让人捏在手里,还怎么活

在这一点就完全不同,我的这个系统,所有账号都是在本地生产的,同时能被其他用户识别
oxogenesis
2019-07-27 12:30:31 +08:00
老打错字。。。

在这一点就完全不同,我的这个系统,所有账号都是在本地生成的,同时能被其他用户识别
dawn009
2019-07-27 13:30:40 +08:00
@oxogenesis #10 可以自建 server,自己选择存放在哪里,当然也包括存放在本地。所以我认为你想要的,Solid 已经做了。
lhx2008
2019-07-27 13:43:19 +08:00
如果发消息不用付费,那么最终会不会淹没在垃圾和广告的洪流中。
niubee1
2019-07-27 13:47:26 +08:00
端对端加密通讯不基于中心服务器做中转的 IM 我实现了一套出来,绝对私密, 绝对安全, 我觉的很适合矫情的 v 站用户, 我们都是一挂的
oxogenesis
2019-07-27 14:08:02 +08:00
@lhx2008 不会
默认过滤器
所有消息都需要校验 Json 格式、签名有效性、To 字段是否为本地系统所使用的账号,识别所有消息的来源账号
公告过滤器
本地系统只向关注个体表内的账号发送连续的公告请求消息,直至获取全部公告消息
根据公告消息的引用关系,向引用账号发送离散的公告请求消息,获取被引用的单条公告消息
TODO:单条被引用消息的获取来源,不应该局限于引用账号
聊天过滤器
本地系统只与好友个体表内的账号,发送和接收密钥协商消息、聊天消息、聊天同步消息

本地系统会过滤,在白名单中的才会被个体看到
如果你看到了大量广告和垃圾,只有一种可能,你订阅了大量广告和垃圾的发布账号
oxogenesis
2019-07-27 14:15:57 +08:00
@dawn009 我已经说了,“向谁注册账号?就相当于把蛋蛋给谁捏着。”
自建 server 只是一个表象,
他的 server 是 server
我的 server 只是数据中继,只对消息进行形式化验证,不处理具体的身份认证,不知道用户邮箱、用户密码
你是属于没看懂那一伙的
niubee1
2019-07-27 14:25:27 +08:00
个人觉得你这个原型有一个悖论在其中, 如果是针对点对点私密通讯, 那么点对点的加密机制就是必须的,但是你这里又要对标发帖子的, 帖子信息是属于公开或者半公开的信息, 即使加密了, 我通过公告获取到后,最后也是能得到明文的信息, 那么加密还有什么意义?另外看得出来你的原型受了 BTC 很大的影响, 但是区块链块存储的意义是在于批量打包确认, 你这里又不需要公式机制来确认打包, 搞得有点奇怪了。聊天和发帖子是两种不同形式的信息共享机制, 我觉得你想要合二为一的想法并不合理
oxogenesis
2019-07-27 14:35:14 +08:00
@niubee1 没有合二为一,而是将数据分为两类:
1、绝对公开的,叫公告,对标的是帖子型,只希望传播的越广越好,怕的是被封杀、被过滤、传播受阻,不做加密处理,发表言论是自由,言论被传播也是自由,但是每次传播是基于每个人的选择,没有人可以对其他人定向广播,只有别人来你这拉取公告;
2、绝对不公开(只对聊天的当事人公开),不对服务器公开;
niubee1
2019-07-27 14:35:59 +08:00
另, 基于区块链技术来聊天的话, 效率及其低下, 这个东西可以存在于理论上, 但是无法实用化。如果如果要实用, 直接用 ETH 架设私链,用 DAPP 也完全能实现类似的功能
lscho
2019-07-27 14:39:59 +08:00
看三楼描述的不就是区块链吗。。。。

你是没搞明白啊,并不是没人想吧端到端加密应用到聊天、论坛上,而是政策不允许啊。想提供聊天、内容发布服务的话,内容必须要能被审查的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/586641

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX