当前位置:首页 » 币种行情 » 为什么要同步eth

为什么要同步eth

发布时间: 2024-10-21 00:48:45

Ⅰ 一文读懂以太坊—ETH2.0,是否值得长期持有

这几天一直在看关于ETH伦敦升级方面的资料,简单的聊一下,在加密货币的世界里,无论是投资机构、区块链应用开发者、矿机商,还是个人投资者、硬件供应商、 游戏 行业从业者等等,提起以太坊,或多或少都会有一些了解。

一方面取决于以太坊代币 ETH 本身的造富效应。从 2014 年首次发行以来,投资回报率已经超过 7400 倍。


另一方面,以太坊作为应用最广泛的去中心应用编程平台,引来无数开发者在其之上开发应用。这些应用不仅产生了巨大的商业价值,伴随 DEFI 生态、NFT 生态、DAO 生态蓬勃发展,也给 ETH 带来了更多使用者。


随着“伦敦升级计划”临近,ETH 再次聚集所有人的关注目光。


以太坊 2.0 到底是什么?包含哪些升级?目前进展如何?


以太坊 2.0 到来,会对现有以太坊生态的去中心化应用产生哪些影响?


ETH 是否值得持续投资?看完相信你会有自己的判断。


如果将搭建应用比作造房子,那么以太坊就提供了墙面、屋顶、地板等模块,用户只需像搭积木一样把房子搭起来,因此在以太坊上建立应用的成本和速度都大大改善。以太坊的出现,迅速吸引了大量开发者进入以太坊的世界编写出各类去中心应用,极大丰富人们对去中心应用场景的需求。

以太坊应用开发模型示意


以太坊与ETH


现有市场的加密货币,只是在区块链技术应用在某一场景下的单一代币。


以太坊也不例外,它的完整项目名称是“下一代智能合约与去中心化应用平台”,Ether(以太币)是其原生加密货币,简称 ETH。


ETH 除了可以用来与各种类型数字资产之间进行有效交换,还提供支付交易费用的机制,即我们现在做链上操作时所支付的 GAS 费用。GAS 费用机制的出现,即保护了以太坊网络上创建的应用不会被恶意程序随意滥用,又因为 GAS 收入归矿工所有,让更多的用户参与到以太坊网络的记账当中成为矿工,进一步维护了以太坊网络安全与生态发展。


与 BTC 不同的是,ETH 并没有采用 SHA256 挖矿算法,避免了整个挖矿生态出现由 ASIC(专用集成电路)矿机主导以至于大部分算力被中心化机构控制所带来的系统性风险。


以太坊最初采用的是 PoW(Proof of Work)的工作量证明机制,人们需要通过工作量证明以获取手续费回报。我们经常听说矿工使用显卡挖矿,他们做的就是 POW 工作量证明。显卡越多,算力越大,那么工作量就越大,收入也就越高。


当前,整个以太坊网络的总算力大约为 870.26 TH/s,用我们熟悉的消费级显卡来对比,英伟达 RTX 3080 的显卡算力大约为 92-93 MH/s,以太坊网络相当于 936 万张 3080 显卡算力的总和。


以太坊白皮书内非常明确提到之后会将 PoW 工作证明的账本机制升级为 POS (Proof of Stake)权益证明的账本机制。


ETH经济模型


与 BTC 总量 2100 万枚不同,ETH 的总量并没有做上限,而是在首次预售的 ETH 数量基础上每年增发,增发数量为 0.26x(x 为发售总量)。


但也不用担心 ETH 会无限通胀下去,长期来看,每年增发币的数量与每年因死亡或者粗心原因遗失币的数量大致相同,ETH 的“货币供应增长率”是趋近于零的。


ETH 分配模型包含早期购买者,早期贡献值,长期捐赠与矿工收益,具体分配比例如下表。

现在每年将有 60,102,216 * 0.26 = 15,626,576 个 ETH 被矿工挖出,转成 PoS 后,每年产出的 ETH 将减少。


目前,市场上流通的 ETH 总量约为 116,898,848 枚,总市值约为 2759 亿美元。


以太坊发展历程


1. 边境阶段(2015年):上线后不久进行了第一次分叉,调整未来挖矿的难度。此版本处于实验阶段,技术并未成熟,最初只能让少部分开发者参与挖矿,智能合约也仅面向开发者开发应用使用,并没有用户参与,以太坊网络处于萌芽期。


边境阶段 ETH 价格:1.24 美元。


2. 家园阶段(2016年):以太坊主网于 2016 年 3 月进行了第二次分叉,发布了第一个稳定版本。此版本是第一个成熟的正式版本,采用 100% PoW 证明,引入难度炸弹,随着区块链数量的增加,挖矿难度呈指数增长,网络的性能大幅提升,以太坊项目也进入到快速成长期。在”家园“版本里,还发生了著名的”The DAO 攻击事件“,以太坊被社区投票硬分叉为以太坊(ETH)与以太经典(ETC)两条链,V 神站在了 ETH 这边。


家园阶段 ETH 价格:12.50 美元。


