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

再谈多重签名与 MPC

mpc-钱包-多方计算-fireblocks-机构钱包-coinbase-copper-fordefi-mpc-技术-solana-mpc-multisig

目录

什么是 MPC 钱包以及它们是如何出现的

多重签名和智能合约钱包已经成熟

超越 MPC 钱包

关于小队


多重签名已经成为加密货币领域的一部分,但近年来,随着 MPC(多方计算)钱包的出现,多重签名似乎被掩盖了。MPC 钱包之所以受到欢迎和采用,很大程度上是因为当它们出现时,可用的替代方案有限,而且多重签名被认为不够先进,尚未完全开发。然而,这种情况已不复存在,因为多重签名和智能钱包现在正在迅速改进,提供相同的功能和用户体验。

虽然我们之前已经广泛讨论过Multisig的主题,但本文将深入研究 MPC,并解释为什么我们认为它只是一个临时解决方案,直到 Multisigs 等更安全的选项能够得到改进和优化。

对于希望交易加密资产的机构投资者或高净值个人,MPC 和 Multisig 是最常推荐的两种解决方案。虽然乍一看这些选项似乎提供了类似的功能,但本文的目的还在于介绍 MPC 钱包的隐藏权衡,这些权衡会给用户带来额外的风险。相比之下,Multisigs 和智能钱包正成为更安全、更可靠的替代方案。

什么是 MPC 钱包以及它们是如何出现的

“MPC” 代表多方计算。一般来说,MPC 允许两方(或多方)共同生成结果(如交易签名),而不会向对方透露其私人信息。

在加密领域,MPC 的概念最初是为了增强钱包的安全性而提出的。传统的加密钱包只有一个私钥,如果被盗,未经授权的人就可以访问和转移钱包中的资金。为了降低这种风险,MPC 技术将私钥分成多个部分,称为份额/碎片,这些部分分布在多方之间。没有一方拥有完整的密钥,只有当这些参与方中预定义的最小数量的人聚集在一起重新创建密钥时,交易才能获得授权。
 

mpc 钱包的工作原理与多重签名传统钱包的比较-mpc 密钥共享-fireblocks-coinbase-fordefi-mpc 技术-多方计算与多重签名技术

MPC 钱包的出现可以追溯到 2018 年左右加密行业的增长以及对安全加密钱包的日益增长的需求,尤其是对于机构和高净值投资者而言。首批采用 MPC 技术的公司这样做的目的是提供比单密钥钱包更安全的托管解决方案,同时还保留能够在比特币和以太坊等任何区块链上执行交易的便利性。

最早在钱包技术中提出并实施多方计算 (MPC) 的公司之一是 Curv,时间是 2018 年(后来被 PayPal 于 2021 年收购)。当时,以太坊才刚刚开始成为与比特币并驾齐驱的潜在“可行”区块链,但它还没有准备好容纳智能钱包或开发多重签名,账户抽象也没有像今天这样成为每个人关注的焦点。Safe(前身为 Gnosis Safe)于同年晚些时候推出,现在是以太坊上领先的多重签名。然而,它是全新的,无法满足当时需要更先进技术的机构的需求。

Curv 的出现吸引了许多机构投资者对加密货币的投资,例如富兰克林邓普顿。这导致了其他 MPC 提供商的发展,例如 ZenGo 和 Fireblocks,它们在大约同一时间推出了自己的解决方案。另一方面,由于技术限制(当时智能钱包甚至还没有概念),多重签名尚未准备好被广泛采用——如果机构和组织想要一种安全的方式来交易和与加密资产互动,他们别无选择,只能使用 MPC 钱包进行运营。

如今,市场由 Fireblocks、Copper、BitGo、Coinbase Prime 和 Ceffu (Binance) 主导,所有这些提供商都在其钱包中采用了 MPC 技术。由于这项技术没有标准化的框架,因此每个提供商都构建了具有特定功能的独特解决方案。大多数 MPC 提供商都使用阈值签名方案 (TSS),这是一种链下协议,当与 MPC 结合使用时,可确定需要使用多少密钥份额来签署交易。这允许用户/服务提供商在设置 MPC 钱包时自定义其配置。
 

