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

BTC系列 - 启示录

推荐《区块链启示录:中本聪文集》这本书, 原来早在2010年, BTC生态还不完善的时候, 社区中就已经畅想出了未来其它链上的特色方案, 中本聪也都一一做了教父级回应: coinbase币的成熟时间, 交易池, 交易确认机制, 防51%攻击, 防双重消费, 水龙头, 轻量级客户端, 链上只记录哈希(Layer2的思想), 矿池, 分布式域名系统

历史

  • 比特币0.1版发布时, 仅用于Windows平台。(原来最初的代码是windows GUI版)
  • 0号区块中包含着以下的信息:“《泰晤士报》2009年1月3日英国财政大臣正欲对银行业实施第二轮救助。” (英文的ASCII编码)
  • 哈尔·芬尼是由中本聪亲自发送的第一枚比特币的接收人
  • 2009年12月30日,工作量证明难度首次被自动调整。
  • 匹萨订购系统。由mizerdearia承接。可以通过网站、命令行、智能手机、短信等方式订购匹萨。(哈哈,才有了后来著名的BTC匹萨日)
  • 截至2014年3月14日,这是中本聪在2014年3月7日发表在p2pfoundation上的最后一篇文章:增加了一些DoS限制,移除了安全模式(0.3.19版)

Token

政府有三种方法为财政赤字提供资金:通货膨胀(加印新钞)、社会借款和税收

通货膨胀率

比特币是限量供应的,计划到2140年发行2100万枚,分发(每个区块所产生的比特币)的数量每4年减半。
第一个4年:1050万枚
第二个4年:525万枚
第三个4年:262.5万枚
第四个4年:131.25万枚
以此类推……

即初始通货膨胀率35%

coinbase的成熟时间

创建后,留出120个区块的成熟时间的目的是为了在用于支付前要完全确定该区块属于主链。您的节点在此期间不会对该区块做任何事情,只是等待别的区块添加到它后面。这段时间都不需要在线。
想法:coinbase的币20小时后可用

Transaction

bitcoin支持向IP地址发送的交易吗?

比特币最早的实现(如 Bitcoin Core 的早期版本)确实支持向一个特定的 IP 地址发送交易。这种方式被称为 “IP-to-IP 交易”,是比特币网络的一项实验性功能。然而,这种功能已经在比特币的主流实现中被弃用,原因包括隐私和安全问题。

IP-to-IP 交易的原理
  • 概念:在 IP-to-IP 模式下,比特币客户端直接向目标 IP 地址发送比特币,最终是发送到区块链地址。
  • 机制:
    • 发送方和接收方都需要在线。
    • 接收方需要运行一个支持这种功能的比特币客户端,并监听一个开放的端口。收到请求后,把自己的BTC地址发给发送方
    • 交易会通过网络发送到目标 的BTC地址。

交易费

有了最近发布的基于交易费的激励机制,节点将会有动力处理它们所收到的所有支付交易。

比如 让每笔交易的输出值比输入值少1分钱, 这部分便是交易费
当所有2100万枚比特币都产生了之后,矿工维护比特币系统的工作激励将只限于维护比特币系统过程中所收取的交易手续处理费。

交易池

节点将交易保留在工作集中,直到进入区块。如果90%的节点包含这笔交易,那么每次发现一个新区块时,该交易就有90%的可能性存在于区块里。

即使一笔早期支付还没有进入区块链,如果这笔交易已经存在于所有节点的交易池,那么这笔钱的第二次支付也会被所有已经包含第一笔支付的节点所拒绝。

只需要为当前最好的分支保留一个未决交易池。当新区块进入最好的分支时,ConnectBlock函数从pending-tx池移除该区块的交易。如果另一个分支变得更长,就会调用主分支的DisconnectBlock函数转移主分支,而将主分支区块中的交易恢复到pending-tx池,并调用新分支的ConnectBlock函数,把同时存在于两个分支的所有交易移出来

