首页 文章 精选 留言 我的

精选列表

搜索[源代码漏洞],共10000篇文章
优秀的个人博客,低调大师

利用以太坊管理物联网设备 - 论文及源代码

本文介绍一个利用以太坊区块链管理物联网IoT设备的身份识别、验证和声誉的IoT设备管理系统。该系统使用Web界面在以太坊智能合约中注册物联网设备,并通过密码学签名消息验证Iot设备对平台的使用权。 以太坊教程链接:Dapp入门 | 电商Dapp实战 | ERC721实战 | Php对接 | Java对接 | Python对接 | C#对接 | Dart对接 1、区块链物联网设备管理系统的基本概念 __物联网/IoT设备的标识__:通过默克尔树(Merkle Tree)的利用,无需暴露设备的私有属性即可完成IoT设备的注册。使用公钥(或其衍生表示)作为IoT设备的标识ID。 __物联网/IoT设备的消息签名与验证__:系统中的每个消息都需要由发送端的IoT设备签名,并在接收端的IoT设备处进行验证。 发送端IoT设备的消息签名生成: 接收端IoT设备的消息签名验证: __物联网/IoT设备的固件指纹__:通过保存IoT设备的固件哈希,可以验证设备所运行的固件是否被非法篡改。 __物联网/IoT设备的信誉机制__:基于Web的信任原理,设备可以形成一个信任网络。一个IoT设备从其他有信誉的设备得到越多的签名,该设备就越可信。 2、区块链物联网设备管理系统的整体说明 系统主要组成部分包括:实体、设备和IoT平台: 系统开发基于以下技术栈: Ethereum Solidity Truffle Framework Web3.js React 项目主要目录内容说明如下: contracts - Solidity智能合约 frontend - Web前端,基于React开发 simulations - IoT设备和平台仿真 系统中IoT设备的配置文件示例如下: { "identifier": "0xf34d4c8f79657f1086f55b817837439c303dff19", "metadataHash": "43af4ba721cd8c9ba432ed6aca9adb96d16f82c25ba76...", "firmwareHash": "b01d2af9ea9dd59dd9c8af3f1639da03c79b7ed28adaa...", "metadata": [ "Olive grove", "45.0270,14.61685", "Espressif Systems", "00:0a:95:9d:68:16" ], "firmware": "333f14cdb0a8520199257479ba126a10bca96b229b7924085...", "address": "0xf34d4c8f79657f1086f55b817837439c303dff19", "publicKey": "d627bbb0a7c150f814a1960ebe69f0d8b4494e1033d9e72...", "privateKey": "48a2e48b2d178e7d1f1508f2964a89079f1f8a301ebb85a...", "curve": "secp256k1", "deviceId": 0 } 3、区块链物联网设备管理系统的主要用户界面 网络状态界面: 实体历史记录界面: IoT设备ID管理界面: 元数据管理界面: IoT设备固件信息维护界面: IoT设备维护确认界面: 配置下载界面: IoT设备列表界面: IoT设备ID维护界面: IoT设备历史数据查看界面: 论文链接:Using blockchain for registration and control of IoT devices 源码下载:iot-device-management 原文链接:基于以太坊区块链的物联网/IoT设备管理 — 汇智网

优秀的个人博客,低调大师

谷歌开源代码评审规范:好坏代码应该这样来判断

