灰色词seo代发排名/合肥seo网站建设
对不起,大家,这篇文章对作者来说实在是太有意义和含金量了,作者想把它设置为关注博主才能见全文,请大家理解!如果觉得还是看不懂,抱歉耽误大家的时间,就请取消关注!!!
挖矿前述文章请见网络安全之网站常见的攻击方式_Joy T的博客-CSDN博客
建议先看一下先前文章的挖矿内容,下面我们仔细讲一下挖矿到底是个什么东西!
区块链和挖矿的基础理解
区块链技术允许在网络上存储不可更改的交易记录。为了保持交易数据的完整性和不可更改性,区块链网络使用了一种称为“工作量证明”(Proof of Work, PoW)的共识算法。在这个过程中,网络的参与者(矿工)必须解决复杂数学问题来提交一个新的区块。读者可以留一个疑问:什么是工作量证明?
为什么作者重点标注不可更改呢?因为,从区块链攻击者的角度看,他们获利的方式就是更改区块链内容!通过修改区块,攻击者可以进行非法的双重支付。双重支付攻击的目的是利用区块链网络的漏洞,使攻击者能够多次使用同一笔资金,购买多个商品或者交易所套利,从而为他们带来不正当的利益。所以,区块链的核心要点就是保证其不可篡改性。
至于区块链中的区块信息能否读取呢?答案是可以,区块的所有内容都是不透明的。因为区块就是从“普罗大众”的矿工中产生,就是他们找到了有效区块,所以肯定提前知道区块的交易信息。所以,攻击者知道区块信息不难,知道了也没多大用。即使攻击者有三千亿的交易账单,他也用不到!但是如果要修改信息,妈呀,就和修改某人的房产证的名字一样可怕,而区块链保证的就是不让攻击者修改交易信息!
攻击区块链违法,禁止尝试,本文绝对反对非法攻击行为!
挖矿实际上就是一种利用计算机硬件完成复杂数学问题(哈希函数)以验证和记录数字货币网络中的交易的过程。
读者可以留一些疑问:什么是数学问题?和哈希函数有什么关系?怎么通过这个数学问题验证货币交易过程?
工作量证明(PoW)
到底什么是工作量证明?
想象一下你在做一个难题,这个难题需要你进行很多次尝试和计算才能找到答案。但是一旦你找到了答案,其他人可以很容易地检查你的答案是否正确。这就是工作量证明机制的基本原理。
工作量证明的基本过程
- 出题:网络给出一个难题(这个难题与哈希值和前一个区块的信息有关)。
- 做题:
- 矿工(网络的参与者)需要不停地尝试不同的答案,进行大量的计算来解决这个难题。
- 这个过程很难,消耗大量的时间和计算资源。
- 检查答案:
- 一旦矿工找到了一个答案,他们会将答案发送到网络上。
- 其他参与者可以很快地检查这个答案是否正确。
- 如果答案正确,新的一个区块就被添加到区块链上,矿工作为他们的努力获得一些奖励(例如比特币)。
重点:开锁故事和作者-大师的对话!
网络出的难题!验证这个网络具有安全性!以下故事是本篇的核心要点!!!是作者干涸的大脑中浓缩出的一点精华!
现在有一段交易信息被一把锁保护,锁厂说,第一个破解这把锁的人,会得到“开锁大师”的称号以及锁厂的巨额奖赏。我们想为了锁厂的奖励去开这把锁,而这个交易信息,却有可能如上文所说被坏蛋篡改!所以锁厂要验证他们锁的强大保护能力!
现在的问题是:这个锁几乎无法通过算法、机制、钥匙去破解,只能不断试密码,一直猜答案。经过不懈努力,我们花了10年终于试出了密码。再经过各路开锁人士和锁厂的验证,最后得出结论:我们真的把这把锁解开了!而且是第一个解开这把锁的人!
于是,我们获得了锁厂的赏识与奖励。同时,我们的岁月也随着贪婪的汩汩欲望而流逝殆尽。这段开锁的故事,本质上就是反映了挖矿的思想与流程!
1. 首先这表明:这个锁是真安全!解了10年才解开。而这个锁厂,就可以看作是区块链中的网络。是网络给我们出的难题,也是锁厂给我们这把难开的锁。我们用岁月验证了这把锁的安全性,计算机用算力和岁月同样验证了区块链中网络的安全性!
2. 然后,对于“开锁大师”的称号和奖赏,虽然在挖矿中没有称号,但是只要挖到了答案,就能得到虚拟货币的奖赏。
3. 而对于这段交易信息,就是对应区块链中的区块。区块中包含最重要的信息就是货币交易信息,这个交易信息被网络这把锁保护着。
这个世界坏人很多,想要攻击篡改交易信息的人也很多,他们为了利益可能动用很多资源去计算哈希值并希望得到网络的认可,进而替换虚假的非法区块链。网络有责任保护每一份交易信息不被篡改!
从较为功利的角度看,我们这样的正义之人拿到交易信息是没有用的,我们不会使用非法手段篡改交易信息,在乎的就只是锁厂开锁的奖励,是一种正确、诚信、合法的渠道。通过这样的类比解释,读者是不是能够稍微串起来了呢?
得知此事的部分读者心想,我也有计算机,也有算力,那我也要挖矿!于是关掉CSDN,带着笔记本跑去矿场,遇到了正在挖矿的作者和资深的开锁大师。
作者从未违法,同时对于区块攻防有一定的兴趣,为了更好地防御,作者想知道攻击者到底是如何攻击的。作者问大师:大师,现在大家都在猜区块A的哈希值,它的交易信息每一个矿工手里都有一份,如果攻击者对这个信息做修改,比如加上他“多买了一堆的东西”的虚假信息(实际上只买了一个东西,但是可以凭借交易信息找商家索取利益),然后碰巧他是第一个算出答案的人,这样他不就可以把修改过的信息作为区块传上去了吗?
大师笑了笑,说:傻孩子,这样能成功的话,区块链系统哪有什么信誉可言呢?攻击者在传递他的区块之前,必须要发布到整个网络,得到各路诚实人马的验证与认可,才能确认他的区块可以被放在区块链上。他修改的那些小九九,诚信的大家伙都能发现,除了他之外的所有人的区块信息都是正确、一致的。当他广播这个新区块给网络时,其他节点在验证新区块的合法性时会发现这个不匹配,最终会拒绝接受他篡改过的区块。
作者想了想,有道理,攻击者的修改块需要经过诚信的大家的认证啊!那么,会不会有坏人在经过认证后再次攻击修改区块呢?所以又问:那大师,攻击者就传递正确的区块,区块被放到区块链之后,他再根据他之前正确算得的哈希值骗过大家,再去修改区块可不可以啊?
大师答:你小汁!首先我想让你明确一点,攻击者至少需要拥有超过整个网络50%的计算力资源才有可能成功执行攻击。这在大型、活跃的区块链网络(如比特币)中是不现实的,因为所需的计算资源和成本极高。
攻击区块链违法,禁止尝试,本文绝对反对非法攻击行为!
其次,我想让你明白,如果攻击者是第一个算出哈希值的人,在得到大家的验证、将区块放到区块链上之后,他算出的哈希值就已经和他放的区块一对一绑定在一起了!而且只要区块中的交易信息被略微修改一丝丝,它的哈希值会发生巨大变动!即使他之前已经求出哈希值,但那是正确区块对应的哈希值,倘若他要修改区块的内容并将新的区块替换到原本区块的位置,他就需要重新计算这个区块的哈希值,否则他得不到网络的认可。
但是,你知道这有多难吗?如果只有他一个人试图修改区块信息,他首先需要计算新区块(你修改后的区块)的哈希值。然而,其他人已经开始计算下一个区块的哈希值了,他必须计算的比他们快才有可能修改成功,只要其他人计算出了新的哈希值并在区块链上补充了新的区块,他要修改原本区块(现在是倒数第二个区块)的难度就翻了一倍。因为每一个区块都包含前一个区块的哈希值作为其组成部分。如果攻击者想要修改区块链中的一个早期区块,他不仅要更改那个特定区块的哈希值,而且还要更改所有后续区块的哈希值,
假设他修改了第10个区块,并重新计算了该区块的哈希值,那么第11个区块中包含的前一个区块的哈希值(即第10个区块的哈希值)现在就是错误的。因此,他需要重新计算第11个区块的哈希值,以便它包含新的第10个区块的哈希值。但这又会导致第12个区块的前一个区块哈希值变得无效,因此第12个区块也需要被修改,以此类推,无限套娃。
攻击者要更改存在的块不是简单地更改你想要更改的那一个区块就行。如果只更改一个区块,它的哈希值也求出来了,也替换上去了,但这样就很明显,链条会断,哈希值变了就跟后面的区块连不上了。明眼人一看某人的链条突然断裂,就知道他在试图攻击整个区块链,不会将他的区块链作为当前正确的链。所以,那些违法的坏蛋在更改的时候需要保证不被人发现,也就是说,必须要和上面套娃的步骤一样攻击修改整个区块链。这是很难的,区块链有足够的能力去防御坏人的进攻!
其中,大师提到的内容涉及到区块链的重要特点:
在区块链中,每一个新的区块都包含前一个区块的哈希值作为其组成部分。这样,所有的区块都通过哈希值链接在一起,形成了一个连续的链条。这种设计确保了:一旦一个区块被加入到区块链中,任何之后加入的区块都与其有关联。而每一个区块蕴含着重要的交易信息,这些交易信息一经安全性验证,就能够放在区块链中。区块链网络是去中心化的,由许多独立的节点组成。这意味着没有单一的失败点,攻击者不能仅通过攻击或控制一个中心节点来破坏整个网络,安全性大大滴!攻击者没法做到擒贼先擒王!
攻击区块链违法,禁止尝试,本文绝对反对非法攻击行为!
通过这种方式,如果有人试图修改已经确认的交易信息,他们不仅需要解决与修改的区块相对应的难题,还需要解决该区块之后所有区块的难题,这在实践中是不可能完成的。
此外,大师补充道:当前的区块链啊,为了抵御非法修改可是下足了功夫!从非法攻击的角度来看:为了成功地修改第10个区块而不被其他网络参与者察觉,攻击者不仅需要重新计算第10个区块及其后面所有区块的哈希值,还要确保这些新的区块比原始区块更早地被网络的大多数节点接受。除非他控制了网络上超过50%的计算能力,否则你很难得到网络的大多数认可,这种认可至少需要保证你修改后的版本的链更长呢!
什么叫保证攻击者版本的链更长?
-
在许多区块链网络中,当存在两个或多个版本的链时(例如,因为有人试图修改过去的交易),网络会选择工作量证明最大的链,也就是最长的链作为“真实”的链。这通常被认为是网络上计算能力的多数所达成的共识。(这就是区块链以工作量证明作为共识算法)
-
如果攻击者想要他们的修改得到网络的认可,他不仅需要修改目标区块,还需要为该区块以及所有后续区块重新进行工作量证明,以确保他们的版本的链更长。这样,当他将其广播到网络时,其他节点会看到攻击者的链比现有的链长,因此可能会选择攻击者的链作为主链。简单总结,就是你比所有人牛逼,你的计算能力超过所有人的能力之和,这在结果层面体现在:你算的巨快,超过所有矿工的进度,求得的链也要比当前进度的系统区块链更长,大家就更倾向于以你为准,包括网络本身。你算的那么快,不以你为准,那矿工和网络岂不是在算你已经算好的区块的哈希值了吗?这活是血亏的鸭!
-
但是,这需要大量的计算资源。实际上,要成功地进行此类攻击,攻击者通常需要控制网络上超过50%的计算能力,这样他才能比其他参与者更快地添加块,从而确保他的链最长。这被称为“51%攻击”。
作者真是佩服区块链的设计者,随后问大师:大师,那这些头铁的攻击者到底是怎么修改这个区块的啊?这种违法乱纪行为真的应该大力清除!
大师答:我告诉你,但是你了解一下就好,千万不要干违法乱纪的事情!
获取数据:首先,攻击者需要从区块链网络获取他们想要修改的区块的内容。
使用工具进行修改:然后,他们可以使用软件工具来修改区块中的某些内容。这可以是简单的文本编辑器(因为区块数据通常是以明文或JSON格式存储的)或专门为区块链分析设计的工具。
重新计算哈希值和工作量证明:一旦内容被修改,区块的哈希值就会改变。为了让他们的修改被网络认可,攻击者需要确保他们版本的链比原始链更长(即包含更多的工作量证明)。
作者:明白,大师!我终于知道为什么这个叫51%攻击了,因为只要能产生有效攻击的攻击者,其掌握的算力资源至少要大于整个计算资源的50%,51%的含义就是如此,可以理解为一个前提条件。
大师答:少年,你理解了,但是我还是要提醒你一句:其实,在区块链中,一个交易或区块被认为是“确认”的并不是基于时间,而是基于它后面的区块数量。例如,在比特币中,一个区块在被添加到链上后,通常需要有6个后续的区块被挖出来,也就是说这个区块后面还要再跟六个区块,这个区块才被认为是充分确认的。所以,对于那些重要的、充分确认的区块,几乎没有可能再修改了!
攻击区块链违法,禁止尝试,本文绝对反对非法攻击行为!
为什么要选择哈希函数作为解决问题的途径?
既然读者从开锁故事中大致理解挖矿的流程,也能理解数学问题(锁)为什么能够验证网络(锁厂)的安全性,还能知道区块链为什么很难被恶意矿工攻击。那么,对于第一部分留下的疑问,我们还需要细致地研究这把“锁”(数学问题)及其背后的逻辑,最终明白为什么当初要选择哈希函数作为开锁(验证网络安全)的途径!
当我们谈论“难题”(锁)时,实际上是指找到一个数字(或一串数字和字母,这就是开锁的密码),它与之前区块的数据一同输入到哈希函数中时,输出的哈希值满足一定的条件(满足某一条件时锁被成功打开),以确保区块链的安全性和交易的不可篡改性。据此,得到问题的定义:
问题的定义:数学问题主要涉及找到一个输入值(或一组输入值),使得通过一个哈希函数计算得到的输出值满足某个条件。
哈希函数的作用:
1. 不可逆性:哈希函数是单向的,可以快速且容易地计算输出值,但从输出值反向计算输入值几乎是不可能的。这意味着矿工必须通过试错的方式来找到一个满足条件的输入值。这就是开锁必须只能试密码的原因,也可以理解为这是锁厂的锁牛逼的原因,就是因为这个锁来自于哈希函数。
2. 易验证性:对于相同的输入,哈希函数总是产生相同的输出。这使得其他网络节点可以轻易验证一个区块的有效性,只需使用区块的哈希值和相应的输入值进行验证。另外,哈希函数可以快速地计算输出值,使得网络节点可以高效地进行验证。
那么矿工具体是怎么解题(试锁的密码)的呢?(了解)
矿工通过不断改变一个被称为“nonce”的数字来解题。他们将这个数字与区块的其他数据一起输入到哈希函数中,然后检查输出的哈希值是否满足网络规定的条件。
攻击区块链违法,禁止尝试,本文绝对反对非法攻击行为!
挖矿流程
1. 交易的生成
- 用户在区块链网络上进行交易(例如,Alice 将1个xx币发送给Bob)。
- 这个交易被广播到网络,并被放入一个交易池中。
2. 选择交易并放到新的区块中
- 挖矿的计算机(也称为“矿工”)从交易池中选择未经确认的交易,然后将选定的交易和其他数据(如时间戳和前一个区块的哈希值)合并在一起,放到新的区块中,形成一个区块的候选者。
- 注意,这只是一个区块的候选者,绝大多数时间内,矿工面对的都是自己手中的区块候选者,因为还没有找到哈希值,没有得到网络认可呢!肯定是候选者啊!(但是它本身的数据结构确实是区块,只不过还不够资格放到区块链中)
- 挖矿者还需在这个新的区块中包含一个特殊的交易,称为“coinbase”交易,作为给自己挖矿的奖励。相当于开锁的时候提前写了一封信,信中说明自己的信息以及开锁后应得的奖励,一旦成为第一个开锁并得到验证的人,这封信就能传达到锁厂,锁厂就会接见你,并且给予你“开锁大师”的称号和巨额奖励!
3. 开始计算哈希
- 这个候选区块被输入到一个哈希函数中。哈希函数是一种将输入数据转换成一串固定长度的数字的函数。比特币使用的是SHA-256哈希函数。
- 挖矿者不断改变区块候选中的一个值(称为“nonce”),以便每次都产生一个不同的哈希输出。
4. 满足条件的哈希
- 挖矿者的目标是找到一个哈希输出,该输出的值小于网络当前规定的目标值。这个目标值是根据网络的总计算能力动态调整的,确保大约每10分钟就能找到一个有效的区块(在比特币网络上)。动态调整就是为了达到一定程度的破解困难度。
- 当挖矿者找到一个满足条件的哈希时,它就成功地“挖到”了一个新的区块。
4.1 如果长时间挖不到矿或短时间内挖到大量矿呢?
- 长时间挖不到矿:
- 如果一个矿工长时间挖不到矿,他可能会面临经济损失,因为挖矿需要消耗大量的电力和硬件成本。
- 这可能会导致一些小的或不够效率的矿工退出挖矿市场。
- 短时间内挖到大量矿:
- 如果短时间内挖到大量矿,矿工将获得大量的奖励。
- 但这种情况可能会导致加密货币的通货膨胀,因为新的货币被快速地引入到市场。
- 为了平衡这种情况,如上所述,大多数加密货币网络都有动态调整难度的机制。比如,在比特币网络中,如果每个区块被快速地挖出,网络将自动增加挖矿难度。
5. 区块的广播
- 挖矿者将新的区块广播到网络,其他节点验证区块的有效性。
- 如果区块有效,其他节点将它添加到他们的区块链副本中,并开始在这个新区块上构建下一个区块。
- 挖矿者得到的区块奖励(一定数量的新生成的加密货币)和交易费用作为奖励。
总之,挖矿的过程包括从交易池中选择交易,尝试创建一个新的区块(通过不断改变nonce来找到一个特定的哈希值),并将找到的新区块广播到网络。成功的挖矿者将获得新生成的加密货币和交易费用作为奖励。这个过程同时也确保了加密货币网络的安全和去中心化。
不是吧,这都拿不下你?应该不会太难理解的对叭……
攻击区块链违法,禁止尝试,本文绝对反对非法攻击行为!
作者自身的想法
在学习过程中,作者的脑瓜子迸发出了一个问题:
挖矿是不是也可以视为攻击必不可少的前置过程?
挖矿本质上是不是就是模拟攻击?
作者认为:挖矿本质上就是模拟攻击,只要挖矿得到答案的速度稳定在一定的时间段内,再通过区块链自身特性,就能够保证区块不可被轻易击破,就能保证整个区块链的安全性。
如果我们从一个特定的角度来看,挖矿确实可以视为证明修改区块链的困难程度的过程,从而增强对网络的信任。读者想一想,挖矿是不是确实模拟了攻击区块链所需的计算工作量?
攻击区块链就是要在修改特定内容之后,挖出尽可能多的哈希值,最终通过区块链替换实现攻击。
1. 对于非法的攻击行为来说,“工作量证明”机制确保了任何想要对链进行恶意修改的攻击者都需要支付巨大的计算和经济成本。这样,网络的安全性就得到了保障。
2. 同时,对于合法的挖矿行为,同样存在工作量机制,同样需要支付巨大的计算和经济成本。
但是,尽管挖矿过程与攻击在计算上可能相似(都涉及寻找特定的哈希值),我们还是要明确,它们的动机和目标是完全不同的:
挖矿:矿工为了获得区块奖励和交易费,他们支持和维护网络,确认和验证交易。他们的工作是建设性的,确保交易被正确地记录。
攻击:攻击者的目的是欺诈和获得非法利益,例如双重支付或篡改历史交易。他们的行为是破坏性的。我们千万不能有攻击的想法哦!
正因为矿工的努力增加了对区块链篡改的计算难度,所以他们获得了奖励。这种奖励机制激励他们继续支持网络,进一步提高其安全性。
总结
从某种角度来看,挖矿确实可以看作是模拟攻击的过程,因为它展示了篡改区块链所需的计算难度。但它们的目的和结果是不同的。挖矿是为了支持和维护区块链网络,而攻击则是为了获得非法利益。通过维持一定的挖矿难度,我们确实可以增加区块链的安全性,使其不容易受到攻击。(其实不一定对,因为这个是作者自己的想法)
攻击区块链违法,禁止尝试,本文绝对反对非法攻击行为!
相关文章:

