全能鼠标键盘记录器(别忘了Windows自带的录屏软件,超好用)
全能鼠标键盘记录器文章列表:
- 1、别忘了Windows自带的录屏软件,超好用
- 2、2021 年 10 大无代码测试工具
- 3、Win102004系统新版本24个新功能,看这篇文章就够了
- 4、BNC公链 | 比特币与区块链核心技术笔记上
- 5、Windows技巧大全二
别忘了Windows自带的录屏软件,超好用
Windows平台上好用的录屏软件可不少,猿仔简直如数家珍,譬如老牌的KK录像机、 Bandicam、OBS Studio等等。不过,猿仔也要提醒大家,Windows 10系统上也自带了一个超好用的录屏软件,你不用再去下载第三方录屏软件啦。
1、使用 Win G 组合快捷键,打开Win10录屏功能,大家可以在录制游戏的时候,使用这个组合快捷键,在弹出的录制小框中,点击「是的,这是一个游戏」。
对,没错,因为Windows 10这个自带录屏软件是内置Xbox游戏平台的Xbox工具栏。当然,Win10 最新的版本比前期的版本丰富了不少功,可不止截图和录屏功能,还有电脑的性能、音频设置,Xbox 社交及成就等。当然此次主要介绍的是其录屏功能。
2、之后就出现了Win10录屏软件主界面了,直接点击“圆圈”进行录制视频,如下图所示,右边的“麦克风”标志则表示是否要开启电脑的麦克风进行录制。
3、录制后的视频默认保存在电脑的「视频」-「捕获」中,当然你可以通过设置修改路径位置。
如果设置把「将其记为游戏」勾选,后面再次开启录屏就不会有第一步的提示,直接开启录屏。还有其它选项都在“设置”里面调试,包括快捷方式、主题显示等等。
另外,Win10自带录屏键盘的快捷方式如下:
Windows 徽标键 G:打开游戏录制工具栏
Windows 徽标键 Alt G:录制最后若干时刻的游戏活动(您可以在“游戏录制工具栏”>“设置”中更改录制的时间量。)
Windows 徽标键 Alt R:开始/停止录制
Windows 徽标键 Alt Print Screen:拍摄您游戏的屏幕截图
Windows 徽标键 Alt T:显示/隐藏录制计时器
Windows 徽标键 Alt M:开始/停止麦克风录制
以上便是Windows 10自带的录屏软件,简单易用,大家别错过呦!
有的小伙伴可能会说那如果使用的是win7/8 有无自带的录屏软件呢?也是有的,不过录的可不是视频,只是一个步骤记录器,每点击一次鼠标,记录器就会做一次截屏,并以图片的形式保存下来。功能比较弱~
1、按下WIN R快捷键,然后输入psr.exe,打开问题步骤记录器。
2、现在就可以开始录屏操作了。点击开始录制,便处于录制状态,程序可以监视鼠标在屏幕上的操作并记录下来。
3、录制完毕后,点击右侧的小三角,选择设置,可以设置保存路径。选择好自己的保存路径点击确定即可。
所以使用Win 10以下版本系统的用户,猿仔建议还是使用第三方的录屏软件。好用的录屏软件不少,但是大多正版录屏软件都要收费,否则就只能试用几次又或者导出录制视频就会有水印,对吧?
当然了,Win 10自带录屏软件对桌面录制的支持并不友好,那么如果你需要到桌面录制,那么我推荐一款第三方免费录屏软件,「EV录屏」,目前官方是承诺基础的录屏功能功能是“永久免费”的,从软件从业者的角度讲,算是很良心了。当然其它一些白板功能、实时按键功能则是要收费,这个要看大家有无需求进行选择即可,一般来说只用它的免费录屏功能即可。单纯作为一款免费的录屏软件,很实用的。
2021 年 10 大无代码测试工具
随着技术进步,以及 DevOps 和 Agile (敏捷开发)的到来,软件测试行业正在见证着无数的变化。软件测试经历了从手动测试到记录和回放复杂测试工具,再到测试自动化,再到无代码自动化测试的漫长演进。
《2020-2021 年世界质量报告》指出,在将自动化测试应用于敏捷项目时,没有先进的编程知识和专业知识被认为是关键挑战之一。或许无代码测试工具是应对此挑战的希望。
此篇文章将带您了解 2021 年顶级无代码测试工具。但是,在开始之前,让我们了解无代码自动化测试的内容和原因。
什么是无代码自动化测试?
无代码自动化测试旨在不使用任何脚本的情况下执行自动化测试。对于 QA 工程师来说编写自动化脚本具有挑战性,而且需要用适当的编程语言编写测试代码费时费力。
使用无代码自动化测试,可以最大限度地减少重复测试用例的测试时间,而无需任何编码工作。市场上有许多无代码测试工具,它们包含一组内置功能,无需任何复杂的编码。一些重要的功能包括:
拖放界面
录制和回放
机器学习或人工智能技术的集成
低维护量
为什么要考虑无代码自动化测试?
执行无代码自动化测试并非完全无代码;在软件测试过程中实现无代码测试自动化也需要考虑如下原因:
无代码测试有助于团队的成本投入,能轻松应对测试。
无代码自动化测试工具增加了测试覆盖率。
借助无代码自动化,可轻松应付复杂的测试脚本的变更和管理。
无代码测试是自动化测试场景的快速方法。
无代码测试具有友好的用户界面。
无代码测试具有成本效益。
2021 年最佳无代码测试工具
让我们探索最流行的无代码测试工具,帮助 QA 专家踏上无代码测试自动化之旅!
1.Katalon Studio
Katalon Studio 被列为 2020 年顶级无代码测试工具之一。Katalon Studio可广泛适用桌面、移动、Web、API 等应用程序的测试。其特点是易于使用,最适合经验丰富的初级 QA 工程师。
Katalon 为测试专家和业务用户提供了可访问的界面。拖放命令、记录和回放等功能使其成为完美的无代码自动化测试工具。QA 工程师可以轻松导入外部测试库并允许该工具执行实施,从而避免从头开始构建框架。
核心特点:
需要最少的编程技能
支持 API、Web、桌面和移动自动化测试
带有内置的测试用例库、项目模板、对象存储库和关键字
支持著名的持续集成工具的原生插件
能够定位对象中的修改并因此创建测试
强大的录制和回放功能
全面而强大的报告能力
支持内置集成,如问题管理、通知和通信以及测试管理
2.LEAPWORK
LEAPWORK 是一个先进的基于云的、无代码的selenium 自动化测试平台。LEAPWORK支持多种形式的应用程序的测试,包括 SAP、Windows 和 Web。借助 LEAPWORK,可以让敏捷项目团队加快 QA 自动化测试程序的开发和实施。
该工具专为桌面应用程序和 Web 应用程序而设计,在构建时考虑到了整个软件开发团队。LEAPWORK 带有用于自动化的预定义构建块和默认库,可帮助 QA 团队提高生产力并节省时间。
核心特点:
能够在不同的测试用例中重用自动化流程
通过拖放构建块可视化流构建器
缩短 QA 团队学习曲线的无代码能力
支持跨浏览器测试和并行运行
与当前的 DevOps 工具集轻松集成
用于捕获测试步骤并自动运行这些捕获的智能记录器
能够管理海量数据并支持各种数据源
3. Ranorex Studio
Ranorex Studio 是一种通用且最受欢迎的无代码测试工具,适用于专业人士和初学者。Ranorex Studio 可以自动化测试移动、基于 Web 和桌面应用程序,而无需脚本语言来自动化应用程序。Ranorex 主要使用 C# 和 VB.NET 等编程语言。
可拖放用户界面对象、捕获和重放,也可使用代码模块自动工具来进行回归测试。Ranorex 还允许测试人员生成可维护且有效的模块化自动化脚本,而无需考虑编程知识。Ranorex 核心 API 与 Se (selenium) WebDriver 合并;因此,大多数人员可以轻松在 Selenium Grid 上进行跨浏览器测试。
核心特点:
跨平台测试,移动、Web 和桌面环境
记录和重放用户的通信以生成可重用的脚本,可以使用其动作编辑器进行修改
测试脚本可以在特定测试用例的命令之间运行
RanoreXPath 技术可以识别应用程序的UI组件
独家监视引擎可跟踪屏幕上用户界面组件的描述
将图像与直接上传软件中的可接受图像进行比较和确认
与 Azure DevOps、JIRA、Bugzilla、TestRail、Git、Jenkins 等集成,因此可以轻松构建完整的自动化测试工具链
4.TestCraft
这是最令人佩服的无代码测试工具之一,TestCraft作为 E2E(端到端)测试自动化平台引入,用于连续和回归测试。同样具有具有记录和回放功能,该工具还提供了测试脚本,其中包含事先编码的输入,之后必须进行修改。调整一些代码可能会破坏测试脚本。
因此,智能绑定被称为智能组件定位器,可以立即捕获多个属性,如位置、ID、文本大小或值。这些属性也可在运行期间弹出以进行修改。
核心特点:
通过在应用程序准备之前生成测试场景来提供敏捷性
支持多数据集并行实现
立即绑定以适应大多数应用程序更改
流和元素可以跨场景重用。
每个测试操作的智能分析和报告
大量内置集成,如问题管理、测试管理、通知和通信
5.Selenium IDE
Selenium IDE 自动化工具允许使用 Selenium 提供的所有内容自动化 Web 应用程序,而无需编写代码。Selenium IDE 使用记录和回放功能来支持无代码自动化测试。
Selenium IDE 可以通过插件进行扩展。它们将新命令引入 IDE 或与其他服务合并。Selenium IDE是一种易于使用、无代码的自动化测试工具,它提供即时反馈,并允许您使用SIDE(或Selenium IDE命令行)运行程序,在任何操作系统 浏览器组合上运行测试。这就是无代码测试工具变得流行的原因,因为它们减轻了测试人员的头痛和关键挑战。
核心特点:
运行特定测试或计算一组测试的整个测试套件
设置断点和暂停豁免使得从 IDE 调试测试变得简单而轻松
用于浏览器的自动化测试,使用 Selenium SIDE 运行器可实现跨浏览器测试
支持多个用于创建循环、插入等待、上升断言等的命令
拥有一组通用的命令,可控制流结构。比如,if..else、if 等命令有助于从 IDE 执行条件测试
run 命令允许测试人员在另一个测试套件(或测试用例)中重用特定的测试用例
支持一组可执行测试的 Selenese 命令(或一系列 Se 命令)
测试用例的无故障比较和修改:通过 IDE 生成的测试脚本存储为 JSON 文件,以便于比较、更改和检查测试
6.CloudQA
CloudQA 是一个强大的基于云的集成自动
化测试平台,旨在针对多个浏览器并行地构建、管理和实施测试。CloudQA 不仅仅是一个记录和回放工具,它还为用户提供了一个集成的报告工具,用于快速生成和安排回归测试套件。
此工具提供了与 Selenium 相同的功能,无需高级编程知识。记录的测试被放入可管理的模块。即使是相同的测试也可以重复用于负载测试、回归测试和综合监控。
核心特点:
无需更改任何代码即可提高综合检查的可重用性
在不同浏览器(例如 Mozilla Firefox、Internet Explorer、Chrome)上流畅地检查多个数据集
的能力,可维持数千次测试
智能记录和回放测试,每一步后都有截图
安排和执行无人值守的测试
支持数据驱动的测试
可以通过 Slack、Asana、GitHub、JIRA 等第三方集成软件来管理错误
7.Perfecto
Perfecto 工具深受大型团队的信赖,是一款基于云的自动化测试解决方案,适用于移动和Web 自动化测试的解决方案。Perfecto提供连任错误分类的完整 AI 分析,用于优化持续集成/持续交付管道。还为 Web 应用程序和移动测试提供了多种受支持的操作系统、浏览器和设备组合。
在 Perfecto 中,强大的 AI 驱动绑定占应用程序更改的 97.4%。其自我修复特性允许测试脚本运行而无需任何持续的维护或中断。其基于云的解决方案旨在确保无论出现任何市场问题,例如新的 Android 或 iOS 版本更新、新的浏览器或手机发布,它们都能正常运行。尽管其许多功能复杂,但一旦上手将为团队增加复杂测试的可能性。
核心特点:
智能分析和报告
AI驱动的测试维护能力
增加测试复用性
调试能力和测试管理
在多个 Android 小工具上无限可扩展地并行执行
加快测试程序并加快开发人员和质量分析师之间的反馈
8.AccelQ
AccelQ 是一种基于人工智能的无代码自动化测试工具,满足成为完美无代码 selenium 自动化工具的所有标准。AccelQ 可以以最少的精力和时间自动化桌面、Web、大型机和其他应用程序,从而加快测试周期。与其他无代码测试工具不同,它的自动修复特性和自然编码使其在竞争中与其他测试工具截然不同。
凭借简单且快速开发的用户界面,使其与现有流行的 DevOps 和优质工具链相结合。可扩展和开源、自然语言编程、自动测试生成和智能元素浏览器等特性使其在市场中受到欢迎。
核心特点:
高度安全和可扩展
能够在类似的流程中轻松实现用户界面和 API 的自动化
为出色的视觉测试设计创建应用程序蓝图
使用嵌入式框架快速开发和最少维护
用于生成测试场景的投影和路径分析特征
通过数据流和模型 UI 最大化测试覆盖率
持续集成就绪并允许冲刺自动化
9. Sikuli
Sikuli 使用图像识别技术运行自动化图形用户界面测试,以识别和管理图形 UI 组件。它在使用 Se Webdriver 时也很有用,特别是在自动化 Java 小程序和 Flash 对象时,同时 IDE 脚本增加了它们的功能。
与其他无代码测试工具相比,在运行时需要一个可见的应用程序图形用户界面。因此,当图形用户界面多次更改时,Sikuli 无法同时执行和维护多个脚本。
核心特点:
支持多种平台,如 Linux、Mac 和 Windows
在像素级别记录图像以进行用户界面验证。
在不同的设备和模拟器上自动测试。
与 Se (Selenium) 结合以实现桌面应用程序的自动化
记录和回放各种动作,例如鼠标动作和拖放
10.Mabl
Mabl 是为 CI/CD 构建的智能无代码测试自动化工具。由于 Selenium WebDriver、Selenium IDE 以及其他测试自动化工具等广泛的 Web 浏览器自动化覆盖范围,它将自动化 E2E 测试很好地集成到完整的 SDLC(软件开发生命周期)中。
通过切换到 Mabl,用户可以在所有主流浏览器上并行执行非 SDETS 稳健测试。这有助于消除视觉设计、用户体验测试和性能测试的障碍。通过在云中进行管理,这最终会减少物理工作量、托管基础设施以及自动化测试的测试用例维护。
核心特点:
新颖且先进的用户界面和设计方法
Mabl Trainer 浏览器插件可在几分钟内针对应用程序进行功能测试设置。
将测试输出更改为几个事项(如 BigQuery、JIRA)
可以通过 BigQuery、JIRA 和电子邮件导出可操作的见解。
自动修复特性使整个测试保持稳定。
使用 Jenkins、Slack、Bamboo、JIRA 等工具轻松管理错误。
附加工具:QMetry Automation Studio
QMetry Automation Studio 是一个自动化平台,可帮助组织无缝地完成端到端的测试自动化。在数字化转型时代,QMetry利用多种语言和框架来提高其适应性。
它支持手动用户或初学者的部分无代码自动化,以及自动化工程师的实现脚本扩展和定制。
结论
无代码测试工具的过多好处超过了自动化测试的负面影响。他们最终在编码功能方面节省了大量费用和时间,并通过有利的测试覆盖率来提高质量。但是,这些工具需要更多的文档、功能和模块化。总之,软件测试人员更喜欢将无代码测试自动化作为敏捷开发过程的关键组件。这不会完全取代手动自动化测试,但会加速他们的工作。无代码测试工具在2021年以其独特的优势和需求仍在不断成熟和壮大中。
Win102004系统新版本24个新功能,看这篇文章就够了
今年首个Windows 10正式版更新于近日上架MSDN,版本号最终确定为Build 19041.208(v2004),这是一个RTM版本,也就是送到OEM厂商压盘的正式版本,向用户正式推送的时候不会再有什么功能变化。
按照微软的一贯逻辑,上半年更新多以添加功能为主,下半年更新则以修复Bug为主。因此2004版其实是增加了很多新的变化的。出于稳定性考虑,此次微软并未大张旗鼓地宣传,而是选择悄悄上架到MSDN。估计针对普通用户的大规模推送,怎么着也要等到5月28日以后了,这就来向大家介绍一下它有何新特性!
1、Win10不再“卡”
Win10 v1903加入了一项增强型搜索,使得Win10的搜索能力大大加强。但同时也出现了CPU占比高、磁盘占用飙升等问题。
Win10 v2004引入了一项全新的硬盘负载检测机制,能够自动识别硬盘高峰使用时间,暂停或减缓Windows索引器工作。最直观一个表现,就是之前那种莫名其妙的硬盘灯狂亮现象将大为减少,尤其对那些暂时还没升级到SSD的机械硬盘用户来说,应该是个好消息。
2、搜索面板小变化
搜索面板增加了一些新元素,最明显的就是“发生了什么”和“推荐”两个版块。其中“发生了什么”显示的是疫情通报,后续估计会走热点新闻的套路。而“推荐”则是自家的Chromium版Edge,当然不排除会有其他软件加入。
值得一提的是,Win10的这个疫情通报整体设计可圈可点,采用的是数据 地图的展示方式,数据点大小直接代表了确诊人数多少,非常直观。默认会显示当前用户所处国家,当然你也可以手动选择其他国家的数据。
3、新版小娜Cortana
Cortana变化明显,增加了很多对话逻辑,很多操作已经不像老版那样,动不动就要打开浏览器了。新界面采用的是分离式设计,用户可以像拖拽窗口一样,将小娜拖拽到屏幕上的任意位置。除此之外,全新小娜还增加了夜间模式支持,而在此之前……是不行的!
目前这一版本仅限于美国,如果你的区域选择不是“美国”,同时默认语言也不是“英语”的话,只能看到如下这个提示。当然和其他手机语音助理相比,现阶段的小娜依旧“很傻”!so,大家也不必过分眼气了。
4、开始菜单UI
Win10 v2004版并未加入传闻中的新版开始菜单,但UI配色已经有所改变。当你将微软Office组件固定到开始菜单时,会发现原本的图标底色已经不复存在,转而采用一种统一的黑灰调底色。特别是在配合全新的立体式图标时,整体视觉感更加协调。
5、任务管理器新增“磁盘类型”
Win10 v2004在”任务管理器-性能”标签下,新增加了磁盘类型显示(HDD/SSD),方便用户直观地识别硬盘类型。
6、显示GPU温度
除了磁盘类型以外,GPU温度也是新版任务管理器的一个看点,能够直接给出显卡工作温度。不过目前这项功能覆盖还不很全面,AMD及集成显卡都不支持。即便是NV系的独立显卡,也需要对显卡型号、驱动版本、WDDM(需要升级到v2.4以上版本,通过Dxdiag查看)拥有很明确的要求。
7、安全模式新增Windows Hello支持
Win10 v2004优化了无密码登录体验,在“设置-账户-登录选项”标签下,可以看到新增加的“需要通过Windows Hello登录Microsoft账户”的选项。这项功能可让用户根据自身情况,决定是否启用Windows Hello(指纹、面部、虹膜、Pin等)来登录Win10系统。此外安全模式也首次支持Windows Hello。
8、XBOX Bar新增社交面板
XBOX Bar新增加了社交面板,可以让用户在游戏之余,更方便地与好友沟通。此外新增加的“小组件商店”也算一个亮点,能够像应用商店一样自由下载组件。
9、虚拟桌面重命名
虚拟桌面支持重命名,方便用户更直观地安排不同桌面任务,同时右键菜单也将同步这一变化,操作逻辑更加清晰。
10、“UWP设置”增加光标速度
“控制面板”与“设置”的融合,直到今天也没有完成。在Win10 v2004的“设置-设备-鼠标”中,你会发现一项新增加的“光标速度”,其实就是之前控制面板里的“指针移动速度”
11、新版记事本
Win10 v2004采用了一套全新的记事本组件,和之前版本相比,新记事本提供了字体调节、行列位置标识、一键搜索、UTF8编码、未保存提醒(*)等功能。甚至可以让用户通过“设置-应用-应用和功能-可选功能”,自由卸载这一组件。换言之,如今的记事本已经彻彻底底,由原来的内置组件变成一款功能插件,随用随装!
12、蓝牙
Win10 v2004对原有蓝牙连接界面进行改造,新界面让连接更加简单快捷。除了通过快捷面板连接以外,也支持从通知中心进行连接。
13、磁盘清理
磁盘清理很长时间都是“强迫症”用户的必选功能,随着Win10“存储感知”一点点完善,“磁盘清理”的点开率也越来越低。在此次Win10 v2004版中,微软对其中一个关键问题进行了更新——将“下载文件夹”排除出默认清理列表,防止用户误删重要文件。
14、完整版Linux子系统
从Win10 v2004开始,微软开始附带适用于Linux 2的Windows子系统(WSL2)。新架构采用完整的Linux内核,可以向开发人员提供了更快的文件系统性能及开发体验。后续微软还会将其加入自动更新,这样就可以让Windows Linux子系统时刻保持最新状态。
15、游戏方面改进
Win10 v2004也优化了游戏方面的表现,通过提高多显示器刷新率,有效杜绝两台显示器之间因为移动窗口而导致的卡顿(WDDM 2.7)。同时全新的DirectX 12 Ultimate,还引入光线追踪Raytracing 1.1支持。允许游戏引擎根据渲染需要,加载光线跟踪着色器(非预先定义),以便更高效地利用显卡资源,提高帧率。
16、网络面板
网络面板类似于之前的Windows Hello,将多个页面整合到一起,一方面可以节省空间,另一方面整个页面也将变得更加一目了然。
17、听写支持更多语言
“听写”(Win H)支持更多语言,除了默认的中文和英语(美国)之外,现在还支持英语(加拿大)、英语(英国)、英语(澳大利亚)、英语(印度)、法语(法国)、法语(加拿大)、德语(德国)、意大利语(意大利)、西班牙语(西班牙)、西班牙语(墨西哥)、葡萄牙语(巴西)等多国语言。此外“语言”设置面板也有变化,更直观也便于操作了。
18、未关闭UWP应用重启自动启动
macOS有一项功能,可以在重启系统后,自动启动之前没有关闭过的应用,Win10 v2004加入了这项功能。
在“设置-账户-登录选项”中,可以看到两个新增加的选项,分别对应于“重启UWP应用“(注销时自动保存可重启的应用,并在登录后重启这些应用)和”重启桌面程序“(更新或重启后,使用我的登录信息自动完成设备设置)。功能开启后,Win10会在注销、重启Windows系统时,自动启动之前没有关闭过的程序,以方便用户快速接续之前的工作。
19、更新限流
Win10更新会占用大量的时间与带宽,这对于移动端用户并不是什么好事。之前老版Win10为了解决这一问题,特意在“设置-传递优化-高级选项“中加入一项流量上限设置,一旦流量达到上限,即会自动暂停更新下载。
Win10 v2004在原有百分比限流基础上,又增加了一个绝对值限制。用户可以直接输入带宽上限(Mbps),以便适合更多的操作环境。
20、PUA保护
Win10 v2004新增一项安全设置——不受欢迎程序(PUA),这项新功能位于“安全中心-应用和浏览器控制-基于声誉的保护-阻止可能不需要的应用”中。开启后,Windows会自动检测并阻止广告软件、加密币挖矿程序、捆绑垃圾程序的运行,此外浏览器下载时也会扫描。
21、沙盒更新
“沙盒”(Windows Sandbox)是Win10自带的一套简易虚拟机,可以为用户提供一个安全可靠的模拟测试环境。Win10 v2004对沙盒进行更新,新沙盒拥有更为强大的兼容性能,可以直接使用宿主机音响及麦克设备。同时2004版还增加了两套全新的快捷键,分别是:Ctrl Alt Pause(最大化/还原窗口)和Shift Alt Home(调出任务管理器)。
22、更多内置组件可卸载
在Win10 v2004中,类似Windows Media Player、Microsoft画图、Windows传真和扫描等一些过时模块,已经在“设置-应用-应用和功能-可选功能”中卸载。此外类似步骤记录器、无线显示器、WordPad、Windows Hello人脸这些日常点击率不高的模块,也能根据需要删除。
23、云下载
传统系统安装,需要准备系统镜像(.iso)、启动U盘等设备,对于普通用户来说并不友好。Win10 v2004增加了一项云下载(云安装)功能,可以自动从云端下载最新的Win10安装镜像,以完成系统安装。整个过程和之前的系统重置非常相似,首先点击“设置-恢复-重置此电脑”,然后就可以在二级页面看到这项新增加的功能了。不过由于整个过程要下载一套Win10镜像,因此要求硬盘至少要预留4GB以上空闲空间。
24、不再提供32位系统支持
新版Win10在硬件兼容上与旧版差距不大,但新增加了包括Ryzen 4000(AMD)在内的新CPU支持。不过从这个版本开始,微软将不再向OEM厂商及开发者提供32位Win10系统,这也就意味着,Win10从这一代开始将正式步入全64位时代。当然出于其他方面的考虑,零售版32位还在支持之中。但最终32位CPU将不再得到厂商支持,从而退出桌面历史平台。
写在最后
除了上面提到的这些改变以外,Win10 v2004 RTM也有一些值得我们关注的细节。首先Chromium版Edge并未出现在新版Win10中,而是需要用户手工下载。其次内置组件还是旧版居多,包括很多已经使用新图标很久的模块,装好Win10 v2004后依旧需要进入应用商店手工更新一回。再有就是之前泄露过的新版计算器(带有“绘图模式”)和新版日历,也没有在新版中出现。
当然不可否认,微软此次推出的Win10 v2004在整体表现上还是不错的,变化多、流畅度也高。经过这几天的使用,也没有发现什么明显的Bug。不过考虑到著名的“Win10更新定律”,依旧不推荐主力机用户现在就来更新这个版本。如果后续两三周内没有爆出大的问题,大家就可以放心大胆地尝鲜了!
BNC公链 | 比特币与区块链核心技术笔记上
为了更好的理解比特币和区块链技术,最近整理了部分比特币与区块链核心技术笔记。
一:一些需要知道的术语。
比特币:比特币(Bitcoin,缩写BTC)是一种总量恒定2100万的数字货币,和互联网一样具有去中心化、全球化、匿名性等特性。向地球另一端转账比特币,就像发送电子邮件一样简单,低成本,无任何限制。比特币因此被用于跨境贸易、支付、汇款等领域。
比特币地址:比特币地址可以理解为你的账户身份id,或者可以比喻为银行卡号(例如:12bZrnSvmEusm3KmshobPJiNcZEkJcXGNr)由一串字符和数字组成,以阿拉伯数字“1”开头,不过这数字由密码算法产生。
区块:一个区块就是若干交易数据的集合,它会被标记上时间戳和之前一个区块的独特标记。区块头经过哈希运算后会生成一份工作量证明,从而验证区块中的交易。有效的区块经过全网络的共识后会被追加到主区块链中。
区块链是一串通过验证的区块,当中的每一个区块都与上一个相连,一直连到创世区块。
交易确认:当一项交易被区块收录时,我们可以说它有一次确认。矿工们在此区块之后每再产生一个区块,此项交易的确认数就再加一。当确认数达到六及以上时,通常认为这笔交易比较安全并难以逆转。
交易:简单地说,交易指把比特币从一个地址转到另一个地址。更准确地说,一笔“交易”指一个经过签名运算的,表达价值转移的数据结构。每一笔“交易”都经过比特币网络传输,由矿工节点收集并封包至区块中,永久保存在区块链某处。
难度:整个网络会通过调整“难度”这个变量来控制生成工作量证明所需要的计算力。
难度目标:使整个网络的计算力大致每10分钟产生一个区块所需要的难度数值即为难度目标。
难度调整:整个网络每产生2,106个区块后会根据之前2,106个区块的算力进行难度调整。
矿工费:交易的发起者通常会向网络缴纳一笔矿工费,用以处理这笔交易。大多数的交易需要0.5毫比特币的矿工费。
矿工:指通过不断重复哈希运算来产生工作量证明的各网络节点。
钱包:指保存比特币地址和私钥的软件,可以用它来接受、发送、储存你的比特币。、
比特币网络:是一个由若干节点组成的用以广播交易信息和数据区块的P2P网络。
二、基本的介绍
什么是比特币
不同于传统货币,比特币是完全虚拟的。它不但没有实体,本质上也没有一种虚拟物品代表比特币。
比特币隐含在收发币的转账记录中。用户只要有证明其控制权的密钥,用密钥解锁,就可以发送比特币。
这些密钥通常存储在计算机的数字钱包里。拥有密钥是使用比特币的唯一条件,这让控制权完全掌握在每个人手中。
本质上,挖矿把央行的货币发行和结算功能进行分布式,用全球化的算力竞争来取代对中央发行机构的需求。
比特币系统包含调节挖矿难度的协议。挖矿——在比特币网络中成功写入一个区块交易——的难度是动态调整的,保证不管有多少矿工(多少CPU)挖矿,平均每10分钟只有一个矿工成功。
比特币协议还规定,每四年新币的开采量减半,同时限制比特币的最终开采总量为2,100万枚。这样,流通中的比特币数量非常接近一条曲线,并将在2140年比特币将达到2,100万枚。由于比特币的开采速度随时间递减,从长期来看,比特币是一种通货紧缩货币。此外,不能通过“印刷”新比特币来实现“通货膨胀”。
比特币由这些构成:
一个去中心化的点对点网络(比特币协议)
一个公共的交易账簿(区块链)
一个去中心化的数学的和确定性的货币发行(分布式挖矿)
一个去中心化的交易验证系统(交易脚本)
比特币网络
比特币钱包-客户端
完整客户端:
一个完整客户端,或称“全节点”,是存储所有比特币交易的整个交易历史(由每一个用户完成的每一笔交易,曾经所有的每一笔)的客户端,管理用户的钱包,并可以在比特币网络上直接开始交易。
类似于一个独立的电子邮件服务器,因为它处理着协议的各个方面,而不依赖于任何其它的服务器或第三方服务。
完整客户端目前需要大概145g端空间来存储全部区块数据。
来源:https://bitcoin.org/en/download
轻量级客户端
一个轻量级客户端存储用户的钱包,但需要依赖第三方服务器才能进行比特币交易,才能接入比特币网络。
轻量级客户端不保存所有交易的完整副本,因此必须信赖第三方的服务器来获取交易确认。
这就类似于一个独立的电子邮件客户端,能够通过邮箱服务器来访问一个邮箱,因为它在网络交流中依赖于一个第三方服务器。
在线客户端
在线客户端通过网页浏览器在第三方服务器上访问和储存该用户的钱包。
这类似于在线邮件,因为它完全依赖于第三方服务器。
移动客户端
智能手机的移动客户端,例如基于Android系统,既可以作完整客户端运行,也可作为轻量级客户端或在线客户端。
一些移动客户端是与在线客户端或桌面客户端同步的,提供跨多个设备但有一个共同的资金源的多平台钱包。
比特币客户端的选择,取决于用户想要管理资金的数目。一个完整的客户端将为用户提供最高级的管理和独立性。这样钱包的备份和安全责任就转移到了用户身上。另一种选择是在线客户端,其设置和使用是最简单的,但在线客户端的取舍还在于需衡量第三方介入的风险,因为安全性和控制权是由用户和网页服务商所共同承担的。如果一个在线钱包服务遭受了损失,就像已发生过的那样,用户们可能会失去所有的资金。反过来看,如果用户的一个完整客户端没有进行适当的备份,他们可能会因为电脑的操作失误而丢失他们的资金。
三、比特币基本原理
概述
从千分之一比特币(1毫比特币)到一亿分之一比特币(1聪比特币),比特币网络可以处理任意小额交易。在本书中,我们将用“比特币”这个术语来表示任意数量的比特币货币,从最小单元(1聪)到可被挖出的所有比特币总数(21,000,000)。
交易包含了每一笔被转移的比特币(输入)的所有权证明,它以所有者的数字签名形式存在,并可以被任何人独立验证。
在比特币术语中,“消费”指的是签署一笔交易:转移一笔以前交易的比特币给以比特币地址所标识的新所有者。
比特币交易
交易告知全网:比特币的持有者已授权把比特币转帐给其他人。而新持有者能够再次授权,转移给该比特币所有权链中的其他人,产生另一笔交易来花掉这些比特币,后面的持有者在花费比特币也是用类似的方式。
交易形式
最常见的交易形式是从一个地址到另一个地址的简单支付,这种交易也常常包含给支付者的“找零”
另一种常见的交易形式是集合多个输入到一个输出的模式。这相当于现实生活中将很多硬币和纸币零钱兑换为一个大额面钞。像这样的交易有时由钱包应用产生来清理许多在支付过程收到的小数额的找零。
最后一种在比特币账簿中常见的交易形式是将一个输入分配给多个输出,即多个接收者(如图2-7)的交易。这类交易有时被商业实体用作分配资金,例如给多个雇员发工资的情形。
交易的构建。比特币交易建立和签名时不用连接比特币网络。只有在执行交易时才需要将交易发送到网络。
完整客户端占太大的硬盘空间,所以大多数钱包使用轻量级的客户端,只保存用户自己的未消费输出。如果钱包客户端没有某一未消费交易输出,它可以通过不同的服务者提供的各种API或完整索引节点的JSON PRC API从比特币网络中拿到这一交易信息。
curl 'https://blockchain.info/unspent?active=1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK'
返回: { "unspent_outputs":[
{ "tx_hash":"f2c245c38672a5d8fba5a5caa44dcef277a52e916a0603272f91286f2b052706", "tx_hash_big_endian":"0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2", "tx_index":47854970, "tx_output_n": 1, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 8450000, "value_hex": "0080efd0", "confirmations":217419 },
{ "tx_hash":"0365fdc169b964ea5ad3219e12747e9478418fdc8abed2f5fe6d0205c96def29", "tx_hash_big_endian":"29ef6dc905026dfef5d2be8adc8f4178947e74129e21d35aea64b969c1fd6503", "tx_index":71083209, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 100000, "value_hex": "0186a0", "confirmations":161802 },
{ "tx_hash":"d9717f774daab8d3dd470853204394c82e3c01097479575d6d2ee97d7b3bdfa1", "tx_hash_big_endian":"a1df3b7b7de92e6d5d57797409013c2ec8944320530847ddd3b8aa4d777f71d9", "tx_index":75974855, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 1000000, "value_hex": "0f4240", "confirmations":153961 },
{ "tx_hash":"3f1df69df90d097981ca9c97ad8b6a32daed345565a433f8c8e472b2dab2ac79", "tx_hash_big_endian":"79acb2dab272e4c8f833a4655534edda326a8bad979cca8179090df99df61d3f", "tx_index":79887883, "tx_output_n": 1, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 719787, "value_hex": "0afbab", "confirmations":148074 },
{ "tx_hash":"417bdb6f5db3e830407f94d1a82d1667e738b19da3679b7263ebfb913394efdd", "tx_hash_big_endian":"ddef943391fbeb63729b67a39db138e767162da8d1947f4030e8b35d6fdb7b41", "tx_index":170905487, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":67883 },
{ "tx_hash":"d049d6039f9d1cb2625bac294d7465b4b1077bd5bc0e30e01e02b184db524c1f", "tx_hash_big_endian":"1f4c52db84b1021ee0300ebcd57b07b1b465744d29ac5b62b21c9d9f03d649d0", "tx_index":174630347, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 11100, "value_hex": "2b5c", "confirmations":65345 },
{ "tx_hash":"b8a6470c7a38d0983effed00a3f75c74ba371da1387352f35d1df155851ea8d1", "tx_hash_big_endian":"d1a81e8555f11d5df3527338a11d37ba745cf7a300edff3e98d0387a0c47a6b8", "tx_index":175949432, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":64439 },
{ "tx_hash":"a2b9570e26e3991fc999c42dc8c6eea7b06514b61814da1a71b56c6ba2ae651c", "tx_hash_big_endian":"1c65aea26b6cb5711ada1418b61465b0a7eec6c82dc499c91f99e3260e57b9a2", "tx_index":175955161, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":64430 },
{ "tx_hash":"05230cb8cd8c6a3788ed41433dfdd68a1a608cc8feb3bc1c29d97ce84bec070e", "tx_hash_big_endian":"0e07ec4be87cd9291cbcb3fec88c601a8ad6fd3d4341ed88376a8ccdb80c2305", "tx_index":175955664, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":64430 }
] }curl 'https://blockchain.info/unspent?active=1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK'
返回: { "unspent_outputscurl 'https://blockchain.info/unspent?active=1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK'
返回: { "unspent_outputs":[
{ "tx_hash":"f2c245c38672a5d8fba5a5caa44dcef277a52e916a0603272f91286f2b052706", "tx_hash_big_endian":"0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2", "tx_index":47854970, "tx_output_n": 1, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 8450000, "value_hex": "0080efd0", "confirmations":217419 },
{ "tx_hash":"0365fdc169b964ea5ad3219e12747e9478418fdc8abed2f5fe6d0205c96def29", "tx_hash_big_endian":"29ef6dc905026dfef5d2be8adc8f4178947e74129e21d35aea64b969c1fd6503", "tx_index":71083209, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 100000, "value_hex": "0186a0", "confirmations":161802 },
{ "tx_hash":"d9717f774daab8d3dd470853204394c82e3c01097479575d6d2ee97d7b3bdfa1", "tx_hash_big_endian":"a1df3b7b7de92e6d5d57797409013c2ec8944320530847ddd3b8aa4d777f71d9", "tx_index":75974855, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 1000000, "value_hex": "0f4240", "confirmations":153961 },
{ "tx_hash":"3f1df69df90d097981ca9c97ad8b6a32daed345565a433f8c8e472b2dab2ac79", "tx_hash_big_endian":"79acb2dab272e4c8f833a4655534edda326a8bad979cca8179090df99df61d3f", "tx_index":79887883, "tx_output_n": 1, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 719787, "value_hex": "0afbab", "confirmations":148074 },
{ "tx_hash":"417bdb6f5db3e830407f94d1a82d1667e738b19da3679b7263ebfb913394efdd", "tx_hash_big_endian":"ddef943391fbeb63729b67a39db138e767162da8d1947f4030e8b35d6fdb7b41", "tx_index":170905487, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":67883 },
{ "tx_hash":"d049d6039f9d1cb2625bac294d7465b4b1077bd5bc0e30e01e02b184db524c1f", "tx_hash_big_endian":"1f4c52db84b1021ee0300ebcd57b07b1b465744d29ac5b62b21c9d9f03d649d0", "tx_index":174630347, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 11100, "value_hex": "2b5c", "confirmations":65345 },
{ "tx_hash":"b8a6470c7a38d0983effed00a3f75c74ba371da1387352f35d1df155851ea8d1", "tx_hash_big_endian":"d1a81e8555f11d5df3527338a11d37ba745cf7a300edff3e98d0387a0c47a6b8", "tx_index":175949432, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":64439 },
{ "tx_hash":"a2b9570e26e3991fc999c42dc8c6eea7b06514b61814da1a71b56c6ba2ae651c", "tx_hash_big_endian":"1c65aea26b6cb5711ada1418b61465b0a7eec6c82dc499c91f99e3260e57b9a2", "tx_index":175955161, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":64430 },
{ "tx_hash":"05230cb8cd8c6a3788ed41433dfdd68a1a608cc8feb3bc1c29d97ce84bec070e", "tx_hash_big_endian":"0e07ec4be87cd9291cbcb3fec88c601a8ad6fd3d4341ed88376a8ccdb80c2305", "tx_index":175955664, "tx_output_n": 0, "script":"76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac", "value": 10000, "value_hex": "2710", "confirmations":64430 }
] }
创建交易输出
交易的输出会被创建成为一个包含这笔数额的脚本的形式,只能被引入这个脚本的一个解答后才能兑换。
简单点说就是,支付方的交易输出会包含一个脚本,这个脚本说 “这个输出谁能拿出一个签名和接收方的公开地址匹配上,就支付给谁”。因为只有接收方钱包的私钥可以匹配这个地址,所以只有接收方的钱包可以提供这个签名以兑换这笔输出。因此支付方式会用需要接收方的签名来包装一个输出。
假如支付方的地址上,金额是0.10比特币的输出形式,而此次交易只需要支付0.015比特币,就需要找0.085比特币的零钱。支付方的钱包将自己的金额分成了两个支付:一个给接收方,一个给自己。她可以在以后的交易里消费这笔零钱输出。
最后,为了让这笔交易尽快地被网络处理,支付方的钱包会多付一小笔费用。这个不是明显地包含在交易中的,而是通过输入和输出的差值所隐含的。这个差值会就被矿工当作交易费放到区块的交易里,最终放进区块链帐薄中。
支付方的钱包应用创建的交易大小为258字节,包含了金额未来所属需要的全部信息。最后的最后,这个交易必须要被传送到比特币网络中以成为分布式账簿(区块链)的一部分。
交易的传送
比特币网络是由参与的比特币客户端联接几个其他比特币客户端组成的P2P网络。比特币网络的目的是将交易和区块传播给所有参与者。
钱包应用可以发送新的交易给其它任意一个已联接到互联网的比特币客户端。支付方的钱包不必直接连着接收方的比特币钱包。任何比特币网络节点(其它客户端)收到一个之前没见过的有效交易时会立刻将它转发给联接到自身的其它节点。因此,这个交易迅速地从P2P网络中传播开来,几秒内就能到达大多数节点。
接受者的钱包接收到支付方发过来的交易节点时,会立即确认交易是一个收入支付,因为它包含能用自己私钥兑换的输出。接收方的钱包应用也能够独立地用之前未消费输入来确认这个交易是正确构建的,并且由于包含足够交易费会被下一个区块包含进去。这时接收方就可以以一个很小的风险假定这个交易会很快被加到区块且被确认。
一个对比特币交易的常见误解是它们必须要等10分钟后被确认加进一个新区块,或等60分钟以得到六次确认后才是有效的。虽然这些确认可以确保交易已被整个网络接受,但对于像一杯咖啡这样的小额商品来说就没有必要等待那么长时间了。一个商家可以免确认来接受比特币小额支付。这样做的风险不比接受一个不是用有效身份证领取或没有签名的信用卡的风险更大,而后者是现在商家常做的事情。
交易确认--挖矿
挖矿在比特币系统中起着两个作用:
挖矿在构建区块时会创造新的比特币,和一个中央银行印发新的纸币很类似。每个区块创造的比特币数量是固定的,随时间会渐渐减少
挖矿创建信任。挖矿确保只有在包含交易的区块上贡献了足够的计算量后,这些交易才被确认。区块越多,花费的计算量越大,意味着更多的信任
工作量证明算法指的用SHA256加密算法不断地对区块头和一个随机数字进行哈希计算,直到出现一个和预设值相匹配的解
网络中产生的一笔交易直到成为整个比特币大账簿——区块链的一部分时才会被确认有效。
平均每10分钟,矿工会将自上一个区块以来发生的所有交易生成一个新的区块。
新交易不断地从用户钱包和应用流入比特币网络。当比特币网络上的节点看到这些交易时,会先将它们放到各自节点维护的一个临时的未经验证的交易池中。当矿工构建一个新区块时,会将这些交易从这个交易池中拿出来放到这个新区块中,然后通过尝试解决一个非常困难的问题(也叫工作量证明)以证明这个新区块的合法性。
交易被加进新区块时,以交易费用高的优先以及其它的一些规则进行排序。
矿工一旦从网络上收到一个新区块时,会意识到在这个区块上的解题竞赛已经输掉了,会马上开始下一个新区块的挖掘工作。它会立刻将一些交易和这个新区块的数字指纹放在一起开始构建下一个新区块,并开始给它计算工作量证明。
每个矿工会在他的区块中包含一个特殊的交易,将新生成的比特币(当前每区块为25比特币)作为报酬支付到他自己的比特币地址。如果他找到了使得新区块有效的解法,他就会得到这笔报酬,因为这个新区块被加入到了总区块链中,他添加的这笔报酬交易也会变成可消费的。
按惯例来说,一个区块获得六次以上“证明”时就被认为是不可撤销的了,因为要撤销和重建六个区块需要巨量的计算。
四、比特币客户端
BitCoin,比特币核心拥有交易账簿(区块链)的一份完整拷贝,里面记录了自2009年比特币网络被发明以来发生在比特币网络上的每一笔交易。
bitcoin源码地址:https://github.com/bitcoin/bitcoin
带有rc后缀的是预发行版本,可以用来测试。没有后缀的稳定版本可以直接在产品环境上运行。
其他客户端
pycoin 是一款基于Python库,并可以支持比特币密钥的操作和交易的客户端,甚至可以支持编译语言从而处理非标准交易。
btcd是一款基于Go语言的全节点比特币工具。目前,它通过使用精准的规则(包括bugs),下载、验证和服务区块链。它同时依靠新发掘出来的区块来维持交易池,同时依赖没有形成区块的单独交易。在缜密的规则以及检查下,确保了每笔独立交易的安全,并且可以过滤基于矿工需求的交易。btcd与bitcoind的一个主要区别是btcd不包含比特币钱包的功能,其实这是一个精心的设计。这意味着你不能直接通过btcd进行比特币交易。然而这项功能可以由正在研发的btcwallet与btcgui两个项目提供。另一个显著的区别是btcd同时支持HTTP POST(比如bitcoind)与推荐使用的Websockets两种通信协议的请求。并且btcd的RPC连接默认设置为TLS-开启。
bitcoinj 一款全节点java客户端和程序库。
五、算法与秘钥、地址、钱包
在比特币交易的支付环节,收件人的公钥是通过其数字指纹表示的,称为比特币地址,就像支票上的支付对象的名字(即“收款方”)。一般情况下,比特币地址由一个公钥生成并对应于这个公钥。然而,并非所有比特币地址都是公钥;他们也可以代表其他支付对象,譬如脚本。这样一来,比特币地址把收款方抽象起来了。
椭圆曲线算法:私钥和公钥
比特币或者大部分区块链的核心系统是基于椭圆曲线算法(Elliptic-curve cryptography
)建立起来的,ECC 是一种公开密钥密码学,又称为非对称密码学。在这种密码学中,需要产生一对密钥。其中一个密钥称为私钥,需要保密;另一个密钥称为公钥,是可以公开让别人知道的。私钥和公钥在数学上的关系是不可逆的,也就是通过某个数学函数,我们可以从私钥计算出公钥,但是不能从公钥反向推导出私钥(或者说从计算上是不可行的)。有关此算法的相关可以参考:http://diamond.boisestate.edu/~liljanab/MATH308/GuideToECC.pdf,简单来说就是
一个比特币钱包中包含一系列的密钥对,每个密钥对包括一个私钥和一个公钥。私钥(k)是一个数字,通常是随机选出的。有了私钥,我们就可以使用<font color="red">椭圆曲线乘法</font>这个单向加密函数产生一个公钥(K)。
有了公钥(K),我们就可以使用一个单向加密哈希函数生成比特币地址(A)
在比特币交易中,私钥用于生成支付比特币所必需的签名以证明资金的所有权。
私钥必须始终保持机密,因为一旦被泄露给第三方,相当于该私钥保护之下的比特币也拱手相让了。
私钥还必须进行备份,以防意外丢失,因为私钥一旦丢失就难以复原,其所保护的比特币也将永远丢失。
私钥一般是256 bit
比特币软件使用操作系统底层的随机数生成器来产生256位的熵(随机性)。通常情况下,操作系统随机数生成器由人工的随机源进行初始化,也可能需要通过几秒钟内不停晃动鼠标等方式进行初始化。
私钥可以是1和n-1之间的任何数字,其中n是一个常数(n=1.158 * 1077,略小于2256),并由比特币所使用的椭圆曲线的阶所定义(见4.1.5 椭圆曲线密码学解释)。要生成这样的一个私钥,我们随机选择一个256位的数字,并检查它是否小于n-1。从编程的角度来看,一般是通过在一个密码学安全的随机源中取出一长串随机字节,对其使用SHA256哈希算法进行运算,这样就可以方便地产生一个256位的数字。如果运算结果小于n-1,我们就有了一个合适的私钥。否则,我们就用另一个随机数再重复一次。
一定不要使用自己写的代码或使用编程语言内建的简易随机数生成器来获得一个随机数。我们建议读者使用密码学安全的伪随机数生成器(CSPRNG),并且需要有一个来自具有足够熵值的源的种子。使用随机数发生器的程序库时,需仔细研读其文档,以确保它是加密安全的。对CSPRNG的正确实现是密钥安全性的关键所在。
dumpprivkey命令会把私钥以Base58校验和编码格式显示,这种私钥格式被称为钱包导入格式(WIF,Wallet Import Format)
sx newkey -> 生成并显示私钥
比特币地址A = RIPEMD160(SHA256( public key ))
通常用户见到的比特币地址是经过“Base58Check”编码的,这种编码使用了58个字符(一种Base58数字系统)和校验码,提高了可读性、避免歧义并有效防止了在地址转录和输入中产生的错误。Base58Check编码也被用于比特币的其它地方,例如比特币地址、私钥、加密的密钥和脚本哈希中,用来提高可读性和录入的正确性。
最全面的比特币Python库是 Vitalik Buterin写的pybitcointools
比特币钱包
钱包是私钥的容器,通常通过有序文件或者简单的数据库实现。另外一种制作私钥的途径是 确定性密钥生成。在这里你可以用原先的私钥,通过单向哈希函数来生成每一个新的私钥,并将新生成的密钥按顺序连接。只要你可以重新创建这个序列,你只需要第一个私钥(称作种子、主私钥)来生成它们。
非确定性(随机)钱包
在最早的一批比特币客户端中,钱包只是随机生成的私钥集合。这种类型的钱包被称作零型非确定钱包。
举个例子,比特币核心客户端预先生成100个随机私钥,从最开始就生成足够多的私钥并且每把钥匙只使用一次。这种类型的钱包有一个昵称“Just a Bunch Of Keys(一堆私钥)”简称JBOK。
这种钱包现在正在被确定性钱包替换,因为它们难以管理、备份以及导入。
随机钥匙的缺点就是如果你生成很多,你必须保存它们所有的副本。这就意味着这个钱包必须被经常性地备份。每一把钥匙都必须备份,否则一旦钱包不可访问时,钱包所控制的资金就付之东流。
这种情况直接与避免地址重复使用的原则相冲突——每个比特币地址只能用一次交易。地址通过关联多重交易和对方的地址重复使用会减少隐私。
确定性(种子)钱包
确定性,或者“种子”钱包包含通过使用单项离散方程而可从公共的种子生成的私钥。
种子是随机生成的数字。这个数字也含有比如索引号码或者可生成私钥的“链码”
在确定性钱包中,种子足够收回所有的已经产生的私钥,所以只用在初始创建时的一个简单备份就足以搞定。
种子也足够让钱包输入或者输出。这就很容易允许使用者的私钥在钱包之间轻松转移输入。
助记码词汇
助记码词汇是英文单词序列代表(编码)用作种子对应所确定性钱包的随机数。单词的序列足以重新创建种子,并且从种子那里重新创造钱包以及所有私钥。
助记码代码可以让使用者复制钱包更容易一些,因为它们相比较随机数字顺序来说,可以很容易地被读出来并且正确抄写
BIP0039定义助记码和种子的创建过程如下:
1.创造一个128到256位的随机顺序(熵)
2.提出SHA256哈希前几位,就可以创造一个随机序列的校验和
3.把校验和加在随机顺序的后面
4.把顺序分解成11位的不同集合,并用这些集合去和一个预先已经定义的2048个单词字典做对应
5.生成一个12至24个词的助记码
分层确定性钱包
分层确定性钱包包含从数结构所生成的钥匙。这种母钥匙可以生成子钥匙的序列。这些子钥匙又可以衍生出孙钥匙,以此无穷类推。
高级密钥和地址
加密私钥(BIP0038)
私钥必须保密
BIP0038提出了一个通用标准,使用一个口令加密私钥并使用Base58Check对加密的私钥进行编码,这样加密的私钥就可以安全地保存在备份介质里,安全地在钱包间传输,保持密钥在任何可能被暴露情况下的安全性。
BIP0038加密方案是:
输入一个比特币私钥,通常使用WIF编码过,base58chek字符串的前缀“5”
输入一个长密码作为口令,通常由多个单词或一段复杂的数字字母字符串组成
BIP0038加密方案的输出一个由base58check编码过的加密私钥,前缀为6P
如果你看到一个6P开头的的密钥,这就意味着该密钥是被加密过,并需要一个口令来转换(解码)该密钥回到可被用在任何钱包WIF格式的私钥(前缀为5)。
许多钱包APP现在能够识别BIP0038加密过的私钥,会要求用户提供口令解码并导入密钥。
P2SH (Pay-to-Script Hash)和多重签名地址
传统的比特币地址从数字1开头,来源于公钥,而公钥来源于私钥。虽然任何人都可以将比特币发送到一个1开头的地址,但比特币只能在通过相应的私钥签名和公钥哈希值后才能消费。
以数字3开头的比特币地址是P2SH地址,有时被错误的称谓多重签名或多重签名地址。他们指定比特币交易中受益人作为哈希的脚本,而不是公钥的所有者。
不同于P2PKH交易发送资金到传统1开头的比特币地址,资金被发送到3开头的地址时,需要的不仅仅是一个公钥的哈希值,同时也需要一个私钥签名作为所有者证明。在创建地址的时候,这些要求会被定义在脚本中,所有对地址的输入都会被这些要求阻隔。
script hash = RIPEMD160(SHA256(script)) 脚本哈希的结果是由Base58Check编码前缀为5的版本、编码后得到开头为3的编码地址。
P2SH函数最常见的实现是用于多重签名地址脚本。顾名思义,底层脚本需要多个签名来证明所有权,此后才能消费资金。设计比特币多重签名特性是需要从总共N个密钥中需要M个签名(也被称为“阈值”),被称为M-N多签名,其中M是等于或小于N。
纸钱包
纸钱包是打印在纸张上的比特币私钥。有时纸钱包为了方便起见也包括对应的比特币地址,但这并不是必要的,因为地址可以从私钥中导出。
纸钱包是一个非常有效的建立备份或者线下存储比特币(即冷钱包)的方式。作为备份机制,一个纸钱包可以提供安全性,以防在电脑硬盘损坏、失窃或意外删除的情况下造成密钥的的丢失。
作为一个冷存储的机制,如果纸钱包密钥在线下生成并永久不在电脑系统中存储,他们在应对黑客攻击,键盘记录器,或其他在线电脑欺骗更有安全性。
一个更复杂的纸钱包存储系统使用BIP0038加密的私钥。打印在纸钱包上的这些私钥被其所有者记住的一个口令保护起来。没有口令,这些被加密过的密钥也是毫无用处的。
虽然你可以多次存款到纸钱包中,但是你最好一次性提款,一次性提取里面所有的资金。因为如果你提取的金额少于其中的金额的话,会生成一个找零地址。并且,你所用的电脑可能被病毒感染,那么就有可能泄露私钥。一次性提款可以减少私钥泄露的风险,如果你所需的金额比较少,那么请把余额找零到另一个纸钱包中。
六、交易
比特币交易的生命周期
一笔比特币交易的生命周期起始于它被创建的那一刻,也就是诞生
比特币交易会被一个或者多个签名加密,这些签名标志着对该交易指向的比特币资金的使用许可。
接下来,比特币交易被广播到比特币网络中。在比特币网络中,每一个节点(比特币交易参与者)验证、并将交易在网络中进行广播,直到这笔交易被网络中大多数节点接收。
最终,比特币交易被一个挖矿节点验证,并被添加到区块链上一个记录着许多比特币交易的区块中。
比特币交易可以被任何人在线上或线下创建,即便创建这笔交易的人不是这个账户的授权签字人。类似于,一个负责应付账款的柜员可以创建比特币交易,然后让CEO对它进行数字签名,从而使之有效。
一张支票是指定一个特定账户作为资金来源的,但是比特币交易指定以往的一笔交易作为其资金来源,而不是一个特定账户。
一旦一笔比特币交易被创建,它会被资金所有者(们)签名。如果它是合法创建并签名的,则该笔交易现在就是有效的,它包含了转移这笔资金所需要的所有信息。
最终,有效的比特币交易必须能接入比特币网络,从而使之能被传送,直至抵达下一个登记在公共总账薄(区块链)的挖矿节点。
广播交易至比特币网络
首先,一笔交易需要传递至比特币网络,才能被传播,也才能加入区块链中。
本质上,一笔比特币交易只是300到400字节的数据,而且它们必须被发送到成千上万个比特币节点中的任意一个。只要发送者能使用多于一个比特币节点来确保这笔交易被传播,那么发送者并不需要信任用来传播该笔交易的单一节点。
比特币交易因此可以通过未加密网络(例如WiFi、蓝牙、NFC、ChirP、条形码或者复制粘贴至一个网页表格)被发送到比特币网络。在一些极端情况下,一笔比特币交易可以通过封包无线电、卫星或“短波、扩频或跳频以避免被侦测或阻塞通信的方式进行传输。一笔比特币交易甚至可被编为文字信息中的表情符号并被发表到在线论坛,或被发送成一条短信或一条Skype聊天信息。因为比特币将金钱变成了一种数据结构,所以在本质上是不可能阻止任何人创建并执行比特币交易的。
一旦一笔比特币交易被发送到任意一个连接至比特币网络的节点,这笔交易将会被该节点验证。如果交易被验证有效,该节点将会将这笔交易传播到这个节点所连接的其他节点;同时,交易发起者会收到一条表示交易有效并被接受的返回信息。如果这笔交易被验证为无效,这个节点会拒绝接受这笔交易且同时返回给交易发起者一条表示交易被拒绝的信息。
为了避免垃圾信息的滥发、拒绝服务攻击或其他针对比特币系统的恶意攻击,每一个节点在传播每一笔交易之前均进行独立验证。 <font color='red'>一个异常交易所能到达的节点不会超过一个</font>。
交易结构
一笔比特币交易是一个含有输入值和输出值的数据结构,该数据结构植入了将一笔资金从初始点(输入值)转移至目标地址(输出值)的代码信息。
比特币交易的输入值和输出值与账号或者身份信息无关。应该将它们理解成一种被特定秘密信息锁定的一定数量的比特币。只有拥有者或知晓这个秘密信息的人可以解锁。
字段:版本(4bytes,明确这笔交易参照的规则)、输入量(1-9bytes,被包含的输入的数量)、输入(不定bytes,一个或多个交易输入)、输出量(1-9bytes,被包含的输出的数量)、输出(不定bytes,一个或多个交易输出)、时钟时间(4bytes, 一个UNIX时间戳或区块号)
交易的输入和输出
比特币交易的基本单位是未经使用的一个交易输出,简称UTXO。UTXO是不能再分割、被所有者锁住或记录于区块链中的并被整个网络识别成货币单位的一定量的比特币货币。
实际上,并不存在储存比特币地址或账户余额的地点,只有被所有者锁住的、分散的UTXO。
“一个用户的比特币余额”,这个概念是一个通过比特币钱包应用创建的派生之物。比特币钱包通过扫描区块链并聚合所有属于该用户的UTXO来计算该用户的余额。
<font color='red'>在比特币的世界里既没有账户,也没有余额,只有分散到区块链里的UTXO</font>。一个UTXO可以是一“聪”的任意倍。
尽管UTXO可以是任意值,但只要它被创造出来了,就像不能被切成两半的硬币一样不可再分了。如果一个UTXO比一笔交易所需量大,它仍会被当作一个整体而消耗掉,但同时会在交易中生成零头。大部分比特币交易都会产生找零。
一笔比特币交易可以有任意数值,但必须从用户可用的UTXO中创建出来。用户不能再把UTXO进一步细分,就像不能把一元纸币撕开而继续当货币使用一样。用户的钱包应用通常会从用户可用的UTXO中选取多个可用的个体来拼凑出一个大于或等于一笔交易所需的比特币量。
被交易消耗的UTXO被称为交易输入,由交易创建的UTXO被称为交易输出。通过这种方式,一定量的比特币价值在不同所有者之间转移,并在交易链中消耗和创建UTXO。一笔比特币交易通过使用所有者的签名来解锁UTXO,并通过使用新的所有者的比特币地址来锁定并创建UTXO。
对于输出和输入链来说,有一个例外,它是一种特殊的交易类型,称为Coinbase交易。这是每个区块中的首个交易。这种交易存在的原因是作为对挖矿的奖励而产生全新的可用于支付的比特币给“赢家”矿工。这也就是为什么比特币可以在挖矿过程中被创造出来。
交易输出包含两部分:
一定量的比特币,被命名为“聪”,是最小的比特币单位;
一个锁定脚本,也被当作是“障碍”,提出支付输出所必须被满足的条件以“锁住”这笔总额
交易输出把用聪表示的一定数量的比特币,和特定的定义了支付输出所必须被满足的条件的障碍,或者叫锁定脚本,关联到了一起。在大多数情况下,锁定脚本会把输出锁在一个特定的比特币地址上,从而把一定数量的比特币的所有权转移到新的所有者上。
交易输入是指向UTXO的指针。它们指向特定的UTXO,并被交易哈希和在区块链中记录UTXO的序列号作为参考。
当用户付款时,他的钱包通过选择可用的UTXO来构造一笔交易。比如说,要支付0.015比特币,钱包应用会选择一个0.01 UTXO和一个0.005 UTXO,使用它们加在一起来得到想要的付款额。
一旦UTXO被选中,钱包会为每个UTXO生成包含签名的解锁脚本,由此让它们变得可以通过满足锁定脚本的条件来被支付。钱包把这些UTXO作为参考,并且连同解锁脚本一起作为输入加到交易中。
交易费用
大多数交易包含交易费,这是为了在网络安全方面给比特币矿工一种补偿。大多数钱包自动计算并计入交易费。但是,如果你编程构造交易,或者使用命令行接口,你必须手动计算并计入这些费用。
交易费可当作是为了包含(挖矿)一笔交易到下一个区块中的一种鼓励,也可当作是对于欺诈交易和任何种类的系统滥用,在每一笔交易上通过征收一笔小成本的税而造成的一种妨碍。交易费被挖出这个区块的矿工得到,并且记录在这个交易的区块链中。
交易费不足或者没有交易费的交易可能会被推迟,基于尽力而为的原则在几个区块之后被处理,甚至可能根本不被处理。交易费不是强制的,而且没有交易费的交易也许最终会被处理,但是,包含交易费将提高处理优先级。
起初,交易费是网络中的一个固定常数。渐渐地,交易费的结构被放宽了,以便被市场基于网络容量和交易量而强制影响。目前最小交易费被固定在每千字节0.0001比特币,或者说是每千字节万分之一比特币,最近一次改变是从千分之一比特币减少到这个数值的。大多数交易少于一千字节,但是那些包含多个输入和输出的交易尺寸可能更大。在未来的比特币协议修订版中,钱包应用预计会使用统计学分析,基于最近的几笔交易的平均费用,来计算最恰当的费用并附在交易上。
交易的数据结构没有交易费的字段。相反地,交易费通过所有输入的总和,以及所有输出的总和之间的差来表示。从所有输入中扣掉所有输出之后的多余的量会被矿工收集走。
如果你忘记了在手动构造的交易中增加找零的输出,系统会把找零当作交易费来处理。举例来说,如果你消耗了一个20比特币的UTXO来完成1比特币的付款,你必须包含一笔19比特币的找零回到你的钱包。否则,那剩下的19比特币会被当作交易费,并且会被挖出你的交易到一个区块中的矿工收走。尽管你会受到高优先级的处理,并且让一个矿工喜出望外,但这很可能不是你想要的。
高交易费不是因为付的钱很多,而是因为她的交易很复杂并且尺寸很大,交易费是与参加交易的比特币值无关的。
交易链条和孤立交易
当一条交易链被整个网络传送时,他们并不能总是按照相同的顺序到达目的地。有时,子交易在父交易之前到达。在这种情况下,节点会首先收到一个子交易,而不能找到他参考的父交易。节点不会立即抛弃这个子交易,而是放到一个临时池中,并等着接收它的父交易,与此同时广播这个子交易给其他节点。没有父交易的交易池被称作孤立交易池。
内存中储存的孤立交易数量是有限制的,这是为了防止针对比特币节点的拒绝服务攻击(DoS)。这个限制被定义在比特币涉及到的客户端的源代码中的MAX_ORPHAN_TRANSACTIONS。
比特币交易脚本和脚本语言
比特币客户端通过执行一个用类Forth脚本语言编写的脚本验证比特币交易。锁定脚本被写入UTXO,同时它往往包含一个用同种脚本语言编写的签名。
当一笔比特币交易被验证时,每一个输入值中的解锁脚本被与其对应的锁定脚本同时(互不干扰地)执行,从而查看这笔交易是否满足使用条件。
大多数经比特币网络处理的交易是以“Alice付给Bob”的形式存在的。同时,它们是以一种称为“P2PKH”(Pay-to-Public-Key-Hash)脚本为基础的。然而,通过使用脚本来锁定输出和解锁输入意味着通过使用编程语言,比特币交易可以包含无限数量的条件。
比特币交易验证并不基于一个不变的模式,而是通过运行脚本语言来实现。这种语言可以表达出多到数不尽的条件变种。这也是比特币作为一种“可编程的货币”所拥有的权力。
脚本创建(锁定与解锁)
比特币的交易验证引擎依赖于两类脚本来验证比特币交易:一个锁定脚本和一个解锁脚本。
锁定脚本是一个放在一个输出值上的“障碍”,同时它明确了今后花费这笔输出的条件。
解锁脚本是一个“解决”或满足被锁定脚本在一个输出上设定的花费条件的脚本,同时它将允许输出被消费。解锁脚本是每一笔比特币交易输出的一部分,而且往往含有一个被用户的比特币钱包(通过用户的私钥)生成的数字签名。由于解锁脚本常常包含一个数字签名,因此它曾被称作ScriptSig。并非所有解锁脚本都一定会包含签名。
每一个比特币客户端会通过同时执行锁定和解锁脚本来验证一笔交易。对于比特币交易中的每一个输入,验证软件会先检索输入所指向的UTXO。这个UTXO包含一个定义了花费条件的锁定脚本。接下来,验证软件会读取试图花费这个UTXO的输入中所包含的解锁脚本,并执行这两个脚本。
首先,使用堆栈执行引擎执行解锁脚本。如果解锁脚本在执行过程中未报错(没有悬空操作符),主堆栈(非其它堆栈)将被复制,然后脚本将被执行。如果采用从解锁脚本处复制而来的数据执行锁定脚本的结果为真,那么解锁脚本就成功地满足了锁定脚本所设置的条件,因而,该输入是一个能使用该UTXO的有效授权。如果在执行完组合脚本后的结果不是真,那么输入就不是有效的,因为它并未能满足UTXO中所设置的使用该笔资金的条件。
脚本语言
比特币交易脚本语言,也称为脚本,是一种基于逆波兰表示法的基于堆栈的执行语言。
比特币脚本语言被称为基于栈语言,因为它使用的数据结构被称为栈。
如果堆栈顶部的结果显示为真(标记为{0×01}),即为任何非零值或脚本执行后堆栈为空情形,则交易有效。如果堆栈顶部的结果显示为假(0字节空值,标记为{})或脚本执行被操作符禁止。
图灵非完备性
比特币脚本语言包含许多操作,但都故意限定为一种重要的方式——没有循环或者复杂流控制功能以外的其他条件的流控制。
这样就保证了脚本语言的图灵非完备性,这意味着脚本的复杂性有限,交易可执行的次数也可预见。
脚本并不是一种通用语言,施加的这些限制确保该语言不被用于创造无限循环或其它类型的逻辑炸弹,这样的炸弹可以植入在一笔交易中,通过引起拒绝服务的方式攻击比特币网络。
受限制的语言能防止交易激活机制被人当作薄弱环节而加以利用。
非主权验证
比特币交易脚本语言是无国家主权的,没有国家能凌驾于脚本之上,也没有国家会在脚本被执行后对其进行保存。所以需要执行脚本的所有信息都已包含在脚本中。
如果您的系统对一个脚本进行验证,可以确信的是每一个比特币网络中的其他系统也将对其进行验证,这意味着一个有效的交易对每个人而言都是有效的,而且每一个人都明白这一点。<font color='red'>这种对于结果的可预见性是比特币系统的一项重要良性特征</font>。
Windows技巧大全二
1、批量重命名文件
Windows提供了非常方便的批量重命名文件的功能,在资源管理器中同时选择几个文件,接着按F2键,然后重命名这些文件中的一个,这样所有被选择的文件将会被重命名为新的文件名(在末尾处加上递增的数字)。
2、快捷复制文件路径、在新的进程打开文件夹
当我们想要说明一个具体的文件在哪里的时候,把“错综复杂”的路径告诉别人是非常麻烦的事情。其实只需要按住“Shift”键,右键点击文件或文件夹,选择“复制为路径”就可以粘贴给你的朋友啦
如果你右键的是文件夹的话还会有“在新的进程中打开”的选项,这样一个文件夹的崩溃就不会导致全部文件夹的崩溃(肯定有很多人遇到过资源管理器“未响应”的情况吧。
3、特殊字符输入:
、
这些符号是怎么输入的知道嘛?今天来教大家一个简单实用的方法——字符映射表。Win R输入“charmap”就可以调出它,找到自己需要的符号啦~选择复制就OK!
4、windows窗口操作
如果你屏幕上有很多窗口都最大化了,虽然你只能看到当前的程序,但是被挡在后面最大化的窗口也会占用很多系统资源,这时候如果你按下Win Home,就可以将除当前窗口外其他所有程序都最小化(拖住当前窗口晃动可以达到同样效果),节约系统资源快速有效,再次按下Win Home(或再次晃动)可以恢复之前窗口。
当然你还可以试试Win ↑,Win ↓,Win ←,Win →;win10还有Win →↑,Win ←↑……依次类推
如果你有两个或者更多的显示器,试试 WIN SHIFT 左或者右 可以把窗口从一个移动到另一个中去。
5、快速恢复已关闭网页
如果不小心把网页关了,你知道怎么找回来吗?记得,只要按 "Ctrl Shift T",就能立即开启刚刚关上的页面哦
Ctrl Shift T
6、.快速打开一组网页
如果每天都要浏览一些固定的网页,可以网页放入收藏栏的文件夹中,然后右键文件夹,选择"打开全部"就可以一次性把你所要看的网页都打开。(360浏览器,其他浏览器类似)
7、定时关机,远程桌面关机
建一个文本文件然后输入shutdown -s -t 60 保存,把文本文件的txt格式改为bat,-t 后面的参数表示要延迟多少秒。运行脚本后60秒关机。
把参数设置为1秒,再文件名命名为“打开有惊喜.bat”……噗,太坏了!
8、快速预览文件类容
按ALT P隐藏或者显示资源管理器的预览窗口
可以预览的文件类型有很多(具体哪些可以自己试试,文件大的稍微需要等一下才显示),还可以在预览窗口类直接操作(翻页、复制什么 的),不用每次都打开查看,很是方便!
9、RoboCopy-多线程加快Windows中文件复制/传输功能
如果用户是个更高级使用者,用户肯定听说过Robocopy。自Windows7起就内置了此功能,用户可以通过命令行来执行多线程复制。用户可以选择任意数目的线程,就像"/MT[:n],它的数值范围在1到128之间。
在命令行输入ROBOCOPY/?有具体用法,不建议普通用户使用,普通用户还是老老实实图形界面比较好
10、放大镜
按WIN 加号来调出放大镜,按WIN 加号或者减号来进行放大或者缩小。用户可以缩放桌面上的任何地方,用户还可以配置放大镜。能选择反相颜色,跟随鼠标指针,跟随键盘焦点或者文本的输入点。
附上放大镜常用的快捷键:
Win键 加号或者减号 放大或缩小
Win键 Esc 退出放大镜
Ctrl Alt 空格键 显示鼠标指针
Ctrl Alt F 切换到全屏模式
Ctrl Alt L 切换到镜头模式
Ctrl Alt D 切换到停靠模式
Ctrl Alt I 反色
Ctrl 箭头键 按箭头键方向平移
Ctrl Alt R 调整镜头大小
11、步骤记录器
写教程需要记录步骤?问问题截图不够详细?你需要一个步骤记录器!步骤记录器是一个强大的工具,而且是Windows内置的!按WIN R输入PSR.exe运行它。它会记录用户所有的操作,并且储存为mht格式的文件,可以直接在浏览器中查看!
这里有个我录制的简单测试:步骤记录测试.zip
12、快速启动锁定在任务栏中的程序
“Win”键 数字键(0~9)可以快速启动任务栏中的由该数字所表示位置处的程序。
如按“Win键 4”即可启动Edge浏览器,按“Win键 0”即可启动QQ(只支持前10个,第十个对应数字键“0”。
进阶使用方式:
Shift Window键 数字:启动锁定到任务栏中的由该数字所表示位置处的程序的新实例(主键盘区上的数字)
Alt Windows键 数字:打开锁定到任务栏中的由该数字所表示位置处的程序的跳转列表 (主键盘区上的数字)
13、任务栏固定常用文件夹
有时候需要经常打开某个文件夹,这个文件夹的路径有时候还比较深。每次都要打开一层层的文件夹很麻烦。这时候只用把这个文件夹拖入到任务栏上的文件夹图标就可以被固定住,以后就可以直接在任务栏上右键打开。取消固定的话右键取消即可。
当然前提是你的任务栏固定的有文件夹图标。