脚本支持不同的交易类型

比特币内置的类Forth脚本语言的处理。例如,[‘TxOut:value:100.00 Script:DUP HASH1606fad...ab90EQUALVERIFY CHECKSIG’]。
首先,比特币有内置的脚本语言,尽管是非常简单的脚本语言(没有循环、指针,除了数学和密码外什么都没有)。

新交易是通过将签名和公钥压入解释器堆栈来完成验证,然后再运行TxOut脚本

脚本实际上是一种断言。它只是用来评估真假的方程式。

回复:交易和脚本:DUP HASH160...EQUALVERIFY CHECKSIG
这个设计支持各种可能的交易类型,包括托管交易、担保交易、第三方仲裁、多方签名等。

系统

DB

比特币使用了事务型数据库Berkeley DB。系统崩溃时不会丢失数据。系统收到交易时会立即写入数据库。

警报系统

中本聪讨论了他开发的一套警报系统,拥有某个私钥的人可以在比特币网络传递重要消息,目前只有中本聪本人有该私钥。例如可以在发现bug之后通报所有矿工进行软件的重要升级。

警报消息用一个私钥进行签名,这个私钥只有中本聪有。节点在收到警报时会做两件事:
· 在状态栏上设置警告信息。
· 让json-rpc接口的资金处理方法返回错误。

共识

  • 相信最长链为有效链, 如果长度相等,就保留最早的那条.
    • 接收方需要等待一小时,直到交易正式被确认进入了区块链。中本聪认为6个区块(每个区块10分钟,6个区块就是1小时)是适当的时间,让交易得以确认并成为区块链的永久部分。
    • 节点表达接纳该区块的方式是着手在该区块后创建下一个区块,并将接受区块的哈希值作为上一个哈希值。
  • 工作量证明是用类似于Hashcash的SHA-256(前面由一些0构成),而不是签名。
    • 搜索结果是256位无符号十六进制数,其SHA-256值必须小于能成功产生区块的值。
  • 工作量证明的难度每两周(2016个区块)调整一次,以达到整个网络平均每小时增加6个区块。如果过去的6×24×30个区块跨越的时间不到15天,那么区块就产生太快了,于是系统把工作量证明的难度增加一倍。
    • 最低难度是32个零位

网络

区块广播也不在乎消息丢失。如果一个节点没有收到某个区块,当它收到下一个区块时就会意识到中间丢了一个,此时该节点会向网络请求那个遗漏的区块。

密码学

ECC

  • 采用椭圆曲线密码(EDCSA)而非RSA的主要原因是交易字节数的多少。为了让每笔交易字节数尽可能少,保持区块大小可控,中本聪决定使用EDCSA。
  • 比特币地址是公钥的160位哈希值
    • bitcoinaddress=RIPEMD-160(SHA-256(publickey))
    • 中本聪决定使用公钥的哈希值而非公钥本身作为比特币地址。中本聪这么做有两个原因。一是减小每笔交易的长度,因为哈希值只有160位长。二是简单地提高了安全性,以防比特币所用的非对称加密算法中发现后门或安全缺陷。为了能使用比特币,黑客必须首先从哈希值中推导出公钥,然后从公钥中推导出私钥
  • 为了验证一笔交易,节点从签名中取得公钥,用以验证实际签名。如果签名有效,则对公钥进行哈希计算,确认哈希值与上一笔交易中分配的比特币地址相同。按照定义,如果两个都对上了,那么交易正常。
    • 如果签名也被攻破了, 还可以切换到更健壮的系统。当首次运行升级后的软件时,将会用新的更强的签名算法为所有的币重新签名。(通过创建一笔交易,用更强的签名把币支付给自己。)

SHA

  • 如果SHA-256全面崩溃,我们可以达成某种一致,即把在问题开始前的那部分算作是诚实链,并锁定诚实链,然后从那一点采用新的哈希函数往下继续。