详细介绍区块链之挖矿
对不起,大家,这篇文章对作者来说实在是太有意义和含金量了,作者想把它设置为关注博主才能见全文,请大家理解!如果觉得还是看不懂,抱歉耽误大家的时间,就请取消关注!!&…...

华为OD机试真题-路灯照明问题(Java/C++/Go/Python)
【华为OD机试真题】路灯照明问题(Java/C++/Go/Python) 题目描述 在一条笔直的公路上安装了N个路灯,从位置0开始安装,路灯之间间距固定为100米。 每个路灯都有自己的照明半径,请计算第一个路灯和最后一个路灯之间,无法照明的区间的长度和。 输入描述 第一行为一个数N…...

嵌入式技术面试基本规则
潜规则1:面试的本质不是考试,而是告诉面试官你会做什么 经验不够的小伙伴特别容易犯的一个错误,不清楚面试官到底想问什么,其实整个面试中面试官并没有想难倒你的意思,只是想通过提问的方式来知道你会什么。 比如stm…...

osg实现自定义插件读取自定义格式的模型文件到场景
目录 1. 前言 2. 预备知识 3. 工具、原料 4. 代码实现 1. 前言 osg提供了很多插件来读取模型文件到场景中,这些插件支持大约70种格式类型的文件,但现实中的文件是各式各样,osg不可能囊括所有类型文件,当osg不支持某种类型格式…...