3. 都会阶段(2017~2019年):都会的开发又分为三个阶段,升级分成了三次分叉,分别是 2017 年 10 月的“拜占庭”、2019 年 2 月底的“君士坦丁堡“、以及 2019 年 12 月的“伊斯坦布尔”。这些升级主要改善智能合约的编写、提高安全性、加入难度炸弹以及一些核心架构的修改,以协助未来从工作量证明转至权益证明。


在都会阶段,以太坊网络正式显现出其威力,正式进入成熟期。智能合约让不同链上的加密货币可以互相交易,ERC-20 也在 2017 代币发行的标准,成千上万个项目在以太坊网络进行募资,被称作“首次代币发行(ICO)”,相信很多币圈的老人都是被当时 ICO 造富效应带进来的。到 2019 年,随着DeFi 生态的崛起,金融产品正式成为以太链上最大的产业。


都会阶段 ETH 价格:151.06 美元。


4. 宁静阶段(2020-2023年):与都会分三阶段开发相同,宁静阶段目前预计分成三次分叉:柏林(已完成)、伦敦(即将到来)、以及后面的第三次分叉。“宁静”阶段又称为“以太坊 2.0”,是项目的最终阶段,以太坊将从工作量证明方式正式转向权益证明,并开发第二层扩容方案,提高整个网络的运行效率。


宁静阶段可以说是以太坊网络的集大成之作,如果说前个三阶段只是让以太坊的愿景展现的实验平台,宁静阶段之后的以太坊,将正式成为完全体,不仅有完备的生态应用,超级快的处理速度,众多网络协同发展,而且 PoS 机制会非常节约能源,真正代表了区块链技术逐渐走向成熟的标志。


宁静阶段 ETH 价格:2021 年 4 月 15 日完成的柏林阶段,当天价格为 2454 美元。

即将到来的伦敦协议升级

以太坊生态


以太坊的生态发展,从属性划可分为两大类:一是以太坊网络生态应用建设,二是以太坊网络扩容建设。两者相互融合,互相成就,应用需要更健壮强大的网络作为承载,网络需要功能完善的应用场景服务用户。


先说应用生态,以太坊的生态我们又可以分为以下几大类:


1. 去中心化自制组织(DAO)生态


什么是去中心化自制组织?还是以我们熟悉的比特币举例:比特币目前市值七千多亿美金,在全球资产市值类排名第九,但比特币并不是某一公司发布的产品,也没有特定公司组织招聘人员进行维护。比特币现有的一切,都源于比特币持有者、比特币矿工自发形成的分布式组织,他们通过投票方式规划比特币发展路线,自发参与维护比特币程序与网络 —这仅仅因为只要拥有比特币,所有人都是比特币网络建设中的受益者,一切维护都源于自身的利益关系。


比特币的发明与成功运行,突破了由荷兰人创建、至今流行 400 多年的公司商业架构,开创出一种全新的、无组织架构的、全球分布式的商业模式,这就是 DAO。


再说回以太坊,以太坊的 DAO 可以由智能合约编写,用户自定义应用场景。简单说就是我们规定出程序执行条件与执行范围,真实世界里只要触发设定好的条件,程序就会自动执行运行,且所有过程都会在以太坊的网络上进行去中心化公开验证,不需要经过人工或者任何第三方组织机构确认。


以太坊 DAO 生态演化出许多商业场景,有慈善机构使用 DAO 建立公开透明的捐款与使用机制,有风投机构使用 DAO 建立公平分配的风险基金。


以太坊生态的很多项目都采用 DAO 自治,代表项目有:Uniswap,AAVE,MakerDAO,Compound,Decred,Dash 等。


2. 去中心化金融(DEFI)生态


在传统商业世界里,我们如果需要借钱、存钱,或者买某一公司股票,或者做企业贷款、融资,只要是进行金融活动,总离不开与银行、证券机构、会计事务所这些金融机构打交道。


而在去中心的世界里,区块链本质就是集合所有人交易记录且公开的大账本,我们可以非常容易的追溯到每一个钱包地址发生过的每一笔交易,查询到任意一个钱包地址的余额信息,从而对钱包地址里的资产做评估。


举个例子:全世界个人贷款最贵的国家是印度,印度的年轻人房贷利率目前是 8.8%,最高曾经到过 20%;与此对应,全世界个人存款利率最低的国家是日本,日本政府为了鼓励民众消费,在很长一段时间里银行存款利率是负值,日本人在银行存款不仅没有利息,还要给银行交保管费。理论上,如果日本人将自己的存款借与印度人,双方都能获得利益最大化,但现实生活中这样的场景很难发生。一是每个国家都有外汇管制,日本人的钱并不容易能给到印度人,二是印度人的信用如何日本人也不好评估,大家没有统一标准,万一借出去的钱无法归还,不能没了收益还要蒙受损失。


但在去中心的世界里,这样的事情就简单的多。


