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

区块链学习笔记(一)

区块链技术实现了去中心化的货币系统,与中心化记账方式不同,它消除了中间第三方,允许用户进行点对点交易,并确保了货币的真正所有权。此外,区块链的代码完全公开且不可篡改,保障了系统的透明度和安全性。

比特币网络大约每十分钟产生一个新的区块(在区块链网络中,虽然设计上是大约每10分钟产生一个新的区块,但这并不是一个严格的规则,而是一个平均值。),成功挖矿的矿工将获得50个比特币作为奖励。这个奖励每四年减半一次,直到比特币的总供应量达到预定的2100万枚上限。如果用户的私钥丢失,相应的比特币将无法被移动或使用,从而永久锁定。

中本聪创立的比特币和区块链技术,通过构建一个点对点的电子现金系统,解决了交易双方的信任问题。这种系统基于分布式账本,而非传统银行的中心化账本,消除了单一记账方的控制。由于账本的分布式特性,任何单个记账者篡改数据的可能性非常低,从而确保了整个系统的安全性和可靠性。

区块链技术的基础包括哈希函数、椭圆曲线加密、时间戳和工作量证明(PoW)算法。哈希函数确保数据的完整性,椭圆曲线加密技术保障交易的安全性,时间戳记录交易的顺序,而PoW算法则维护网络的共识和安全性。

区块链如何运行

所有人都在计如何计清呢

当用户发起一笔转账时,他们会将交易的详细信息(包括发送者地址(发送者公钥加密后Hash结果)、接收者地址、时间戳和转账金额)通过区块链网络进行广播。

网络中的记账者(矿工)会监听这些广播,并在收集到一定数量的交易后,将它们打包成一个区块。这个区块将详细记录特定时间段内的所有交易,包括交易双方的身份、交易金额以及交易后的账户余额。这个过程确保了交易的透明性和不可篡改性。

每一页账单合起来就是账本

区块按时间连起来就是区块链

账户

公钥 账户

私钥 密码

在传统的中心化系统中,数据通常存储在单一的数据库中,这使得系统容易受到单点故障和安全威胁的影响。例如,数据库备份被盗、滥用数据库特性、维护不当、数据损坏、内部威胁、病毒感染和物理安全威胁等都是中心化数据库可能面临的安全问题。这些问题可能导致数据泄露、企业资产损失和业务中断。

在去中心化系统中,账户映射的问题可以通过椭圆曲线加密(ECC)来解决。ECC是一种非对称加密技术,它允许用户生成一对密钥:私钥和公钥。私钥是用户自己保管的,而公钥可以公开。这样,用户可以通过私钥计算出公钥,从而证明自己是账户的所有者,而无需将账户信息存储在中心化的数据库中。

在这种模式下,用户的账户安全不再依赖于第三方机构,而是通过加密技术来保障。用户通过私钥签名交易,而其他人可以通过公钥来验证交易的合法性。这种方式确保了即使没有中心化的数据库存储账户信息,用户的身份和交易记录也能被安全地映射和验证。

此外,ECC相比其他加密算法(如RSA)使用更小的密钥长度,同时提供相当的安全性。这使得ECC在现代计算机网络技术中,如TLS、PGP和SSH,以及去中心化系统如比特币和其他加密电子货币中得到广泛应用。

因此,即使在不信任第三方记录的情况下,通过椭圆曲线加密技术,用户仍然可以实现账户的去中心化映射,确保账户的安全性和交易的合法性。

 

 

数字签名确认是我A发出 A公钥 +验证内容 记账者用公钥解密确认是A发出