随机种子

  • BTC的随机种子考虑得非常严密。使用Windows所有的性能监控数据,包括启动后对磁盘性能、网卡指标、CPU时间以及分页等的测量。Linux有内置的熵收集器。再加上每次鼠标在比特币窗口移动时产生并由磁盘操作所捕获的熵。

盲签

  • 生成公钥的额外盲变种密钥的方法。盲变种密钥具有与源公钥相同的属性,例如私钥可以为这些盲变种密钥生成签名。其他人无法判断这些盲密钥是否与根密钥相关,或者其他的盲密钥是否来自于同一个根密钥。这些都是盲化特性。简而言之,盲化就是x=(x×large_random_int)mod m。

  • 如果使用一次性公钥为输出项哈希值和当前区块编号的组合签名。那么当输出项哈希值首次创建时采用公钥进行记录。当使用该输出项时,哈希由一个不同但相关的签名进行验证,该签名也是由相同的密钥签署的。

    盲公钥相当于交易中比特币地址的公钥。如果说比特币地址的公钥私钥对是P/p,那么盲公钥就是P1,P2,P3,…,Pn。其中每个都可以验证私钥(p)签名。
    所以在创建过程中,当提交输出项的哈希值进行验证时,看起来就像是由P1签署的。然而,当接收者取消该输出项时,则会以P2或P1以外的其他密钥签名(因为P1已经被公开记录)。两个签名的结果都一致,但是公钥会更换。这就意味着只有公用私钥的拥有者才能生成签名

群签名

  • 使用群签名可以在签名之后不让人知道是谁签的。
    举个例子,比如必须下令进行一次不太受欢迎的军事攻击,但是没人愿意作为下令者成为历史的罪人。如果10位领袖都有私钥,其中一位签署了命令而你并不知道具体是谁签的。

其它

  • 可信计算(当时还只是研究)
    • 使用现代处理器用于支持“可信计算”的安全特性来强化比特币钱包
  • 一种像sss的夏米尔(Shamir)秘密共享方案的实现。类似于ssss的工具允许爱丽丝和鲍勃指定仲裁方以防发生分歧。
    • ·买方把比特币发送给托管账户,并指明收款人的地址。
      ·卖方看到托管账户中的比特币后,注明比特币将发往的地址。
      ·买方把款放给卖方。
      ·托管账户会在x天后自动完成放款。
  • 作废列表的想法
    • 将前序交易和输出项计算哈希值后,如果该哈希值在区块列表中出现且仅出现过一次,那么就可以断定该输出项有效并且未被用过。
      想法:作废列表
  • 分布式哈希表(DHT)
    • 用来最小化空间。还有一些细节尚未解决,但是您可以把它想象成将区块列表分割成1024个相同的小区块列表,每个小区块列表有10个冗余的验证节点。而不是具有10000个冗余的验证节点的单个区块列表。每个随机选取的节点集负责哈希空间的一部分。

矿池设想

矿池开采是一种多用户合作铸造比特币并且公平分享收益的方法。比特币矿池最好的类比是同事共同出钱买彩票,中奖后分享奖金。