如果印度人的钱包地址里有比特币,我们就可以利用智能合约,印度人将自己的比特币质押进去,根据比特币当时的价格,系统自动给印度人一个授信额度,印度人就可以拿着这个额度去和日本人借款,并规定好还款的周期与利率。如果印度人违约,合约自动将印度人质押进去的比特币扣除,优先保障日本的权利,这样,日本人不用担心安全问题放心享受收益,印度人也有了更多的款项做为流动资金。


这个例子就是去中心金融的简单应用,实际上,这就是我们参与 DEFI 挖矿是质押理财的原理 —— 当然真正应用实现算法与场景要复杂的多。


DEFI 根据场景不同,又可以分为很多赛道,比如稳定币、预言机、AMM 交易所、衍生品、聚合器等等。


DEFI 代表项目有:Dai,Augur,Chainlink,WBTC,0x,Balance,Liquity 等。


3. 非同质化代币(NFT)生态


世界名画《蒙娜丽莎》,只有达·芬奇的原版可以展览在法国卢浮宫博物馆,哪怕现代的技术可以无比精细地复刻出来,仿品都不具备原版的收藏价值。


这就是 NFT 的应用场景。NFT是我们可以用来表示独特物品所有权的代币,它们让我们将艺术品、收藏品甚至房地产等现实事物唯一代币化。虽然文件(作品)本身是可以无限复制,但代表它们的代币在链上可以被追踪,并为买家提供所有权证明。


相比现实中实物版权、物权的双重交割相比,NFT 只需要交割描述此物品的唯一代币。NFT 作品往往存储在如 IPFS 这样的分布式存储网络里,随用随取,永不丢失,加之交割简单方便,很快吸引了大量玩家与投资者收藏转卖,NFT 出现也给艺术家提供了全新的收入模式。


类似 DEFI 生态,NFT 生态根据应用场景不同也产生了不同赛道,目前比较火热的赛道有 NFT 交易平台,NFT 游戏 平台,NFT 艺术品平台, NFT 与 DEFI 结合在一起的金融平台。


NFT 代表项目有:CryptoKitties,CryptoPunks,Meebits,Opensea,Rally,Axie Infinity,Enjin Coin,The Sandbox 等。


4. 标准代币协议(ERC-20)生态


与 NFT 非同质化代币所对应的,就是同质化代币。比如我们使用的人民币就是一种同质化代币,我们可以用人民币进行价值交换,即使序号不同也不影响其价值,如果面额相同,不同的钞票序号对持有者来说没有区别。


BTC,ETH 和所有我们熟知的加密货币,都属于同质化代币。同种类的一个比特币和另一个比特币没有任何区别,规格相同,具有统一性。在交易中,只需关注代币交接的数量即可,其价值可能会根据交换的时间间隔而改变,但其本质并没有发生变化。


以太坊的 ERC-20 就是定义这种代币的标准协议,任何人都可以使用 ERC-20 协议,通过几行代码,发布自己在以太坊网络上的加密货币。


现在,以太坊网络上运行的代币种类有上百万个,上边提到的项目,大多也在以太坊网络中发布了自己的同质化代币。


ERC-20 代表项目有:USDT,USDC,WBTC 等。


以太坊网络扩容性


我们先引入一个概念:区块链的不可能三角,即无论何种方法,我们都无法同时达到可扩展、去中心化、安全,三者只能得其二。


这其实很好理解,如果我们要去中心化和安全,就需要更多有节点参与网络进行验证,从而导致验证人增多、网络效率降低,扩展性下降。网络性能建设就是在三者之间找到平衡点。


用数据举例,目前比特币可处理转账 7 笔 / 秒,以太坊是 25 笔 / 秒,而 VISA 平均为 4500 笔 / 秒,峰值则达每秒上万笔。这种业务处理能力的差别,我们就可以简单理解为是「吞吐量」的差距。而想要提高吞吐量,则需要扩展区块链的业务处理能力,这就是所谓的扩展性。


根据优化方法不同,以太坊网络性能扩容方案可以分为:


1. Layer 1 链上扩展,所有交易都保留在以太坊上的扩展解决方案,具有更高的安全性。


链上扩展的本质还是改进以太坊主链本身,使整个系统拥有更高的拓展性与运行效率。一般的方法有两种,要么改变共识协议,比如 ETH 将从 PoW 转变为 PoS;要么使用分片技术,优化方法使网络具有更高效率。


2. Layer 2 链下扩展,在以太坊协议之上分层单独做各场景解决方案,具有更好的扩展性。


链下扩展可以理解为把计算、交易等业务处理场景拿到以太坊主链之外计算,最后将计算好的结果传回主链,主链只反映最终的结果而不用管过程,这样,无论多么复杂的应用都不会对主链产生影响。


我们并不需要明白具体技术实现,只需知道:相比 Layer 1 方案,Layer 2 方案网络不会干扰底层区块链协议,可以替 Layer 1 承担大部分计算工作,从而降低主网络的负担提高网络业务处理效率,是目前公认比较好的扩容方案。


以太坊2.0


终于讲到以太坊 2.0,回到主题。


通过回顾以太坊的发展 历史 ,以太坊 2.0 并不是新项目,它只是以太坊开发进程的最后一个阶段,它将由整个以太坊生态多个团队协同完成,目标是使以太坊更具可扩展性、更安全和更可持续,最终成为主流并为全人类服务。


