FalconDB:blockchain-based collaborative database

  • 摘要
  • 1 introduction
    • 3问题陈述
      • 设计目标
        • 设计安全保证
        • 性能
    • 4 系统设计
      • 系统概况
    • 实验

摘要

如今,一种新兴的应用程序基于在不同实体之间共享数据库上的协作。然而,现有的共享数据库解决方案可能需要对他人的信任、对硬件的要求高而单个用户负担不起,或者性能相对较差。其实,安全性,兼容性,效率之间本身就存着三个维度无法同时优化。在本文中,我们介绍了FalconDB,它使硬件资源有限的情况下各方面–指那些方面都能够在数据库上高效安全地进行协作。 FalconDB采用客户端具有可访问的验证接口的数据库服务器,并将digests存储在区块链上以进行查询/更新身份验证。 使用区块链作为共识平台和分布式账本,FalconDB可以在彼此不信任的情况下工作。 同时,FalconDB在每个客户端上只需要最小的有多小 存储成本,并且提供对数据库的任何可用,实时和并发访问。 因此,FalconDB克服了先前解决方案的弊端,并使单个用户能够以高效率,低存储成本和区块链级安全保证参与协作。

1 introduction

互联网的发展为数据合作带来了巨大的机遇。许多应用可以从多方共享的数据库中获益,如collaborative benchmarking[4]、crowdsourcing[43]、共享经济[5]、协作科学计算[14]、协作机器学习[7]。
在这种情况下,主要的问题是共享的数据库管理系统,允许各方执行更新对数据库的查询,同时在网络中所有参与者之间保持一致视图。 许多项目需要一组个人用户之间的协作。 作为个人参与者,他们可能需要通过其个人设备进行协作,而个人设备通常是有限的存储和计算能力。 此外,它们很容易被骗,并变成坏蛋!!! 因此,设计一个共享数据库是至关重要的,该共享数据库使单个用户可以彼此合作而无需任何信任。
传统上,具有有限的计算机能力和本地存储能力的个人用户通常使用中央服务器来促进协作。这样的服务允许随时随地对数据库进行实时和并发的访问。但是,它需要完全信任中央服务器,期望它能正确地执行所有请求。恶意服务器可以欺骗任何客户端而不被发现,这个问题比较迫在眉睫。另一个问题来自客户端:客户可以为了自己的利益任意地操纵记录。必须采用一种复杂的机制来防止客户机发布不需要的更新。就是不能让客户端自己找事儿~*
区块链技术的出现带来了解决拜占庭式失败的实用解决方案[26],也就是说,一方可以任意行事。 具体来说,可以将许可的区块链平台视为一个分布式系统,在该系统中,有一系列保存不可变记录的块。 所有区块链节点都通过某种可以容忍拜占庭式故障的共识协议来同意记录块。 这样的平台包括Hyperledger [2],Tendermint [8],HotStuff [47]和BigchainDB [33]。 这种设计不需要集中式服务器,并且可以在不信任的环境中工作,最多可以有很小比例的节点(例如1/3)故障或者被恶意篡改。系统会拒绝恶意更新等不需要的操作。
尽管区块链系统吸引了很多关注,但是,由于成本高昂,单个用户作为节点参与仍然非常罕见。 首先,区块链节点需要在本地存储块的完整副本,这很容易达到数百GB,可能会耗尽单个用户的本地磁盘空间。 其次,区块链节点必须保持与其他节点的网络通信,以迅速接收和验证新块,这会消耗网络带宽和计算能力。 最后,由于不再有方便查询的服务提供商,因此用户必须使用其个人硬件在本地执行查询。 在CPU能力有限的情况下执行复杂的查询可能会慢得无法接受。
区块链节点的高成本限制了区块链的兼容性。 提出了轻量级客户的概念,以减轻单个参与者的成本[35]。以太坊的全节点和轻节点 。轻量级客户端与完整节点通信以更新或查询区块链数据库。 因此,它们的功能受到整个节点公开的API的限制。 此外,如果全节点不可信,则需要确保查询完整性[45]。 基准解决方案是利用智能合约[22]。 用户可以向智能合约提交查询。 然后,所有完整节点都将执行查询,并对查询结果运行拜占庭式容错(BFT)共识协议。 一旦达成共识,结果将提交给区块链,并透露给客户。 这种方法保证了大多数诚实节点的完整性。 但是,它的吞吐量有限,延迟时间长,耗气量高,并引起隐私问题。
以前的解决方案都无法同时实现安全性,兼容性和效率。当我们需要所有三个属性时,这成为最重要的难题。考虑慈善捐赠的情况,其中大量捐赠者向多个非营利组织(NGOs)捐赠。一个非政府组织需要记录每笔收到的捐赠,而一个个人捐赠者可能想审核一个非政府组织如何花钱。实际上,这样的数据库已经存在[13],其中集中式数据库服务器决定所有更新和查询的执行结果。在这种设计中,数据库主机能够隐藏任何可能的捐赠损坏或滥用,而用户则无法对其进行验证。因此,更需要去中心化的区块链数据库解决方案。但是,如上所述[33]的现有区块链数据库设计是不够的,因为:
1)个人贡献者几乎没有足够的本地存储来存储整个数据;
2)充当轻量级客户端并使用智能合约查询完整节点还不够高效。
因此,设计一个对用户来说成本低廉的有效系统,却仍然能够进行可追溯且无篡改的慈善捐赠历史记录这一点非常重要。
贡献
我们介绍FalconDB,这是一个区块链数据库,对单个客户端的硬件要求(例如,存储,计算,带宽)低,可实现高达集中式数据库设计的查询效率,并确保像区块链级别一样强大的安全保证。在FalconDB中,区块链节点可以是服务器节点(存储整个数据库),也可以是客户端节点(通过向服务器节点发送查询和更新请求来使用数据库)。为了使客户端能够验证是否正确执行了更新或查询,数据库内容与经过身份验证的数据结构(ADS)存储在服务器节点上。 ADS为当前数据库内容生成一小段摘要,然后客户端可以使用此摘要来验证服务器返回的结果。服务器和客户端在分散的区块链网络下同步。每个服务器节点是一个完整的区块链节点,用于存储整个数据库和区块链块,而每个客户端节点仅存储块头。最新的块头包含当前数据库内容的摘要,客户端可以访问这些摘要以进行身份​​验证。通过此摘要,FalconDB可以容忍多达1/3的总区块链节点是恶意的,并且就算只有一个节点没问题,它可以通过身份验证数据库来继续使用。
请注意,许多先前关于外包数据库的工作(ODB)[21、28、29、34、36、37、46、46、49、50]研究了查询身份验证的问题,该问题使用基本摘要验证了数据库服务器的结果。 不幸的是,它们不能直接应用于协作数据库场景,正如我们将在2.3.1节中展示的那样。
存在什么问题
局限性。 在ADB中,仅设置一个客户端的ADS已被证明功能强大。 借助ADS,客户端可以确保服务器返回的查询结果的完整性,完整性和新鲜度,而无需在本地存储整个数据。 但是,将ADS应用于有多个客户端来更新数据的协作数据库时,仍有两个主要挑战需要解决:
ADS的安全性保证是基于用户拥有正确的最新数据摘要的假设。 但是,当有多个客户端要更新远程数据时,存储在客户端本地计算机上的摘要可能已过时。 考虑到网络存在延迟,更新可能存在冲突以及接收到的摘要可能是恶意生成的,因此,在其他人更新数据之后,客户端要获取最新的摘要是一项挑战。
•协作者可能会受到损害并变得恶意。 恶意客户端可能发布不需要的数据更新,例如,随机插入和删除记录。 不幸的是,发生这种情况,原始ADS无法恢复数据也无法识别攻击者

