seal

宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)

老子叫甜甜 提交于 2020-11-28 08:38:56
原创 宋宝华 Linux阅码场 2019-12-09 共享单车、共享充电宝、共享雨伞,世间的共享有千万种,而我独爱共享内存。 早期的共享内存,着重于强调把同一片内存,map到多个进程的虚拟地址空间(在相应进程找到一个VMA区域),以便于CPU可以在各个进程访问到这片内存。 现阶段广泛应用于多媒体、Graphics领域的共享内存方式,某种意义上不再强调映射到进程虚拟地址空间的概念(那无非是为了让CPU访问),而更强调以某种“句柄”的形式,让大家知道某一片视频、图形图像数据的存在并可以借助此“句柄”来跨进程引用这片内存,让视频encoder、decoder、GPU等可以跨进程访问内存。所以不同进程用的加速硬件其实是不同的,他们更在乎的是可以通过一个handle拿到这片内存,而不再特别在乎CPU访问它的虚拟地址(当然仍然可以映射到进程的虚拟地址空间供CPU访问)。 只要内存的拷贝(memcpy)仍然是一个占据内存带宽、CPU利用率的消耗大户存在,共享内存作为Linux进程间通信、计算机系统里各个不同硬件组件通信的最高效方法,都将持续繁荣。关于内存拷贝会大多程度地占据CPU利用率,这个可以最简单地尝试拷贝1080P,帧率每秒60的电影画面,我保证你的系统的CPU,蛋会疼地不行。 我早就想系统地写一篇综述Linux里面各种共享内存方式的文章了,但是一直被带娃这个事业牵绊

lotus操作命令

こ雲淡風輕ζ 提交于 2020-11-19 02:53:15
1.加入测试网络 (1.)删除原有点数据 rm -rf ~/.lotus ~/.lotusstorage (2.)设置网关 IPFS_GATEWAY=" https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/ " (3.)启动守护进程 lotus daemon (4.)查看网络连接数 lotus net peers | wc -l (5.)同步数据 lotus sync wait (6.)创建钱包 lotus wallet new bls 示例:lotus wallet new bls t3wkzqsqsyo7fcyp7mll6tvhqp7wkynu7d2znksz4cq4qxhxnyl5q6wlwp2krp6rnk4l2lepsacsmnisvkcdna (7)获取测试币 https://lotus-faucet.kittyhawk.wtf/funds.html (8.)查看钱包余额 lotus wallet balance t3wkzqsqsyo7fcyp7mll6tvhqp7wkynu7d2znksz4cq4qxhxnyl5q6wlwp2krp6rnk4l2lepsacsmnisvkcdna (9.)发送filecoin给其他地址 lotus send <target> <amount> (10.

js对象可扩展性和属性的四个特性(上)

♀尐吖头ヾ 提交于 2020-08-17 19:21:22
js对象可扩展性和属性的四个特性(上) 一、前言 再次花时间回顾一下基础,毕竟要想楼建的好,地基就要牢固,嘻嘻! 在开始之前需要具备对prototype、__proto__、constructor有一定得了解,可以看看我之前写的一篇文章=> 通道 之前的用户管理系统已经差不多了,顺便加了个socket聊天的,但是由于做java后台的哪个朋友节奏跟不上来,所以即时聊天的后台就是node+socket-io写的,由于用户列表也涉及比较多的用户隐私问题,所以我设置了页面权限和接口权限,然后下面开放的几个账号就只能看到几个页面而已,哈哈。=> 通道 体验账号1:账号:“123456”。密码:“123456” 体验账号2:账号:“123123”。密码:“123123” 二、目录 对象属性的四个特性 对象的可扩展性 删除属性 检测属性 枚举属性 属性的getter和setter 三、对象属性的四个特性 1、定义 1.1、什么是数据属性? 数据属性就是我们平常看到的对象普通属性。 数据属性的特性为以下四种: 值(value) 可写性(writable) 可枚举性(enumerable) 可配置性(configurable) 1.2、什么是存储器属性? 存储器属性是由getter和setter定义的属性 存储器属性特性为以下四种: 读取(get) 写入(set) 可枚举性(enumerable)

Object构造函数的方法 之 Object.seal

依然范特西╮ 提交于 2020-08-12 08:39:56
Object.seal(obj) 封闭一个对象 obj 将要被密封的对象。 返回值 被密封的对象。 描述 通常,一个对象是可扩展的(可以添加新的属性)。密封一个对象会让这个对象变的不能添加新属性,且所有已有的属性 会变得不可配置。属性不可配置的效果就是不可删除,以及一个数据属性不能被重新定义成为访问器属性。但属性的值仍然可以被修改, 尝试删除一个密封对象的属性或者将某个密封对象的属性从数据属性转换为访问器属性。都会静默失败或者抛出 TypeError. 不会影响从原型链上继承的属性。但是__proto__属性得值也会不能修改。 示例 var obj = { prop: function () {}, foo: 'bar' } // 可以添加新属性。 // 可以删除和更改属性 obj.foo = 'baz' obj.lumpy = 'woof'; delete obj.prop; var o = Object.seal(obj) o === obj // true Object.isSealed(obj) // true // 仍然可以修改密封对象的属性值 obj.foo = 'quux' // 但是不能将属性从新定义为访问器属性。 // 反之亦然 Object.defineProperty(obj, 'foo', { get: function () { return 'a' }

IPFS挖矿必看:影响Filecoin挖矿收益的三大因素

