EOS 私链节点环境部署全指南:从零到账号创建

·

关键词:EOS 环境搭建、私链节点、钱包、密钥管理、账号创建、nodeos、keosd、cleos

摘要

本文旨在帮助开发者一小时内在本地成功运行一条私链(Private Chain),完成钱包(Wallet)创建、密钥(Key Pairs)导入、以及账号(Account)注册等关键步骤。假设你已提前完成 EOS V1.0.5 源码编译,否则请先参考社区编译教程。通过以下流程,你将深刻理解 EOS 节点、钱包、私钥、账号 之间的关系,避免常见坑位。

EOSIO 模块全景图

EOSIO 三大常态工具:

外加合约编译器 eosiocpp,共四条核心指令即可完成大部分开发。

钱包、密钥、账号的类比理解

EOS 的设计更灵活,也意味着初次学习容易混乱。用“房东与房子”的比喻帮助记忆:

概念类比EOS 术语
一位土豪房东一个钱包(Wallet)keosd 管理
开门钥匙一对公私钥(Key Pair)owner key、active key
一套房子一个账号(Account)链上记录,含资源额度
房产证owner 权限最高控制权
门禁卡active 权限操作资金或合约

一个钱包可存储多把钥匙,一把钥匙可打开多套房子;一套房子可被两把不同钥匙分别控制。把这种组合关系想象清楚,后续命令一目了然。


私链启动实战

步骤 1:启动钱包服务 keosd

keosd --http-server-address=127.0.0.1:8900

注意:从 V1.0.5 起,必须先启动 keosd 再启动 nodeos,否则无法创建钱包。
首次执行会自动在 ~/eosio-wallet 下生成 config.ini

👀 遇到无法创建钱包?👉 掌握 keosd 端口与防火墙设置技巧,一次解决启动难题

步骤 2:启动私链 nodeos

cd ~/eos/build/programs/nodeos
./nodeos -e -p eosio \
  --plugin eosio::wallet_plugin \
  --plugin eosio::chain_api_plugin \
  --plugin eosio::history_api_plugin \
  --replay-blockchain

参数速览

若控制台提示 database dirty flag set,执行下面清洗命令:

rm -rf ~/.local/share/eosio/nodeos/data

重新运行 nodeos 即可。


钱包、密钥、账号一条龙

创建与解锁钱包

cleos wallet create -n devwallet
# 记录屏幕返回的密码用于解锁
cleos wallet list        # 看到 devwallet * 说明已解锁

如果之前异常退出导致钱包消失,可手动 openunlock

cleos wallet open -n devwallet
cleos wallet unlock -n devwallet

导入创世账号私钥

eosio 系统的默认私钥加入钱包:

cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 -n devwallet

查询系统账号信息验证成功:

cleos get account eosio

加载 BIOS 系统合约

cleos set contract eosio build/contracts/eosio.bios -p eosio

屏幕出现 executed transaction 即表示合约发布成功,开发者从此可以为本链自由分配 RAM/NET/CPU。


生成并导入新密钥对

cleos create key
# 返回:Private key: 5K...   Public key: EOS...

cleos wallet import <私钥> -n devwallet

可在 cleos wallet keys 中再次确认公钥已入库。


创建新账号

命令格式:

cleos create account eosio <新账号名> <owner公钥> <active公钥>

<新账号名> 需符合:

示例:

cleos create account eosio alice EOS6EHAzvr... EOS6EHAzvr...

屏幕出现 executed transaction 即完成注册。若重名提示 account_name_exists_exception,换一个名字即可。


常见问题速查(FAQ)

Q1:启动 nodeos 后,钱包列表为空?
A:99% 是因为未添加 --plugin eosio::wallet_plugin;重启 nodeos 并补充该插件。

Q2:提示 keosd 已运行但无法连接?
A:执行

ps -ef | grep keosd
kill -9 <pid>
keosd --http-server-address=127.0.0.1:8900

确保端口一致且无旧进程占用。

Q3:钱包文件不小心删除怎么办?
A:如果未备份,私钥无法恢复。重建钱包后需重新导入私钥——这也是务必安全保存私钥的原因。

Q4:Owner key 与 Active key 可以相同吗?
A:技术上可以,但开发及正式环境均建议分离,以保证高权限与日常可分开管理。

Q5:如何查看本链上已有的所有账号?
A:通过插件 history_api_plugin 后,使用

cleos get accounts <公钥>

即可列出该公钥关联的全部账号。

Q6:私链区块间隔能否缩短?
A:可在 config.ini 中把 producer-name 轮训间隔由默认 0.5 秒改为更小值,实现“秒级”出块,方便测试。


实战小贴士

至此,一条可随意“重启”的本地私链已运转稳定,区块浏览器、资源发行、DApp 部署所需的“地基”都已打好。

💡 工欲善其事,必先利其器。想在测试环境进一步折腾 DeFi、NFT 或 DAO?👉 点此开启 EOS 生态下一级加密世界大门