在本文中,我们在区块链网络上构建ADS优雅地解决这两个挑战。 作为BFT共识算法,可以自然地使用区块链在客户端之间同步摘要,从而解决了第一个挑战。 而且,每当有不希望的数据更新时,区块链带来的属性都提供了直接的解决方案来恢复数据(具有不变的属性)并检测攻击者(具有透明的属性),这解决了第二个挑战。

我们将我们的贡献总结如下:

  1. 我们提出并实现了FalconDB,据我们所知,它是第一个允许个人用户在具有强大安全保障、低存储成本和高效率的数据库上协作的平台。
  2. FalconDB利用了区块链平台,可以容忍1/3的参与者被恶意攻击,同时还使用了一个临时数据模型,它提供了一个透明的数据库历史日志,使客户机能够检查历史并恢复恶意协作者所做的更新。
  3. FalconDB服务器节点使用非匹配的数据结构存储整个数据库。这样,客户端节点只需要存储块标头,并能够验证服务器节点返回的结果。因此,每个客户端都有最小的存储成本,FalconDB可以一个节点存活。
  4. 此外,FalconDB提供了一个激励模型,促使每个服务器承担额外的存储成本并诚实地响应客户机的请求,这进一步减少了服务器被恶意攻击的机会。类比特币奖励鼓励大家多干活
  5. 最后,我们通过实证评价来验证alcondb的性能。我们的结果表明,FalconDB能够实现与最先进的区块链协议一致的安全保证、作为外包数据库的高效率以及在客户端上的低存储成本。

