SDK命令行
该软件包包含两个命令。epic驱动已在运行的Epic软件。epic-sdk负责安装并运行它。
两者都需要cli额外参数:
uv sync --extra cli
数据输出到stdout,其他所有内容输出到stderr,因此管道只传递结果。对任何读取操作使用--json时,每行输出一个JSON文档。成功时退出状态为0,Epic收到调用但拒绝时为1,调用未到达时为2,用法错误时为64。
epic从何处读取其设置
参数优先于环境变量,环境变量优先于默认值。
| 设置 | 参数或环境变量 | Default |
|---|---|---|
| 节点URL | --url, EPIC_NODE_URL | http://127.0.0.1:3413 |
| 节点API密钥 | --api-secret-file, EPIC_NODE_API_SECRET | 无 |
| 钱包URL | --url, EPIC_WALLET_URL | http://127.0.0.1:3420/v3/owner |
| 钱包API密钥 | --api-secret-file, EPIC_WALLET_API_SECRET | 无 |
| 钱包密码 | --password-file, EPIC_WALLET_PASSWORD | 当stdin为终端时提示 |
| 中继URL | --url, EPIC_EPICBOX_URL | 无 |
密码或机密从环境变量或--*-file参数指定的文件中读取。将其作为参数值传入会以64退出。
epic-wallet 4.1.0需要钱包API机密,即钱包.owner_api_secret的内容。参见钱包的所有者访问。
epic node
epic node height
打印链高度。
epic node height
epic node height --url https://node.example:3413 --json
epic node status
打印区块高度、总难度、版本和同步状态。
epic node status --json
两者均接受--url、--api-secret-file和--json。
epic wallet
此处每个命令均接受--url、--api-secret-file、--password-file和--json。
epic wallet balance
打印可花费、总计、待确认、待最终确认、未成熟和已锁定余额。
EPIC_WALLET_PASSWORD=... epic wallet balance --json
epic wallet address
打印钱包的epicbox地址,包含端口。
epic wallet txs
列出交易及其slate id、状态和金额。
epic wallet send
通过epicbox发送并等待两轮完成。
epic wallet send 1.5 esYG...@epicbox.epiccash.com:443
epic wallet send 1.5 esYG...@epicbox.epiccash.com:443 --dry-run
| 选项 | 用途 |
|---|---|
--dry-run | 仅显示手续费报价,不发送任何内容。 |
--yes | 跳过确认提示。 |
--message | 携带在slate中的消息。 |
Can spend funds 若不带--dry-run且不带--yes,命令会要求确认,且当stdin不是终端时拒绝执行。金额为EPIC的十进制字符串。
epic epicbox listen
订阅中继并在每个slate到达时打印,持续重连直至运行结束。
epic epicbox listen --url wss://epicbox.epiccash.com --key-file ./relay.key
epic epicbox listen --ephemeral --count 1 --json
| 选项 | 用途 |
|---|---|
--key-file | 以十六进制表示的32字节secp256k1标量,用于确定接收地址。 |
--ephemeral | 生成一次性临时密钥。 |
--count | 达到此数量的slate后停止。0运行直至中断。 |
--decrypt | 解密到达的slate,默认开启。 |
--key-file或--ephemeral中必须提供其一。
epic quirks list
列出客户端所处理的Epic行为,以及其中哪些已被处理。
epic quirks list --status unhandled --json
epic-sdk
epic-sdk构建并运行本地Epic环境:查找或获取二进制文件,写入其配置,创建钱包,并监管各进程。
每个命令均接受--root指定环境目录,EPIC_DEV_ROOT指定环境中的值,或默认使用~/emulator。--chain选择网络,且仅设置user。--json输出机器可读的结果,--dry-run在不做任何更改的情况下决策并报告,--yes对每个问题自动回答。
创建环境
epic-sdk env doctor # 此机器是否可以运行一个
epic-sdk env new ~/epic-lab --yes # 构建一个
epic-sdk env status --json # 存在什么以及正在运行什么
epic-sdk env path # 根目录、bin、链数据、日志、清单
env new检查机器、获取二进制文件、生成节点和矿工配置、为每个钱包创建各自的密封密码、设置中继,并启动一次以验证一切正常。除非指定--yes,否则为交互式操作。
| 选项 | Default | 用途 |
|---|---|---|
--components | 询问 | node、wallet、miner、relay之一。 |
--wallets | alice,bob | 实例名称,第一个接收挖矿奖励。 |
--prefer | auto | release下载,source编译。 |
--threads | 4 | RandomX挖矿线程数。 |
--relay-path | 已有的epic-relay检出目录。 | |
--offline | 仅使用机器上已有的内容。 |
下载发布版本只需数秒。每个组件的源码构建需要十到三十分钟。
使用现有代码树
epic-sdk env adopt # 为手动构建的目录树写入env.json
epic-sdk env sync --dry-run # 报告配置文件与env.json之间的差异
epic-sdk env sync # 将环境值写回
epic-sdk env add-wallets carol,dave
epic-sdk env outputs alice --into 4 # 向钱包自身支付以重组其输出
env adopt将找到的钱包记录为已发现状态,已发现的钱包不会被打开或启动。env outputs需要钱包的Owner API及其监听器同时运行。
Can spend funds env outputs将钱包发送给自身。这是一笔真实的交易,需支付真实的手续费。
二进制文件与发布版本
epic-sdk bin find # 此机器上的所有Epic二进制文件及其版本
epic-sdk bin check # 与上游版本对比安装情况
epic-sdk bin add ~/build/epic # 采用已有的一个
epic-sdk bin install node wallet # 下载它们
epic-sdk bin install node --source # 改为编译
epic-sdk release list --component node
下载文件在使用前会通过其SHA-256进行校验和验证。
中继
epic-sdk relay setup --domain localhost --port 3423
epic-sdk relay wallet-config --json # 将所有钱包指向该节点并打印其地址
relay setup需要机器上安装uv,并在未提供检出版本时克隆epic-relay。
凭据
由env new生成的钱包密码针对每台机器的身份进行密封。
epic-sdk keys status # 哪个存储持有私钥部分
epic-sdk keys init --require-keystore # 创建它,拒绝文件回退
epic-sdk env secrets # 列出已封存的条目,不泄露任何内容
epic-sdk env secrets show alice # 打印单个值
env secrets show是唯一打印凭据的命令,且仅将该值写入stdout。
仪表板
epic-sdk serve --root ~/epic-lab
详见仪表板。