矿工通过监听交易广播和新区块,竞争记账权,将验证过的交易打包成候选区块。

  1. 保连续性:区块链通过要求每个新区块包含前一个区块的哈希值来保证交易记录的连续性。这样,每个区块都依赖于前一个区块,形成了一个不可篡改的链条。

  2. 竞争记账权:在区块链网络中,多个矿工同时竞争记账权。他们通过解决PoW难题来证明其工作量,第一个找到正确nonce的矿工有权将新区块添加到区块链上。

  3. 随机数的寻找:矿工们通过不断尝试不同的nonce值来寻找满足条件的哈希值。这个过程是随机的,直到找到合适的nonce,确保了区块链的安全性和不可预测性。

 

  1. 寻找随机数:在PoW机制中,矿工需要不断尝试不同的随机数(nonce),直到找到一个使得区块头的哈希值满足特定条件的数值。这个过程既依赖运气也依赖于大量的计算工作量。

  2. 全网接受:当一个矿工成功找到一个符合条件的哈希值时,他们会将新区块广播到整个网络。其他矿工验证这个区块的有效性,如果确认无误,这个区块就会被网络中的其他节点接受并添加到区块链中。

  3. 账单的连续性:每个新区块都包含前一个区块的哈希值(称为父哈希),确保了区块链的连续性和不可篡改性。如果前一个区块的记录发生变化,那么所有后续区块的哈希值都会发生变化。

  4. 交易验证:矿工在将交易打包进区块之前,会验证每笔交易的合法性。这包括检查交易发送者的数字签名是否有效,以及发送者的账户余额是否足够进行交易。

  5. 区块结构:区块链中的每个区块由两部分组成:块头(包含元数据)和块体(包含交易列表)。块头包含了父哈希、时间戳、难度目标、nonce等信息,而块体则包含了区块中的所有交易。

  6. 哈希链接:每个区块的块头哈希值与前一个区块的哈希值相连,形成了一个链式结构。这种结构确保了区块链的完整性和安全性,因为任何对区块内容的篡改都会导致后续所有区块的哈希值发生变化,从而被网络拒绝。

通过这种方式,PoW机制不仅确保了区块链的安全性和去中心化,还通过经济激励(如比特币挖矿奖励)鼓励矿工参与网络维护。

 

比特币记录的是交易 输入输出都可以是多笔 50输入 30折返 20给B 输入输出相等

记录 B下面有三笔输出 一个A输出 一个C输出  还有某一次 交易输出

没有花费的交易输出

32去C 3去B

点对点电子信息系统问题

双重花费问题

  1. 交易的连续性:当发生一笔交易时,如A给B和C转账,这些交易信息会被广播到网络中。不同的记账者(矿工)会根据自己的接收顺序来记录这些交易。由于网络传播的延迟,可能会出现不同的记账者在不同的时间接收到交易信息,导致他们基于不同的“上一页账单”(即前一个区块)来创建新的区块。这就可能导致区块链分叉的情况发生。

  2. 区块链分叉:当网络中同时出现两个或多个区块竞争成为区块链的一部分时,就会发生分叉。这些区块都是有效的,但只能有一个成为主链的一部分。通常,网络会自动选择长度更长的链作为主链,因为更长的链意味着更多的计算工作量,从而更可能被全网接受。

  3. 多数共识:在区块链网络中,通常遵循“少数服从多数”的原则。如果有更多的记账者在一个特定的区块后面继续记账,那么这个区块就会被认为更可靠,因为它获得了更多的网络确认。这种机制确保了网络的一致性和安全性。之所以不是简单地等待十分钟,而是因为需要多个区块的确认来增加交易的安全性。随着更多区块的添加,区块链分叉的可能性降低,交易的不可逆性增加。

  4. 交易确认:为了确保交易的安全性,通常会等待多个区块的确认。例如,在比特币网络中,等待六个区块的确认是一种常见的做法,这大约需要一个小时的时间。这样做是为了减少交易被撤销的风险,因为随着区块的增加,攻击者要改变交易记录的成本会指数级增加。因此,等待六个区块的确认可以提供足够的安全性,使得交易几乎不可能被逆转。

区块链的读写权限

  1. 公有链(Public Blockchain):在公有链中,任何人都可以参与记账,并且竞争记账权。为了鼓励矿工参与记账并确保数据的安全性,通常会有代币奖励给正确记账的矿工。公有链是完全去中心化的,任何人都可以读取数据、发送交易,并且交易能够获得有效确认。比特币和以太坊都是典型的公有链代表 。

  2. 联盟链(Consortium Blockchain):联盟链的记账权限通常开放给特定的一组机构或个体。这些成员共同决定谁来记账,因此不需要通过代币奖励来激励记账。联盟链的特点是部分去中心化,数据只允许系统内不同的机构进行读写和发送交易,并且共同记录交易数据。联盟链的存在本身就为记账者提供了价值,因为他们通过参与记账可以获得网络内的信誉、数据访问权限或其他形式的商业价值 。

  3. 完全私有区块链(Private Blockchain):在完全私有的区块链中,通常只有一个组织负责挖矿,并且不设立代币。私有链的写入权限由某个组织和机构控制,参与节点的资格会被严格限制。私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击,并且能做到身份认证等金融行业必需的要求。私有链的拥有者对链有最高的权限,可以进行分叉或记录回滚等操作 。

区块链的骨骼和灵魂