ETH2建设目标:


1. 更具可扩展性。每秒支持 1000 次交易,以使应用程序使用起来更快、更便宜。


2. 更安全。以太坊变得更加安全,以抵御所有形式的攻击。


3. 更可持续。提高网络性能的同时减少对能源的消耗,更好地保护环境。


最重要的变化,ETH2 将从 ETH1 使用的 PoW(Proof of Work)工作量证明机制升级为 POS (Proof of Stake)权益证明机制。不再以算力做为验证方式,而是通过质押加密货币的数量做为验证手段。矿工不需要显卡也能挖矿,既节省了时间成本与电力成本,又提高了 ETH 的利用率,非常类似钱存在银行获得利息。


ETH2 主要使用的技术是分片分层技术实现整个网络扩容。


ETH2 升级将分为三个阶段进行:


1. 阶段0(正在进行):信标链的创建与合并。信标链是 ETH2 的主链,如同人类的大脑,是 ETH2 得以运行的基础。


2. 阶段1(预计2022年):分片链的创建与应用。当信标链与 ETH1 合并完成后,就进入分片链的开发阶段。分片链可以理解为将 ETH2 主链的整块数据按一定规则拆分存放,单独建立新链处理,用来分担主链上的数据压力,目前规划是建立 64 条分片链。


举个例子,从北京到上海,原来的交通工具只有一条公路,所有的车辆都需要在上边运行,就会非常拥挤;现在通过分片技术,多出来高铁、飞机等交通方式,分流的车辆同时到达速度更快,这就是分片链起到的作用。

分片链与主链交互示意图


3. 阶段2(预计2023年):整个网络功能的融合。到了此阶段,整个系统的功能全面开始融合,分片链的功能会更加强大,新的处理机制开始支持账户、智能合约、开发工具的创建,新的生态应用等。


此阶段是以太坊网络的最终形态,网络性能得到全面提升,生态应用全面爆发。但要服务全人类,ETH2 每秒 1000 次的交易效率显然还是远远不够,以太坊也会为它的目标持续优化下去。


ETH2对于大家有什么影响?


1. 对于以太坊生态开发者。ETH2 在部署应用的时候,是需要选择应用在哪条分片网络进行部署,造成这种差异的原因是跨分片通信不同步,这就意味着开发者需要根据自己发展计划做不同的组合。


2. 对与 ETH 持币者。ETH2 与 ETH1 数据完全同步,代币也不会有任何变化,你可以继续使用现在的钱包地址继续持有 ETH。


3. 对于矿工。虽然 PoW 与 PoS 还会并行一段时间,可以预计的 PoW 矿机的产出会越来越少,应该开始减少 PoW 矿机的投资,开始转向 PoS 机制。


4. 对于用户。ETH2 速度更快,交易手续费更低,网络体验会非常好,唯一值得注意的是,由于 Dapp 部署在不同的分片网络上,可能需要手动选择应用的网络选项。


ETH是否值得投资?


ETH 是除了 BTC 以外市场的风向标,明确了解 ETH2 非常有助于我们理解其他区块链项目,理解二级市场。


简单总结几个点吧:


1. 通过以太坊的项目分析,我们可以清晰地看到:在比特币之后,以太坊项目的发展史就是目前区块链应用生态的发展史。无论 DEFI 生态,NFT 生态,DAO 生态还是代币、合约、协议生态,其实在以太坊发布白皮书时已有预见,后来出现的项目,都是围绕以太坊做验证。


2. 以太坊的联合创始人里,只有 V 神还在为以太坊事业做贡献,但这并不影响以以太坊繁荣发展。以太坊初始团队只是创建了它,后续的发展是社区、开发者、矿工与用户共同建立的结果,现在的以太坊早已不是某一个人的思维,它是所有以太坊生态参与者共同的结晶,它属于全人类。


3. 以太坊在过去的几年一直沿着既定的开发轨迹发展,虽然中途一度出现过危机,以太坊“被死亡”了好几百次,以太坊还是顽强的发展下来,并且拥有了繁荣生态。ETH2 还要两三年时间才能落地,中间也充满变数,比如其他的公链抢占先机,但可以预见,ETH2 后的以太坊会更加健壮。


4. 不要在抱有任何 BTC 会死亡,区块链行业会消失这样的伪命题。BTC、ETH 让我们看到了突破原有公司组织架构,一种全新无组织架构的商业模式存在,这种商业模式显然更符合这个时代的发展需求,无论项目地发起团队在不在,无论各国政府如何打压,只要技术对人类有贡献,就会由人员自发组织维护,区块链技术是革命。


5. ETH2 的上线,短期看 PoW 奖励与 PoS 奖励并行,可能会让 ETH 总通胀率短期内飙升,长期看 ETH 通胀率始终保持平衡。加上 ETH 本身的生态与应用场景,ETH是值得投资的,目前看不到有其他公链代替以太坊公链的可能性,ETH2 的上线,甚至会对其他公链造成“虹吸效应”,万链归一。