矿池开采可以获得更小额、更频繁、更稳定的收益。如果您的电脑比较慢或者是一台CPU矿工,那么矿池开采可能是您能够铸造比特币的唯一方法。

  1. 首先会有一个网页让您注册,输入钱包地址,取得URL和矿工个人CPU/GPU的用户名与密码(rpcuser/rpcpass-word)。当以用户名和密码启动自己的矿机时,服务器将把尚未分配给集群其他成员计算的工作发送给你。

    如果您一天提供了100万次哈希/秒的算力,而整个集群的算力是2000万哈希/秒,并且花了两天才找到一个区块,那么属于您的奖励将是(50/20/2=)1.25枚比特币。

  2. 矿池难度: 矿池服务器会要求每个客户为此计算一些哈希值。每个客户要提交他们发现的高于某个特定难度阈值的哈希值。服务器选择的难度为当前“官方”难度的1/40。
    矿池验证: 因为需要一个不同的哈希值才能将生成的比特币支付给其他人。如果不诚实的客户端作弊,把产生的哈希值所生成的比特币支付给他们自己,那么他们提交的哈希值在我的服务器上无法通过验证,并且我也不会向他们分配任何利益。

    服务器得到了远程采矿客户端发回的候选哈希值消息流。时不时会有一个哈希值可以满足官方的难度要求,这样我的服务器就可以产生一个区块,并赚到50枚比特币。

  3. 然后,矿池将比特币分给远程采矿客户端,即为当前区块提交大于或等于1/40官方难度哈希值1枚比特币的比例分配。

    对于矿池运营商来说,最简单的方法就是等到发现下一个区块时,将其按比例分配为:用户达标次数/所有人总达标次数。

    提交哈希值发现了区块的人都应该从总收入中多分一些,比如10枚比特币。

分布式域名

比特域名服务(BitDNS)

有人建议创建一种比特币克隆版(一种替代币),以运行分布式点对点域名服务器系统(DNS)。除了货币以外,存储在区块链中的交易也包含DNS信息,并且可以用新的交易更新。

允许人们注册以.bit结尾的域名并与IP地址关联。


往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列

相关文章:

BTC系列 - 启示录

推荐《区块链启示录:中本聪文集》这本书, 原来早在2010年, BTC生态还不完善的时候, 社区中就已经畅想出了未来其它链上的特色方案, 中本聪也都一一做了教父级回应: coinbase币的成熟时间, 交易池, 交易确认机制, 防51%攻击, 防双重消费, 水龙头, 轻量级客户端, 链上…...

C# 25Dpoint

C# 25Dpoint ,做一个备份 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace _25Dpoint {public partial cl…...

Kotlin构造函数

class Person {var name: String? nullvar age: Int? nullfun think() {println("Mr./Ms.$name, who is $age years old, is thinking!")} }fun main () {val p Person()p.name "Jimmy"p.age 20p.think() } 在Kotlin中任意一个非抽象类都无法被继承…...

springMVC---resultful风格

目录 一、创建项目 pom.xml 二、配置文件 1.web.xml 2.spring-mvc.xml 三、图解 四、controller 一、创建项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi…...

flutter 装饰类【BoxDecoration】

装饰类 BoxDecoration BoxDecoration 是 Flutter 中用于控制 Container 等组件外观的装饰类&#xff0c;它提供了丰富的属性来设置背景、边框、圆角、阴影等样式。 BoxDecoration 的主要属性 1.color 背景颜色。类型&#xff1a;Color?示例&#xff1a; color: Colors.blu…...

自动连接校园网wifi脚本实践(自动网页认证)

目录 起因执行步骤分析校园网登录逻辑如何判断当前是否处于未登录状态&#xff1f; 书写代码打包设置开机自动启动 起因 我们一般通过远程控制的方式访问实验室电脑&#xff0c;但是最近实验室老是断电&#xff0c;但重启后也不会自动连接校园网账户认证&#xff0c;远程工具&…...

微信小程序集成Vant Weapp移动端开发的框架

什么是Vant Weapp Vant 是一个轻量、可靠的移动端组件库&#xff0c;于 2017 年开源。 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本&#xff0c;并由社区团队维护 React 版本和支付宝小程序版本。 官网地睛&#xff1a;介绍 - Vant Weapp (vant-ui.gith…...

MySQL从库 Last_SQL_Errno: 1197 问题处理过程

记录一个遇到过的错误&#xff0c;今天整理一下。 问题 MySQL error code MY-001197 (ER_TRANS_CACHE_FULL): Multi-statement transaction required morethan max_binlog_cache_size bytes of storage; increase this mysqld variable and try again报错很明显是max_binlog_…...

