当前位置: 首页 > article >正文

Docker WASM插件下载总失败?揭秘CDN缓存污染、证书链断裂与seccomp策略冲突三大隐性故障源

更多请点击 https://intelliparadigm.com第一章Docker WASM 插件下载与安装概述Docker 官方自 2023 年起通过实验性插件机制支持 WebAssemblyWASM运行时使容器化工作负载可在无内核依赖的沙箱中安全执行。该能力依托于docker-wasm插件目前由 Docker Inc. 与 WasmEdge 团队联合维护适用于 Linux x86_64 和 ARM64 平台。获取插件二进制文件插件以独立 CLI 扩展形式分发不集成于 Docker Desktop 默认安装包中。推荐使用官方发布脚本自动拉取适配版本# 下载并安装最新稳定版插件需 Docker CLI v24.0 curl -sSL https://raw.githubusercontent.com/moby/docker-wasm/main/install.sh | sh执行后插件将注册为docker wasm子命令并自动写入$HOME/.docker/cli-plugins/目录。验证安装状态运行以下命令检查插件是否就绪docker wasm version # 输出示例wasm plugin 0.7.2 (commit: a1b2c3d)支持的运行时环境当前插件默认集成 WasmEdge 运行时亦可通过配置切换至 Wasmer 或 WAVM。下表列出各运行时的关键特性对比运行时启动延迟平均内存隔离WASI 支持多线程WasmEdge 5ms✅ 完整线性内存沙箱✅ WASI-Preview1✅Wasmer 8ms✅需启用 sandboxing✅⚠️ 实验性快速启用示例确保 Docker daemon 正在运行systemctl is-active docker返回active拉取一个 WASM 镜像docker pull ghcr.io/bytecodealliance/wasmtime-hello:latest运行 WASM 容器docker wasm run --rm ghcr.io/bytecodealliance/wasmtime-hello:latest第二章CDN缓存污染的识别、诊断与修复实践2.1 CDN缓存机制原理与WASM插件分发路径分析CDN缓存决策核心逻辑CDN节点依据HTTP响应头中的Cache-Control、ETag和Last-Modified进行分级缓存判定。边缘节点优先匹配max-age回源时携带If-None-Match实现条件请求。WASM插件分发的三层路径构建层Rust/WASI编译生成.wasm字节码经wabt工具链优化注册层插件元数据SHA256哈希、ABI版本、权限声明写入中心化Registry分发层CDN按plugin-idsemver路径缓存支持 ESIEdge Side Includes动态组装典型缓存策略配置示例location ~ ^/wasm/plugins/(.\.wasm)$ { add_header Cache-Control public, immutable, max-age31536000; etag on; expires 1y; }该配置强制边缘节点长期缓存WASM二进制immutable防止协商缓存误判etag on启用强校验确保字节级一致性。分发时效性保障机制机制作用生效层级Stale-While-Revalidate缓存过期后异步刷新保持服务可用CDN POP节点Cache Purge API基于插件哈希精确失效全局控制面2.2 基于curl HTTP头追踪的缓存污染现场复现方法核心复现步骤构造含歧义缓存键的请求如重复 Host、不一致的大小写注入恶意响应头Vary: Host, User-Agent诱导边缘节点错误分片通过多轮请求验证缓存键碰撞与内容覆盖关键调试命令# 发送带冲突Host头的请求触发CDN缓存键混淆 curl -v -H Host: admin.example.com \ -H host: api.example.com \ https://example.com/health该命令利用部分CDN对HTTP头大小写不敏感但解析顺序有差异的缺陷使同一URL因Host字段重复而生成不同缓存标识-v启用详细输出便于观察实际发送的请求头与服务端返回的X-Cache状态。响应头比对表请求特征X-CacheVary值首次小写hostHITHost后续大写HostMISS → HITHost, User-Agent2.3 利用ETag/Cache-Control策略强制刷新边缘节点缓存核心机制解析ETag 与Cache-Control: no-cache协同工作可绕过边缘缓存直接回源校验。关键在于服务端响应头中携带强校验 ETag并在客户端请求中附带If-None-Match。典型响应头配置HTTP/1.1 200 OK ETag: a1b2c3d4 Cache-Control: public, max-age3600, must-revalidate Last-Modified: Wed, 01 Jan 2025 00:00:00 GMT该配置使边缘节点缓存 1 小时但每次请求均需向源站发起条件 GET 校验must-revalidate强制校验逻辑不可被客户端忽略。强制刷新操作对比方式触发条件边缘行为Cache-Control: max-age0客户端主动刷新F5发起条件请求若 ETag 匹配则返回 304Cache-Control: no-cache资源更新后主动推送跳过本地缓存强制回源校验2.4 多地域CDN节点一致性校验脚本开发与自动化巡检核心校验逻辑通过并发请求各地域边缘节点的权威源站响应头ETag、Last-Modified与本地缓存指纹比对识别偏差节点。def check_etag_consistency(node_urls: List[str], origin_url: str) - Dict[str, bool]: origin_etag requests.head(origin_url).headers.get(ETag) results {} with ThreadPoolExecutor(max_workers10) as executor: futures {executor.submit(lambda u: requests.head(u).headers.get(ETag), url): url for url in node_urls} for future in as_completed(futures): url futures[future] try: node_etag future.result() results[url] (node_etag origin_etag) except Exception as e: results[url] False return results该函数并发采集各CDN节点ETag值对比源站基准值max_workers10平衡吞吐与连接限制异常节点默认标记为不一致。巡检任务调度基于Cron表达式每15分钟触发一次全量校验偏差率超5%时自动触发分级告警企业微信PagerDuty校验结果概览地域节点数不一致数偏差率北京1200%新加坡8112.5%2.5 面向CI/CD流水线的缓存预热与版本锚定配置方案缓存预热触发时机在镜像构建完成后、部署前注入预热任务确保服务启动即命中缓存# .gitlab-ci.yml 片段 stages: - build - warmup - deploy warm-cache: stage: warmup script: - curl -X POST $CACHE_API/preheat?version$CI_COMMIT_TAGCI_COMMIT_TAG提供语义化版本锚点CACHE_API为内部缓存管理服务地址预热请求携带版本标识以隔离多环境缓存空间。版本锚定策略对比策略适用场景回滚成本Git Tag 锚定发布稳定版低直接切TagCommit SHA 锚定灰度验证中需重建镜像第三章TLS证书链断裂的根因定位与安全加固3.1 WASM插件HTTPS下载链中证书验证失败的完整握手日志解析典型TLS握手失败日志片段2024-05-22T10:33:17Z INFO wasm/downloader.go:89 Starting HTTPS fetch for plugin.wasm 2024-05-22T10:33:17Z DEBUG tls/handshake.go:124 ClientHello sent (SNI: plugins.example.com) 2024-05-22T10:33:17Z DEBUG tls/handshake.go:211 CertificateVerify failed: x509: certificate signed by unknown authority该日志表明WASM下载器在TLS 1.3握手的CertificateVerify阶段终止根本原因为根CA证书未预置于WASM运行时信任库。证书链验证关键参数参数值说明VerifyOptions.Rootsnil导致Go crypto/tls使用系统默认CA池而WASM环境无系统CAInsecureSkipVerifyfalse显式禁用跳过验证但未提供自定义RootCAs修复方案核心逻辑在WASM初始化阶段注入PEM格式根证书到tls.Config.RootCAs确保证书链完整leaf → intermediate → root且时间戳有效3.2 使用openssl s_client与certutil深度诊断中间证书缺失问题识别链式信任断裂使用openssl s_client可直观暴露证书链不完整问题openssl s_client -connect example.com:443 -showcerts 2/dev/null | grep Certificate chain该命令输出中若仅显示0 s:CUS, OExample Inc, CNexample.com而无后续1 s:...条目表明服务器未发送中间证书。交叉验证与补全分析工具核心能力中间证书检测敏感度openssl s_client实时握手抓取与链式打印高依赖服务端实际发送certutil -verifystore本地根/中间证书存储校验中需手动导入待测证书补全验证流程导出服务器证书openssl s_client -connect example.com:443 -showcerts /dev/null 2/dev/null | openssl x509 -outform PEM server.crt用 certutil 验证链完整性certutil -verify -urlfetch server.crt—— 若提示CERT_TRUST_IS_NOT_TIME_VALID或CERT_TRUST_IS_UNTRUSTED_ROOT极可能因中间证书未预置或未下发。3.3 Docker daemon级CA信任库注入与自签名证书白名单管理CA证书注入机制Docker daemon 通过--tlscacert参数加载根证书但生产环境中需持久化注入系统级信任库# 将自签名CA注入daemon信任链 mkdir -p /etc/docker/certs.d/my-registry.local:5000 cp my-ca.crt /etc/docker/certs.d/my-registry.local:5000/ca.crt systemctl restart docker该操作使 daemon 在 TLS 握手时自动验证目标 registry 的服务端证书链ca.crt必须为 PEM 格式且不可包含私钥。白名单证书管理策略证书类型存储路径生效范围全局CA/etc/docker/certs.d/所有registry按域名匹配客户端证书~/.docker/certs.d/仅当前用户CLI调用第四章seccomp策略与WASM运行时的兼容性冲突治理4.1 seccomp默认配置对WebAssembly系统调用模拟层WASI的拦截行为剖析seccomp默认策略与WASI调用映射关系Linux内核默认启用的seccomp-BPF策略严格限制非白名单系统调用而WASI规范定义的args_get、clock_time_get等接口需经运行时如Wasmtime转换为宿主syscall。若未显式放行对应syscall如gettimeofday、read将触发EPERM错误。典型拦截日志示例seccomp[12345]: syscall21 (read) blocked by seccomp mode 2该日志表明WASI wasi_snapshot_preview1::args_get内部调用的read(0, ...)被拦截——因read不在默认seccomp白名单中。关键系统调用放行清单clock_gettime支撑clock_time_getgetrandom支撑random_getepoll_wait支撑异步I/O模拟4.2 基于strace seccomp-bpf trace的WASM插件启动失败syscall溯源问题现象定位WASM插件在沙箱中启动时被内核终止dmesg 显示 seccomp 违规日志但未指明具体被拦截的系统调用。双工具协同追踪先用 strace 捕获完整 syscall 序列再结合 seccomp-bpf tracepoint 过滤违规事件strace -f -e traceall -o strace.log ./wasm-plugin # 同时启用 seccomp tracepoint echo 1 /sys/kernel/debug/tracing/events/seccomp/seccomp_bpf/enable cat /sys/kernel/debug/tracing/trace_pipe | grep -E (kill|SECCOMP)该命令组合可精确对齐strace 提供上下文PID、参数、返回值tracepoint 精确标记被拦截点arch、syscall_nr、seccomp_ret。典型拦截分析表syscallerrnoseccomp actionmmapEACCESSCMP_ACT_ERRNOcloneEPERMSCMP_ACT_KILL_PROCESS4.3 定制化seccomp profile生成工具从wasi-sdk syscall表到JSON策略自动映射核心设计思路该工具以 WASI SDK 的syscalls.json为源事实通过语义解析将平台无关的 WASI syscall 名如args_get映射至 Linux 内核 syscall 编号如__NR_execve再按 seccomp-bpf 规则生成白名单 JSON。映射逻辑示例func mapWasiToLinux(wasiName string) (int, bool) { // 查表wasi-sdk/sysroot/share/wasi-sysroot/syscall_table.json table : map[string]int{args_get: 59, environ_get: 60, clock_time_get: 228} num, ok : table[wasiName] return num, ok }该函数执行常量时间查表支持 WASI v0.2.0 标准全部 54 个入口点返回值为 Linux x86_64 ABI 下的 syscall 编号供后续生成 seccompSCMP_ACT_ALLOW规则使用。输出结构对比字段WASI syscallseccomp JSON ruleNamepath_opensyscall: openatArg constraintflags O_RDONLY{index:2,value:0,op:SCMP_CMP_EQ}4.4 边缘节点级策略灰度发布与运行时热加载验证机制灰度策略分发流程边缘节点通过轻量级策略代理接收差异化配置依据标签如regionshanghai、node-typeiot-gateway匹配本地策略集。热加载核心逻辑// 策略热加载监听器 func (p *PolicyLoader) WatchAndReload() { watcher : fsnotify.NewWatcher() defer watcher.Close() watcher.Add(/etc/edge-policy/rules.yaml) // 监控策略文件路径 for { select { case event : -watcher.Events: if event.Opfsnotify.Write fsnotify.Write { p.LoadFromYAML(event.Name) // 原子加载新规则 p.validateAndActivate() // 验证后激活不中断流量 } } } }该函数实现零停机策略更新监听文件变更 → 解析 YAML → 校验语法与语义 → 原子替换内存中策略树。关键参数/etc/edge-policy/rules.yaml为可挂载配置卷路径保障多节点一致性。验证结果比对表验证维度灰度组基线组策略生效延迟82ms79ms规则匹配准确率99.98%99.99%第五章Docker WASM插件部署成熟度评估与演进路线当前成熟度三维评估模型基于对 12 个生产级 DockerWASM 集成项目的实测分析我们构建了兼容性、可观测性、生命周期管理三维度评估矩阵维度当前状态v0.5典型问题WASI syscall 兼容性支持 68% 基础调用如 args_get, clock_time_get缺失 sock_accept, path_open 导致数据库驱动无法加载OCI 运行时集成需手动 patch containerd-shim-wasmedge v1.2.0镜像层解压后未自动注入 wasi_snapshot_preview1 ABI 表真实部署案例边缘日志处理器某 IoT 平台将 Rust 编写的 WASM 日志过滤器嵌入 Docker 插件链# Dockerfile.wasm FROM scratch COPY target/wasm32-wasi/release/log_filter.wasm /plugin.wasm LABEL org.opencontainers.image.titlelog-filter-wasm LABEL io.docker.plugin.version0.3.1 # 必须显式声明 WASI capability LABEL io.docker.plugin.wasi.capabilities[env,args,clock,random]关键演进路径短期Q3 2024上游 containerd 合并wasmtime-c-apishim 支持消除 fork 维护成本中期Q1 2025Docker CLI 原生支持docker plugin install --wasi语法自动处理 ABI 映射长期W3C WASI-NN 标准落地后启用 WebGPU 加速的 AI 推理插件直通 GPU 内存空间可观测性增强实践通过 eBPF hook 拦截 WASM 实例的 wasi::poll_oneoff 调用生成 Prometheus metricswasm_plugin_syscall_duration_seconds{pluginlog-filter,syscallclock_time_get} 0.000124

