可以通过以下命令控制POCChain。

常见选项

  • --conf : 指定要使用的配置文件。 您可以使用' - '并通过STDIN提供配置文件。 默认'stellar-core.cfg'
  • --ll : 设置日志级别。 使用htpp-command ll是多余的,但是如果你想在测试运行期间更改日志级别,我们需要这个表单。
  • --metric : 退出时报告指标METRIC。 用于在测试运行期间累积收集度量标准。

命令行选项

  • catchup <DESTINATION-LEDGER/LEDGER-COUNT>在不连接到网络的情况下从历史存档执行追赶。 此选项将赶上DESTINATION-LEDGER保留DESTINATION-LEDGER-LEDGER-COUNT或最后一个封闭式分块(无论哪个值最大)的历史记录。
  • check-quorum:检查历史记录中的仲裁交集,以确保网络中的所有验证程序都已关闭。
  • convert-id : 将以所有已知形式输出传递的ID,然后退出。 用于确定与给定私钥对应的公钥。 例如:
    $ stellar-core convert-id SDQVDISRYN2JXBS7ICL7QJAEKB3HWBJFP2QECXG7GZICAHBK4UNJCWK2
  • dump-xdr :转储给定的XDR文件,然后退出。
  • force-scp:此命令用于从头开始网络,或者当网络由于节点故障或其他原因而丢失仲裁时。 它在数据库中设置了一个标志。 下一次运行POCChain时,POCChain将根据其最后一个已知的分块开始发送SCP消息。 如果没有这个标志,POCChain会在启动SCP之前等待从网络中听到分块。
    force-scp不会更改仲裁要求,因此虽然此节点将发出SCP消息,但SCP也不会完成,直到还有法定数量的其他节点也在同一个分块上发送SCP消息。 force-scp的值可以使用--reset标志重置。
  • fuzz : 运行单个模糊输入并退出。
  • gen-fuzz :生成随机模糊输入文件。
  • gen-seed:生成并打印随机的公钥/私钥然后退出。
  • help: 打印可用的命令行选项,然后退出。
  • http-command:HTTP命令发送到已运行的POCChain本地实例,然后退出。 例如:
    $ stellar-core http-command info
  • infer-quorum:打印从历史推断的潜在法定数量集。
  • load-xdr : 加载XDR bucket文件以进行测试。
  • new-db:清除本地数据库并将其重置为genesis分块。 如果您之后连接到网络,它将从头开始赶上。
  • new-hist ...:初始化命名的历史存档HISTORY-LABEL。 HISTORY-LABEL应该是您在stellar-core.cfg中指定的历史存档之一。 这将在归档根目录中写入.well-known / stellar-history.json文件。
  • offline-info:返回类似于离线实例的--c info的输出
  • print-xdr :漂亮打印包含XDR对象的二进制文件。 如果FILE-NAME为“ - ”,则从标准输入读取XDR对象。
    选项 --filetype [auto | ledgerheader | meta | result | resultpair | tx | txfee] **用于打印的控件类型(默认值:auto)。
    选项 --base64会改变行为,以便在base64编码的XDR上工作,而不是原始XDR。
  • publish:执行发布发布队列中剩余的所有项目而不连接到网络。 如果最后一个关闭的分块位于检查点边界,则不能发布最后一个检查点。
  • report-last-history-checkpoint:从历史存档中下载并报告上一个历史检查点。
  • run:运行POCChain服务。
  • sec-to-pub:在标准输入上读取密钥并输出相应的公钥。 这两个密钥都采用POCChain的标准base-32 ASCII格式。
  • sign-transaction : 将数字签名添加到以二进制格式存储的交易包络中,并将结果发送到标准输出(应将其重定向到文件或通过诸如base64之类的工具进行管道传输)。 从标准输入读取私有签名密钥,除非是“ - ”,在这种情况下,从标准输入读取交易包络,并从/dev/tty读取签名密钥。 在任何一种情况下,如果签名密钥似乎来自终端,则stellar-core会禁用echo。 请注意,如果您没有STELLAR_NETWORK_ID环境变量,那么在此参数之前必须指定--netid选项。 例如,产生POCChain网络是“Public Global Stellar Network ; September 2015”,而测试网络是“Test SDF Network ; September 2015”。
    选项 --base64会改变行为,以便在base64编码的XDR上工作,而不是原始XDR。
  • test:运行所有单元测试。
    • 特定于POCChain的子选项:
      • --all-versions :运行所有可能的协议版本
      • --version <N> :运行协议版本N的测试,可以多次指定(默认最新)
      • --base-instance <N> :运行测试,实例编号偏移N,用于并行运行测试
    • 有关可能的测试选项的更多信息
    • 例如,这将仅运行使用协议版本9和10标记为[tx]的测试,并在第一次失败后停止:stellar-core --test -a --version 9 --version 10“[tx]”
  • version:打印版本信息然后退出。
  • write-quorum:从历史记录中打印仲裁集图表。

HTTP 命令行