3问题陈述

设计目标

设计安全保证

  • 不变性。区块链上提交的数据库任何更新是不可变的。
  • 透明度。对数据库的所有操作都是所有人可见的。
  • 数据完整性。客户机可以验证服务器端的数据库(不正当更新或者是否做了未经授权的事情)。
  • 查询的正确性。客户机可以本地验证服务器端反馈的结果是否正确。
  • 可靠性。返回答案是否满足查询条件且没被修改过。
  • 完整性。结果中有没有被遗漏的答案。
  • 新鲜度。是不是最新版本结果。

性能

  • 高表达。支持广泛查询和更新。(是不是可以采用NLP做数据接口)
  • client成本低。空间计算网络都小。即使你就是个手机!也可以作为client参与其中,并获得好处
  • 性能。支持高并发,低延迟。与outsourced DB相比一致性&认证开销更大。

4 系统设计

系统概况

分为两个部分,一个是server node,一个是client node。

  • server node(不同的实体托管)
    存!存数据库和完整的区块链数据。
    查!回答client的查询
    更!更新client
    验!验证区块链新块
    生!为查询生成证明
    钱!给server node钱!

    1、每个服务器的数据库存储在一个持久的数据结构中,保存所有的历史版本。可以参考:
    链接: 可持久数据结构.
    2、构造一个ADS(authenticated data structures)像客户端提供身份验证的查询和更新。

  • client node(不本地存DB数据)
    有权限! 对数据库进行读写
    通过ADS进行验证查询更新的结果
    部分数据上链,其他节点被动更新,但是不参加区块链共识。

在FalconDB中,一个区块链事务相当于一个数据库的操作。
block header H 包括 块提交的时候ADS的摘要,用在client验证请求是否已经正确执行。
在运行共识之前,每个服务器和每个客户端向以太坊等服务托管的智能合约进行存款交钱给你建立激励机制!!!!),这有助于建立激励机制,如第4.3节所述。 此外,我们假设存在网络中所有节点都同意的特权函数。 此函数定义了特定客户端可以进行的更新类型。 此特权功能是动态的,可以调整。 例如,如果一个客户端受到威胁并变得恶意,则其他客户端可以撤消其所有访问数据库的特权。 任何智能合约都可以轻松实现此功能,因此我们跳过本文中的详细信息。 图2说明了查询的一般工作流程。
图2说明了查询的一般工作流程。 将查询费用从其存款转入服务器帐户后,客户端节点可以向任何服务器节点发送查询。 服务器将立即执行查询并将结果返回给客户端。 之后,客户端可以选择通过向智能合约发送身份验证请求来验证查询结果。 在这种情况下,客户向服务器支付了额外的钱,并且服务器必须生成可以由摘要验证的ADS证明。 不提供此类证明将导致服务器丢失其智能合约帐户中的所有费用,包括其初始存款和从客户获得的收入。
此外,客户端可以使用ADS接口向服务器发布更新。 与服务器交互后,客户端将向网络提议一个新块,包括块内容中的更新和交互式日志,以及块头中的updater和新摘要的标识。 区块链节点将检查更新是否有效以及新摘要是否正确。 通过BFT(拜占庭容错机制)共识协议在所有区块链节点之间达成共识后,该区块将被提交给区块链,并且客户端会将其摘要更新为这个新提议的区块中的区块。
为了像传统数据库一样支持交易,我们采用开放式并发控制(OCC)来提供快照隔离,这与许多现代数据库系统一样。 用户可以根据其所在区块的规格来开始交易。 仅当指定的块与当前块之间没有冲突时,才会接受包含此事务的块。