redis进阶
redis.conf 启动的时候就通过配置文件来启动的! # 这个不是配置的,就是在这儿说明一下 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k > 1000 bytes # 1kb > 102…...

(一)正点原子STM32MP135移植——准备
一、简述 使用板卡:正点原子的ATK-DLMP135 V1.2 从i.mx6ull学习完过来,想继续学习一下移植uboot和内核的,但是原子官方没有MP135的移植教程,STM32MP157的移植教程用的又是老版本的代码,ST官方更新后的代码不兼容老版本…...

Kotlin的关键字 lateinit 和 lazy
序、完善一下曾经的草稿。 Kotlin通常要求我们在定义属性后立即对起进行初始化,当我们不知道理想的初始值时,这样做似乎很奇怪,尤其是在生命周期驱动android属性的情况下。 lateinit 简介 lateinit,Kotlin提供的一个可以延迟初…...

阿里云服务器ECS详细介绍_云主机_服务器托管_弹性计算
阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云服务器网分享阿…...

12、建立健全人员培训体系
9、大小屏分离与精细化审核 10、质量审核的设立与合并 11、视频分类建议 内容仓为公司其他部门输送了许多人才,既包括有潜力的主管,也有表现突出或者具备某些特殊能力的员工,从内容仓走出的同事,有些已经成为公司重要业务某个方…...

