详解去中心化的DIM即时通讯协议

去中心化的即时通讯协议,如何引爆通讯领域的新一轮革命? 随着互联网行业的深入发展,竞争者迅速进入市场,又迅速退出市场,最终“赢者通吃”现象愈来愈明显。互联网企业依靠技术创新和用户规模,容易实现较高的用户粘性,形成高度集中的市场竞争格局。 尤其在即时通讯领域,全球市场份额被Facebook、腾讯、Line和Whatsapp等几家巨头瓜分,流量绑架及用户隐私安全尤为显眼。这些寡头存在着涉嫌滥用市场支配地位的行为,主要表现为捆绑销售、用户隐私泄露、拒绝交易... 阅读详情

在这里插入图片描述

2019年8月21日,密码极客邀请到了DIM项目的首席科学家Albert Moky来社群做线上分享。

此次活动由密码极客与DIM主办,TokenClub、火星财经和猛牛资讯联合主办,币乎、链节点、LongBit和加密世界提供社区支持,媒体协办方包括金色财经、星球日报、深链财经、真本聪、TokenInsight、布道财经、博链财经、宏链财经、Fintech News、世链财经和兰链智库等等。

同时也感谢密码极客、TokenClub、DIM官方社群、DIM直播分享群、猛牛资讯交流群、腾讯区块链场外论坛等社群的小伙伴参与收听和互动。
在这里插入图片描述

以下是线上分享的全部内容

在这里插入图片描述
大家好!我叫Moky,是一名程序员,在服务器端、客户端开发都略有涉猎。本人是数学系毕业的,对算法比较感兴趣,之前研究过AI算法,前几年在看到区块链技术的时候也忍不住研究了一下。最近颇有一些心得,想借此机会和大家分享。

在这里插入图片描述

今天我想和大家分享的,是关于“去中心化”技术在IM领域的可行方案。由于我本人之前曾负责过一些IM产品的研发,虽然不算太深入,但对于IM领域的一些产品问题仍然有比较多的认识。我一直在寻找方法尝试去解决它们,但是IM领域的竞争太过激烈,除了巨头之间的竞争,一些小公司基本没有什么参与机会,直到我找到了“去中心化”的方法。
在这里插入图片描述

我对比研究了现有的一些较为知名的IM协议,它们都从某些侧面解决了一部分问题。但是这些协议很多都没能得到广泛的应用,哪怕有一些背后有非常强大的公司在推动也没能成功。我分析了深层次的原因,其实根本原因并不在功能性上,也不在应用了多么酷炫的技术,而在于用户体系。

在这里插入图片描述

我们看一下过去比较有代表性的IM协议:最初的开源IM协议主要强调通用性,而在真实性和保密性上基本是空白的,完全靠运营方去保证

去中心化 Agent 协作架构设计:通信协议与行为一致性控制 随着多智能体系统(Multi-Agent System, MAS)在自动驾驶、机器人集群、工业自动化等领域的快速应用,去中心化架构逐渐取代传统中心化方案,成为提升系统鲁棒性、通信灵活性和扩展性的关键技术路径。本文基于当前主流工程实现,系统拆解去中心化 Agent 协作的通信机制、行为一致性控制策略与任务同步流程,聚焦行业前沿协议(如 gRPC、ZeroMQ、DDS)、状态协同设计与共识机制实践,结合真实工程案例,从架构层、协议层、行为控制层等角度深入剖析可落地的设计实现方案,提供完整的实战指南与部署参考路径 阅读详情

相关推荐

<.Net><VB>使用VB.net实现socket(UDP)协议通讯-简易聊天对话-单客户端版