#比特币[超话]# #数字货币#

Ⅱ ETH合并的几个小Tips:何时通缩分叉币价值几何

1、共识机制的切换并不是“瞬时”完成:

以太坊 主网合并升级不会立即完成Pow Pos的转变,当前以太坊是两种共识机制同步运行,Pow占90%,Pos占到10%,按照开发组将难度炸弹的时间推迟到9.12日,难度炸弹爆发后伴随合并完成Pow挖矿难度将会逐渐“指数型增加”,届时局于挖矿成本的问题,倒逼Pow矿工逐步退出网络,但该过程可能持续将近6个月以上的时间,Pow网络也将进入“冰河期”

2、冰河期逐步减产,“通缩”并非一蹴而就:

在冰河期,由于以太坊Pow挖矿难度的剧增,出块时间的延长意味着矿工每日出块总奖励减少,按照以往难度炸弹爆发时期的数据,冰河期内大约1个月会进行1次Pow挖矿难度的调增,每次调增的力度都会比上一次更显著,预估持续6个月以太坊网络的总奖励将减少50%以上,持续9个月的时间将减少80%以上,经过6-9个月的时间将会完成大部分的减产,近几日 ETH Burn徘徊在1300附近,因此以太坊真正达到“通缩”需要在合并6个月后即23年上半年才能完成

3、用户端并不会有过多不良体验:

在以往难度炸弹爆发的冰河时期,随着Pow挖矿难度的陡增,用户端可能会产生非常不良的体验,虽然手续费可能并没有很高的提升,但是交互时间延长会明显降低用户体验;不过本次合并之后用户可能不会感受到明显的交互时间延长,合并后共识机制的切换,Pos验证开始将逐渐承载原本Pow验证的份额,出块时间更多的是参照Pos的时间;并且本次难度炸弹爆发和合并相隔时间不长,最多只会有1-2次的挖矿难度调增,最差情况下增加2秒附近的出块时间可能也不会过多影响用户体验

4、矿工分叉价值几何?定价权在交易所:

2017年 比特币 经过了一波分叉潮,潮水过后最终发现大家都在裸泳,只有比特币仍然屹立不倒,当时市场更多的是看不懂、看不清,分叉的“好”与“坏”在激辩中没有定论,交易所上线分叉也不会背负更多的骂名,市场的犹豫成为交易所争夺流量的工具;但今日非同往昔,主流的声音都是力挺主链,小型交易所可能会应为流量争夺被迫上线,而头部交易所应更加爱惜自身的羽毛,没有头部交易所支持失去流动性的分叉将是一地鸡毛;不过分叉币大概率还是会存在

5、算力迁移能否成真?或是伪命题:

市场更多的是在计价炒作预期。市场中大约80%以上为Gpu矿机,大部分GPU矿场会转型,为视频流应用程序构建基础架构、2D 和 3D 对象的渲染以及云服务器,因此也能保证一定的利润;算力迁移的过程伴随着挖矿难度的骤增,奖励也会随之减少,甚至入不敷出,因此并不认为大矿工会顶着巨额的成本拉高ETC没有生态支持的币价,更何况Gpu矿机也并非一条出路。而算力迁移和币价是否有直观的联系更像是先有鸡还是蛋的问题

Ⅲ Eth怎么玩啊,现在适不适合入场

中币已经率先开启了ETH2.0验证节点挖矿通道,然后此外还上线了QETH,用户可以将自有ETH投入进行验证节点挖矿并兑换QETH以获得流动性,兑入即参与挖矿。从11月4日开始,ETH已经从443美最高涨到了622美元。所以。现在绝对是入手ETH的好时机。中币ETH2.0严格按照1:1质押发行,所有的质押均与以太坊2.0保持同步,帮助用户低门槛参与ETH2.0验证节点挖矿,Staking 收益空投给 QETH 持有者,QETH还可以流通交易。

Ⅳ ethtool原理介绍和解决网卡丢包排查思路

之前记录过处理因为LVS网卡流量负载过高导致软中断发生丢包的问题, RPS和RFS网卡多队列性能调优实践 ,对一般人来说压力不大的情况下其实碰见的概率并不高。这次想分享的话题是比较常见服务器网卡丢包现象排查思路,如果你是想了解点对点的丢包解决思路涉及面可能就比较广,不妨先参考之前的文章 如何使用MTR诊断网络问题 ,对于Linux常用的网卡丢包分析工具自然是ethtool。

2020年06月22日 - 初稿

阅读原文 - https://wsgzao.github.io/post/ethtool/

ethtool - utility for controlling network drivers and hardware

ethtool is the standard Linux utility for controlling network drivers and hardware, particularly for wired Ethernet devices. It can be used to:

Most features are dependent on support in the specific driver. See the manual page for full information.

ethtool 用于查看和修改网络设备(尤其是有线以太网设备)的驱动参数和硬件设置。你可以根据需要更改以太网卡的参数,包括自动协商、速度、双工和局域网唤醒等参数。通过对以太网卡的配置,你的计算机可以通过网络有效地进行通信。该工具提供了许多关于接驳到你的 Linux 系统的以太网设备的信息。

