跳到主要内容

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_URLhttp://127.0.0.1:3413
节点API密钥--api-secret-file, EPIC_NODE_API_SECRET无
钱包URL--url, EPIC_WALLET_URLhttp://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之一。
--walletsalice,bob实例名称,第一个接收挖矿奖励。
--preferautorelease下载,source编译。
--threads4RandomX挖矿线程数。
--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

详见仪表板。