代码随想录算法训练营第五十九天 | 647. 回文子串 516.最长回文子序列
1. 回文子串 647. 回文子串 - 力扣(LeetCode) 一个子串左右两个元素相等,并且中间对称,才是回文子串 即 ij 时,[i1: j-1]对称 dp[i][j]: [i:j] 是否是回文字串 当 子串长度大于2 由 dp[i1][j-1] 推出…...

React Redux
redux是什么 Redux是一个模式和库,用于管理和更新应用程序状态,使用称为“action”的事件。它是需要在整个应用程序中使用的状态的集中存储,规则确保状态只能以可预测的方式更新。 Redux主要有三个功能: 获取当前状态更新状态监…...

StreamingLLM - 处理无限长度的输入
文章目录 关于 StreamingLLM使用关于 StreamingLLM Efficient Streaming Language Models with Attention Sinks GitHub : https://github.com/mit-han-lab/streaming-llm论文:https://arxiv.org/abs/2309.17453在流媒体应用程序(如多轮对话)中 部署大型语言模型(LLM)是迫…...

[Linux 命令] nm 详解
1. nm 命令: 显示关于指定 File 中符号的信息,文件可以是对象文件、可执行文件或对象文件库。如果文件没有包含符号信息,nm 命令报告该情况,但不把它解释为出错条件。 nm 命令缺省情况下报告十进制符号表示法下的数字值。 2. 命…...

