算法集成模块未启用不能编译
1. Aleo主网倒计时 | Aleo最新Puzzle谜题算法深度解析!
官方于2024年6月25日在Aleo官方的Github上发布最新的谜题算法,引发各界讨论。我们将从多个角度深入解析此算法。
1. 最新谜题算法的性质是什么?
人们普遍认为它基于CPU,确实如此。然而,其本质在于Aleo程序部署流程的一部分,与传统的以MSM和NTT为主的算法有所不同。Aleo芯片、Aleo ASIC、Aleo纯GPU等计算资源均能支持此算法。
2. 能否用GPU执行此算法?
理论上可行,但需时间进行移植、适配和优化。过去,GPU算法在测试阶段被延迟,直到激励临近才正式启用,最终优化出纯GPU版本。当前是否也会有纯GPU版本,我们暂无定论,但从效率角度看,GPU无疑更优。
3. 为何未集成GPU算法?
所谓GPU算法实际上指优化过的MSM算法。本次算法更新可能未集成MSM,推测原因在于MSM已优化至较高水平,且与Aleo底层零知识证明算法紧密相关。
4. 是否会将MSM和NTT算法加入后续算法?
我们预计会考虑集成,因为MSM和NTT是零知识证明的核心计算元素,其加入将提高算法效率。此外,MSM已优化完成,集成过程相对快速。
5. 为何选择CPU算法?
官方解释表明,此次算法更新是必然之举,以优化至良好水平的MSM算法为基础。新算法与Aleo虚拟机(vm)紧密关联。此设计旨在优化vm,即zkvm。
6. 主网后算法是否还会变化?
基于当前设计,算法已模块化,未来可灵活替换。当当前算法无法满足需求时,官方将启用其他算法进一步提升性能。理论上,主网后算法调整主要针对小改,如指令集更改,而非大范围变动。
7. 为何设计为模块化?
当前Aleo项目的核心优化方向为零知识证明生成速度与zkvm。算法模块化适应不同需求,以促进ZK算法与实际应用的发展。
8. 官方意图为何?
官方旨在推动ZK算法及实际应用发展,避免算法仅作为无意义的验证过程。零知识证明生成与zkvm紧密相关。Aleo寻求在底层基础设施领域突破,未来ZPU(零知识证明处理单元)的实现值得期待。
2. win11系统TPM20BIOS设置开启方法
win11 tpm是什么?近日,“TPM 2.0”成为了大家讨论的热点,很多用户之前都不了解这个功能作用,而现在它竟然成为了Windows 11升级的必要条件。下面带来了TPM 2.0功能的简单介绍及使用方法,各位用户可以看一下。
TPM是什么?
TPM指的是可信平台模块(Trusted Platform Mole,TPM),通常会集成在CPU、主板等硬件中,主要用于提升系统的安全性。TPM是通过其内置的各种加密算法,生成或是核验系统里的密钥,同时也能存储重要密钥。简单来说就是可以用来检测 Windows 11 系统的完整性,防止被恶意程序篡改,还有就是面部识别、指纹识别、磁盘加密等安全功能,早期密钥文件是存储在硬盘里中,容易被破解掉,而现在存储在TPM模块中,安全性就大幅提高了。
TPM 2.0常见问题解答
1、根据微软官方介绍,Windows11正式版发布后只支持TPM 2.0版本以上,早期的TPM 1.2是不支持的。
2、TPM 2.0标准的制定实施时间是2016年,而早于这个时间购买的硬件是不支持TPM 2.0的。
3、绕过TPM验证安装win11,但后期使用有可能出现各种意想不到的问题(官方说法)。
4、不支持TPM 2.0怎么办,目前泄露版可进入PE安装(appraiserres.dll替换法),公测时应该会有万能的Ghost版。
怎样判断电脑是否支持TPM 2.0?
1、按下键盘上的Win+R组合键,在“运行”对话框中输入“tpm.msc”命令,最后“确认”即可。
2、在“本地计算机上受信任的平台模块(TPM)管理”界面,如果显示“找不到兼容的TPM”说明不支持或未开启,如下图显示"TPM已就绪,可以使用",并且“规范版本”大于或等于2.0,升级Windows11是完全没问题的。
3、如果显示“找不到兼容的TPM”也有可能是BIOS设置中没有启用CPU里的TPM功能。如果CPU处理器的型号是2016年后发布的,例如:Intel(11代、10代、9代、8代酷睿)、AMD(锐龙5000、4000、3000、2000系列)可以在开机的时候按F2或者Del键进入BIOS界面,然后找到TPM功能开启(不同BIOS的名称有些不一样,例如常见的Trust Computing/可信计算/TPM Embedded security/PTT/fTPM)。
华硕主板在“高级”选项卡“PCH-FW Configuration”选项中,开启“PTT(Platform Trust Technology,平台可信技术)”。
微星主板在“SETTING”选项卡”Security“选项中,找到”Trusted Computing“,然后将“Security Device Support”选项打开
3. 【Opencascade】OCCT wasm系列(二) —— 多线程开发
启用多线程WebAssembly需面对多重挑战。现代CPU,包括移动端CPU,通常具有6个或更多核心,高性能处理已成为应用标准,OCCT在几何网格划分、解码压缩gltf文件等算法中已采用多线程加速,旨在提高在Draw Harness中的操作性能。
然而,WebAssembly 1.0版本并不支持多线程。此功能需通过扩展实现,如Threads and atomics extension。Emscripten SDK默认不启用此功能,使用-pthread标志可配置启用。在OCCT仓库的adm/scripts目录下,通过wasm_build.bat脚本中的USE_PTHREADS选项实现。
尽管编译时未使用-pthread选项,Emscripten SDK仍实现POSIX threads API,若未启用此选项,SDK将仅使用单线程模拟。若配置正确,WASM构建多线程模式与单线程模式类似,但会多出一个“DRAWEXE.worker.js”文件,表示依赖web workers API。
跨域头设置是多线程WASM构建的关键。此设置为保护web应用程序及其用户免受恶意代码影响。Spectre和Meltdown漏洞允许同一进程线程读取另一个线程内存,这在桌面程序中常见,但浏览器中可能引发严重风险。浏览器通过创建专用进程来实施隔离,这带来额外成本,限制了跨源文件加载。为了强制执行这些限制,服务器需配置跨域隔离头。
在本地测试中,使用Python HTTP Server可以简单设置跨域头。通过“test_server.py”脚本,运行命令在工作目录启用服务器。配置完成后,通过浏览器访问 http://localhost:8080 应能打开多线程WASM构建的网页。然而,实际部署时需使用支持HTTPS的托管服务。
GitHub Pages服务曾被用于托管WebAssembly网站,效果良好,但无法管理跨域头信息。Apache HTTP server提供了一个解决方案,通过调整.htaccess文件设置跨源头,但需对技术细节有深入理解。最终,作者排除了.js文件的NGINX缓存问题,解决了实际部署挑战。
使用Firefox 92进行测试,验证跨域隔离头对网站执行的影响。结果显示,浏览器在不同标签页中打开同一网站时,会启动专用进程,这在低速和内存受限硬件中可能影响性能。浏览器在默认启用更强的隔离状态时,即使在不同标签页中打开同一网站,Edge也会启动一个专门进程。
多线程WebAssembly的动态加载面临兼容性问题。浏览器不支持多线程功能,导致无法在同一环境下使用多线程和单线程WASM模块。为确保兼容性,Web应用程序需存储多个不同编译器标记构建的WASM模块,并动态选择加载。