springboot 加载本地jar到maven

在Spring Boot项目中&#xff0c;如果你想要加载一个本地的jar文件到Maven本地仓库&#xff0c;你可以使用Maven的install-file目标来实现。以下是一个简单的例子&#xff1a; 打开命令行工具&#xff08;例如&#xff1a;终端或者命令提示符&#xff09;。 执行以下Maven命令…...

面向B站商业化场景的广告标题智能推荐

01.背景 大模型的发展也在不断改变广告主/代理商广告创编的过程&#xff0c;为了提高广告主的创作效率&#xff0c;提升广告主投放标题的质量&#xff0c;我们利用大语言模型技术以及B站商业数据&#xff0c;能够让广告主仅需要输入特定的关键词&#xff0c;即可以生成理论上无…...

element plus 使用 upload 组件达到上传数量限制时隐藏上传按钮

最近在重构项目&#xff0c;使用了 element plus UI框架&#xff0c;有个功能是实现图片上传&#xff0c;且限制只能上传一张图片&#xff0c;结果&#xff0c;发现&#xff0c;可以限制只上传一张图片&#xff0c;但是上传按钮还在&#xff0c;如图&#xff1a; 解决办法&…...

java进行pdf文件压缩

文章目录 pdf文件压缩 pdf文件压缩 添加依赖 <dependency><groupId>com.luhuiguo</groupId><artifactId>aspose-pdf</artifactId><version>23.1</version> </dependency>public class OptimizePdf {public static void opti…...

初识算法和数据结构P1:保姆级图文详解

文章目录 前言1、算法例子1.1、查字典&#xff08;二分查找算法&#xff09;1.2、整理扑克&#xff08;插入排序算法&#xff09;1.3、货币找零&#xff08;贪心算法&#xff09; 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言…...

内网服务器添加共享文件夹功能并设置端口映射

参考网址 https://blog.csdn.net/Think88666/article/details/118438465 1.服务器安装smb服务&#xff0c;由于网路安全不允许使用默认端口&#xff08;445&#xff0c;446&#xff09;&#xff0c;于是修改端口为62445、62446。 2.每台需要共享的电脑都要修改端口映射&#x…...

ruoyi-cloud docker启动微服务无法连接nacos,Client not connected, current status:STARTING

ruoyi-cloud docker启动微服务无法连接nacos&#xff0c;Client not connected, current status:STARTING 场景 当使用sh deploy.sh base来安装mysql、redis、nacos环境后&#xff0c;紧接着使用sh deploy.sh modules安装微服务模块&#xff0c;会发现微服务无法连接nacos的情…...

Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)

一、函数基础 1.1、函数的用法和底层分析 函数是可重用的程序代码块。 函数的作用&#xff0c;不仅可以实现代码的复用&#xff0c;更能实现代码的一致性。一致性指的是&#xff0c;只要修改函数的代码&#xff0c;则所有调用该函数的地方都能得到体现。 在编写函数时&#xf…...

excel 整理表格,分割一列变成多列数据

数据准备 对于很多系统页面的数据是没有办法下载的。 这里用表格数据来举例。随便做数据的准备。想要看excel部分的可以把这里跳过&#xff0c;从数据准备完成开始看。 需要一点前端基础知识&#xff0c;但不多&#xff08;不会也行&#xff09;。 把鼠标放在你想要拿到本地的…...

Oracle 分区索引简介

目录 一. 什么是分区索引二. 分区索引的种类2.1 局部分区索引&#xff08;Local Partitioned Index&#xff09;2.2 全局分区索引&#xff08;Global Partitioned Index&#xff09; 三. 分区索引的创建四. 分区索引查看4.1 USER_IND_COLUMNS 表4.2 USER_INDEXES 表 五. 分区索…...

C++实现设计模式--- 观察者模式 (Observer)