MPC 钱包类型 - 多方计算 - 集中式 - 混合式 - Fireblocks - Coinbase - MPC - Copper - Fordefi - 机构钱包 - Tap

通常,MPC钱包分为两种类型:

  1. 集中式 MPC:在此,单个组织在安全、隔离的云环境中保留对所有关键部分的控制。集中式交易所或托管服务提供商等机构通常使用此模型。尽管其运营效率高,但它可能会将资产暴露于内部漏洞和单点故障。

  2. 混合 MPC:在此设置中,密钥份额的责任由用户、服务提供商和另一个第三方分担。这种控制分散旨在限制将所有密钥完全信任给单个集中实体的必要性。尽管它可以提供更高的安全性,但它仍然需要一个集中方来安全地分发、监督和使密钥片段无效。

虽然在机构和高净值投资者采用加密货币的早期阶段,所有可行的解决方案都倾向于 MPC,但时代确实发生了变化。是的,多重签名技术最初在产品 / 功能和区块链兼容性方面有所欠缺,但那都是历史了。以太坊已经成熟,超越了其作为“可行”区块链的最初潜力,其社区和生态系统参与者(如 Safe)一直在努力改进自我托管解决方案。围绕账户抽象的多项举措也使合约 / 可编程账户更易于使用,也更易于多重签名操作。其他区块链(如 Solana)也已上线,具有与智能钱包更好的兼容性,甚至绕过了多重签名和高级钱包在 EVM 上面临的一些技术障碍。

总体而言,值得注意的是,受欢迎程度并不一定意味着优越性。虽然 MPC 在过去满足了需求,并且是一种不错的短期解决方案,但更好的替代方案已经成熟。如果您追求的是灵活性,那么 MPC 是一个不错的选择。然而,在安全性方面,有许多原因可以解释为什么 Multisig 和智能钱包比 MPC 更出色,并且提供了更好的解决方案,特别是对于安全性至关重要的机构而言。

多重签名和智能合约钱包已经成熟

与 MPC 不同,MPC 中单个密钥被分成几个部分,每个部分由不同的一方管理,而在 Multisig 设置中,每个参与者都有自己的私钥。要授权交易,需要获得预定阈值中最少数量的参与者的批准。

长期以来,多重签名由于其复杂性和技术限制而未得到广泛使用。以太坊虚拟机并未完全支持它们,并且在尝试与网络交互时面临挑战。多重签名无法自行发起交易,而多重签名解决方案必须找到解决方法才能使其工作。但自 2018 年以来发生了很大变化,ERC-4337 等新标准的实施使多重签名和创新加密钱包(智能钱包)能够与以太坊和 EVM 链完全集成。在 Solana 上,多重签名和智能钱包的格局有所不同,因为它是具有新颖虚拟机 (VM) 和编程模型的全新区块链。这种环境要求开发人员花时间深入了解如何构建此类解决方案。随着生态系统的成熟,Solana 多重签名解决方案迅速发展,其中 Squads 是主要参与者。

智能(合约)钱包正在成为下一代加密钱包,它不是建立在简单的用户账户上,而是建立在智能合约/程序之上,为用户提供比传统钱包更好的安全功能。多重签名可能是智能钱包最著名的例子。由于是可编程账户,它们可以让用户做很多事情,而 MPC 等链下解决方案如果不依赖中心化实体就无法做到。由 Squads Labs 开发的Fuse将成为 Solana 上第一个具有这些独特功能的机构级智能钱包。
 

与 MPC 架构相比,智能钱包的设计完全在协议层上,无需依赖任何中心化实体来管理和保护资产。虽然存在一些挑战,例如跨链兼容性或与 dApp 的完全兼容性,但我们相信从长远来看,这些挑战并非不可克服。值得耐心等待,而不是急于采用 MPC 这样的临时解决方案。此外,智能钱包的功能和用户体验已接近 MPC 钱包,同时在安全性和去中心化方面已经超越了 MPC 钱包。

此外,完全链上并基于智能合约/程序构建具有许多 MPC 无法比拟的优势。智能钱包可以轻松执行可变操作来更改其操作设置,从而实现管理灵活性。每个用户或组织都可以控制其钱包的规则和功能。相反,MPC 钱包通常带有一组预定义的功能,并且不提供相同级别的自定义。
 