矿工生成区间头哈希(区块唯一的id) =交易Hash两两再生成Hash,多阶结果组成头Hash,头哈希使得校验区块完整性不用核查所有交易

头哈希和父哈希相等被承认这个区块的有效性

  1. 构建区块头:矿工首先会构建区块头,它包含了前一个区块的哈希值(prev_block_hash)、时间戳(timestamp)、难度目标(nBits)、交易的梅克尔根(Merkle Root)以及一个随机数(nonce)等信息。

  2. 计算哈希值:接着,矿工会对区块头进行哈希计算,生成一个哈希值。这个哈希值是区块的唯一标识符(ID)。

  3. 调整Nonce值:如果计算出的哈希值不满足网络的难度要求(即不是以足够多的零开头),矿工会改变区块头中的nonce值,然后再次进行哈希计算。

  4. 不断尝试:矿工会不断改变nonce值,重复哈希计算,直到找到一个满足难度要求的哈希值。这个过程是试错式的,需要大量的计算工作,因此被称为“挖矿”。

  5. 网络验证:当一个矿工找到了一个满足条件的哈希值,他们会将这个区块广播到整个网络。其他节点会验证这个区块的有效性,如果确认无误,这个区块就会被添加到区块链上。

  6. 难度调整:比特币网络会自动调整难度目标,以保持大约每10分钟产生一个新区块的速率。这意味着,如果矿工们的整体算力增加,使得区块产生得太快,网络会自动增加难度;反之,如果算力减少,难度会自动降低。

  7. 哈希函数的特性:哈希函数是单向的,这意味着你不能从哈希值逆推出原始输入。因此,找到一个满足条件的哈希值的唯一方法是通过不断尝试不同的输入(nonce值)。

共识机制

对某事达成共识的开发

全网记账者能对一本账本结果有统一一致的结果

拜占庭将军问题

所有将军必须保证步调一致

分布式系统的共识问题

各个服务器相互响应的情况

FLP不可能原理指出,在网络可靠、计算节点可能因崩溃而失效的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。这意味着在分布式系统中,我们无法设计出一个算法,能够在所有情况下保证所有节点达成一致的状态。

CAP定理进一步阐述了分布式系统在设计时面临的权衡。CAP代表一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance)。根据CAP定理,分布式系统不可能同时确保这三个属性,只能选择其中的两个。具体来说:

  1. 一致性(Consistency):所有节点在同一时刻能够看到同样的数据,即强一致性。
  2. 可用性(Availability):确保每个请求都可以收到确定其是否成功的响应。
  3. 分区容忍性(Partition tolerance):因为网络故障导致的系统分区不影响系统正常运行。

在实际应用中,分布式系统设计者必须根据具体需求在这三个属性之间做出权衡。例如,一些系统可能优先考虑一致性和分区容忍性,而在节点出现故障时可用性可能会受到影响。另一些系统可能优先考虑可用性和分区容忍性,这意味着在网络分区发生时,系统可能会牺牲一致性,允许数据在不同节点间暂时出现差异,但仍然能够响应用户的请求。

 

1.非拜占庭容错 假定50%以上节点都是诚实节点

2.拜占庭容错 容错性高性能差 提高恶意节点成本 允许一定比例的恶意节点出现

随机

  1. 随机选择领导人:在比特币网络中,领导人(或矿工)是通过工作量证明(Proof of Work, PoW)机制随机选出的。这就意味着任何参与者都有可能成为下一个区块的创建者,但具体是谁能成功创建新区块是不可预测的。这种随机性是通过哈希函数的单向性和计算难度实现的,确保了作恶者很难控制或预测下一个领导人是谁。

  2. 作恶者概率小:由于领导人是随机选出的,且需要连续多个区块的作恶才能得到网络的承认,这使得作恶的成本变得非常高。在比特币网络中,要控制网络并进行作恶,攻击者需要拥有超过50%的网络算力,这在实际操作中几乎是不可能的,因为成本过高。

  3. 随机性的不可预测性和不可操控性:为了保证随机选择领导人的机制不被操控,系统需要确保随机性的生成是不可预测和不可操控的。这通常通过使用加密安全的哈希函数来实现,这些函数能够产生足够随机的结果,使得任何外部尝试预测或操控结果的行为都变得不切实际。

  4. 低成本复制大量小号的难度:在比特币网络中,复制大量小号并进行操控是非常困难的。这是因为每个节点都需要有足够的算力来参与竞争,而且网络的共识机制确保了只有最长的链会被认可。此外,网络的节点数量众多,使得任何单个节点或小部分节点很难对网络产生决定性的影响。

 

  1. 随机数生成的挑战:真正的随机数生成是不可能的,因为计算机程序本质上是确定性的。即使是所谓的“随机”数,也是基于特定算法和种子值(如时间戳)生成的,这些被称为伪随机数。为了提高随机性,可以结合哈希函数来增加不可预测性,但仍然不是真正的随机。