接收数据包是一个复杂的过程,涉及很多底层的技术细节,但大致需要以下几个步骤:

NIC 在接收到数据包之后,首先需要将数据同步到内核中,这中间的桥梁是 rx ring buffer 。它是由 NIC 和驱动程序共享的一片区域,事实上, rx ring buffer 存储的并不是实际的 packet 数据,而是一个描述符,这个描述符指向了它真正的存储地址,具体流程如下:

当驱动处理速度跟不上网卡收包速度时,驱动来不及分配缓冲区,NIC 接收到的数据包无法及时写到 sk_buffer ,就会产生堆积,当 NIC 内部缓冲区写满后,就会丢弃部分数据,引起丢包。这部分丢包为 rx_fifo_errors ,在 /proc/net/dev 中体现为 fifo 字段增长,在 ifconfig 中体现为 overruns 指标增长。

这个时候,数据包已经被转移到了 sk_buffer 中。前文提到,这是驱动程序在内存中分配的一片缓冲区,并且是通过 DMA 写入的,这种方式不依赖 CPU 直接将数据写到了内存中,意味着对内核来说,其实并不知道已经有新数据到了内存中。那么如何让内核知道有新数据进来了呢?答案就是中断,通过中断告诉内核有新数据进来了,并需要进行后续处理。

提到中断,就涉及到硬中断和软中断,首先需要简单了解一下它们的区别:

当 NIC 把数据包通过 DMA 复制到内核缓冲区 sk_buffer 后,NIC 立即发起一个硬件中断。CPU 接收后,首先进入上半部分,网卡中断对应的中断处理程序是网卡驱动程序的一部分,之后由它发起软中断,进入下半部分,开始消费 sk_buffer 中的数据,交给内核协议栈处理。

通过中断,能够快速及时地响应网卡数据请求,但如果数据量大,那么会产生大量中断请求,CPU 大部分时间都忙于处理中断,效率很低。为了解决这个问题,现在的内核及驱动都采用一种叫 NAPI(new API)的方式进行数据处理,其原理可以简单理解为 中断 + 轮询,在数据量大时,一次中断后通过轮询接收一定数量包再返回,避免产生多次中断。

(1) RX errors

表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。

(2) RX dropped

表示数据包已经进入了 Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃。

(3) RX overruns

表示了 fifo 的 overruns,这是由于 Ring Buffer(aka Driver Queue) 传输的 IO 大于 kernel 能够处理的 IO 导致的,而 Ring Buffer 则是指在发起 IRQ 请求之前的那块 buffer。很明显,overruns 的增大意味着数据包没到 Ring Buffer 就被网卡物理层给丢弃了,而 CPU 无法即使的处理中断是造成 Ring Buffer 满的原因之一,上面那台有问题的机器就是因为 interruprs 分布的不均匀(都压在 core0),没有做 affinity 而造成的丢包。

(4) RX frame

表示 misaligned 的 frames。

网线上的packet首先被网卡获取,网卡会检查packet的CRC校验,保证完整性,然后将packet头去掉,得到frame。网卡会检查MAC包内的目的MAC地址,如果和本网卡的MAC地址不一样则丢弃(混杂模式除外)。

网卡将frame拷贝到网卡内部的FIFO缓冲区,触发硬件中断。(如有ring buffer的网卡,好像frame可以先存在ring buffer里再触发软件中断(下篇文章将详细解释Linux中frame的走向),ring buffer是网卡和驱动程序共享,是设备里的内存,但是对操作系统是可见的,因为看到linux内核源码里网卡驱动程序是使用kcalloc来分配的空间,所以ring buffer一般都有上限,另外这个ring buffer size,表示的应该是能存储的frame的个数,而不是字节大小。另外有些系统的 ethtool 命令 并不能改变ring parameters来设置ring buffer的大小,暂时不知道为什么,可能是驱动不支持。)

网卡驱动程序通过硬中断处理函数,构建sk_buff,把frame从网卡FIFO拷贝到内存skb中,接下来交给内核处理。(支持napi的网卡应该是直接放在ring buffer,不触发硬中断,直接使用软中断,拷贝ring buffer里的数据,直接输送给上层处理,每个网卡在一次软中断处理过程能处理weight个frame)

过程中,网卡芯片对frame进行了MAC过滤,以减小系统负荷。(除了混杂模式)

网卡驱动程序将IP包添加14字节的MAC头,构成frame(暂无CRC)。Frame(暂无CRC)中含有发送端和接收端的MAC地址,由于是驱动程序创建MAC头,所以可以随便输入地址,也可以进行主机伪装。

驱动程序将frame(暂无CRC)拷贝到网卡芯片内部的缓冲区,由网卡处理。

网卡芯片将未完全完成的frame(缺CRC)再次封装为可以发送的packet,也就是添加头部同步信息和CRC校验,然后丢到网线上,就完成一个IP报的发送了,所有接到网线上的网卡都可以看到该packet。

