whatsapp手机版怎么群发消息
用户将拥有自己的数据主权,用户所创造的数字内容,所有权和控制权都归属于用户,用户所创造的价值可以由用户自主支配。对于IM业务,就是用户的好友列表,聊天消息等数据属于用户,不属于任何商业机构。
这个业务网络不被任何人和组织所控制,任何人和组织都可以参与这个网络,随时都可以加入和退出,为全网用户提供服务。用户不属于任何组织,组织是服务提供者不是用户的拥有者。
1.、动态网络:网络服务节点是动态的,全球任何一个地方的节点都可以随时加入和退出网络,任何节点的崩溃和退出都不影响网路正常运作。
2.、数据安全:用户数据必须是加密的,聊天消息要支持端到端加密安全,服务节点只做存储与转发,无法查看聊天消息和好友列表等数据内容。
第2点需求意味着需要支持动态扩容和索容。大家都知道,传统web2.0技术是基于中心化的,服务器规格统一,性能都比较好,服务器之间的网络延迟极小一般在1毫秒以下,集群出口带宽可达到千兆甚至万兆。即使是在这么好的条件下,动态平滑地扩容和缩容,服务平稳运行都不是一件容易的事情。在去中心化环境中,参与网络的节点的性能,配置,可靠性,网络带宽等参差不齐,机器随时都可能关机,网络随时都可能断开,甚至还可能存在一些恶意节点,发送恶意数据影响网络正常运行。这些因素都是在设计和实现去中心化IM所要面对和考虑的,当然从另一个角度来看,如果这些问题都能得到解决,解决方案也可能反过来应用到中心化服务架构中,增强中心化服务的稳定性和鲁棒性。
在传统web2.0技术架构中,异地多活是一座高峰,是高可用服务架构的极致追求。从某种程度上来说,异地多活已经接近去中心化架构,所以我们先来重温一下异地多活架构,看看有哪些方面可以借鉴的。
同一个用户的相关请求,只在一个机房内完成所有业务「闭环」,不再出现「跨机房」访问
异地多活的思路对于去中心化架构是非常具有借鉴意义的,可以把机房看成是一个节点,当无数个机房(节点)组成一个网络时,异地多活架构就泛化成了去中心化架构。
当然量变引发质变,当节点足够多时,传统的异地多活技术已经不能直接适用于去中心化架构,必须经过改进和改造才能为去中心化架构所采用。去中心化架构是另一座更高的山峰。
路由网络的作用类似于异地多活中的路由层,提供了资源和服务发现(discovery)的服务。比如对于用户张三,我们需要知道当前服务张三的节点到底在哪里。一个直观的方案,是一个一个节点地问(查找),效率低下。在去中心化架构中,常用的路由发现技术是Gossip协议和Kademlia网络。
Gossip协议的灵感来自于“好事不出门坏事传千里”,“办公室里的流言蜚语很快就传遍全公司”。比如张三连接的节点1随机向临近节点广播“张三在节点1上”, 临近节点再随机向它的临近节点广播,即一传十,十传百,消息很快传遍全网,所有节点都知道“张三在节点1上”。反过来,如果节点2不知道张三在哪里,它可以向全网询问“张三在哪里”,在传播的过程中,如果有节点指知道张三的地址,立即向节点2返回张三地址,结束查询过程。Gossip不是一个新的东西,大家熟知的redis集群采用了Gossip协议。
Gossip的优点是对网络的连通性和稳定性几乎没有任何要求,具有极强的鲁棒性。缺点是网络中的消息太多,而且有重复消息,增加了网络传输压力和节点的额外处理负载。
Kademlia是一种分布式哈希表(DHT)技术,被广泛应用于去中心化产品中,比如大家熟知的以太坊,磁力下载等。Kademlia 把成千上万个节点构成一个自我组织的网络,用户可以使用这个网络快速查找定位到资源。关于Kademlia技术在网络上能找到很多相关文章,但大多数都拘泥于细节中,这里简单介绍Kademlia的原理,能解决什么问题,至于详细原理请自行搜索其他文章。
c. 因为网络节点不断地上线下线,距离资源最近的k个节点集合会不断变化,所以资源拥有者Node-900 要周期性地发布资源,比如Node-100下线后,k个节点集合变成 Node-99(距离为1),Node-102(距离为2),Node-103(距离为3)
9. Kademlia的距离是逻辑距离,不是物理距离,两个逻辑距离很近的节点,物理上可能相隔很远。
IM 的核心功能是消息收发。在中心化架构中,所有上行消息通常都会归拢到一个地方,所以消息先后顺序由中心化来保证。但在去中心化架构中,上行消息可能是从不同的节点过来的,接收消息顺序可能会乱序。具体例子:
每条消息都打上一个时间戳,在接收端根据时间戳排序。但是去中心化网络中,节点间的时钟不可能完全同步,仍然存在先后顺序错乱的可能性。
每条消息都带有依赖消息Id,表示当前消息排在依赖消息之后。客户端在收到一条消息后,先检查其依赖消息是否都已经收到并且上屏,如果没有收到则先暂存消息,直到所有依赖消息上屏。此方案的缺点是增加客户端处理消息的复杂度。
因为任何人都可以加入去中心化IM网络,任何节点都可能接触到消息,所以为了隐私和安全,消息必须是端到端加密的。常用的端到端加密方案是DiffieHellman 密钥交换协议(DH),可以使通讯双方无需预先沟通,在不安全的网络中即可确定一个“协商密钥”,这个密钥可以在后续的通讯中作为对称密钥来加密消息内容,这样避免了双方网上协商密钥带来的泄露风险。
从图中可以看出在网络上传输的是公钥,真正用来加密的“对称密钥S”是计算出来的,并没有通过网络传输,非常安全。但是如果所有消息都用同一个对称密钥S,一旦S被破解得到则所有消息都会被破解。最好的办法是每条消息都用不同的密钥,即一消息一密钥。
密钥函数通常为不可逆函数,即知道输出很难反向计算出输入,比如大家熟知的哈希函数就是不可逆函数
密钥函数的输出被分为链密钥和消息密钥两部分,链密钥作为下一次密钥函数的输入,消息密钥用来加密消息
链式反应生成的密钥虽然很安全,但带来一个新的问题,即如何读取历史消息。读取历史消息通常是从某条消息开始拉去n条消息。从上图可以看出,要想得到“消息密钥2”,必须从初始密钥开始计算2次才能得出,如果要得到“消息密钥10000”,则要计算10000次才能得出,显然这样做的效率非常低下。
推送是IM业务里比较重要的功能,在app退到后台或者被杀死,仍然可以通知到客户。在去中心化IM架构中,因为消息是端到端加密的,节点在给app发送推送时,只有提醒“您有一条新消息”,不会有消息内容。这是在隐私保护与用户体验之间的妥协与平衡。
Home Server之间采用联邦式协议,Matrix网络由分布在世界各地,由不同个人和组织运营的服务器组成,因此Matrix协议不容易被单个组织垄断
私聊和群聊是端到端加密的whatsapp手机版怎么群发消息,所有聊天内容加密存储、加密传输。Home Server无法看到用户的聊天内容
-用户ID(地址)成本高,因为 带有域名后缀,如果用户想拥有永久Id,必须购买域名。如果使用SP的域名,则用户Id本身并不被用户所拥有,这跟web3的理念是相违背的。
- matrix是 https + json,优点是容易理解,缺点是占用更多带宽,并且在序列化和反序列化时会消耗更多的cpu。
目前Web3的技术创新和变革也是风起云涌,不断有新的算法和架构出现。环信作为国内IM云服务的开创者,在设计下一代IM技术架构时,也在积极借鉴和探索这些前沿技术,为我们的客户提供稳定、可靠、专业、低成本高质量的IM服务,为客户赋能和创造更多的价值。
海信(Hisense)滚筒洗衣机全自动 7公斤超薄嵌入 小型家用 除菌洗 冷水护色洗 HG70DA10 以旧换新
西门子(SIEMENS)274升大容量家用三门冰箱 混冷无霜 零度保鲜 独立三循环 玻璃面板 KG28US221C
苏泊尔电饭煲家用3-4-5-8个人4升电饭锅多功能一体家用蓝钻圆厚釜可做锅巴饭煲仔饭智能煮粥锅预约蒸米饭 不粘厚釜 4L 5-6人可用
绿联(UGREEN)65W氮化镓充电器套装兼容pd45W苹果16/15多口Type-C快充头三星华为手机macbookPro笔记本电脑配线元
格兰仕(Galanz)电烤箱 家用烤箱 40L大容量 上下独立控温 多层烘培烤箱炉灯多功能 K42 经典黑 40L 黑色
美的(Midea)中药锅煎药壶 智能陶电砂锅炖药锅煲 煎药机器 养生熬药壶 大容量分体式全自动煎药壶 长效预约 【4L容量】JYC4002 4L
美的(Midea)电压力锅 高压锅家用5L双胆鲜汤深胆煮汤锅 智能多功能电饭煲 智能预约焖香饭智能 7段调压 多重口感 50Q3-FS 5L
漫步者(EDIFIER)M25 一体式电脑音响 家用桌面台式机笔记本音箱 蓝牙5.3 黑色