观察者模式 (Observer) 观察者模式 是一种行为型设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生改变时&#xff0c;其依赖者&#xff08;观察者&#xff09;会收到通知并自动更新。 意图 定义对象之间的一对多依赖关系。当一个对象状…...

CentOS 6.8 安装 Nginx

个人博客地址&#xff1a;CentOS 6.8 安装 Nginx | 一张假钞的真实世界 提前安装&#xff1a; # sudo yum install yum-utils 一般情况下这个工具系统已经安装。 创建文件/etc/yum.repos.d/nginx.repo&#xff0c;输入内容如下&#xff1a; [nginx-stable] namenginx stab…...

px、em 和 rem 的区别:深入理解 CSS 中的单位

文章目录 前言一、px - 像素 (Pixel)二、em - 相对父元素字体大小 (Ems)三、rem - 相对于根元素字体大小 (Root Ems)四、综合比较结语 前言 在CSS中&#xff0c;px、em和rem是三种用于定义尺寸&#xff08;如宽度、高度、边距、填充等&#xff09;的长度单位。它们各自有不同的…...

vue 表格内点编辑,单元格不切换成输入框问题分析

vue 表格渲染时&#xff0c;我点击编辑时&#xff0c;想直接在单元格上面进行编辑。 效果如下&#xff0c;正常是文本效果&#xff0c;点击编辑时&#xff0c;出现输入框 其实实现起来&#xff0c;逻辑很简单&#xff0c;但是中间我却出现了一个问题&#xff0c;效果始终出不…...

MATLAB学习笔记-table

1.在table中叠加table table 的每一列具有固定的数据类型。如果要让表的所有单元格都可以任意填充&#xff0c;就得让每一列都是 cell 类型&#xff0c;这样表中每个单元格都是“一个元胞”。创建时可以先构造一个 空 cell 数组&#xff08;大小为行数列数&#xff09;&#x…...

使用 selenium-webdriver 开发 Web 自动 UI 测试程序

优缺点 优点 有时候有可能一个改动导致其他的地方的功能失去效果&#xff0c;这样使用 Web 自动 UI 测试程序可以快速的检查并定位问题&#xff0c;节省大量的人工验证时间 缺点 增加了维护成本&#xff0c;如果功能更新过快或者技术更新过快&#xff0c;维护成本也会随之提高…...

ffmpeg硬件编码

使用FFmpeg进行硬件编码可以显著提高视频编码的性能&#xff0c;尤其是在处理高分辨率视频时。硬件编码利用GPU或其他专用硬件&#xff08;如Intel QSV、NVIDIA NVENC、AMD AMF等&#xff09;来加速编码过程。以下是使用FFmpeg进行硬件编码的详细说明和示例代码。 1. 硬件编码支…...

脚本化挂在物理盘、nfs、yum、pg数据库、nginx(已上传脚本)

文章目录 前言一、什么是脚本化安装二、使用步骤1.物理磁盘脚本挂载&#xff08;离线&#xff09;2.yum脚本化安装&#xff08;离线&#xff09;3.nfs脚本化安装&#xff08;离线&#xff09;4.pg数据库脚本化安装&#xff08;离线&#xff09;5.nginx脚本化安装&#xff08;离…...

// Error: line 1: XGen: Candidate guides have not been associated!

Maya xgen 报错// Error: line 1: XGen: Candidate guides have not been associated! 复制下面粘贴到Maya脚本管理器python运行&#xff1a; import maya.cmds as cmds def connect_xgen_guides():guide_nodes cmds.ls(typexgmMakeGuide)for node in guide_nodes:downstream…...

投机解码论文阅读:Falcon

题目&#xff1a;Falcon: Faster and Parallel Inference of Large Language Models through Enhanced Semi-Autoregressive Drafting and Custom-Designed Decoding Tree 地址&#xff1a;https://arxiv.org/pdf/2412.12639 一看它的架构图&#xff0c;可以发现它是基于EAGLE…...

OpenCV实现基于交叉双边滤波的红外可见光融合算法