智能钱包-多重签名-与-mpc-钱包-哪个更好-优点和缺点-mpc-与智能合约钱包-solana-mpc-多重签名

总体而言,经过数年开发多重签名技术,我们认为基于多重签名功能构建的智能钱包比 MPC 解决方案更安全,原因如下:

透明度:一切都在链上进行,这消除了交易过程中的任何歧义。这与 MPC 形成鲜明对比,在执行交易的许多步骤中,用户无法知道发生了什么(因为一切都是在链下完成的),密钥的哪些部分签署了交易,最终导致问责问题;

不依赖中心化方:从创建到添加成员、设置阈值和执行交易,智能钱包不需要信任中心化实体来管理和保护资产。这与 MPC 设置截然不同,后者本质上需要受信任的中心化方来保护一个或多个密钥共享。这种对密钥共享的依赖需要复杂且受信任的云基础设施,并且可能带来内部威胁等风险。这些漏洞可能会导致密钥共享的暴露,最糟糕的是,攻击者完全控制您的资产;

安全密钥撤销/轮换:这是 MPC 解决方案的最大风险 - 在设置门限签名方案 (TSS) 时,此部分是不可变的,将来无法更改。这意味着,如果组织内的某个人需要从设置中移除,您要么需要信任他们会归还其份额并且将来不再使用它,要么您的组织必须切换到新的 MPC 钱包以消除任何风险。相比之下,智能钱包允许从 Multisig 程序中真正撤销任何成员;

可编程:由于 MPC 是链下技术,并且具有许多不可变的功能(如阈值或密钥撤销),因此与智能钱包相比,它所能提供的功能有限。智能钱包可以实现任何可以在智能合约/程序中编码的功能;

安全逻辑久经考验:Multisig 技术已经经过多年的实战考验,Safe 是以太坊上最显著的例子,存储了 400 亿美元以上的资产,而 Squads 则是 Solana 上最大的团队所使用的。这与 MPC 解决方案非常不同,MPC 解决方案涉及复杂的算法,没有标准化的实现。大多数当前的 MPC 实现都是专有的,公众监督有限。这种缺乏透明度的情况使得很难验证这些解决方案的安全性和有效性。

至于隐私,Solana 即将让开发人员能够在协议级别匿名化部分代码,这要归功于零知识 (ZK) 层解决方案,例如Light Protocol或用于私人传输的Elusiv。这种设计非常出色,因为用户可以设置自己的私人 Multisig/Smart Wallet 并知道哪些部分是匿名的。相比之下,使用 MPC 解决方案,这些方面默认情况下对每个人都是模糊的。

超越 MPC 钱包

vitalik-buterin-mpc 与多重签名智能合约钱包是唯一的选择-vitalik-quote-tweet-mpc 钱包很糟糕-多重签名安全小队

虽然 Safe 和 Squads 等多重签名协议完全在链上,开源且经过形式化验证,但 MPC 解决方案则完全相反,本质上不透明。MPC 背后的算法在数学上很复杂,很难正确实施。它们通常需要密码学和软件工程方面的专业知识。即使是实施过程中的轻微错误也会导致严重的安全漏洞,例如 GG18 和 GG20 中发现的私钥信息泄露,Fireblocks等主要 MPC 提供商在 2019-2021 年间使用了这两个算法。

最近,Multichain 事件也凸显了实施 MPC 技术的运营风险。Multichain 的所有 MPC 节点实际上都是在公司首席执行官的个人云服务器帐户下运行的。当首席执行官被捕时,运营帐户的所有访问密钥都被撤销,这意味着团队中没有人可以访问平台内持有的资金。

尽管 MPC 技术在灵活性方面具有一些优势,并且一些底层解决方案(例如钱包即服务提供商)非常适合大规模引入大量用户(与用于管理大量加密资产的解决方案相比,安全性风险较小),但截至目前,MPC 解决方案还不完全适合成为保护大量资本的权威基础设施。它们权衡了各种因素,以实现便利性。此外,与已广泛标准化的 Multisig 技术不同,MPC 的实现在提供商之间差异很大。这种标准化的缺乏使得彻底审查和审计 MPC 解决方案变得更加困难,从而增加了未被发现的漏洞的风险。