谷歌开源了一套代码评审(Code Review)规范,它是谷歌一套通用的工程实战指南,几乎涵盖了所有编程语言与各种类型的项目,这个规范代表了谷歌长期发展以来最佳实战经验的集合,谷歌表示希望开源项目或其他组织能够从这套规范中受益。 代码评审,也称代码复查,如果一个团队正在使用任务分支工作流,那么在所有代码编写完成并通过自动化测试之后,在代码合并之前,就会启动代码评审。通常的目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平,代码评审的所有工具和过程都是为了这个目的而构建的。代码评审对于敏捷团队来说的作用如下: 代码评审共享知识 通过代码评审可以更好的进行工作评估 代码评审能让你享受休假 通过代码评审指导新工程师 既然代码评审要进行众多的检查,那么找一个优秀的评审者就非常重要了。一般对于变更列表的不同部分,都会有不同的评审者进行细致的审查。当然如果是结对编程,且你的队友能进行高质量的代码评审,那么这样写的代码一般可以视为已经过评审了。此外,我们也可以进行面对面的评审,评审者会问开发者一些问题。 根据谷歌的项目描述,代码审核规范为两套独立文档组成,代表了两方面内容的最佳实践: 代码评审者的指南 CL 作者指南 在其中一些文档中使用了一些术语,如下: CL:表示“变更列表(changelist)”,意思是已经提交到版本控制或正在进行代码检查的一个独立的更改。其他组织通常称为“改变”或“补丁” LGTM:意思是“在我看来不错(Looks Good to Me)”,这是代码审阅者在批准 CL 时说的 接下来我们来看看两份文档分别的主要内容是什么: 1.代码评审者的指南——如何进行代码评审 代码评审者指南本来是一个完整的文档,但作者将其分为了 6 部分,读者可根据需要阅读。 代码评审标准 代码评审希望达到什么 在代码评审中导航 CL 代码评审的速度 如何写审查的评论 处理代码评审的回退 2.CL 作者指南——CL 作者批准代码的评审指南 CL 制定者指南包括一些进行代码评审的开发人员的最佳经验,这些经验能够帮助你更快、更高质量地完成评审。 写一个好的 CL 描述 构建一些小的 CL 如何处理代码评审者的评论 在谷歌看来,代码审核的目的是确保谷歌代码库的整体代码健康程度。谷歌将以下规则作为代码评审的标准: 一般来说,一旦 CL 能提升整体代码的健康程度,那么即使 CL 不完善,评审者同样也应该倾向于批准该列表。这是所有代码评审指南中的高级原则。它也会有一些限制,例如,如果 CL 添加了一些评审者不需要的特性,那么即使代码做了不错的设计,评审者也应该不予通过。 没有所谓的“完美”代码,只有更好的代码。评审人员不应要求作者在批准前对 CL 的每一小部分过分完美。相反,评审者应该权衡向前继续开发的需求和修改建议的重要性。评审者要求的是持续性地改进,而不是追求完美的代码。CL 作为一个整体,如果它能提升系统的可维护性、可读性和可理解性,那么就不要因为它还不完美而推迟数天或数周更新。 评审者应该经常留下一些评论,以表达能导致更好性能的做法。如果这些做法并不是非常重要的,那么需要加上前缀「Nit:」,从而令代码作者知道这些内容是可以忽略的。 评审指导 代码评审有一个很重要的功能,即教开发者一些开发经验,不论是语言、框架还是一般软件设计准则。留一些评论总会帮助开发者学习一些新的知识,共享知识也是改善系统代码健康状态的重要部分。当然,如果评审者的评论仅仅只是教育性的,且对于标准要求不那么重要,那么还是要加上前缀「Nit:」的。 评审准则 技术事实和数据要优先于观点与个人风格。 在代码风格方面,谷歌的代码风格指南是最权威的参考资料。任何不在风格指南中的代码习惯,都属于个人风格,但我们应该保证基本的风格和谷歌风格指南是一致的。 软件设计方面几乎不会有纯粹的风格问题,或者纯粹个人的习惯问题。很多风格问题都基于一些基本准测,它们并不是简单地由个人观点决定的。此外,如果代码作者通过数据或基本工程原则证明了几种方法同样有效,那么评审者应该接受作者的风格。否则,偏好的选择还是取决于软件设计的标准原则。 如果没有其它适用规则,那么评审者可以要求作者的偏好与当前代码库保持一致,同时不对整体的代码健康水平产生影响。 解决冲突 在代码评审中,如果发生了任何冲突,第一步应该是开发者和评审者基于本项目的 CL 指南达成共识。当达成共识非常困难时,开发者与评审者应该面对面地交流,而不只是通过审查中的评论来交流。如果开会讨论还解决不了,那么就要扩大会议了,我们可以通过与代码维护人员、工程经理等开发者的交流,达成最终的共识。 如果想要深入了解谷歌的这套代码审核规范,可查看该项目。地址如下: https://gitee.com/leonard/google-eng-practices 来源:机器之心

优秀的个人博客,低调大师

如何用web3j编译solidity智能合约源代码

