首页/新闻资讯/正文详情

EOSIO cleos create 命令完全指南:密钥对生成与链上账户创建

发布时间:2026/9/23 21:54:51 来源:云帆数科 栏目:资讯中心
EOSIO cleos create 命令完全指南:密钥对生成与链上账户创建
区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载导读cleos create是 EOSIO 命令行客户端提供的复合命令用于在链下生成密钥对key以及在链上创建新账户account是搭建测试网、部署合约前初始化身份与资源的必经步骤。本文以 docs/02_cleos/03_command-reference/create/index.md 为骨架结合 programs/cleos/main.cpp 与 libraries/chain/eosio_contract.cpp 的源码实现完整讲解命令参数、执行流程与链上校验逻辑读完即可独立完成生成密钥 → 导入钱包 → 创建账户的完整实战闭环。命令总览cleos createcleos create的官方描述为Create various items, on and off the blockchain即同时覆盖链下密钥对生成与链上账户创建两类对象Create various items, on and off the blockchain Usage: cleos create SUBCOMMAND Subcommands: key Create a new keypair and print the public and private keys account Create a new account on the blockchain子命令作用域功能对应文档key链下生成一对公私钥并输出到屏幕或文件create/key.mdaccount链上在区块链上创建一个新账户create/account.md从源码看create在 programs/cleos/main.cpp#L2536-L2537 中注册并调用create-require_subcommand()意味着不带子命令直接运行cleos create会打印上述帮助信息key与account两个子命令分别在 main.cpp#L2543 和 main.cpp#L2567 处挂载。生成密钥对cleos create key命令格式与参数cleos create key [OPTIONS]key子命令没有位置参数Positionals: none只有选项Options。其中--file与--to-console必须二选一用于指定密钥的输出目标选项说明-h, --help打印帮助信息并退出--r1使用 R1 曲线secp256r1iPhone Secure Enclave 所用生成密钥而非默认的 K1 曲线比特币所用 secp256k1-f, --file TEXT将公私钥写入指定文件除非同时传--to-console否则必须设置--to-console将公私钥直接打印到控制台方括号[...]内的参数与选项均为可选但--file与--to-console之间必须至少选择一个。示例 1输出到控制台cleos create key --to-console其中--to-console指示命令将私钥/公钥打印到终端Private key: 5KDNWQvY2seBPVUz7MiiaEDGTwACfuXu78bwZu7w2UDM9A3u3Fs Public key: EOS5zG7PsdtzQ9achTdRtXwHieL7yyigBFiJDRAQonqBsfKyL3XhC私钥以5开头WIF 格式公钥以EOS前缀开头EOSIO 公钥编码。示例 2输出到文件cleos create key --file my_keys.txt命令执行后终端会提示saving keys to my_keys.txt随后可用cat查看文件内容cat my_keys.txt输出示例Private key: 5KWcfnGao5K6WV65Zgjd1xvpugRUeKwb6oxzmwaS1tPE2Ef4qzo Public key: EOS7oDiBtzSHtShprGFmXm9JLnwxhcPeDyhww3tXDvVATDYtciLGG源码实现解析cleos create key的回调逻辑位于 programs/cleos/main.cpp#L2543-L2564核心流程如下入参校验若key_file为空且print_console为假直接报错ERROR: Either indicate a file using --file or pass --to-console并退出——这正是文档中两个选项必须二选一约束的源码出处。曲线选择r1标志决定调用private_key_type::generate_r1()还是默认的private_key_type::generate()。默认 K1 曲线与比特币一致兼容性最广--r1生成的是 P-256 曲线密钥适用于 iOS 设备的 Secure Enclave 等 R1 硬件场景。输出--to-console模式下公私钥打印到std::cout--file模式下先向stderr打印saving keys to filename再通过std::ofstream将两行密钥写入文件。提示cleos create key生成的密钥属于非托管密钥只出现在输出目标屏幕或文件中与钱包无关。若要托管在 keosd 钱包中可改用 wallet 命令组的create_key子命令源码见 main.cpp#L3664-L3668并同样支持 K1/R1 类型选择。完整实战流程可参考 how-to-create-key-pairs.md。创建链上账户cleos create account命令格式cleos create account [OPTIONS] creator name OwnerKey [ActiveKey]该命令假设系统合约不限制 RAM 用量通过内置的newaccountaction 在链上注册一个新账户。位置参数位置参数类型说明creatorTEXT创建新账户的既有账户名必填即creator 账户nameTEXT新账户的名称必填需符合 EOSIO 账户命名规范OwnerKeyTEXT新账户的 owner 公钥、权限级别如accountpermission或 authority JSON必填ActiveKeyTEXT新账户的 active 公钥、权限级别或 authority JSON可选默认继承 owner选项参数选项说明-h, --help打印帮助信息并退出-x, --expiration设置交易过期时间秒默认 30s-f, --force-unique强制交易唯一会消耗额外带宽用于防止意外重复提交同一交易-s, --skip-sign指定是否使用已解锁钱包的密钥签名交易-j, --json以 JSON 格式打印结果--json-file TEXT将结果以 JSON 格式保存到文件-d, --dont-broadcast不向网络广播交易仅打印到 stdout--return-packed与--dont-broadcast配合使用返回打包后的交易-r, --ref-block TEXT设置 TAPOSTransaction as Proof-of-Stake使用的参考区块号或区块 ID--use-old-rpc使用旧的 RPCpush_transaction而非新的send_transaction-p, --permission TEXT ...授权账户与权限级别格式accountpermission默认creatoractive--max-cpu-usage-ms UINT交易执行 CPU 用量上限毫秒默认 0 表示不限制--max-net-usage UINT交易网络用量上限字节默认 0 表示不限制--delay-sec UINT延迟交易秒数默认 0s其中-x/--expiration、-f/--force-unique、-s/--skip-sign、-j/--json、-d/--dont-broadcast、--return-packed、-r/--ref-block、-p/--permission、--max-cpu-usage-ms、--max-net-usage、--delay-sec均为标准交易选项由源码中的add_standard_transaction_options_plus_signing(createAccount, creatoractive)main.cpp#L1148统一挂载默认授权为creatoractive。前置条件创建账户前需要准备安装 cleoscleos随 EOSIO 软件一并分发参见 安装 EOSIO安装后会同时获得cleos与keosd两个命令行工具。生成密钥对使用cleos create key为新账户生成 owner 与 active 两套密钥见上文。解锁钱包并导入密钥需要一个已解锁的钱包且钱包中保存了creator 账户的私钥用于签名授权。可参考 如何导入私钥 与 如何连接指定 keosd。creator 账户就绪在 EOSIO 区块链中创建新账户必须由已有账户授权。对于刚启动的全新区块链默认的创建者是系统账户eosio创世账户inita等同样可以作为 creator。完整示例cleos create account inita tester \ EOS4toFS3YXEQCkuuw1aqDLrtHim86Gz9u3hBdcBw5KNPZcursVHq \ EOS7d9A3uLe6As66jzN8j44TXJUqJSK3bFjjEEqR4oTvNAB3iM9SA其中inita是 creator 账户tester是新账户两个EOS...字符串分别是新账户的 owner 与 active 公钥。以系统账户eosio为 creator 的更典型用法出自 how-to-create-an-account.mdcleos create account eosio bob EOS87TQktA5RVse2EguhztfQVEh6XXxBmgkU8b4Y5YnGvtYAoLGNN executed transaction: 4d65a274de9f809f9926b74c3c54aadc0947020bcfb6dd96043d1bcd9c46604c 200 bytes 166 us # eosio eosio::newaccount {creator:eosio,name:bob,owner:{threshold:1,keys:[{key:EOS87TQktA5RVse2EguhztfQVEh6X... warning: transaction executed locally, but may not be confirmed by the network yet若只传 OwnerKey 而不传 ActiveKeyactive 权限会默认与 owner 相同。输出结构解读cleos create account返回的是交易执行结果 JSON早期格式示例见 account.md{ transaction_id: 6acd2ece68c4b86c1fa209c3989235063384020781f2c67bbb80bc8d540ca120, processed: { refBlockNum: 25217, refBlockPrefix: 2095475630, expiration: 2017-07-25T17:54:55, scope: [ eos, inita ], signatures: [], messages: [{ code: eos, type: newaccount, authorization: [{ account: inita, permission: active } ], data: c9251a0000000000b44c5a2400000000010000000102bcca6347d828d4e1868b7dfa91692a16d5b20d0ee3d16a7ca2ddcc7f6dd03344010000010000000102bcca6347d828d4e1868b7dfa91692a16d5b20d0ee3d16a7ca2ddcc7f6dd03344010000010000000001c9251a000000000061d0640b000000000100010000000000000008454f5300000000 }], output: [{ notify: [], sync_transactions: [], async_transactions: [] } ] } }可以看到消息中type为newaccountauthorization为 creatorinita的active权限data字段是序列化后的newaccountaction 数据包含 creator、新账户名、owner/active 两套 authority。需要注意上述 JSON 是早期Dawn 时代的push_transaction响应格式当前版本 cleos 默认输出的processed结构包含action_traces等字段如需稳定解析建议加-j选项并配合jq等工具处理。源码实现解析cleos create account由 create_account_subcommand 结构体实现其回调逻辑揭示了三条关键链路1. 三种 OwnerKey/ActiveKey 解析方式main.cpp#L1151-L1180字符串包含{→ 按 authority JSON 解析parse_json_authority_or_key支持直接传入多签等复杂 authority 结构字符串包含→ 按权限级别解析to_permission_level例如aliceactive最终包装成单钥 authority否则 → 按公钥解析public_key_type包装成 threshold1 的单钥 authority。这一设计意味着OwnerKey/ActiveKey位置不仅接受公钥还接受权限级别与完整 authority JSON为多签账户的创建提供了入口。2. action 构造与发送main.cpp#L1182-L1198auto create create_newaccount(name(creator), name(account_name), owner, active); send_actions( { create } ); // simple 模式只发 newaccountcreate_newaccount在 main.cpp#L652-L662 中构造以eosio::newaccount为 action 名、授权为creatoractive的交易。3. 与cleos system newaccount的关系create_account_subcommand被复用于两处——以simpletrue挂载为cleos create account只发newaccount不处理资源以simplefalse挂载为cleos system newaccountmain.cpp#L4314。后者额外要求--stake-net、--stake-cpu并提供--buy-ram-kbytes/--buy-ram-bytes/--buy-ram与--transfer选项main.cpp#L1133-L1146回调中会依次构造并发送newaccountbuyram/buyrambytesdelegatebw三个 actionmain.cpp#L1183-L1195分别对应 create_buyram / create_buyrambytes / create_delegate 三个 helper。因此只想注册账户、不处理抵押与 RAM用cleos create account需要在同一笔交易内完成建号、买 RAM、抵押 NET/CPU用 cleos system newaccount。链上校验与资源计费newaccount 在节点端的执行账户最终能否创建成功取决于链上对newaccountaction 的校验。核心实现在 libraries/chain/eosio_contract.cpp 的apply_eosio_newaccount函数eosio_contract.cpp#L73-L127关键约束包括authority 合法性validate(create.owner)与validate(create.active)校验 owner/active 权限结构threshold、key 权重等必须合法。账户名规范账户名不能为空且最多 12 个字符account names can only be 12 chars long。EOSIO 账户名仅允许小写字母a-z、数字1-5以及.、_字符。保留前缀保护非特权账户is_privileged()为 false创建的账户名不允许以eosio.开头——只有特权账户才可创建此类系统保留账户。防重名若目标账户名已存在抛出account_name_exists_exception。权限与资源初始化创建account_object与account_metadata_object后依次创建 owner 与 active 两个权限对象active 的父权限指向 owner并调用initialize_account初始化资源限制。RAM 计费新建账户会产生固定 RAM 开销公式为overhead_per_account_ram_bytes 2 * billable_size_vpermission_object owner.auth 的 billable_size active.auth 的 billable_size由 creator 账户支付。这就是为什么创建账户需要消耗创建者 RAM。常见问题与注意事项Missing required argument 报错creator、name、OwnerKey均为必填ActiveKey可省略但官方建议显式提供以将 active 权限与 owner 分离降低单密钥泄露的损失范围。私钥泄露风险cleos create key --to-console会将私钥明文打印到终端在共享/日志记录环境中建议使用--file并妥善保管文件权限。签名失败确保 keosd 钱包已解锁且导入了 creator 账户私钥并用-p creatoractive默认即此值授权。账户名过长账户名超过 12 字符会被链上校验直接拒绝action_validate_exception命令会返回失败结果。RAM 不足创建账户消耗 creator 的 RAM若返回 RAM 相关的ram_usage_exceeded等错误需要先为 creator 购买更多 RAM 或改用cleos system newaccount配合--buy-ram-kbytes。延伸阅读cleos create key 命令参考cleos create account 命令参考如何生成密钥对实战指南如何创建账户实战指南如何导入私钥到钱包cleos system newaccount建号 资源初始化一体命令cleos 命令参考索引EOSIO 安装文档赞分享区块链【免费下载链接】eosAn open source smart contract platform项目地址https://gitcode.com/gh_mirrors/eo/eos点击查看免费下载相关推荐EOSIO cleos get actions 命令完全指南按账户检索链上历史 ActionEOSIO cleos get actions 命令完全指南按账户检索链上历史 Action 导读 cleos get actions 是 EOSIO 智能合区块链EOSIO cleos wallet 命令完全指南本地钱包的创建、解锁与密钥管理EOSIO cleos wallet 命令完全指南本地钱包的创建、解锁与密钥管理 导读 cleos wallet 是 EOSIO 节点工具链中用于与本地钱包区块链EOSIO cleos set abi 命令完全指南账户 ABI 的创建、更新与底层原理EOSIO cleos set abi 命令完全指南账户 ABI 的创建、更新与底层原理 cleos set abi 是 EOSIO 智能合约平台中用于在链上区块链创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