好文学作品的鉴赏标准
好文学作品的鉴赏标准 2023年诺贝尔文学奖颁给了挪威剧作家约恩福瑟。由于之前的博彩公司给中国作家残雪开出了最高的赔率,以及诺贝尔官方推特在揭晓奖项前发布了一张泰戈尔99年前访华的老照片,残雪的获奖氛围在国内各类媒体的渲染下被拉至极高。当奖项…...

智慧公厕:将科技融入日常生活的创新之举
智慧公厕是当今社会中一项备受关注的创新项目。通过将科技融入公厕设计和管理中,这些公厕不仅能够提供更便利、更卫生的使用体验,还能够极大地提升城市形象和居民生活质量。本文将以智慧公厕领先厂家广州中期科技有限公司,大量的精品案例项目…...

ROS(0)命令及学习资源汇总
ROS安装命令 参考:Ubuntu20.04.4安装ROS Noetic详细教程 - 知乎 安装C和Python3 sudo apt-get install g sudo apt-get install python3 ROS运行小海龟仿真器 roscore确定ROS是否运行成功rosrun turtlesim turtlesim_node运行小海龟仿真器rosrun turtlesim turtle_…...

NodeMCU ESP8266开发流程详解(图文并茂)
文章目录 整体架构打开软件setuploop 连接开发板CP2102版本CH340版本 下载结论 整体架构 NodeMCU ESP8266基于Arduino IDE的开发相对来说还是比较容易上手的,我们基本需要以下几个东西; 一台安装好Arduino IDE的PC,并且已经部署环境&#x…...