权益证明(Proof of Stake, PoS)是一种区块链共识机制,它根据节点持有的货币数量和时间(即“权益”)来选择区块的创建者。与工作量证明(Proof of Work, PoW)相比,PoS旨在减少能源消耗,提高安全性,并降低中心化的风险。以下是PoS机制的一些关键点:

  1. 节能:PoS不依赖于大量的计算工作来验证交易和创建新区块,因此比PoW更加节能。据估计,以太坊从PoW转向PoS后,能源消耗降低了99.5% 。

  2. 安全性:在PoS中,攻击者需要购买大量代币才能成功实施攻击,这大大提高了攻击的成本。验证者通过质押代币来参与网络的验证过程,如果他们行为不端,比如双重签名或发起攻击,他们的代币将被削减 。

  3. 随机性和不可预测性:PoS机制通常包括随机性元素,以确保出块节点的选取过程不能被操纵或预测。这种随机性有助于防止网络被单一节点或小部分节点控制 。

  4. 性能:PoS机制通常比PoW有更好的性能,因为它不需要大量的计算工作来达成共识。这可以提高交易处理的效率和速度 。

  5. 委托权益证明(Delegated Proof of Stake, DPoS):DPoS是PoS的一种变体,其中代币持有者通过投票选出少数代表节点(通常数量较少,如EOS的21个区块生产者)来运营网络。这种机制可以进一步提高交易处理速度和吞吐量 。

  6. 以太坊的PoS升级:以太坊已经从PoW转向了PoS,这一升级被称为“合并”(The Merge)。这一转变不仅减少了能源消耗,还改变了网络的质押方式和收益模式 。

  7. 随机数生成:在区块链中,生成随机数是一个挑战,因为计算机生成的随机数往往是伪随机的。为了确保随机性和不可预测性,区块链网络可能采用各种方法,包括哈希函数和密码学协议,来生成用于选择验证者的随机数 。

 

 

 

相关文章:

区块链学习笔记(一)

区块链技术实现了去中心化的货币系统,与中心化记账方式不同,它消除了中间第三方,允许用户进行点对点交易,并确保了货币的真正所有权。此外,区块链的代码完全公开且不可篡改,保障了系统的透明度和安全性。 …...

解决QT打包发布App Store时(90238)错误

Invalid signature. The main app bundle, xxxx at the “xxxx.app” path, has the following signing error(s): [a sealed resource is missing or invalid. In subcomponent: xxxx.app/Contents/Frameworks/QtWebEngineCore.framework]. For details about signing Mac cod…...

使用Vite构建现代化前端应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Vite构建现代化前端应用 引言 Vite 简介 安装 Vite 创建项目 启动开发服务器 项目结构 配置 Vite 开发模式 生产构建 使用插…...

PyQt入门指南三十八 QWizard向导组件

在PyQt中,QWizard 是一个用于创建向导式应用程序的组件。向导是一种用户界面模式,它通过一系列逐步的页面引导用户完成某个任务。每个页面通常包含一些输入字段和选项,用户需要在每个页面上完成相应的操作,然后才能进入下一个页面…...

【数学二】线性代数-矩阵-矩阵的概念及运算

考试要求 1、理解矩阵的概念,了解单位矩阵、数量矩阵、对角矩阵、三角矩阵、对称矩阵、反对称矩阵和正交矩阵以及它们的性质. 2、掌握矩阵的线性运算、乘法、转置以及它们的运算规律,了解方阵的幂与方阵乘积的行列式的性质. 3、理解逆矩阵的概念&#x…...

近期学习前端的心得

1.如果你这一行的编辑权利在于你这一行的某个字段的值,你可以使用这样:disabled"scope.row.某字段 ! 某字段的值" 2.如果你不想使用弹出框的形式来修改数据库,可以采用 对“某字段”列使用了 el-input,并绑定了 v-model 到 sco…...

qt QMenu详解