长尾商品销量DNN预测:TensorFlow源码实战与工程避坑指南
长尾商品销量DNN预测:TensorFlow源码实战与工程避坑指南

简介:面向电商供应链与数据挖掘场景的DNN销量预测项目源码,可用于长尾商品7天、30天、60天销量预测,帮助解决备货难题。项目基于TensorFlow 1.13低阶API实现,清晰展示了训练集、验证集、测试集划分,并通过tf.train.Sav… · 2026/9/23 21:54:51

PostGraphile v4 自定义 Mutation 实战指南:用 PostgreSQL 函数构建业务级 GraphQL 变更操作
PostGraphile v4 自定义 Mutation 实战指南:用 PostgreSQL 函数构建业务级 GraphQL 变更操作

后端API网关 【免费下载链接】crystal 🔮 Graphiles Crystal Monorepo; home to Grafast, PostGraphile, pg-introspection, pg-sql2 and much more! 项目地址: https://gitcode.com/gh_mirrors/cry/crystal 点击查看 免费下载 导读 PostGraphile 会自… · 2026/9/23 21:54:51

本科毕设高分指南:深度学习人脸识别考勤系统全流程实现
本科毕设高分指南:深度学习人脸识别考勤系统全流程实现

简介:本资源是一套面向计算机专业本科生的深度学习实战项目,聚焦人脸识别考勤系统开发,专为毕业设计、课程设计及期末大作业打造。项目基于FaceNet深度学习算法实现高精度人脸特征提取与比对,完整覆盖人脸录入、实时识别、考勤统计… · 2026/9/23 21:54:44