实验

在我们的评估中,FalconDB合并了以下组件:
1)MySQL服务器作为后端SQL服务器,
2)IntegriDB [50]提供ADS和支持身份验证
3)Tendermint [8]作为区块链平台。
选择这些组件是因为实践中显示了出色的特性,例如兼容性和安全性保证。但是,将来也可以插入提供类似功能的替代方案和更高级的解决方案,并将其用作FalconDB中的黑盒。实验在CloudLab [15]上进行,其中每个节点都配备了2.4 GHz十核Intel E5-2640v4处理器和64GB DRAM。我们在具有Ns服务器和Nc客户端的群集上运行实验。默认情况下,Ns = 5且Nc =27。为模拟服务器与客户端之间的差异,我们通过报告执行时间的10倍来手动减慢所有客户端节点上的处理速度,这是合理的比率。商业服务器和移动电话的处理速度。为简单起见,实验中忽略了访问控制。
我们将FalconDB的性能与第1节中提到的两个现有区块链数据库解决方案进行了比较:一个基于天真的区块链的共享数据库(每个用户存储完整的数据副本(BC))和一个基于智能合约的解决方案,用户可以向其提交智能合约 查询完整节点并获得同意的结果(SC)。 在BC省,所有服务器和客户端均充当区块链节点。 它们在本地执行查询,因为每个查询都存储数据库的完整副本。 当节点想要更新数据库时,它将把更新命令推送到区块链网络。 在达成共识并在链上提交后,所有区块链节点都在其本地副本上执行相同的更新。 在SC中,客户端通过向服务器维护的区块链网络发送命令来发出查询和更新。 服务器执行并达成共识后,客户端即可从已提交的块中获取结果。 为了公平起见,我们将Tendermint用作所有解决方案的基础区块链平台。
数据集。 在所有实验中,数据库的构建都遵循YCSB [11]:只有一个表,其中有一个主键列和其他字段的几列。 每个字段的值是一个100字节的ASCII字符串。 此外,该表还包含第4.4节中所述的另外两个列VF和VT。 我们将行数表示为n,将列数(包括VF和VT)表示为m。 在下文中,我们首先使用不同的合成工作流程评估FalconDB,然后使用YCSB工作流程进行测试。 所有SQL查询均按照4.5和4.6节中的描述进行包装

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【贪心入门】LeetCode #455 分发饼干

    (终于考完试了啊啊啊啊啊) 题目链接: LeetCode #455 分发饼干 题目描述: #455. 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块…...

    2024/4/13 23:54:20
  2. 零伽壹解析 | 一份来自区块链行业的《高考志愿填报指南》

    随着区块链产业的蓬勃、政府的扶持,也吸引了学生及家长的关注,不少高考学子对区块链领域颇有兴趣,而区块链领域也恰恰需要相关的人才资源。最近这几年互联网相关的专业已经成为大学热门专业,也成为了不少学子的高考志愿填报首选,在这个人生转折点的时刻,请收下这份来自区…...

    2024/4/30 21:57:47
  3. 寺库迟到的财报:盈利成为过去式

    配图来自Canva 近日,奢侈品电商寺库发布了截止至2020年3月31日未经审计的第一季度财报。 在2020年第一季度里,作为奢侈品电商老大哥的寺库并不好过,原本难熬的日子在疫情里更是雪上加霜。财报数据显示,在2020年第一季度里,寺库实现营收为10.05亿元人民币,同比下滑14.5%,…...

    2024/5/8 5:24:04
  4. 从另一个角度看待安全加密问题

    目录前言正文结论最近一直在做量子加密相关的项目,突然意识到以前很多高大上的技术都已经落地了。几年前还是一个概念,现在已经非常普遍的开始为我们服务了。顿时感叹科学技术发展之快。前言也许,我们从另一个角度来看待安全加密问题。安全加密不是为了加密而加密,是因为需…...

    2024/5/8 8:41:13
  5. Java工程师成神之路 基础篇 Java基础知识 异常&注解&泛型

    异常 Error 和 Exception Exception 和 Error ,二者都是 Java 异常处理的重要子类,各自都包含大量子类,均继承自Throwable 类。 Error 表示系统级的错误,是java 运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是Java 虚拟机抛出…...

    2024/5/6 1:35:50
  6. centos误删系统python2.7导致yum无法使用

    误删系统默认的python后使用yum报错,重装python后依然无法使用: There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named yum Please install a package which provides this module, or ve…...

    2024/4/9 1:16:04
  7. lua 获取文件名和扩展名

    local str = "aaa.bbb.bbb.txt"--获取文件名 function getFileName(str)local idx = str:match(".+()%.%w+$")if(idx) thenreturn str:sub(1, idx-1)elsereturn strend end--获取扩展名 function getExtension(str)return str:match(".+%.(%w+)$"…...

    2024/4/9 1:16:03
  8. promise

    可以这样链式的调用promise写法:简写遇到reject情况遇到reject在简写...

    2024/4/9 1:16:02
  9. 实验室暑假学习第二周算法总结

    LeetCode 628. 三个数的最大乘积 难度 简单 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例1 输入: [1,2,3] 输出: 6示例2 输入: [1,2,3,4] 输出: 24注意 1.给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 2.输入的…...

    2024/5/5 5:50:50
  10. ESP8266|ESP-01 Wi-Fi模块 - 使用 Lua 远程控制 LED

    ESP8266 - 远程控制 LED通过使用 ESP8266 模块,使用 Lua 语言编程,实现在局域网下的远程控制。准备工作ESP8266 01 (最便宜的)和 TTL 转 USBESP8266 01烧录 NoteMcuNoteMcu开发环境采用 ESPlorer ,到官网下载源码(3MB),运行需要 Java 环境,mac 应该自带。IDE其他:LED…...

    2024/4/21 1:22:47
  11. TP框架 跨域问题

    解决跨域在common.php 文件下添加 header 头部信息 use think\facade\Hook;Hook::add(app_init, function () {header(Access-Control-Allow-Origin: *);header("Access-Control-Allow-Headers: authorization, Origin, X-Requested-With, Content-Type, Accept, Set-Cook…...

    2024/4/8 22:12:57
  12. unittest框架-2断言

    unittest中的断言 每一个完整的用例肯定是包含有用例的,unittest中断言用前缀为assert的一系列函数来进行,这边我列举了几个常用的,实际应用中可以根据自己的需要来进行运用 如图,四个用例都是通过的...

    2024/4/8 22:12:56
  13. 9.SpringMVCA:JAX技术

    9.SpringMVC:AJAX技术 9.1 什么是Ajax技术?Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML) 是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。 通过在后台与服务器进行少量数据交换,Aj…...

    2024/5/2 16:39:20
  14. java_235_GOF23设计模式_适配器模式_对象适配器_类适配器_开发中场景_练习1

    //----------适配器模式-------------------//----------------------键盘类-------------- package java_235_GOF23设计模式_适配器模式_对象适配器_类适配器_开发中场景_练习; /**被适配的类(相对于例子中的ps/2键盘) */ public class Adaptee {// Adpatee被改造者 public vo…...

    2024/4/21 20:11:08
  15. Shell基础应用

    本案例要求熟悉Linux Shell环境的特点,主要练习以下操作:切换用户的Shell环境 练习命令历史、命令别名 重定向标准输入/输出/错误输出 管道操作实践 步骤一:切换用户的Shell环境 什么是shell? Shell是在Linux内核与用户之间的解释器程序,通常指的是bash,负责向内核翻译及…...

    2024/4/16 10:36:39
  16. strace命令详解

    https://www.cnblogs.com/machangwei-8/p/10388883.html...

    2024/4/9 1:15:58
  17. PyTorch 入门:01.PyTorch 入门

    什么是 PyTorch?PyTorch 是一个基于 Python 的科学计算包,主要定位两类人群:NumPy 的替代品,可以利用 GPU 的性能进行计算。深度学习研究平台拥有足够的灵活性和速度 开始学习Tensors (张量)Tensors 类似于 NumPy 的 ndarrays ,同时 Tensors 可以使用 GPU 进行计算。from…...

    2024/4/29 13:52:06
  18. js判断网络图片是否存在

    这里写自定义目录标题js判断网络图片是否存在 js判断网络图片是否存在 function CheckImgExists(imgurl) { var ImgObj = new Image(); //判断图片是否存在 ImgObj.src = imgurl; //存在图片 if (ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height >…...

    2024/4/30 7:05:12
  19. pip 安装小白教程

    pip 安装 1先找到pip.exe的安装路径,一般在python或anaconda的Scripts文件夹2 打开cmd,将上面的路径拖至cmd窗口3 在上述路径后输入 install + 模块名(install前有一个空格),然后回车。4 在自己的IDE里导入包,如果不报错则安装成功。...

    2024/5/2 11:20:39
  20. 使用css和js实现鼠标移动七彩泡泡特效

    一 css样式 <style>*{margin:0;padding:0;}body{overflow:hidden;}#canvas{background-color:black;} </style>二 html里添加canvas: <canvas id="canvas" ></canvas> 三 js: <script> var canvas = document.querySelector(#canva…...

    2024/4/28 3:45:52

最新文章

  1. 前端开发攻略---手写bind函数,看这篇就够了。

    1、演示 2、bind函数介绍 在JavaScript中&#xff0c;bind() 函数用于创建一个新函数&#xff0c;其 this 关键字设置为提供的值&#xff0c;而不是调用时绑定的值。这对于在事件处理程序中绑定函数的上下文或者在类中绑定方法的上下文非常有用。 bind() 方法的语法如下&#x…...

    2024/5/8 10:53:38
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 安卓java打包uniapp原生插件 和 uniapp使用安卓android原生插件

    1.uniapp dcloud官方文档 简介 | uni小程序SDK 2.前提&#xff0c;需要有经验的安卓java开发人员&#xff0c;并且同时具备uniapp移动端开发经验。说明&#xff1a;android打包的.aar和uniapp需要的.aar是不一样的&#xff0c;uniapp需要的.aar是需要有一些特定配置的&#x…...

    2024/5/7 9:16:07
  4. 【超简单】基于PaddleSpeech搭建个人语音听写服务

    一、【超简单】之基于PaddleSpeech搭建个人语音听写服务 1.需求分析 亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?当您面对成吨的会议录音,着急写会议纪要而不得不愚公移山、人海战术?听的头晕眼花,听的漏洞百出,听的怀疑人生,那么你…...

    2024/5/8 8:00:20
  5. Redis -- 缓存雪崩问题

    缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 可能原因 : 同一时间大量的key到期 ; 解决方案&#xff1a; 给不同的Key的TTL添加随机值 利用Redis集群提高服务的可用性 给缓存业务添加降…...

    2024/5/7 1:08:08
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/7 19:05:20
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/7 22:31:36
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/8 1:37:40
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/7 14:19:30
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/8 1:37:39
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/7 16:57:02
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/7 14:58:59
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/7 1:54:46
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/7 21:15:55
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/8 1:37:35
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/7 16:05:05
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/7 16:04:58
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/8 1:37:32
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/7 16:05:05
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/8 1:37:31
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/8 1:37:31
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/7 11:08:22
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/8 9:51:44
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/8 1:37:29
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/7 17:09:45
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57