V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  oxogenesis  ›  全部回复第 12 页 / 共 15 页
回复总数  285
1 ... 4  5  6  7  8  9  10  11  12  13 ... 15  
没事没事,知不合适能调整,善莫大焉
2019-08-09 23:07:07 +08:00
回复了 mikulch 创建的主题 程序员 想问下现在前端的主流到底是什么?到底学什么好?
@qiutianaimeili 正解,还是放弃吧
2019-08-09 23:01:40 +08:00
回复了 sewer 创建的主题 程序员 求点小星星,兄弟们看哪个好点哪个, 为以后工作面试用😘
竟然还有这种操作。。。
v2 水的氛围还行,技术氛围一般吧
2019-08-09 07:48:14 +08:00
回复了 httplife 创建的主题 问与答 Without Internet, can you code?
显然不能
就像没有汽油,还能开车吗
一个道理
2019-08-08 15:40:55 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@oxogenesis
私聊的话,接收方需要提前将对方的账号(接近 1a ),加为好友,接收方只接收白名单内的消息。

接收的每条消息,接收方要判断这条消息签名是否有效,f(公钥)=账号,检查账号是否在白名单内。

不给公钥,没法算账号,没法确认是否在白名单啊
2019-08-08 15:11:13 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@no1xsyzy 两个地方需要公钥
1、f(公钥)=账号地址,不是直接把公钥作为账号地址,
接收方收到消息,知道是谁发的
2、公钥时是校验签名有效性的一个参数,f ( msg,公钥,签名)=true/false
接收方收到消息,确认签名有效性,确认是谁发的

服务器用账号地址来标识每一个连接
2019-08-08 13:29:10 +08:00
回复了 caesar 创建的主题 问与答 微信恶意永久被封:当前登录环境存在异常 如何处理???
现在已经到了
“系统永远是对的”
这个阶段了

基础公共信息系统,地位不可挑战

就像你喝自来水拉肚子,别人不拉,推导出肯定是你的问题
你到底有没有问题,是个说不清的事情
系统掌握了所有数据,你怎么证明你没有问题?证明不了或者很难
2019-08-08 11:22:00 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@no1xsyzy #26

私聊的回执机制在 v0.0.1 已经实现了

私聊回执机制
https://github.com/oxogenesis/oxo-chat-client/wiki/3.%E4%B8%9A%E5%8A%A1%E6%B6%88%E6%81%AF#%E8%81%8A%E5%A4%A9%E6%B6%88%E6%81%AF

聊天消息
参照公告消息,出于同步和区块链化的考虑,聊天消息也应该包含聊天消息序号和前聊天消息散列值,
另外,为了通知对方哪些消息已经接收了,增加字段 PairHash
具体如下:

Action:205
Sequence:聊天消息序号
PreHash:前聊天消息散列值
PairHash:是一个 0 到 8 个元素的数组,每个元素为一条未确认接收的对方消息的散列值
Content:聊天消息内容,为加密后的消息内容
To:聊天对方的账号地址
Timestamp
PublicKey
Signature

客户端都在线的时候,双方有来有回的情况下,可以及时确认那条消息已被接收
一方不在线时,在线方的消息现在本地存着,等都在线了,再同步

群聊准备在 v0.0.2 中按类似的原理做,但不打算实现回执

要阉割掉服务器的特权,保障个体对数据的绝对控制,这点牺牲我觉得是值得的!
现在的网络接人是很方便的,只需要保障数据一致性,应对偶发短线情况,我觉得就可以了。
2019-08-08 09:13:56 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
真理越变越明,感谢坛友与我一起头脑风暴

@cassyfar 服务器只做转发,“比如 C 在只有他一个人在线的时候发了个消息,然后下线,再也没上线,这个消息就彻底丢失了。”这个现象是可能出现,这是为了隐私所必须要做的牺牲。

@fluorinedog 我认为区块链并不严重依赖于一般意义上的“共识机制(全网的共识)”
区块链可以被用只需要“事件参与方的达成共识”即可的业务场景。
比如私聊,只需要两个人达成共识即可,服务器转发一下消息即可,除此以外的全网其他客户端都感知不到。
同理群聊,也只是入群的这些人范围内转发相关消息。

私聊是两个人,每人一条消息链,自己生成一条,同步对方一条
群聊也是每人一条消息链,自己一条,同步其他人( N-1 )条
除了自身 sequence 和 prehash 锁定之外,再加入一个外链引用字段,就可以起到跨链校验,把不同的链拧成一根绳的效果。

根本就没有算力牺牲,我本来就极度反感挖矿这种 2B 行为。
有空可以看看我写的 wiki,https://github.com/oxogenesis/oxo-chat-client/wiki,还没写完,虽然狗屁不通
2019-08-07 21:29:39 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@no1xsyzy
B 收到的要么就是一条完整的 Ax 消息,要么就是什么都没有。
所以没有 1、3,只有 2。

“把服务器降维成网络设备”
服务器成为网络设备,服务器只处理客户端之间的消息转发业务,并不保证传达到位,类似 UDP (这是对的)。
连上服务器的客户端之间就可以聊天了,消息只中继一次,时效性有保障。

P2P 的话,等 A 找到 B,都猴年马月了,早就没聊天的兴致了,没见过能用的 P2P 聊天系统。
P2P 做文件分享还可以,聊天这种业务它做不了。
2019-08-07 11:25:13 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@IanPeverell
我的想法还停留在,不依赖特定服务器,将服务器降维到网络设备。
而不是完全的 p2p,感觉 p2p 的服务质量不太靠谱
2019-08-07 11:20:39 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@wutiantong 所有的消息都是一个客户端通过服务器发送给另一个客户端,通过多条消息来实现“广播的效果”

私聊(已经实现客户端到客户端加密),并且密钥隔一段时间换一次
群聊的想法是,每个群里的任意两个客户端协商一次密钥,以后都用这个密钥来加密,群聊就是把同一句话用不同的密钥加密后发个对应的客户端
2019-08-07 11:13:05 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@fluorinedog 对,私聊的话,得两个人同时在线,群聊只要有一个人在线,就相当于给所有后上线的人做种子了
服务器什么都不能存,要断绝对任何服务器的依赖,服务器只形式路由器的职能
这样才能保证,客户端对数据的完全控制
可以承受牺牲部分可靠性、便利性,
现在网络这么发达,如果个体愿意,保持持续在线并不难
2019-08-07 11:02:26 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
@wutiantong 不是,还是需要服务器的,但是服务器只做消息转发,不存储数据,所有数据都存在个人计算设备
2019-08-07 10:31:22 +08:00
回复了 oxogenesis 创建的主题 程序员 一个算法问题
这里的问题是不是所有客户端都在线

请求所有客户端,对方不一定在线,那就需要有重试机制,可能有的客户端说完话后就长时间不在线

等待某个客户端发消息(这个触发机制肯定是要的),可能有的客户端说完话后,长时间不发言

我倾向于,上线以后,靠在线的部分客户端,尽可能多的同步当前在线客户端的所有数据,再加上被动触发机制、引用关联机制、适当强度的轮询机制,消息类型要少,消息请求响应数量要少,降低系统复杂度和服务器的负载
1 ... 4  5  6  7  8  9  10  11  12  13 ... 15  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2241 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 05:33 · PVG 13:33 · LAX 22:33 · JFK 01:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.