免费小游戏平台实测:Poki、itch.io、7k7k哪个更好玩?
免费小游戏平台实测:Poki、itch.io、7k7k哪个更好玩?

很多人一到休息时间就不知道该玩点什么,正经大作玩不动,手机App又总觉得越做越重,光是安装包和注册流程就能劝退一半人。其实我一直觉得,真正适合大多数人消遣的,往往是那些打开就能玩、关掉也不心疼的免费小游戏平台。… · 2026/9/24 0:38:26

Triton Inference Server Model Repository 扩展协议详解:Index / Load / Unload 全流程实战
Triton Inference Server Model Repository 扩展协议详解:Index / Load / Unload 全流程实战

模型推理服务AI 应用后端 【免费下载链接】server The Triton Inference Server provides an optimized cloud and edge inferencing solution. 项目地址: https://gitcode.com/gh_mirrors/server117/server 点击查看 免费下载 模型仓库(Model Reposit… · 2026/9/24 0:38:26

联邦学习攻击防御复现:从论文到可运行代码的闭环路径
联邦学习攻击防御复现:从论文到可运行代码的闭环路径

简介:本资源是一份面向计算机及相关专业本科生的联邦学习安全方向毕业设计实践包,聚焦于论文级攻击防御方案的代码复现与工程落地,适用于毕设选题、课程设计、AI安全入门及科研验证场景。压缩包含184个文件,主体为109个Python源码… · 2026/9/24 0:38:26

