跳至主要内容
此页面是从英文翻译而来的。请注意,与原始页面相比,可能会出现错误或差异。真实的文档来源应始终是英文版本。

producer_plugin

概述

那个 producer_plugin 包含节点执行区块生产任务的功能。它还实现了由提供的核心功能 制作人 API 插件.

ℹ️ 要启用区块生产,特定 nodeos 配置是必要的。请参阅 配置区块生成节点 详细说明指南。

用法

# config.ini
plugin = eosio::producer_plugin [options]
# nodeos startup params
nodeos ... -- plugin eosio::producer_plugin [options]

选项

这些可以从以下任一处指定 nodeos 命令行或 config.ini 文件:

的配置选项 producer_plugin

选项(=默认)描述
-e [ --enable-stale-production ]即使链已过时,也能启用区块生产。
-x [ --pause-on-startup ]在暂停生产的状态下启动此节点
--max-transaction-time arg (=30)限制推送的事务的代码在被视为无效之前允许执行的最大时间(以毫秒为单位)
--max-irreversible-block-age arg (=-1)限制此节点将在其上生成区块的链的 DPOS 不可逆区块的最大使用寿命(以秒为单位)(使用负值表示无限制)
-p [ --producer-name ] arg由此节点控制的生产者 ID(例如 inita;可以多次指定)
--signature-provider arg (=<PUBLIC_KEY>=KEY:<PRIVATE_KEY>)key=Value 对 ^public-key^=^provider-spec^ 其中:^public-key^ 是有效 EOSIO 公钥的字符串形式 ^provider-spec^ 是 ^provider-type^ 是 KEY、KEOSD 或 SE KEY:^data^ 是有效的 EOSIO 私钥的字符串形式,它映射到提供的公钥 KEESIO 私钥 OSD: ^data^ 是 keosd 可用且相应钱包已解锁的网址
--greylist-account arg无法访问扩展 CPU/NET 虚拟资源的帐户
--greylist-limit arg (=1000)限制 CPU/NET 虚拟资源在低使用率期间可以扩展的倍数(介于 1 到 1000 之间)(仅在主观上强制执行;使用 1000 不强制执行任何限制)
--produce-time-offset-us arg (=0)非最后一个区块生成时间的偏移量,以微秒为单位。有效范围 0..-block_time_interval。
--last-block-time-offset-us arg (=-200000)最后一个区块生成时间的偏移量,以微秒为单位。有效范围 0..-block_time_interval。
--cpu-effort-percent arg (=80)用于生成区块的 cpu 区块生产时间的百分比。整数百分比,例如 80 表示 80%
--last-block-cpu-effort-percent arg (=80)用于生成最后一个区块的 cpu 区块生产时间的百分比。整数百分比,例如 80 表示 80%
--max-block-cpu-usage-threshold-us arg (=5000)考虑区块已满的 CPU 区块生产阈值;当在 max-block-cpu-usage 区块的阈值之内时,可以立即生成
--max-block-net-usage-threshold-bytes arg (=1024)考虑区块已满的净区块生产阈值;当在最大区块净使用量区块的阈值内时,可以立即生成
--max-scheduled-transaction-time-per-block-ms arg (=100)在恢复正常交易处理之前,在任何区块中停用计划交易(以及根据传入延迟比率计算的传入交易)所花费的最大挂钟时间(以毫秒为单位)。
--subjective-cpu-leeway-us arg (=31000)启动时的 CPU 配额不足以完成和满足 CPU 使用率的事务所允许的时间(以微秒为单位)。
--subjective-account-max-failures arg (=3)设置每个窗口大小允许给定账户的最大失败次数。
--subjective-account-max-failures-window-size arg (=1)设置 subjective-account-max-failu res 的窗口大小(以块数为单位)。
--subjective-account-decay-time-minutes arg (=1440)设置为账户返回全部主观 cpu 的时间
--incoming-defer-ratio arg (=1)传入事务和延迟事务排队等候执行时的比率
--incoming-transaction-queue-size-mb arg (=1024)传入事务队列的最大大小(以 MiB 为单位)。超过此值将在资源耗尽的情况下主观上丢弃事务。
--disable-subjective-billing arg (=1)禁用 API/P2P 交易的主观 CPU 计费
--disable-subjective-account-billing arg不在主观 CPU 计费范围内的账户
--disable-subjective-p2p-billing arg (=1)禁用 P2P 交易的主观 CPU 计费
--disable-subjective-api-billing arg (=1)禁用 API 交易的主观 CPU 计费
--producer-threads arg (=2)生产者线程池中的工作线程数
--snapshots-dir arg (="snapshots")快照目录的位置(绝对路径或相对于应用程序数据目录的路径)
--read-only-threads arg只读执行线程池中的工作线程数。最多 8 个。
--read-only-write-window-time-us arg (=200000)写入窗口持续的时间(以微秒为单位)。
--read-only-read-window-time-us arg (=60000)读取窗口持续的时间(以微秒为单位)。

依赖关系

交易的优先级

当 producer 插件有待处理的事务队列时,你可以让其中一种事务类型优先于另一种事务类型。

以下选项设置传入事务和延迟事务处理之间的比率:

  --incoming-defer-ratio arg (=1)       

默认值为 1producer 插件为每笔延迟事务处理一个传入的交易。什么时候 arg 设置为 10producer 插件每笔延迟事务处理 10 笔传入交易。

如果 arg 设置为足够大的数字,插件始终先处理传入的事务,直到传入事务的队列为空。分别地,如果 arg 是 0, producer 插件首先处理延迟事务队列。

加载依赖关系示例

# config.ini
plugin = eosio::chain_plugin [operations] [options]
# command-line
nodeos ... --plugin eosio::chain_plugin [operations] [options]

有关如何生成方块的详细信息,请阅读以下内容 区块生成解释器.