通过solc编译器编译solidity代码到字节码。你可以参考solidity安装文档在本地安装编译器。 编写solidity代码运行: $ solc <contract>.sol --bin --abi --optimize -o <output-dir>/ bin和ABI编译器参数都需要充分利用web3j中的智能合约。 bin,输出包含十六进制编码的solidity二进制文件以提供交易请求。 ABI,输出一个solidity的应用程序二进制接口(ABI)文件,它详细描述了所有可公开访问的合约方法及其相关参数。这些细节和合约地址对于智能合约的交互是至关重要的。ABI文件也用于封装solidity的智能合约。 这里也有一个gas论证,用来提供智能合约所需gas的估计值,并用它的方法进行交易。 你可以通过solidity的浏览器项目Remix在浏览器中编写和编译solidity代码。使用solidity浏览器项目Remix IDE对于较小的智能合约来说是很好的,但是你遇到与较大的智能合约相关的问题。 还可以通过以太坊客户端(如geth和Parity)编译solidity代码,web3j中也支持使用JSON-RPC方法 eth_compileSolidity。然而,必须在客户端上安装solidity编译器,这样它才能正常工作。 还有更多的选择,请参阅官网文档中的相关章节。 原文《Java以太坊类库web3j官网中文翻译》中的: http://cw.hubwiz.com/card/c/web3j/1/12/6/ 另外推荐几个很受欢迎全网稀缺的互动教程: web3j,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。 python以太坊,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。 php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。

优秀的个人博客,低调大师

开源代码上新!6 份最新「Paper + Code」 | PaperDaily #17

[ 自然语言处理 ]DuReader: a Chinese Machine Reading Comprehension Dataset from Real-world Applications@zhangjun 推荐大型中文阅读理解数据集,工作来自百度。论文链接https://www.paperweekly.site/papers/1137代码链接https://github.com/baidu/DuReader TransNets - Learning to Transform for Recommendation@ccclyu 推荐引入了迁移学习的隐含表示层来减少 test dataset 的稀疏性。论文链接https://www.paperweekly.site/papers/1181代码链接https://github.com/rosecatherinek/TransNets [ 计算机视觉 ]Co-attending Free-form Regions and Detections with Multi-modal Multiplicative Feature Embedding for Visual Question Answering@xiaolu 推荐视觉问答任务(Viual Question Answering)是最近 2-3 年兴起的多模态任务。对于视觉问答任务,算法需要同时理解图片内容和语言信息,然后推理出正确的答案。目前常见的方法有多模态特征融合和以及视觉注意力机制。 已有的注意力机制主要有两类,一类是基于全图区域的注意力机制,一类是基于检测框区域的注意力机制,前者容易关注到物体的一部分,后者会缺少一些检测框。 本文第一次尝试将基于全图区域的与基于检测框区域的注意力机制融合在一个框架下,充分利用全图区域和检测框之间的互补信息;并且提出新的多模态特征融合方法,将问题特征、全图特征、检测框特征进行有效的融合。模型在 VQA 和 COCO-QA 两个主流数据集上实现了目前最好的结果。论文链接https://www.paperweekly.site/papers/1175代码链接https://github.com/lupantech/dual-mfa-vqa Image Crowd Counting Using Convolutional Neural Network and Markov Random Field@cornicione 推荐文章融合了 MRF 和 deep 网络,提出了一种统计静态图片中人数的方法。论文链接https://www.paperweekly.site/papers/1195代码链接https://github.com/hankong/crowd-counting [ 机器学习 ]Social Attention - Modeling Attention in Human Crowds@zk5580752 推荐本文是一篇基于 Social LSTM 的后续论文,Social LSTM 是李飞飞团队于 2016 年提出的行人路径预测方法。本文则在原文基础上改进了预测方式,不仅仅基于 RNN 模型,还引入了 Attention Model,使得预测更加精准和全面。论文链接https://www.paperweekly.site/papers/1115代码链接https://github.com/vvanirudh/social-lstm-tf Breaking the Softmax Bottleneck: A High-Rank RNN Language Model@paperweekly 推荐本文尝试改进了语言模型在预测 next token 时用 softmax 遇到的计算瓶颈。论文链接https://www.paperweekly.site/papers/1112代码链接https://github.com/zihangdai/mos 原文发布时间为:2017-11-23本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册