C++ std::prev详解:告别`--v.end()`的迭代器安全回退
C++ std::prev详解:告别`--v.end()`的迭代器安全回退

1. 为什么需要这个函数:从*(--v.end())的隐患说起我之前在review同事代码时看到这样一行:auto it --v.end();他当时想拿vector的最后一个元素,这段代码确实能编译、能运行,在std::vector上表现得很好。我当时问了他一句&#xff… · 2026/9/24 0:38:20

深入解析onblur与onchange:从触发机制到easyui日期控件实战
深入解析onblur与onchange:从触发机制到easyui日期控件实战

1. 表单交互的隐形骨架:为什么这两个事件值得单独拎出来讲做前端开发的人,几乎每天都在和表单打交道。输入框、下拉框、日期选择器、文件上传,这些控件构成了用户与系统之间最基础的对话通道。但很多人写了几年业务代码,对onblur和… · 2026/9/24 0:38:20

岩石表面矿物质检测:YOLOv8数据集训练与避坑指南
岩石表面矿物质检测:YOLOv8数据集训练与避坑指南

简介:一套面向岩石表面矿物质检测的YOLO格式目标检测数据集,适合地质学研究者和计算机视觉开发者用于矿物识别、目标检测模型训练与算法验证。资源共2000个文件,压缩包约59.08MB,包含1138个txt标签文件、861张jpg岩石图像和1个Pyt… · 2026/9/24 0:38:20

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码