你。 提交于 2020-08-07 16:28:07
随着Filecoin主网上线时间越来越近,越来越多的投资者涌进这个市场,Filecoin的投资收益也成为众多投资人关心的问题。在Filecoin挖矿中,影响投资收益的因素有哪些?具体会带来什么影响呢? 1、数据存储快慢。我们知道如何保证存储更多的真实数据,是选择挖矿服务商的重要参数,怎么才能存得快呢?提高计算性能,提高存储上链效率。这部分费用投入占比加大,会提升单T成本,从经济回报上计算与存储资源配比会存在一个均衡点。而且,计算资源投入过大,计算资源就会闲置或利用率不高。 2、挖矿服务商技术实力和服务稳定性。一方面,在同等硬件配置的条件下,不同的团队和技术之间,也会产生不同的结果。另一方面,同等的算力条件下,由于技术的代码优化和运维稳定性,也可以获取到超出平均水平的爆块奖励。这个不同就是各显神通,拼技术了。不同的算法、不同的底层代码优化、不同的运维稳定性,均会影响到产出,这里会涉及到sector封装时间、seal失败率等等一系列的监控指标。 3、挖矿价格、平台服务费。对于用户来讲,算力单价越低、平台服务费率越低,用户投资回报会越高。但现实情况是,市场上提供的产品定价、平台服务费率均各有高低。你会发现有些服务商产品定价高、服务费率低,有些服务商产品定价较低、服务费率高很多,用户很难在技术实力强的服务商中争取到一个各方面都有利的点。 总的来说,如果要获得较高的投资回报

【信息安全作业5】散列函数的应用及其安全性

馋奶兔 提交于 2020-05-06 00:17:52
目录 散列函数的具体应用。 结合生日攻击、以及2004、2005年王晓云教授有关MD5安全性和2017年google公司SHA-1的安全性,说明散列函数的安全性以及目前安全散列函数的发展。 结合md5算法中的选择前缀碰撞以及第二个链接中的helloworld.exe和goodbyworld.exe两个可执行文件的md5消息摘要值和两个文件的执行结果说明md5算法来验证软件完整性时可能出现的问题。 链接1: https://www.win.tue.nl/hashclash/ 链接2: http://www.win.tue.nl/hashclash/SoftIntCodeSign/ 1.散列函数的具体应用 1、承诺方案   一个承诺方案或一个位承诺方案允许一个用户承诺一个值而不揭示该值,同时允许用户在某个时刻揭示他所承诺的值。   实例:发送者Alice将她所承诺的值锁在一个箱子里面,将箱子给接收者Bob,当Bob执行了特定操作后,Alice将钥匙给Bob以打开箱子。这样既保证了Alice承诺的值不被改变,又保证了Bob在特定的操作结束前不能知道Alice所承诺的值。由此可见,比特承诺可以适用于双方互不信任的环境。 2、口令认证    通常口令认证不是以明文形式存储的,而是以摘要形式存储的。为了认证一个用户,将用户提供的口令的Hash值与存储的Hash值相比较,相同则认证通过

好程序员web前端教程之详解JavaScript严格模式

我的梦境 提交于 2020-05-01 20:51:35
  好程序员web前端教程之详解JavaScript严格模式,严格模式(Strict mode)是由ECMA-262规范定义的新兴JavaScript标准,发布于2009年12月第五版。旨在改善错误检查功能并且标识可能不会延续到未来JavaScript版本的脚本。ES5严格模式是限制性更强的JavaScript变体,它与常规JavaScript的语义不同,其分析更为严格。   目前,除了IE6-9,其它浏览器均已支持ES5严格模式。 一、严格模式的使用 严格模式 的使用很简单,只有在代码首部加入字符串 “use strict”。有两种应用场景,一种是全局模式,一种是局部模式。 1)全局模式 'use strict'//code 2)局部模式 将”use strict”放到函数内的第一行,如下 function() { "use strict"; //code} 二、严格模式下的执行限制 1)不使用var声明变量严格模式中将不通过 我们知道JS中,不使用var声明的变量默认转为全局变量。但在严格模式中将不允许,会报语法错误。 'use strict'g = 100 //错误 比如for循环 'use strict'for (i=0; i<5; i++) { //错误 console.log(i)} 2)任何使用’eval’的操作都会被禁止 'use strict'var obj =

同态加密入门教程

大兔子大兔子 提交于 2020-04-05 17:49:05
在这篇文章中,我们将了解同态加密的基本概念,介绍常用的同态加密开发库,学习同态加密应用开发的一般步骤,了解如何在Web应用中添加同态加密支持。 <!--more--> 区块链开发教程链接: 以太坊 | 比特币 | EOS | Tendermint | Hyperledger Fabric | Omni/USDT | Ripple 1、同态加密概述 同态加密改变了隐私保护的游戏规则,它允许直接操作加密数据而无需先进行解密。这一概念可以追溯到RSA加密 —— RSA也具备有限的同态加密功能。不过同态加密很长时间都局限在学术界,直到2009年Craig Gentry的论文发表后,才涌现了大量的同态加密库。 现在已经有很多可用的同态加密库了。下面列出了一些比较流行的同态加密开发包以及它们支持的方案类型,当然这个清单是不完整的: Microsoft SEAL: BFV, CKKS (C++) HElib: BGV (with GHS), CKKS (C++) PALISADE: BFV, BGV, CKKS, FHEW (C++) TFHE: Ring-variant of GSW (C++) HEAAN: CKKS (with bootstrapping) (C++) 为你的web'应用找到合适的同态加密开发包以及方案类型需要进行大量的研究工作: 这些不同的同态加密实现代码有什么区别?