1 算法原理 CBF是*Cross Bilateral Filter(交叉双边滤波)*的缩写&#xff0c;论文《IMAGE FUSION BASED ON PIXEL SIGNIFICANCE USING CROSS BILATERAL FILTER》。 论文中&#xff0c;作者使用交叉双边滤波算法对原始图像 A A A&#xff0c; B B B 进行处理得到细节&#xff0…...

Springboot整合WebService

1.1 概述 webservice 即 web 服务&#xff0c;因互联网而产生&#xff0c;通过 webservice 这种 web 服务&#xff0c;我们可以实现互联网应 用之间的资源共享&#xff0c;比如我们想知道 手机号码归属地&#xff0c;列车时刻表&#xff0c;天气预报&#xff0c;省市区邮…...

504 Gateway Timeout:网关超时解决方法

一、什么是 504Gateway Timeout&#xff1f; 1. 错误定义 504 Gateway Timeout 是 HTTP 状态码的一种&#xff0c;表示网关或代理服务器在等待上游服务器响应时超时。通俗来说&#xff0c;这是服务器之间“对话失败”导致的。 2. 常见触发场景 Nginx 超时&#xff1a;反向代…...

C++ 的 pair 和 tuple

1 std::pair 1.1 C 98 的 std::pair 1.1.1 std::pair 的构造 ​ C 的二元组 std::pair<> 在 C 98 标准中就存在了&#xff0c;其定义如下&#xff1a; template<class T1, class T2> struct pair;std::pair<> 是个类模板&#xff0c;它有两个成员&#x…...

抢十八游戏

前言 我国民国一直流传着一个名叫“抢十八”的抢数游戏&#xff1a;参与游戏的两人从1开始轮流报数&#xff0c;每次至少报1个数&#xff0c;最多报2个数&#xff0c;每人报的每个数不得与自已报过的或对方报过的重复&#xff0c;也不得跳过任何一个数。谁先报到18&#xff0c…...

从玩具到工业控制--51单片机的跨界传奇【2】

咱们在上一篇博客里面讲解了什么是单片机《单片机入门》&#xff0c;让大家对单片机有了初步的了解。我们今天继续讲解一些有关单片机的知识&#xff0c;顺便也讲解一下我们单片机用到的C语言知识。如果你对C语言还不太了解的话&#xff0c;可以看看博主的C语言专栏哟&#xff…...

LLM实现视频切片合成 前沿知识调研

1.相关产品 产品链接腾讯智影https://zenvideo.qq.com/可灵https://klingai.kuaishou.com/即梦https://jimeng.jianying.com/ai-tool/home/Runwayhttps://aitools.dedao.cn/ai/runwayml-com/Descripthttps://www.descript.com/?utm_sourceai-bot.cn/Opus Cliphttps://www.opu…...

学习threejs,使用FlyControls相机控制器

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.FlyControls 相机控制…...

wordpress 房产网站筛选功能