【最终版】tkinter+matplotlib实现一个强大的绘图系统
文章目录 辅助坐标轴功能实现代码优化源代码 Python绘图系统: 前置源码: Python打造动态绘图系统📈一 三维绘图系统 📈二 多图绘制系统📈三 坐 标 轴 定 制📈四 定制绘图风格 📈五 数据生成导入…...

Postman使用实例
Postman使用实例 实体类Emp package com.example.springboot_postman.pojo;import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import javax.persistence.*; import j…...

【ES的优势和原理及分布式开发的好处与坏处】
文章目录 ES的优势及分布式开发的好处1.ES的优势1.1 优势概述1.2 相关问题1)为什么需要 Elasticsearch?MySQL 不行吗?2)SQL检索的问题:3)ES检索快的原理 2.分布式开发的好处与坏处 ES的优势及分布式开发的好…...

Autosar诊断实战系列23-CanTp半/全双工及相关工程问题思考
本文框架 前言1. CanTp半/全双工基本介绍1.1 差异比较1.2 不同模式下可能发生场景分析1.2.1 当CanTp正在发送1.2.2 当CanTp正在接收2. 相关工程问题思考前言 在本系列笔者将结合工作中对诊断实战部分的应用经验进一步介绍常用UDS服务的进一步探讨及开发中注意事项, Dem/Dcm/C…...