展望未来,我们预计 MPC 提供商将开始将 Multisig 技术的元素纳入其解决方案中,以减轻这些风险。通过结合两种技术的优势,将有可能创建更安全、更强大的数字资产托管解决方案。然而,在这一演变完成之前,团队和机构必须意识到纯 MPC 解决方案所涉及的风险,并仔细考虑这些风险是否可以在其特定用例下接受。另一方面,智能钱包正在迅速改进并缩小与 MPC 产品的差距,同时保留持有加密资产的最高安全措施。

本文是智能钱包介绍的第一部分。第二部分将介绍我们对智能钱包的愿景,以及新一代加密钱包将如何改善整个行业的加密托管。

关于小队

Squads 是一个加密公司运营平台,可简化基于 Solana 和 SVM 构建的团队对开发人员、创建者和财务资产的管理。开源、经过形式验证、不可变的 Squads 使团队能够通过多重签名保护其链上资产并共同管理它们。

了解更多

什么是 Squads:Introducing: Squads - Squads Blog 

Squads 协议:https ://squads.so/blog/solana-svm-smart-contract-wallet-infrastructure

代码:https ://github.com/Squads-Protocol/squads-mpl

为什么要使用 Multisigs:https ://squads.so/blog/what-are-multisig-wallets

相关文章:

再谈多重签名与 MPC

目录 什么是 MPC 钱包以及它们是如何出现的 多重签名和智能合约钱包已经成熟 超越 MPC 钱包 关于小队 多重签名已经成为加密货币领域的一部分,但近年来,随着 MPC(多方计算)钱包的出现,多重签名似乎被掩盖了。MPC 钱包之…...

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)

相信实验一大家已经完成了,对Arcgis已进一步熟悉了,现在开启第二个实验 ArcMap实验--网络分析 目录 ArcMap实验--网络分析 1.1 网络分析介绍 1.2 实验内容及目的 1.2.1 实验内容 1.2.2 实验目的 2.2 实验方案 2.3 实验流程 2.3.1 实验准备 2.3.2 空间校正…...

Python、R循环神经网络RNN、指数平滑ETS、ARIMA模型预测网络流量、ATM机取款、旅游需求时间序列数据...

全文链接:https://tecdat.cn/?p38496 分析师:Pengyuan Wen 在当今经济研究与商业决策领域,精准的时间序列预测具有极为关键的意义。社会消费品零售总额作为反映人民消费水平以及国民经济状况的核心指标,其发展趋势的精准把握对中…...

通过PS和Unity制作2D动画之二:IK的使用

一、IK的概念 IK:Inverse Kinematics,反向动力学。 (1)正向动力学 在骨骼动画中,构建骨骼的方法被称为正向动力学。它的表现形式是:子骨骼(关节)的位置根据父骨骼(关节…...

如何防御ARP欺骗 保护IP安全

在数字化浪潮席卷全球的今天,网络安全威胁如同暗流涌动,时刻考验着我们的防范能力。其中,ARP欺骗攻击作为一种隐蔽性强、成本低廉且危害严重的网络攻击手段,成为众多网络安全事件中的一颗“毒瘤”。那么我们究竟是如何防御ARP欺骗…...

浏览器插件上架流程

上回说到,用 AI 开发上架了个浏览器插件。有朋友想知道上架扩展有需要哪些步骤。这里做个整理,这篇文章结构和步骤都是 AI 整理的。里面的文案细节、推荐的工具是我自己总结,以前发布扩展时直接用的。有需要的话下面的文案可以直接拷贝使用。…...

Android13 USB 串口默认授权

一)场景需求 项目中使用到了can协议控制车机功能,can 直接转串口,用USB转串口工具 cn.wch.uartlib 来实现. can 板子通过usb 插入到机器上面,那就是usb 协议了。 遇到问题: 插入can 板的usb 到机器上后,直…...

word实践:正文/标题/表图等的共用模板样式设置

说在前面 最近使用word新建文件很多,发现要给大毛病,每次新建一个word文件,标题/正文的字体、大小和间距都要重新设置一遍,而且每次设置这些样式都忘记了参数,今天记录一下,以便后续方便查看使用。现在就以…...