产生中断的每个设备都有一个相应的中断处理程序,是设备驱动程序的一部分。每个网卡都有一个中断处理程序,用于通知网卡该中断已经被接收了,以及把网卡缓冲区的数据包拷贝到内存中。

当网卡接收来自网络的数据包时,需要通知内核数据包到了。网卡立即发出中断。内核通过执行网卡已注册的中断处理函数来做出应答。中断处理程序开始执行,通知硬件,拷贝最新的网络数据包到内存,然后读取网卡更多的数据包。

这些都是重要、紧迫而又与硬件相关的工作。内核通常需要快速的拷贝网络数据包到系统内存,因为网卡上接收网络数据包的缓存大小固定,而且相比系统内存也要小得多。所以上述拷贝动作一旦被延迟,必然造成网卡FIFO缓存溢出 - 进入的数据包占满了网卡的缓存,后续的包只能被丢弃,这也应该就是ifconfig里的overrun的来源。

当网络数据包被拷贝到系统内存后,中断的任务算是完成了,这时它把控制权交还给被系统中断前运行的程序。

网卡的内核缓冲区,是在PC内存中,由内核控制,而网卡会有FIFO缓冲区,或者ring buffer,这应该将两者区分开。FIFO比较小,里面有数据便会尽量将数据存在内核缓冲中。

网卡中的缓冲区既不属于内核空间,也不属于用户空间。它属于硬件缓冲,允许网卡与操作系统之间有个缓冲;

内核缓冲区在内核空间,在内存中,用于内核程序,做为读自或写往硬件的数据缓冲区;

用户缓冲区在用户空间,在内存中,用于用户程序,做为读自或写往硬件的数据缓冲区;

另外,为了加快数据的交互,可以将内核缓冲区映射到用户空间,这样,内核程序和用户程序就可以同时访问这一区间了。

对于有ring buffer的网卡,ring buffer是由驱动与网卡共享的,所以内核可以直接访问ring buffer,一般拷贝frames的副本到自己的内核空间进行处理(deliver到上层协议,之后的一个个skb就是按skb的指针传递方式传递,直到用户获得数据,所以,对于ring buffer网卡,大量拷贝发生在frame从ring buffer传递到内核控制的计算机内存里)。

网卡工作在数据链路层,数据量链路层,会做一些校验,封装成帧。我们可以查看校验是否出错,确定传输是否存在问题。然后从软件层面,是否因为缓冲区太小丢包。

一台机器经常收到丢包的报警,先看看最底层的有没有问题:

(1) 查看工作模式是否正常

(2) 查看检验是否正常

Speed,Duplex,CRC 之类的都没问题,基本可以排除物理层面的干扰。

Why rx_crc_errors incrementing in the receive counter of ethtool -S output?

Check ethtool -S output and find where are the drops and errors.

Check the numbers corresponding to rx_crc_errors .

显示了p1p1 的接口类型,连接模式,速率等等信息,以及当前是否连接了网线(如果是网线Supported ports 就是TP,如果是光纤则显示Fiber),这里例举下3个重要关键词

Supported ports: [ FIBRE ]
Speed: 10000Mb/s
Link detected: yes

ethtool

Counters Troubleshooting for Linux Driver

Why do I see rx_crc_errors in ethtool output?

ping请求错误分析

ifconfig 命令详解

ethtool 命令详解

ethtool 解决网卡丢包严重和网卡原理

Ⅳ eth挖矿是什么原理