默认情况下,POCChain在端口11626上侦听来自localhost的连接。您可以通过Web浏览器,curl或使用-c命令行选项将命令发送到POCChain(参见上文)。 大多数命令以JSON格式返回结果。

  • help 打印当前支持的命令列表。
  • catchup /catchup?ledger=NNN[&mode=MODE]
    触发实例从历史记录中赶上分块NNN; 模式是“最小”(默认,如果省略)或“完成”。
  • checkdb 触发实例以执行数据库状态的后台检查。
  • checkpoint 触发实例以写入即时历史检查点。 并将其上传到存档。
  • connect /connect?peer=NAME&port=NNN
    触发实例以连接到端口NNN处的对等NAME。
  • dropcursor
    /dropcursor?id=XYZ
    删除id标识的跟踪光标。 有关更多信息,请参阅setcursor
  • info 以JSON格式返回有关服务器的信息(同步状态,连接的Peers等)。
  • ll
    /ll?level=L[&partition=P]
    调整分区P的日志级别,其中P是Bucket,Database,Fs,Herder,History,Ledger,Overlay,Process,SCP,Tx(如果没有指定分区,则为all)之一。 级别是FATAL,ERROR,WARNING,INFO,DEBUG,VERBOSE,TRACE之一。
  • maintenance /maintenance?[queue=true]
    在实例上执行维护任务。
    • queue 执行队列数据的删除。 有关更多信息,请参阅setcursor
  • metrics 返回metrics注册表的快照(用于监视和调试目的)。
  • clearmetrics /clearmetrics?[domain=DOMAIN]
    清除指定域的指标。 如果未指定域,请清除所有metrics标准(用于测试目的)。
  • peers 以JSON格式返回已知peers的列表。
  • quorum /quorum?[node=NODE_ID][&compact=true]
    返回有关节点NODE_ID(默认情况下为此节点)的仲裁的信息。 NODE_ID是完整密钥(GABCD ...),别名($name)或缩写ID(@GABCD)。 如果设置了compact,则仅返回摘要版本。
  • setcursor /setcursor?id=ID&cursor=N
    设置或创建由ID标识的游标,其值为N。ID是大写的AlphaNum,N是uint32,表示实例ID处理的最后一个分块序列号。 依赖服务使用游标来告诉POCChain实例可以安全地删除哪些数据。 数据是存储在SQL表中的历史数据,例如txhistory或ledgerheaders。 当所有消费者处理分块序列N的数据时,实例可以安全地删除数据。 通过调用维护端点或在启动时执行实际删除。 另请参见dropcursor
  • getcursor /getcursor?[id=ID]
    获取由ID标识的游标。 如果未定义ID,则将返回所有游标。
  • scp /scp?[limit=n]
    返回一个JSON对象,其中包含最后n个(默认2个)分块的SCP引擎的内部状态。
  • tx /tx?blob=Base64
    向网络提交交易。 blob是一个base64编码的XDR序列化'TransactionEnvelope',它返回一个具有以下属性状态的JSON对象:
    • "PENDING" - 正在以协商一致方式审议交易
    • "DUPLICATE" - 交易已经待定
    • "ERROR" - 交易引擎错误拒绝交易:状态为“ERROR”时设置。 Base64编码,XDR序列化'TransactionResult'
  • upgrades
    • /upgrades?mode=get
      检索当前配置的升级设置
    • /upgrades?mode=clear
      清除所有升级设置
    • /upgrades?mode=set&upgradetime=DATETIME&[basefee=NUM]&[basereserve=NUM]&[maxtxsize=NUM]&[protocolversion=NUM]
      • upgradetime是1970-01-01T00:00:00Z格式的必填日期(UTC)。 这是升级安排的时间。 如果是过去,则会立即进行升级。
      • fee(uint32)这是您希望的基本费用。 它是在stroops
      • basereserve(uint32)这是您更喜欢的基本储备。 它是在stroops。
      • maxtxsize(uint32)这定义了要包含在分块中的最大交易数。 当有太多交易未决时,将应用激增定价。 实例在本地选择顶部maxtxsize交易以在下一个分块中考虑。 交易按交易费订购的事项(较低的费用交易将在以后保留)。
      • protocolversion(uint32)定义要升级到的协议版本。 指定时,它必须与节点支持的协议版本之一匹配,并且应该大于当前分块中的ledgerVersion

以下HTTP命令在测试实例上公开

  • generateload /generateload[?mode=(create|pay)&accounts=N&offset=K&txs=M&txrate=(R|auto)&batchsize=L]
    人为产生负载进行测试; 必须与ARTIFICIALLY_GENERATE_LOAD_FOR_TESTING设置为true一起使用。 根据模式,可以创建新帐户或为指定的帐户生成付款(帐户数量可以抵消)。 此外,允许通过'batchsize'为每个交易批量最多100个帐户创建。
  • manualclose 如果.cfg文件中的MANUAL_CLOSE设置为true。 这将导致当前分块关闭。
  • testacc /testacc?name=N
    返回有关按名称标识的帐户的基本信息。 请注意,N是用作种子的字符串,但也可以使用“root”来指定用于测试实例的root帐户。
  • testtx /testtx?from=F&to=T&amount=N&[create=true]
    从帐户F向帐户T注入支付交易(或指定“创建”时创建交易),将N POCC发送到该帐户。 请注意,F和T是种子字符串,但也可以指定为“root”作为测试实例的root帐户的简写。