使用 cleos system delegatebw 为 EOS 账户委托 CPU 带宽资源(含源码级解析)
区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载本指南以仓库文档 how-to-delegate-CPU-resource.md 为核心讲解如何在 EOS本仓库为 EOSIO 开源智能合约平台中通过cleos system delegatebw命令从一个账户向另一个账户委托 CPU 带宽资源。读完本文你将掌握delegatebw命令的完整参数、真实输出解读、委托与撤销委托的实战命令以及该命令在 cleos 客户端与 eosio.system 系统合约中的底层实现链路。1. 为什么需要委托 CPU 带宽在 EOSIO 区块链中账户执行智能合约如转账、投票、调用合约接口需要消耗两类带宽资源CPU 带宽CPU bandwidth合约代码执行所需的计算资源与账户抵押stake的代币数量成正比NET 带宽NET bandwidth交易数据在网络中传输所需的吞吐资源。账户通过抵押staking代币来获得这两类资源的配额。而委托delegate则允许一个账户from把自己的代币抵押给另一个账户receiver使接收方无需自己持有大量代币也能获得可用的带宽配额。这在以下场景非常实用开发者为应用账号如 DApp 合约账号抵押 CPU保证用户操作不因带宽不足而失败新账户在初始阶段没有代币由他人代为抵押获得执行交易的能力。本仓库的相关指南还包含 NET 带宽委托how-to-delegate-net-resource.md、同时抵押 NET 与 CPUhow-to-stake-resource.md以及撤销委托how-to-undelegate-CPU.md、how-to-undelegate-NET.md可互相配合阅读。2. 开始之前Before you begin原文档列出了执行本操作前必须满足的准备工作熟悉命令及其参数阅读cleos system delegatebw命令参考理解每个位置参数与选项的含义安装 cleoscleos随 EOSIO 软件一同分发安装 EOSIO 后即自带cleos可执行文件部署参考系统合约确保用于管理系统资源的参考系统合约eosio.system、eosio.token等源自eosio.contracts仓库已部署到链上。本仓库的单元测试中携带了 eosio.system 合约的 ABI 副本见 unittests/contracts/eosio.system/eosio.system.abi可据此核对delegatebw动作的结构定义理解基础概念账户account及其在链上的作用、CPU 带宽与 NET 带宽在 EOSIO 区块链中的含义。注意delegatebw是cleos system子命令组中的命令实际发送的是对系统账户eosio上delegatebw动作action的调用因此只有在系统合约已部署并生效的环境中才能成功执行。3. 核心命令与参数3.1 命令语法委托 CPU 带宽的核心命令格式如下cleos system delegatebw from receiver stake_net_quantity stake_cpu_quantity各位置参数的含义参数含义from发起委托、从中扣除代币的源账户receiver接收被委托带宽的目标账户stake_net_quantity为 NET 带宽抵押的代币数量TEXT格式为资产字符串stake_cpu_quantity为 CPU 带宽抵押的代币数量TEXT格式为资产字符串其中stake_net_quantity与stake_cpu_quantity可按需传0 SYS表示该项不抵押两者都传 0 则不会产生有效委托。3.2 命令参考中的完整选项来自system-delegatebw.md命令参考-h,--help打印帮助信息并退出-x,--expirationTEXT设置交易过期秒数默认 30 秒-f,--force-unique强制交易唯一会消耗额外带宽用于防止意外重复提交同一交易-s,--skip-sign指定不使用已解锁钱包中的密钥签名交易-d,--dont-broadcast不向网络广播交易仅打印到 stdout常用于离线预检-r,--ref-blockTEXT设置用于 TAPOSTransaction as Proof-of-Stake的参考区块号或区块 ID-p,--permissionTEXT授权账户与权限级别格式为accountpermission默认accountactive--max-cpu-usage-msUINT为交易执行设置 CPU 使用上限毫秒默认 0 表示不设限--max-net-usageUINT为交易设置网络使用上限字节默认 0 表示不设限--delay-secUINT设置延迟秒数默认 0 秒-j,--json以 JSON 格式打印结果。3.3 源码中的实现cleos 侧在 cleos 源码 programs/cleos/main.cpp 中delegate_bandwidth_subcommand结构体完整定义了该子命令的解析逻辑四个位置参数from、receiver、stake_net_quantity、stake_cpu_quantity均被标记为-required()缺一不可额外支持--buyram以代币购买 RAM、--buy-ram-bytes按字节购买 RAM与--transfer把投票权及取回抵押代币的权利一并转移给接收方三个选项其中--buyram与--buy-ram-bytes不能同时使用回调中构造动作负载act_payload含from、receiver、stake_net_quantity、stake_cpu_quantity、transfer五个字段并通过create_action(accountPermissions, config::system_account_name, delegatebw_n, act_payload)向系统账户eosio发起delegatebw动作权限默认使用fromactive代码中add_standard_transaction_options_plus_signing(delegate_bandwidth, fromactive)。对应地eosio.system合约 ABIunittests/contracts/eosio.system/eosio.system.abi中delegatebw结构体的字段为字段ABI 类型说明fromname委托源账户receivername接收账户stake_net_quantityasset用于 NET 带宽的抵押资产stake_cpu_quantityasset用于 CPU 带宽的抵押资产transferbool是否转移投票权与取回权4. 实战从 bob 向 alice 委托 CPU 带宽原文档给出的核心示例是从账户bob向账户alice委托0.01 SYS的 CPU 带宽。cleos system delegatebw bob alice 0 SYS 0.01 SYS字段说明bob委托源账户代币从该账户扣除alice接收被委托 CPU 带宽的账户0 SYSNET 带宽抵押 00.01 SYSCPU 带宽抵押 0.01 个 SYS 代币。成功执行后的典型输出executed transaction: 5487afafd67bf459a20fcc2dbc5d0c2f0d1f10e33123eaaa07088046fd18e3ae 192 bytes 503 us # eosio eosio::delegatebw {from:bob,receiver:alice,stake_net_quantity:0.0000 SYS,stake_cpu_quantity:0.0100 SYS... # eosio.token eosio.token::transfer {from:bob,to:eosio.stake,quantity:0.0010 SYS,memo:stake bandwidth} # bob eosio.token::transfer {from:bob,to:eosio.stake,quantity:0.0010 SYS,memo:stake bandwidth} # eosio.stake eosio.token::transfer {from:bob,to:eosio.stake,quantity:0.0010 SYS,memo:stake bandwidth}逐行解读eosio eosio::delegatebw系统合约记录委托行为负载与 ABI 中delegatebw结构体一一对应from、receiver、stake_net_quantity、stake_cpu_quantity这是整个委托的核心动作eosio.token eosio.token::transfer紧随其后的代币转账动作将抵押代币从bob转入托管账户eosio.stakememo 为stake bandwidth表明这是一笔带宽抵押转账输出同时展示了bob账户余额扣减与该转账在eosio.stake账户入账的完整链路确认代币已被锁入托管账户而非直接转移给alice。由此可以看出委托带宽的实质是抵押转账 系统合约记账两步动作代币进入eosio.stake托管账户而带宽配额通过eosio.system合约记录在receiver名下。5. 委托的组合用法与自委托5.1 只委托 NET / 只委托 CPU / 两者同时原文档及配套指南 how-to-stake-resource.md 给出了三种典型组合以bob为付费方、alice为受益方# 只抵押 NET 带宽alice 获得 0.01 SYS 的 NET 配额 cleos system delegatebw bob alice 0.01 SYS 0 SYS # 只抵押 CPU 带宽alice 获得 0.01 SYS 的 CPU 配额 cleos system delegatebw bob alice 0 SYS 0.01 SYS # 同时抵押 NET 与 CPUalice 获得 0.01 SYS NET 0.02 SYS CPU 配额 cleos system delegatebw bob alice 0.01 SYS 0.02 SYS需要注意参数顺序第三个位置参数永远是 NET 数量第四个位置参数永远是 CPU 数量即使只想委托 CPU也必须在第三个位置显式写0 SYS。5.2 账户可以委托给自己原文档特别说明账户可以为自己抵押资源。以上示例中的bob可以替换为alice前提是alice持有足够的 SYS 代币即账户为自己抵押带宽这在启动新账号或自建节点时很常见。5.3--transfer选项的影响从源码programs/cleos/main.cpp与 ABI 可知delegatebw动作还包含transfer布尔字段默认值为false。当通过--transfer置为true时接收方同时获得投票权与取回undelegate该笔抵押的权利否则取回权保留在from账户手中这正是撤销委托时只有原委托账户可以撤销的原因之一。6. 撤销委托反向操作当不再需要委托的带宽时可使用cleos system undelegatebw撤销cleos system undelegatebw bob alice 0 SYS 0.01 SYS参数含义与delegatebw对应from为撤销方receiver为被撤销方unstake_net_quantity/unstake_cpu_quantity为要撤销的 NET / CPU 数量。原文档how-to-undelegate-CPU.md特别提醒只有最初发起委托的账户才有权撤销该笔委托。撤销的典型输出executed transaction: e7e7edb6c5556de933f9d663fea8b4a9cd56ece6ff2cebf056ddd0835efa6606 184 bytes 452 us # eosio eosio::undelegatebw {from:alice,receiver:bob,unstake_net_quantity:0.0000 EOS,unstake_cpu_qu... warning: transaction executed locally, but may not be confirmed by the network yet对应的 cleos 侧实现位于 programs/cleos/main.cpp 的undelegate_bandwidth_subcommand位置参数为from、receiver、unstake_net_quantity、unstake_cpu_quantity均为必填并同样默认以fromactive权限签名后向系统账户发送undelegatebw动作。注意撤销后的代币通常需要经过延迟期才能取回本仓库文档未对具体延迟时长作出承诺请以部署的系统合约配置为准。7. 参数细节与注意事项资产字符串格式stake_net_quantity与stake_cpu_quantity必须使用 EOSIO 资产格式数量 空格 符号如0.01 SYS即使为 0 也要写全例如0 SYS不能省略符号四个位置参数全部必填从 cleos 源码可以看到这四个参数均被标记为 required缺失任一参数命令将直接报错签名权限默认使用fromactive权限签名可通过-p指定其他权限级别预演与离线检查结合-d不广播与-jJSON 输出可以先在本地查看将发送的动作内容确认无误后再正式广播RAM 与带宽的区别delegatebw处理的是 CPU/NET 抵押如需为接收账户购买 RAM可搭配同一子命令中的--buyram/--buy-ram-bytes选项详见源码 programs/cleos/main.cpp但两者不能同时使用。8. 仓库中的测试佐证委托带宽逻辑在本仓库有充分的可执行验证单元测试辅助类unittests/eosio_system_tester.hpp 中封装了delegate_bandwidth辅助方法通过push_action(name(from), delegatebw_n, ...)构造并执行delegatebw动作参数即from、receiver、stake_net_quantity、stake_cpu_quantity与命令行行为一致启动序列测试unittests/bootseq_tests.cpp 在链启动boot流程中直接调用delegatebw动作进行初始资源分配其后同文件第 155 行通过undelegatebw验证撤销路径ABI 契约unittests/contracts/eosio.system/eosio.system.abi 中delegatebw结构体与动作表定义第 1521 行提供了链上动作与本文命令参数一一对应的契约依据集成测试仓库测试脚本如 tests/Node.py在构建多节点测试环境时也会使用delegatebw完成资源分配验证其在真实节点间的可用性。9. 相关文档导航命令参考system-delegatebw、system-undelegatebw委托与撤销系列如何委托 NET 带宽、如何抵押 NET 与 CPU、如何撤销 CPU 委托、如何撤销 NET 委托安装环境安装 EOSIO源码位置cleos 主程序、eosio.system 合约 ABI、系统合约测试辅助类赞分享区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载相关推荐Authelia crypto pair mldsa 命令详解ML-DSA 后量子密钥对生成的 CLI 参考与源码剖析Authelia crypto pair mldsa 命令详解ML DSA 后量子密钥对生成的 CLI 参考与源码剖析 authelia crypto pai区块链EOSIO 使用 cleos system buyram 为账户购买 RAM 实战指南EOSIO 使用 cleos system buyram 为账户购买 RAM 实战指南 本篇指南讲解如何通过 EOSIO 自带的命令行工具 cleos 使用区块链Wand-EnhancerWeMod 破解工具指南Wand EnhancerWeMod 破解工具指南 Wand Enhancer 是一款开源的 WeMod 破解工具通过在本地改写 WeMod/Wand 客户区块链创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