docker安装kettle(PDI)并实现web访问

我是MAC电脑M1版本,希望把软件交给docker进行管理,最近公司同事都通过kettle来实现外部数据对接,所以我本地也有安装kettle需求,在网上找到了这个解决方案操作很简单,但出现了无法访问的情况。我的排查方式是&#xff…...

vue自定义弹窗点击除了自己区域外关闭弹窗

这里使用到vue的自定义指令 <div class"item" v-clickoutside"clickoutside1"><div click"opencity" class"text":style"{ color: popup.iscitypop || okcitylist.length ! 0 ? #FF9500 : #000000 }">选择地区…...

【vue2】封装自定义的日历组件(三)之基础添加月份的加减定位到最新月份的第一天

我们在切换月份的时候&#xff0c;希望高亮显示在每个月的第一天上面&#xff0c;这样的效果我们要怎么来实现&#xff0c;其实也很简单&#xff0c;我们先看下实现的效果 实现效果 代码实现 原理就是获取到每月的第一天日期&#xff0c;然后再跟整个的数据进行对比&#xff…...

21天掌握javaweb-->第12天:Spring Boot项目优化与安全性

Spring Boot项目优化与安全性 1. Spring Boot性能优化 1.1 减少依赖项 评估项目的依赖项&#xff0c;并确保只引入必要的依赖。较多的依赖项可能会增加启动时间&#xff0c;因为它们需要被扫描和初始化。通过删除不需要的依赖项或仅引入必要的模块&#xff0c;可以减少类路径…...

Android —— 四大组件之Activity(一)

Android四大组件即Activity&#xff08;前台&#xff09;Service&#xff08;后台&#xff09;&#xff0c;Broadcast&#xff08;通信&#xff09;&#xff0c;ContentProvider&#xff08;数据存储&#xff09; 一、Activity Activity 充当了应用与用户互动的入口点Activity …...

Ubuntu手持司岚S2激光雷达进行建图

目前通过ros包将激光雷达数据读取之后: roslaunch rplidar_ros view_rplidar_s2.launch 再通过运行 cartographer_ros结点将代码运行起来 roslaunch cartographer_ros demo_revo_lds.launch 这里要注意, 在demo_revo_lds.launch 文件中引入的revo_lds.lua文件中要使用仿真时…...

快速了解 Aurora DSQL

上周在 AWS re:Invent大会&#xff08;类似于阿里云的云栖大会&#xff09;上推出了新的产品 Aurora DSQL[1] &#xff0c;在数据库层面提供了多区域、多点一致性写入的能力&#xff0c;兼容 PostgreSQL。并声称&#xff0c;在多语句跨区域的场景下&#xff0c;延迟只有Google …...

【Android Studio】学习——网络连接

实验&#xff1a;Android网络连接 文章目录 实验&#xff1a;Android网络连接[toc]实验目标和实验内容&#xff1a;1、掌握Android联网的基本概念&#xff1b;2、能够使用URL connection实现网络连接&#xff1b;3、掌握第三方库的基本概念4、需实现的具体功能 实验结果功能说明…...

c语言复制字符串memcpy和strncpy函数区别

memcpy 和 strncpy 的耗时区别 这两个函数在功能上有明显差异&#xff0c;导致性能和耗时也不同。以下是它们的详细对比&#xff1a; 1. 功能差异 函数功能memcpy按字节复制数据&#xff0c;不处理字符串终止符 \0&#xff0c;适用于任意数据类型的内存复制。strncpy复制字符…...

Java设计模式 —— 【创建型模式】建造者模式详解

文章目录 一、建造者模式二、案例实现三、优缺点四、模式拓展五、对比1、工厂方法模式VS建造者模式2、抽象工厂模式VS建造者模式 一、建造者模式 建造者模式&#xff08;Builder Pattern&#xff09; 又叫生成器模式&#xff0c;是一种对象构建模式。它可以将复杂对象的建造过…...

python爬虫--某房源网站验证码破解