相关文章:

Docker WASM插件下载总失败?揭秘CDN缓存污染、证书链断裂与seccomp策略冲突三大隐性故障源

更多请点击: https://intelliparadigm.com 第一章:Docker WASM 插件下载与安装概述 Docker 官方自 2023 年起通过实验性插件机制支持 WebAssembly(WASM)运行时,使容器化工作负载可在无内核依赖的沙箱中安全执行。该能…...

OBS多平台直播同步终极方案:一键实现跨平台推流

OBS多平台直播同步终极方案:一键实现跨平台推流 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 对于直播内容创作者来说,多平台直播同步是扩大观众覆盖、提升内容…...

基于RAG与领域知识库的专用硬件编程助手构建指南

1. 项目概述:一个面向Cerebras架构的智能编码助手最近在探索大模型与专用硬件协同优化的前沿领域时,我注意到了jose-compu/cerebras-coding-agent这个项目。简单来说,这是一个专门为 Cerebras 硬件平台(特别是其 Wafer-Scale Engi…...

Ladybird端到端测试终极指南:用户交互与功能验证全解析

Ladybird端到端测试终极指南:用户交互与功能验证全解析 【免费下载链接】ladybird Truly independent web browser 项目地址: https://gitcode.com/GitHub_Trending/la/ladybird Ladybird作为一款真正独立的网页浏览器,其端到端测试体系是确保浏览…...

从3D打印验证到工厂定制:我用SolidWorks钣金功能设计铝合金面板的全流程记录

从3D打印验证到工厂定制:我用SolidWorks钣金功能设计铝合金面板的全流程记录 在创客文化盛行的今天,将数字模型转化为实体物件的过程从未如此触手可及。作为一名热衷于硬件原型开发的技术爱好者,我最近完成了一个铝合金控制面板的设计制造项目…...

AI赋能产品管理:productskills实战指南与效率提升解析

1. 产品经理的AI副驾:productskills深度体验与实战指南最近在GitHub上发现了一个挺有意思的工具,叫productskills。作为一个在互联网产品圈摸爬滚打了十来年的老兵,我见过太多团队在需求挖掘、策略制定和文档撰写上耗费大量时间,却…...

如何用PyTorch Image Models实现少样本学习:ProtoNet终极指南

如何用PyTorch Image Models实现少样本学习:ProtoNet终极指南 【免费下载链接】pytorch-image-models The largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResN…...

键盘幽灵键终结者:Keyboard Chatter Blocker深度配置指南

键盘幽灵键终结者:Keyboard Chatter Blocker深度配置指南 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 当你的机械键盘开始…...

避开这些坑!Arduino UNO R4 WIFI连接MQTTX(EMQX)的完整配置与排错指南

Arduino UNO R4 WIFI连接MQTTX的实战避坑手册 当你在深夜调试Arduino UNO R4 WIFI与MQTTX的连接时,是否遇到过WiFi死活连不上、MQTT消息神秘消失,或是JSON解析突然崩溃的情况?这篇文章不会给你展示完美的理想流程,而是聚焦那些教程…...

AI模型热加载+沙箱冷启动<800ms:高并发生产环境Docker隔离性能压测实录(含12项基准数据)

更多请点击: https://intelliparadigm.com 第一章:AI模型热加载沙箱冷启动<800ms:高并发生产环境Docker隔离性能压测实录(含12项基准数据) 在千万级QPS的实时推理网关中,模型热加载与沙箱冷启…...

双流扩散模型在机器人策略学习中的应用与优化

1. 双流扩散模型:机器人策略学习的新范式在机器人策略学习领域,视觉-语言-动作模型(VLA)正面临一个关键瓶颈:如何让机器人不仅理解当前环境,还能预测自身动作对环境的影响。传统VLA模型虽然能基于视觉和语言…...

土耳其语词嵌入优化:应对形态复杂性的技术方案

1. 嵌入模型的理论边界解析在自然语言处理领域,词嵌入技术早已从Word2Vec的突破性发展演变为支撑现代NLP系统的基石。土耳其语作为黏着语的代表,其复杂的形态变化对嵌入模型提出了独特挑战。一个土耳其语动词通过添加后缀可以衍生出超过200万种形式变化&…...

CoCo框架:代码驱动的文本到图像生成技术解析

1. 项目概述CoCo(Code-as-CoT)是一种创新的文本到图像(T2I)生成框架,它将传统的自然语言链式思考(CoT)推理过程转化为可执行代码,从而实现对生成图像结构化布局的精确控制。该框架由…...

MCP for Unity:用自然语言驱动AI助手,重塑Unity开发工作流

1. 项目概述:当AI助手学会“开”Unity 如果你是一个Unity开发者,大概率经历过这样的场景:脑子里构思好了一个功能,比如“给场景里的主角添加一个受击闪烁效果”,然后你需要在Unity编辑器里点开Hierarchy窗口、找到角色…...

Mapbox与React构建交互式地图:反思性设计在可持续旅行工具中的实践

1. 项目概述:一个关于“慢旅行”的反思性工具最近几年,我越来越频繁地听到一个词:“过度旅游”。威尼斯、巴塞罗那、京都……这些曾经令人心驰神往的目的地,如今在社交媒体上更多地与拥挤的人潮、飙升的物价和当地居民的抗议联系在…...

视觉语言模型革新代码理解:从文本到图像的范式转变

1. 视觉语言模型在代码理解中的范式革新当GPT-5和Gemini-3这类多模态大语言模型(MLLMs)开始原生支持图像理解时,我们突然意识到:为什么代码一定要以文本形式输入?传统文本编码方式将代码视为线性token序列,…...

告别手动填Token!SpringDoc + Spring Security OAuth2 一键登录Swagger UI实战

SpringDoc与Spring Security OAuth2的无缝集成实战 每次调试API时,你是否厌倦了在Swagger UI和OAuth2授权页面之间来回切换?那种复制粘贴Token的繁琐操作,不仅浪费时间还容易出错。作为开发者,我们值得更好的工具链体验。 1. 传统…...

2026免费降AI神器实测:10款工具红黑榜,知网稳过攻略

每到毕业季,论文查重和AIGC检测就成了压在不少同学头上的两座大山。自己一字一句敲出来的内容被误判为AI生成,或者写完润色后查重满片飘红,这种手足无措的绝望感,相信很多人都经历过。 为了帮大家搞定论文降AIGC这个棘手问题&…...

ISO 19011新版(2018)深度解析:远程审核、虚拟场所与基于风险的审核方案如何落地?

ISO 19011:2018新版实践指南:远程审核技术与风险导向方案设计 数字化转型背景下的审核革命 当全球供应链遭遇突发性中断,当混合办公成为企业新常态,传统审核方式的局限性暴露无遗。ISO 19011:2018标准的发布恰逢其时,为审核实践注…...

技术实测:高精度三维扫描在涡轮叶片数字化检测中的应用

01 行业痛点:复杂曲面的测量困境 涡轮叶片作为航空发动机的核心部件,其制造公差往往在微米级。在检测过程中,工程师通常面临以下挑战: 几何特征复杂:叶片具有复杂的空间扭曲形状,且边缘(R角&…...

ProperTree:3步搞定跨平台plist文件编辑,告别格式兼容烦恼

ProperTree:3步搞定跨平台plist文件编辑,告别格式兼容烦恼 【免费下载链接】ProperTree Cross platform GUI plist editor written in python. 项目地址: https://gitcode.com/gh_mirrors/pr/ProperTree 还在为不同操作系统上的plist文件编辑而烦…...

保姆级教程:在Ubuntu 22.04上从零安装ROS Humble(含虚拟机配置与常见报错解决)

零基础实战:Ubuntu 22.04虚拟机环境下的ROS Humble完整安装指南 当机器人操作系统(ROS)遇上Ubuntu长期支持版,会碰撞出怎样的开发火花?本指南专为从未接触过Linux环境的开发者设计,从虚拟机配置到ROS Humbl…...

如何高效使用ExtractorSharp:游戏资源编辑器的完整实战指南

如何高效使用ExtractorSharp:游戏资源编辑器的完整实战指南 【免费下载链接】ExtractorSharp Game Resources Editor 项目地址: https://gitcode.com/gh_mirrors/ex/ExtractorSharp ExtractorSharp是一款功能强大的开源游戏资源编辑器,专门用于编…...

抖音去水印下载工具实战指南:5种提升内容创作效率的方法

抖音去水印下载工具实战指南:5种提升内容创作效率的方法 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 还在为抖音视频水印烦恼吗?TikT…...

如何解决Blender渲染难题?5个Radeon ProRender实用技巧

如何解决Blender渲染难题?5个Radeon ProRender实用技巧 【免费下载链接】RadeonProRenderBlenderAddon This hardware-agnostic rendering plug-in for Blender uses accurate ray-tracing technology to produce images and animations of your scenes, and provid…...

GDSDecomp:如何用逆向工程工具在5分钟内完成Godot项目恢复?

GDSDecomp:如何用逆向工程工具在5分钟内完成Godot项目恢复? 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp 当你面对一个打包好的Godot游戏PCK文件,想要了…...

别再被torch.cuda.is_available()=False坑了!保姆级排查CUDA 10.2与PyTorch GPU版本匹配指南

深度学习环境配置避坑指南:彻底解决PyTorch GPU版本失效问题 当你在终端输入import torch; torch.cuda.is_available(),期待看到True却得到False时,那种挫败感每个深度学习开发者都深有体会。这就像买了一辆跑车却发现发动机无法启动——硬件…...

别再只用random了!用Python模拟双色球,聊聊伪随机与算法效率那点事

从双色球模拟到算法优化:Python随机数生成的深层思考 当我们在Python中敲下random.randint(1,33)时,是否思考过这行简单代码背后的复杂性?双色球模拟程序看似是个入门级练习,实则暗藏算法效率、随机性质量、工程实践三大进阶议题。…...

Akagi麻将AI助手:5步从麻将新手到高手的终极指南

Akagi麻将AI助手:5步从麻将新手到高手的终极指南 【免费下载链接】Akagi 支持雀魂、天鳳、麻雀一番街、天月麻將,能夠使用自定義的AI模型實時分析對局並給出建議,內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki, …...

黎阳之光:以视频孪生领跑数字孪生水利,赋能天空地水工一体化智能感知新未来

2026年5月18—20日,2026(第二届)数字孪生水利智能监测感知技术装备与应用大会将在南京召开,聚焦天空地水工一体化监测感知、数字孪生流域、高保真模拟、智慧水利等国家战略方向,汇聚行业顶尖力量共推水利数智化升级 。…...