凡是涉及到币,就一定离不开挖矿。以太坊网络中,想要获得以太坊,也要通过挖矿来实现。说到挖矿,就一定离不开共识机制。
不知道大家还记得比特币的共识机制是什么吗?比特币的共识机制是 PoW (这是英文 Proof of Work 的缩写,意思是“工作量证明机制”)。简单来说,就是多劳多得,你付出的计算工作越高,那么你就越有可能第一个找到正确的哈希值,就越有可能得到比特币奖励。
但是,比特币的PoW存在着一定的缺陷,就是它处理交易的速度太慢,矿工们需要不断地通过计算来碰撞哈希值,这是劳民伤财且效率低下的。对区块链知识有涉猎的朋友们应该看到这样一种说法:
以太坊为了弥补比特币的不足,提出了新的共识机制,名叫 PoS(这是英文的缩写,意思是“权益证明”,也有翻译成“股权证明”的)。
PoS 简单来讲,其实就跟它的字面意思一样:权益嘛,股权嘛,你持有的币越多相当于你的股权越多,你的权益越高。
以太坊的PoS就是说:你持币越多,你持有币的时间越久,你的计算难度就会降低,挖矿会容易一些。
在以太坊最初的设定中,以太坊希望能够通过阶段性的升级,在前期依旧采用PoW来构建一个相对稳定的系统,之后逐渐采用 PoW+PoS,最后完全过渡到 PoS。所以,说以太坊的共识机制是PoS,没错,但是PoS只是以太坊发布之初的一个计划或者说目标,目前以太坊还没有过渡到 PoS,以太坊采用的共识机制仍是 PoW,就是比特币那个 PoW,但是又和比特币的PoW稍稍不同。
这里的信息量有点大,
第一个信息点是:以太坊目前采用的共识机制也是PoW,但是和比特币的PoW稍稍不同。那么,和比特币的PoW到底有什么不同呢:简单来说,就是以太坊挖矿难度可以调节,比特币挖矿难度不能调节。就好比咱们高考,因为各个省份的教学情况、生源人数都不一样,所以高考分为全国卷和各省自主命题。
以太坊说我赞成这样分地区出题,比特币说:不行,必须全国同一卷,大家难度都一样!
通俗解释,就是,比特币是利用计算机算力做大量的哈希碰撞,列举出各种可能性,来找到一个正确哈希值。而以太坊系统呢,它有一个特殊的公式用来计算之后的每个块的难度。如果某个区块比前一个区块验证的更快,以太坊协议就会增加区块的难度。通过调整区块难度,就可以调整验证区块所需的时间。
以太坊协议规定,难度的动态调整方式是使全网创建新区块的时间间隔为 15 秒,网络用 15 秒时间创建区块链,这样一来,因为时间太快,系统的同步性就大大提升,恶意参与者很难在如此短的时间发动51%(也就是半数以上)的算力去修改历史数据。
第二个信息点是:以太坊最初的设定中,希望通过阶段性升级来最终实现由 PoW 向
PoS过渡的。
时间追溯到 2014 年,在以太坊发布之初,团队宣布将项目的发布分为四个阶段,即 Froniter(前沿)、Homestead(家园)、Metropolis(大都会)和 Serenity(宁静)。前三个阶段共识机制采用 PoW(工作量证明机制),第四个阶段切换到 PoS(权益证明机制)。
2015年7月30号,以太坊第一个阶段“前沿”正式发布,这个阶段只适用于开发者使用,开发人员可于在以太坊网络上编写智能合约和去中心化应用程序 DAPP,矿工开始进入以太坊网络维护网络安全并挖矿得到以太币。前沿版本类似于测试版,证明以太坊网络到底是不是可靠的。
2016年3月14日,以太坊进入到第二个阶段“家园”,这一阶段,以太坊提供了钱包功能,让普通用户也可以方便体验和使用以太坊。其他方面没有什么明显的技术提升,只是表明以太坊网络已经可以平稳运行。
2017 年 9 月,以太坊已经进行到第三个阶段“大都会”。“大都会”由拜占庭和君士坦丁堡两次升级组成,这个阶段的的目标是希望能够引入 PoW 和 PoS 的混合链模式,为 PoW向PoS的顺滑过渡做准备。最近比较热门的“以太坊君士坦丁堡升级”升级的就是这个,在君士坦丁堡升级中呢,以太坊将对底层协议和算法做一些改变,来为实现 PoW 和
PoS奠定良好的基础。
以太坊挖矿会得到对多少奖励呢?赢得区块创建竞争成功的矿工会得到这么几项收入:
1、 静态奖励,5个以太坊;
2、 区块内所花费的燃料成本,也就是Gas,这部分我们上一期内容讲过;
3、 作为区块组成部分,包含“叔区块”的额外奖励,叔就是叔叔的叔,每个叔区块可以得到挖矿报酬的1/32作为奖励,也就是5乘以1/32,等于0.15625 个以太坊。这里我们简单解释一下“叔区块”,“叔区块”这个概念是以太坊提出来的,为什么要引进叔块的概念?这还要从比特币说起。在比特币协议中,最长的链被认为是绝对的正确。如果一个块不是最长链的一部分,那么它被称为是“孤块”。一个孤立的块是一个块,它也是合法的,但是可能发现的稍晚,或者是网络传输稍慢,而没有能成为最长的链的一部分。在比特币中,孤块没有意义,随后将被抛弃掉,发现这个孤块的矿工也拿不到采矿相关的奖励。
但是,以太坊不认为孤块是没有价值的,以太坊系统也会给与发现孤块的矿工回报。在以太坊中,孤块被称为“叔块”(uncle block),它们可以为主链的安全作出贡献。 以太坊十几秒的出块间隔太快了,会降低安全性,通过鼓励引用叔块,使引用主链获得更多的安全保证(因为孤块本身也是合法的) ,而且,支付报酬给叔块,还能激发矿工积极挖矿,积极引用叔块,所以,以太坊认为,它是有价值的。

热点内容
立昂技术有区块链概念吗 发布:2024-10-21 01:04:16 浏览:940
fpga矿机可以挖hns币吗 发布:2024-10-21 00:55:20 浏览:433
LTC4071封装 发布:2024-10-21 00:53:20 浏览:824
为什么要同步eth 发布:2024-10-21 00:48:45 浏览:990
莱特币的英文字母 发布:2024-10-21 00:36:40 浏览:428
明日之后的矿机怎么收 发布:2024-10-21 00:35:53 浏览:181
btc123是什么网站 发布:2024-10-21 00:14:58 浏览:401
挖矿以太坊机器 发布:2024-10-21 00:06:56 浏览:481
挖出比特币的显卡2017 发布:2024-10-21 00:06:23 浏览:50
google比特币 发布:2024-10-20 23:57:21 浏览:65