自定义分类法创建 add_action( init, ashu_post_type ); function ashu_post_type() {register_taxonomy(province,post,array(label => 省,rewrite => array( slug => province ),hierarchical => true));register_taxonomy(city,post,array(label => 市,rewr…...

SQL面试题2:留存率问题

引言 场景介绍&#xff1a; 在互联网产品运营中&#xff0c;用户注册量和留存率是衡量产品吸引力和用户粘性的关键指标&#xff0c;直接影响产品的可持续发展和商业价值。通过分析这些数据&#xff0c;企业可以了解用户行为&#xff0c;优化产品策略&#xff0c;提升用户体验…...

Redis是单线程还是多线程?

大家好&#xff0c;我是锋哥。今天分享关于【Redis是单线程还是多线程&#xff1f;】面试题。希望对大家有帮助&#xff1b; Redis是单线程还是多线程&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis是 单线程 的。 尽管Redis的处理是单线程的&a…...

mysql 变量,流程控制与游标

第16章_变量,流程控制与游标 1.变量 分为系统变量和用户自定义变量 1.1系统变量 1.1.1系统变量分类 系统变量分为全局系统变量以及会话系统变量 查看所有全局变量 SHOW GLOBAL VARIABLES 查看所有会话变量 SHOW SESSION VARIABLESor SHOW VARIABLES #默认是会话变量 …...

Java配置log4j日志打印

1. 引入依赖 <dependencies><!-- Log4j 2依赖 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>1.2.14</version> <!-- 可以根据需要修改版本 --></…...

什么是SQL?

什么是SQL&#xff1f; SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是一种用于与关系型数据库进行交互的标准编程语言。SQL 是设计用于管理和操作关系型数据库的语言&#xff0c;主要用于查询、插入、更新、删除和定义数据结构。SQL 是关…...

Linux 机器学习

Linux 机器学习是指在 Linux 操作系统环境下进行机器学习相关的开发、训练和应用。 具体步骤 环境搭建&#xff1a; 选择合适的 Linux 发行版&#xff1a;如 Ubuntu、Fedora、Arch Linux 等。Ubuntu 因其易用性和丰富的软件包管理系统&#xff0c;适合初学者&#xff1b;Fed…...

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载,Scroll滚动到顶部

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载 效果展示 使用方法 import LoadingText from "../components/LoadingText" import PageToRefresh from "../components/PageToRefresh" import FooterBar from "../components/…...

第27章 汇编语言--- 设备驱动开发基础

汇编语言是低级编程语言的一种&#xff0c;它与特定的计算机架构紧密相关。在设备驱动开发中&#xff0c;汇编语言有时用于编写性能关键的部分或直接操作硬件&#xff0c;因为它是接近机器语言的代码&#xff0c;可以提供对硬件寄存器和指令集的直接访问。 要展开源代码详细叙…...

sosadmin相关命令

sosadmin命令 以下是本人翻译的官方文档&#xff0c;如有不对&#xff0c;还请指出&#xff0c;引用请标明出处。 原本有个对应表可以跳转的&#xff0c;但是CSDN的这个[](#)跳转好像不太一样&#xff0c;必须得用html标签&#xff0c;就懒得改了。 sosadmin help 用法 sosadm…...

【git】-初始git

学习资源推荐- 标签管理 - Git教程 - 廖雪峰的官方网站 一、什么是版本控制&#xff1f; 二、Git的安装 三、掌握Linux常用命令 四、Git基本操作 1、提交代码 2、查看历史提交 3、版本回退 一、什么是版本控制&#xff1f; 版本控制是一种用于记录文件或项目内容变化的系…...

JAVA之单例模式

单例模式&#xff08;Singleton Pattern&#xff09;是一种设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取该实例。在软件设计中&#xff0c;单例模式常用于控制对资源的访问&#xff0c;例如数据库连接、线程池等。以下是单例模式的详…...

无人机数据集,支持YOLO,COCO json,PASICAL VOC xml格式的标注,正确识别率可达到95.7%,10000张原始图片

无人机数据集&#xff0c;支持YOLO&#xff0c;COCO json&#xff0c;PASICAL VOC xml格式的标注&#xff0c;正确识别率可达到95.7%&#xff0c;10000张原始图片 下载地址&#xff1a; 标注好的数据集下载地址&#xff1a; yolo v11: https://download.csdn.net/download/p…...

Linux:进程概念(三.详解进程:进程状态、优先级、进程切换与调度)

目录 1. Linux中的进程状态 1.1 前台进程和后台进程 运行状态 睡眠状态 磁盘休眠状态 停止状态 kill指令—向进程发送信号 死亡状态 2. 僵尸进程 2.1 僵尸状态 2.2 僵尸进程 2.3 僵尸进程危害 3. 孤儿进程 4. 进程的优先级 概念 查看进程优先级 PRI&#xff08…...