海洋垃圾检测数据集实战:1000张图+三种标签格式+YOLO11一键训练

海洋垃圾检测数据集实战:1000张图+三种标签格式+YOLO11一键训练

简介:这份资源面向从事水下视觉与环保监测的算法工程师、研究生及目标检测初学者,提供一套真实拍摄的海洋海底垃圾检测数据集,可用于海底监控场景下的垃圾识别项目,也可作为通用垃圾检测数据的补充。数据集共1000张高质量图像&…

2026/9/23 17:27:46 阅读更多 →
三星i9000刷机教程源码解析与速查手册

三星i9000刷机教程源码解析与速查手册

三星i9000刷机教程源码解析与速查手册 看了一堆教程还是不会写项目?这是很多转岗开发者的真实困境。你盯着那些“一键刷机”、“救砖指南”的帖子,感觉懂了,但一旦要自己动手改代码或排查底层逻辑,脑子就是一片空白。别急,今天我不讲虚的,直接拆解…

2026/9/23 17:27:46 阅读更多 →
深度学习算法原理及应用:RBM与自动编码机实战解析

深度学习算法原理及应用:RBM与自动编码机实战解析

简介:这份PDF资料面向机器学习初学者与需要梳理深度学习理论脉络的读者,系统讲解深度学习算法的基本原理与典型应用,帮助建立从神经网络基础结构到训练过程的完整认知。资源包内仅含1个PDF文件,约496KB,内容为期刊论文…