1、概述 QMenu是Qt框架中的一个类,用于创建和管理菜单。它提供了丰富的接口来添加菜单项(通常是QAction对象)、子菜单以及分隔符。QMenu可以嵌入到菜单栏(QMenuBar)中,也可以作为弹出菜单(通过…...

HTMLCSS:旋转的动态卡片

效果演示 这段代码创建了一个具有动态背景和渐变效果的卡片。卡片背景有一个无限循环的旋转动画&#xff0c;增加了视觉吸引力。这种效果可以用于展示个人信息、项目介绍或其他需要吸引用户注意的内容。 HTML <div class"card"><h3>前端Hardy</h3&…...

通过自然语言表达你的想法。GitHub Spark让任何人都能使用人工智能,为自己创建软件...

我们能否让任何人都能使用人工智能&#xff0c;为自己创建软件&#xff1f;尽管开发者喜欢定制自己的开发环境以提高效率和趣味性&#xff0c;但创建个性化应用程序的复杂性常常阻止他们这样做。 如何使个性化软件的创建变得像定制开发环境一样简单?并让更多人能够轻松实现这种…...

c++的list类

本篇将讲述list类中的各种重要和常用函数&#xff08;begin&#xff08;&#xff09;、end&#xff08;&#xff09;、rbegin&#xff08;&#xff09;、rend&#xff08;&#xff09;、empty&#xff08;&#xff09;、size&#xff08;&#xff09;、front&#xff08;&#…...

uniapp数据缓存

利用uniapp做开发时&#xff0c;缓存数据是及其重要的&#xff0c;下面是同步缓存和异步缓存的使用 同步缓存 在执行同步缓存时会阻塞其他代码的执行 ① uni.setStorageSync(key, data) 设置缓存&#xff0c;如&#xff1a; uni.setStorageSync(name, 张三) ② uni.getSt…...

HarmonyOS-权限管理

一. 权限分类 1. system_grant system_grant 为系统授权&#xff0c;无需询问用户&#xff0c;常用的权限包括网络请求、获取网络信息、获取wifi信息、获取传感器数据等。 /* system_grant&#xff08;系统授权&#xff09;*/static readonly INTERNET ohos.permission.INTE…...

Github 2024-11-02 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-11-02统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Python项目2Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero Genera…...

修改HarmonyOS鸿蒙图标和名字,打包后安装到真机,应用图标丢失变成透明,修改名字也不生效,还是默认的labeL解决方案教程

HarmonyOS鸿蒙打包hap 安装应用到桌面没有图标&#xff0c;用hdc安装到真机&#xff0c;打包后应用图标丢失变成透明&#xff0c;名字也还是默认的label的bug&#xff0c;以下是解决方案 以下是修改方案&#xff1a; 1、修改应用名字&#xff1a; 2、修改应用图标&#xff1a…...

unreal engine5动画重定向

UE5系列文章目录 文章目录 UE5系列文章目录前言一、下载动画资源二、创建IK Rig&#xff08;IK绑定&#xff09; 前言 在Unreal Engine 5.4中&#xff0c;动画重定向&#xff08;Animation Retargeting&#xff09;和动作匹配&#xff08;Motion Matching&#xff09;是两种不…...

蓝桥杯练习笔记(二十-日期问题)

日期题常见于填空题&#xff0c;关键点涉及闰年的判断和星期几的判断 1.根据间隔天数计算日期 题目来源&#xff1a;CSDN算法技能树 在X星系的广袤空间中漂浮着许多X星人造“炸弹”&#xff0c;用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如&#xff1a;…...

jenkins 构建报错 mvn: command not found

首先安装过 maven&#xff0c;并且配置过环境变量 win r ,输入 cmd 键入 mvn -v 出现上图输出&#xff0c;则证明安装成功。 原因 jenkins 没有 maven 配置全局属性, 导致无法找到 mvn 命令。 解决方案 找到全局属性&#xff0c;点击新增&#xff0c;配置 MAVEN_HOME 路…...

Vue computed watch

computed watch watch current prev...

【java】java的基本程序设计结构06-运算符

运算符 一、分类 算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符 1.1 算术运算符 操作符描述例子加法 - 相加运算符两侧的值A B 等于 30-减法 - 左操作数减去右操作数A – B 等于 -10*乘法 - 相乘操作符两侧的值A * B等于200/除法 - 左操作数除以右操作数B /…...

数据建模圣经|数据模型资源手册卷3,数据建模最佳实践

简介 本书采用了类设计模式的方式对数据模型进行高度抽象总结&#xff0c;展现了常见的数据模型构建模型等模型的作用、层次、分类、地位、沟通方式&#xff0c;和业务规则。使用一个强大的数据模型模式的数据建模&#xff0c;评估特定与广义模型的优缺点&#xff0c;有助于你改…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...