文章目录 使用模块爬取目标验证码技术细节实现成果代码实现使用模块 requests请求模块 lxml数据解析模块 ddddocr光学识别 爬取目标 网站验证码破解思路是统一的,本文以城市列表为例 目标获取城市名以及城市连接,之后获取城市房源信息技术直接替换地址即可 验证码 技术…...

Android 项目依赖库无法找到的解决方案

目录 错误信息解析 解决方案 1. 检查依赖版本 2. 检查 Maven 仓库配置 3. 强制刷新 Gradle 缓存 4. 检查网络连接 5. 手动下载依赖 总结 相关推荐 最近&#xff0c;我在编译一个 Android 老项目时遇到了一个问题&#xff0c;错误信息显示无法找到 com.gyf.immersionba…...

SpringBoot3整合SpringMVC

一、实现过程: (1).创建程序 (2).引入依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…...

内网穿透 natapp安装与使用

前言 NATAPP是一款基于ngrok的内网穿透工具。以下是对NATAPP的详细概述&#xff1a; 基本概念 定义&#xff1a;内网穿透&#xff08;NAT穿透&#xff09;是一种技术&#xff0c;它允许具有特定源IP地址和端口号的数据包能够绕过NAT设备&#xff0c;从而被正确地路由到内网主机…...

docker镜像构建企业级示例

华子目录 示例&#xff08;在centos容器中源码编译nginx&#xff08;单介构建&#xff09;&#xff09;包准备为centos容器提供网络源添加企业7的ISO文件 提交为新的centos镜像编写dockerfile文件构建镜像如何优化自己构建的镜像大小多介构建 ldd命令基本用法示例 镜像优化方案…...

【论文阅读】龙芯2号处理器设计和性能分析

作者&#xff1a;胡伟武老师 胡伟武老师是计算机体系结构方向的大牛&#xff0c;推动了龙芯处理器的发展 学习体会&#xff1a; 学习追踪龙芯系列“工程流”论文&#xff0c;看看如何做工程&#xff0c;完成→完美 龙芯2号处理器几乎是工程向的论文&#xff0c;主要看一下实现…...

二一(GIT4)、echarts(地图)、黑马就业数据平台(学生页-增 删 改)

1. echarts 地图 echarts社区&#xff1a;makeapie echarts社区图表可视化案例 社区模板代码地址&#xff1a;自定义 tooltip-轮播 - category-work,series-map地图,tooltip提示框,visualMap视觉映射 - makeapie echarts社区图表可视化案例 // todo: 籍贯分布 地图 function…...

数据结构排序算法详解

数据结构排序算法详解 1、冒泡排序&#xff08;Bubble Sort&#xff09;2、选择排序&#xff08;Selection Sort&#xff09;2、插入排序&#xff08;Insertion Sort&#xff09;4、快速排序&#xff08;Quick Sort&#xff09; 1、冒泡排序&#xff08;Bubble Sort&#xff09…...

使用kubeadm命令安装k8s

版本信息 kubernetesVersion: 1.28.01. 前期环境准备 先配置软件源可以安装kubeadm、kubelet、kubectl三个软件,不同的系统不同的安装方式,这里不列举了,自己找。然后要安装cri-dockerd,因为kubernetes从1.24版本不再支持docker的api,支持原生的containerd的api,可以使用…...

依托 Spring Boot框架,精铸高扩展性招聘信息管控系统

1 绪 论 1.1 课题背景与意义 在Internet高速发展的今天&#xff0c;计算机的应用几乎完全覆盖我们生活的各个领域&#xff0c;互联网在经济&#xff0c;生活等方面有着举足轻重的地位&#xff0c;成为人们资源共享&#xff0c;信息快速传递的重要渠道。在中国&#xff0c;网上管…...

docker 部署 mysql 9.0.1

docker 如何部署 mysql 9 &#xff0c;请看下面步骤&#xff1a; 1. 先看 mysql 官网 先点进去 8 版本的 Reference Manual 。 选择 9.0 版本的。 点到这里来看&#xff0c; 这里有一些基础的安装步骤&#xff0c;可以看一下。 - Basic Steps for MySQL Server Deployment wit…...

SQL:从某行开始,查询一定行数的语句