udp协议,中文名为用户数据报协议,可以实现无需连接的数据传输,优点是速度快,缺点是数据不做检验,不可靠。很多即时通讯软件中会用到这种方式,本文中实现单客户端的udp通讯。 udp通讯无需建立连接,只需要知道远程设备的IP和端口即可,因此程序相对tcp简单多了。 假设两台设备(PC),client A和client B。udp传输不需要分客户端和服务端,程序是完全一样的。 程序: udp也需要实例化socket,并且需要绑定本地端口。 bind s = New Socket(AddressFamily.I

用沸腾的热血,支付我们的人生吧! 3128

Visual Basic局域网即时通讯系统开发实战

本文还有配套的精品资源,点击获取 简介:本项目以Visual Basic为开发工具,构建了一个支持局域网内用户实时通信的聊天系统。系统利用VB的Winsock控件实现客户端和服务器间的网络通信,并通过多线程技术保证通信的实时性。同时,系统还实现了用户身份验证、状态监控、消息队列和图形用户界面设计等功能。该系统通过实践项目的方式,使开发者能够掌握网络编程基础、套接字通信、数据...

weixin_42571280的博客 1051

murcott:去中心化即时通讯框架

默科特 去中心化即时通讯框架 安装 go get github.com/h2so5/murcott 例子 package main import ( "fmt" "github.com/h2so5/murcott" "os" "strings" ) func main () { // Private key identifies the ownership of your node. key := utils . GeneratePrivateKey () fmt . Println ( "Your node id: " + key . PublicKeyHash (). String ()) // Storage keeps client's persistent data. storage := utils . NewStorage ( "storage.sqli

activity-pub:API平台ActivityPub支持

API平台ActivityPub :warning_selector: 该项目是高度实验性的,尚不适合生产 :warning_selector: API平台ActivityPub是和的捆绑包,提供对和。 ActivityPub协议是一种去中心化的社交网络协议。 它为服务器API提供了一个客户端,用于创建,更新和删除内容,还为服务器API提供了一个联合的服务器到API,用于传递通知和内容。 API平台ActivityPub可以轻松地将对ActivityPub的支持添加到新的或现有的API平台项目中,同时仍然可以受益于所有API平台功能(是的,包括 , 和GraphQL!) 安装 安装API平台或Symfony 如果尚未完成! 安装套件 compo

伪造的:ActivityPub的扩展,用于基于Web的Git服务联合

ForgeFed:联合Git服务 ForgeFed(以前称为GitPub)是基于W3C的的分散式联合协议,该协议扩展了 。 它提供了一个服务器到服务器的API,用于请求请求,派生和订阅由Git Web服务(如GitHub,GitLab,Gogs,Gita等服务)提供的存储库。 合作 至少某些Git Web服务实现必须同意这样的规范。 如果您是此类软件的开发人员,请并发表意见。 我们将简单地将您添加到工作组中。 如果您有编写规范的经验,也欢迎您加入。 邮件列表 我们仍在等待所有临时工作组成员加入邮件列表。 所有主要的讨论和决策活动都将在我们的Framalistes。 非会员可以使用GitHub问题跟踪器或向我们发送电子邮件: 。 我们不能保证阅读所有邮件或GitHub注释; 但是我们会尽力的。 执照 规范文档是根据的变体获得。 您可以获得文档许可证的副本。 本规范中的代码组件已获得MI

区块网:基于区块链的去中心化通信解决方案

概要 该项目使用区块链技术创建公共或私有,去中心化的论坛,在论坛用户之间存储和存储消息。 该项目最终为当今当前消息传递平台的问题提供了解决方案,在该消息传递平台中,我们的私人通信由潜在的不可信或不可靠的第三方进行调解。 动机 该项目的目的是通过开发涉及以下内容的区块链论坛应用程序来探索区块链技术在公共和私人消息传递领域的潜力: 适用于分散管理和论坛交易分配的区块链实施。 一种无服务器设计,可利用分散式区块链提供的隐私。 与论坛互动的紧密而精简的界面。 用法 包括(尚未实现)接口。 安装 安装扩展或使用浏览器 在MetaMask上建立帐户并切换到Rinkeby网络 在repo目录中运行以下命令: npm install node compile.js npm run build npm start 学分 感谢和的帮助

[论坛社区]DIM 论坛即时通讯 Discuz!论坛内部即时通讯软件 bate4_dim8.zip

[论坛社区]DIM 论坛即时通讯 Discuz!论坛内部即时通讯软件 bate4_dim8.zip

MAX96712解串器MIPI CSI-2输出配置全解析:从Video Pipe映射到DPLL速率设置(以4路YUV422摄像头为例)

本文详细解析了MAX96712解串器在MIPI CSI-2输出配置中的关键步骤,包括Video Pipe映射、寄存器配置和DPLL速率设置。通过具体示例和代码片段,帮助开发者优化4路YUV422摄像头系统的图像传输稳定性和画质表现,适用于汽车电子和工业视觉应用。

weixin_30776273的博客 433

Windows 下安装 ros2 的超详细教程

Windows11 ROS安装

2401_83363439的博客 3319

企业级AI项目落地实战指南

企业级 AI 项目落地需构建“分阶段实施 + 多维度风控”的双轮驱动体系:实施端通过 POC 验证技术可行性、试点建立评估标准、规模化实现价值复制,各阶段需结合行业案例(如东阳光药、旺盈集团)提炼可复用经验;风险端则需覆盖技术(数据安全、模型稳定性)、合规(全球监管动态)、组织(人才与文化)维度,通过工具化框架(AI TRISM)与案例策略(邮储银行可解释性设计、拓斯达培训体系)实现风险可控。最终通过“场景聚焦 - 合规嵌入 - 持续优化”的循环机制,实现 AI 技术从“试点成功”到“全面价值创造”的跨越。

2509_93209761的博客 1438

别再只盯着DDR5了!聊聊3D DRAM:它凭什么能解决AI算力的内存墙难题?

本文深入探讨了3D DRAM技术如何突破AI算力的内存墙限制。通过立体堆叠架构,3D DRAM在存储密度、带宽和延迟方面实现显著提升,有效解决AI训练和推理中的内存瓶颈问题。文章还分析了三星、SK海力士等巨头的技术路线图,并指出商业化面临的挑战与机遇。

weixin_42685438的博客 189

开源代码分享(29)-基于拉丁超立方抽样的风光场景生成和削减

作为分层抽样方法的一 种,拉丁超立方抽样具有良好的抽样精度和效率[14]。本文使用多场景方法来描述可再生能源(风电、光伏)的不确定性。以风电功率为例,首先假定风电功率服从正态分布 N(μ, δ 2 ),μ 为预测值的期望值,δ 为其波动的百分比。接着,采用拉丁超立方抽样[21]生成大量服从概率分布约束的风电出力场景,并采用考虑 Kantorovich 距离[22]的场景削减技术处理该场景,进行场景削减。最后,导出具有相应概率的削减之后的场景。

配电网和matlab的博客 923

OGG故障指南:OGG-01163 Bad column length (xxx) specified for column

OGG-01163 Bad column length (xxx) specified for column AAA in table OWNER.TABLE, maximum allowable length is yyy

qqqyyy0422的博客 718

C#+Winform+OpenCvSharp实战:5步搞定工业视觉检测框架(附源码下载)

本文详细介绍了如何使用C#、Winform和OpenCvSharp构建工业视觉检测框架,通过5个关键步骤实现高效、稳定的视觉检测系统。内容涵盖环境配置、相机集成、核心算法实现、系统集成与通信,以及部署优化,帮助开发者快速掌握工业视觉检测技术,提升检测精度和效率。附完整源码下载,助力工业数字化转型。

pz89012345的博客 551

使用MATLAB和Simulink来设计并仿真一个智能家居火灾报警系统

智能家居火灾报警系统旨在通过烟雾传感器、温度传感器等设备监测家庭环境,一旦检测到异常情况(如烟雾或温度骤升),立即触发警报并采取相应措施。在这个教程中,我们将使用MATLAB和Simulink来设计并仿真一个智能家居火灾报警系统,包括数据采集、处理以及响应机制。

amy_mhd的博客 162

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 《8问》| 程晓明:未来一定有世界货币,关键在于设计逻辑
下一篇: 离开马云后,20位阿里人的区块链创业路
CryptoGeek
博客等级 码龄7年 2872粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值