2026/9/23 17:27:46 阅读更多 →

最新新闻

法律适用杂志最佳实践:3大避坑指南助你高效备考

法律适用杂志最佳实践:3大避坑指南助你高效备考

法律适用杂志最佳实践:3大避坑指南助你高效备考 官方文档翻了三遍还是抓不住重点?别慌,很多人卡在《法律适用》杂志的备考上,不是智商问题,是方法不对。我见过太多考生,抱着厚厚的期刊目录死磕,结果在“证书有效期与年审”、“答题技巧与时间分配”、…

2026/9/23 18:03:16 阅读更多 →
WPS表格入门全攻略:从基础操作到HTML转换与打印设置

WPS表格入门全攻略:从基础操作到HTML转换与打印设置

WPS表格这个东西,说难并不难,说简单却有一堆小门道。平时做报表、记账、整理名单、统计成绩,只要摸清楚它的脾气,工作效率能提升一大截。我见过不少朋友每天被它“折磨”——数据录进去格式乱了、打印出来缺列少行、网页上复制过来…

2026/9/23 18:03:16 阅读更多 →
Flutter与OHOS插件桥接崩溃根因及幽灵断点定位方案

Flutter与OHOS插件桥接崩溃根因及幽灵断点定位方案

1. 这不是Flutter问题,也不是OHOS问题——而是跨平台桥接层的“幽灵断点”你刚在华为开发者联盟提交完应用审核,手机上点开自家App,首页加载到一半突然黑屏退出,控制台只留下一行模糊的SIGSEGV;或者更糟——用户反馈里…