比如实现从第五行开始查询5行数据的SQL语句 不同数据库有不同的实现方式&#xff0c;下面是各大数据库的查询语句。 1. SQL Server&#xff08;适用于 SQL Server 2012 及之后版本&#xff09;、DB2、Oracle&#xff08;适用12c及以上版本&#xff09; 这几种数据库的实现方式…...

18. 模块

一、什么是模块 模块化 指将一个完成的程序分解为一个一个小的模块。通过将模块组合&#xff0c;来搭建一个完整的程序。如果不采用模块化&#xff0c;那么所有的代码将统一保存到一个文件中。采用模块化后&#xff0c;将程序分别编写到多个文件中。使用模块化后&#xff0c;我…...

GroundingDINO微调训练_训练日志解释

文章目录 1. 训练日志1. Epoch 和 Iteration2. Learning Rate&#xff08;学习率&#xff09;3. ETA&#xff08;预计剩余时间&#xff09;4. Time 和 Data Time5. Memory6. Gradient Norm&#xff08;梯度范数&#xff09;7. Loss&#xff08;损失&#xff09;8. Individual L…...

华为eNSP:VRRP多网关负载分担

一、实验拓扑及目的 二、实验命令及实验步骤 LSW1的配置命令 <Huawei>sy [Huawei]un in e [Huawei]sys S1 [S1]vlan batch 100 200 [S1]int g0/0/1 [S1-GigabitEthernet0/0/1]port link-type access [S1-GigabitEthernet0/0/1]port default vlan 100 [S1-GigabitEtherne…...

uni-app写的微信小程序如何实现账号密码登录后获取token,并且每天的第一次登录后都会直接获取参数而不是耀重新登录(1)

uni-app写的微信小程序如何实现账号密码登录后获取token&#xff08;而token的有效器一般是30分钟&#xff0c;当页面在操作时token是不会过去&#xff0c;&#xff0c;离开页面第二天登录时token就是过期状态&#xff0c;因为记住了账号密码就不会操作再次登录&#xff0c;但是…...

【linux】(29)shell-变量和引号

Shell 脚本中有三种引号&#xff1a;双引号 "、单引号 和反引号 。它们有不同的作用。 双引号 " 双引号允许引用的字符串中包含变量和命令替换。 #!/bin/bash name"Alice" echo "Hello, $name!"单引号 单引号中的内容被原样引用&#xff0…...

Linux如何安装discuz

在Linux上安装Discuz!程序通常涉及以下步骤&#xff1a; 安装Web服务器&#xff08;如Apache或Nginx&#xff09;和数据库&#xff08;如MySQL或PostgreSQL&#xff09;。 下载Discuz!的最新版本。 将Discuz!文件上传到Web服务器的公共目录中。 根据README.md文件配置Discuz…...

SpringBoot如何使用EasyExcel实现表格导出(简洁快速入门版本)

前言 前面给大家介绍了动态表头的导入&#xff0c;这篇文章给大家介绍如何实现导出 前面给大家介绍了动态表头的导入&#xff0c;我们了解了如何通过EasyExcel灵活地读取结构不固定的Excel文件。这次&#xff0c;我们将目光转向数据导出——即如何将数据以Excel文件的形式输出…...

Python爬虫使用示例-保存诗人简介到csv文件中

一、获取资源 目标网址&#xff1a;&#xff08;第一页&#xff09; https://www.shicimingju.com/category/all&#xff08;后续&#xff09; https://www.shicimingju.com/category/all_2 https://www.shicimingju.com/category/all_3 ... https://www.shicimingju.com/ca…...

yocto的xxx.bb文件在什么时候会拷贝文件到build目录

在 Yocto 中&#xff0c;.bb 文件用于描述如何构建和安装一个软件包&#xff0c;而文件在构建过程中的拷贝操作通常会在某些特定的步骤中进行。具体来说&#xff0c;文件会在以下几个阶段被拷贝到 build 目录&#xff08;或者更准确地说&#xff0c;拷贝到目标目录 ${D}&#x…...

Mysql定时数据库备份保姆级教程

目录 一、需要解决的问题 1、如何传输文件? 2、如何备份数据库? 3、如何建立一个定时任务? 二、实施步骤 1、建立SSH公钥&#xff0c;实现无密码登录 2、编写备份数据库脚本 3、编写定时任务 MySQL 是一种全球广泛使用的关系型数据库管理系统&#xff0c;它存储的数…...

使用 Grafana 展示多个TiDB集群的告警

作者&#xff1a; yangzhj 原文来源&#xff1a; https://tidb.net/blog/229e283c 背景 在日常运维工作中&#xff0c;我们有时需要将多个生产集群的告警信息展示在一起&#xff0c;统一集中观察和分析TiDB 集群的告警情况。 本文将通过 Grafana 的多数据源功能来将多个Ti…...

lnmp+discuz论坛 附实验:搭建discuz论坛

Inmpdiscuz论坛 Inmp: t: linux操作系统 nr: nginx前端页面 me: mysql数据库 账号密码&#xff0c;等等都是保存在这个数据库里面 p: php——nginx擅长处理的是静态页面&#xff0c;页面登录账户&#xff0c;需要请求到数据库&#xff0c;通过php把动态请求转发到数据库 n…...

AI时代的开发新纪元:云开发 Copilot

AI时代的开发新纪元&#xff1a;云开发 Copilot 目录 引言&#xff1a;AI时代的开发新纪元低代码与AI的完美融合云开发 Copilot的革命性意义云开发 Copilot 的核心特性解析 快速生成应用功能低代码与AI的深度结合 实战演练&#xff1a;云开发 Copilot 的应用案例 从需求到实现…...

探索 Java 中的 Bug 世界

在 Java 编程的旅程中&#xff0c;我们不可避免地会遇到各种 Bug。这些 Bug 可能会导致程序出现意外的行为、崩溃或者性能问题。了解 Java Bug 的类型、产生原因以及解决方法&#xff0c;对于提高我们的编程技能和开发出稳定可靠的应用程序至关重要。 一、Java Bug 的定义与分类…...

【C++】等差数列末项计算题解析及优化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述与输入输出要求&#x1f4af;数学分析与公式推导公差的计算通项公式推导 &#x1f4af;示例解析解题步骤 &#x1f4af;程序实现与解析初版代码代码解析优点与不足…...

【LeetCode】55.跳跃游戏

文章目录 题目链接&#xff1a;题目描述&#xff1a;解题思路&#xff08;贪心算法&#xff09;&#xff1a; 题目链接&#xff1a; 55.跳跃游戏 题目描述&#xff1a; 解题思路&#xff08;贪心算法&#xff09;&#xff1a; 如果某一个位置的元素为N&#xff0c;表示后面N…...

linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程

系统服务 书接上文: linux自启任务详解 演示系统:ubuntu 20.04 开发部署项目的时候常常有这样的场景: 业务功能以后台服务的形式提供,部署完成后可以随着系统的重启而自动启动;服务异常挂掉后可以再次拉起 这个功能在ubuntu系统中通常由systemd提供 如果仅仅需要达成上述的场…...

SparkSQL编程实践

文章目录 SparkSQL编程实践1.1. 编程模型介绍1.2. SparkSQL编程1.2.1. 第三方库安装1.2.2. SparkSQL程序的结构1.2.3. SparkSQL执行模式1.2.3.1. Local模式1.2.3.2. 集群模式 1.2.4. 数据加载1.2.4.1. 通过RDD创建DataFrame1.2.4.2. 通过读取数据外部数据创建DataFrame标准读取…...

模型训练数据-MinerU一款Pdf转Markdown软件

模型训练数据-MinerU一款Pdf转Markdown软件-说明 简介&#xff1a; MinerU是什么 MinerU是上海人工智能实验室OpenDataLab团队推出的开源智能数据提取工具&#xff0c;专注于复杂PDF文档的高效解析与提取。MinerU能将包含图片、公式、表格等元素的多模态PDF文档转化为易于分析…...

shell基础用法

shell基础知识 shell中的多行注释 :<<EOF read echo $REPLY # read不指定变量&#xff0c;则默认写入$REPLY EOF # :<<EOF ...EOF 多行注释&#xff0c;EOF可以替换为&#xff01;# 等文件目录和执行目录 echo $0$0 # ./demo.sh echo $0的realpath$(realpath…...