【Pandas】数据分组groupby
本文目标: 应用groupby 进行分组对分组数据进行聚合,转换和过滤应用自定义函数处理分组之后的数据 文章目录 1. 数据聚合1.1 单变量分组聚合1.2 Pandas内置聚合方法1.3 聚合方法使用Numpy的聚合方法自定义方法同时计算多种特征向agg/aggregate传入字典 2. 数据转换…...

【图像处理GIU】图像分割(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Java中的锁与锁优化技术
文章目录 自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁重量级锁 自旋锁与自适应自旋 自旋锁是一种锁的实现机制,其核心思想是当一个线程尝试获取锁时,如果锁已经被其他线程持有,那么这个线程会在一个循环中不断地检查锁是否被释放…...

布局与打包
属性栏直接输入值,比代码更直观方便。 打包:...

UVa11324 - The Largest Clique
Online Judge 题目大意:有一张n个点m条边的图,现对于每一个点u,建立一条边连接它和所有它能到达的点,问满足所有点之间都有边的分量的大小最大是多少 0<n<1000;0<m<50000 思路:根据建新图的规则可知&am…...

【Linux】TCP的服务端(守护进程) + 客户端
文章目录 📖 前言1. 服务端基本结构1.1 类成员变量:1.2 头文件1.3 初始化:1.3 - 1 全双工与半双工1.3 - 2 inet_aton1.3 - 3 listen 2. 服务端运行接口2.1 accept:2.2 服务接口: 3. 客户端3.1 connect:3.2 …...

1.7. 找出数组的第 K 大和原理及C++实现
题目 给你一个整数数组 nums 和一个 正 整数 k 。你可以选择数组的任一 子序列 并且对其全部元素求和。 数组的 第 k 大和 定义为:可以获得的第 k 个 最大 子序列和(子序列和允许出现重复) 返回数组的 第 k 大和 。 子序列是一个可以由其他数…...

基于微信小程序的付费自习室
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 技术栈3 需求分析3.1用户需求分析3.1.1 学生用户3.1.3 管理员用户 4 数据库设计4.4.1 E…...

纪念在CSDN的2048天
时间真快~...