2026/9/23 18:03:16 阅读更多 →
搞定74ls164驱动,从入门到精通只需3步

搞定74ls164驱动,从入门到精通只需3步

搞定74ls164驱动,从入门到精通只需3步 配置环境就卡半天?别急,74LS164这种经典移位寄存器,很多工程师一上来就被时钟极性、数据同步搞晕。其实它没那么玄乎,掌握核心时序,从入门到精通只需理清三个关键点。 考点梳理:面试官爱问什么…

2026/9/23 18:03:16 阅读更多 →
Java Web宿舍管理系统环境配置与部署避坑指南

Java Web宿舍管理系统环境配置与部署避坑指南

简介:本资源是一套完整的基于Java Web技术开发的学生宿舍管理系统毕业设计项目,面向计算机专业本科生及Java初学者,解决高校宿舍日常管理中学生信息、寝室分配、缺勤记录等核心业务需求。系统采用B/S架构,划分为学生、系统管理员、…

2026/9/23 18:03:16 阅读更多 →
面试被问中值滤波性能优化?3个技巧让速度提升10倍

面试被问中值滤波性能优化?3个技巧让速度提升10倍

面试被问中值滤波性能优化?3个技巧让速度提升10倍 上周陪一个做嵌入式转后端的朋友模拟面试,面试官刚抛出“中值滤波在百万像素图像处理中卡顿怎么办”,他愣住两秒,开始背教科书定义。结果面试官追问:“你代码里怎么写的?瓶颈在哪?”他哑口无言。这…

2026/9/23 18:02:15 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →