Skip to content

Latest commit

 

History

History
279 lines (261 loc) · 16.7 KB

File metadata and controls

279 lines (261 loc) · 16.7 KB

Description

The chain_plugin is a core plugin required to process and aggregate chain data on an EOSIO-Taurus node.

The EOSIO-Taurus blockchain persists the chain state as snapshots.

Usage

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

Operations

These can only be specified from the nodeos command-line:

Command Line Options for eosio::chain_plugin:

  --genesis-json arg                    File to read Genesis State from
  --genesis-timestamp arg               override the initial timestamp in the
                                        Genesis State file
  --print-genesis-json                  extract genesis_state from blocks.log
                                        as JSON, print to console, and exit
  --extract-genesis-json arg            extract genesis_state from blocks.log
                                        as JSON, write into specified file, and
                                        exit
  --print-build-info                    print build environment information to
                                        console as JSON and exit
  --extract-build-info arg              extract build environment information
                                        as JSON, write into specified file, and
                                        exit
  --fix-reversible-blocks               recovers reversible block database if
                                        that database is in a bad state
  --force-all-checks                    do not skip any validation checks while
                                        replaying blocks (useful for replaying
                                        blocks from untrusted source)
  --disable-replay-opts                 disable optimizations that specifically
                                        target replay
  --replay-blockchain                   clear chain state database and replay
                                        all blocks
  --hard-replay-blockchain              clear chain state database, recover as
                                        many blocks as possible from the block
                                        log, and then replay those blocks
  --delete-all-blocks                   clear chain state database and block
                                        log
  --truncate-at-block arg (=0)          stop hard replay / block log recovery
                                        at this block number (if set to
                                        non-zero number)
  --terminate-at-block arg (=0)         terminate after reaching this block
                                        number (if set to a non-zero number)
  --import-reversible-blocks arg        replace reversible block database with
                                        blocks imported from specified file and
                                        then exit
  --export-reversible-blocks arg        export reversible block database in
                                        portable format into specified file and
                                        then exit
  --snapshot arg                        File to read Snapshot State from

Options

These can be specified from both the nodeos command-line or the config.ini file:

Config Options for eosio::chain_plugin:

  --blocks-dir arg (="blocks")          the location of the blocks directory
                                        (absolute path or relative to
                                        application data dir)
  --blocks-log-stride arg (=4294967295) split the block log file when the head
                                        block number is the multiple of the
                                        stride
                                        When the stride is reached, the current
                                        block log and index will be renamed
                                        '<blocks-retained-dir>/blocks-<start
                                        num>-<end num>.log/index'
                                        and a new current block log and index
                                        will be created with the most recent
                                        block. All files following
                                        this format will be used to construct
                                        an extended block log.
  --max-retained-block-files arg (=10)  the maximum number of blocks files to
                                        retain so that the blocks in those
                                        files can be queried.
                                        When the number is reached, the oldest
                                        block file would be moved to archive
                                        dir or deleted if the archive dir is
                                        empty.
                                        The retained block log files should not
                                        be manipulated by users.
  --blocks-retained-dir arg (="")       the location of the blocks retained
                                        directory (absolute path or relative to
                                        blocks dir).
                                        If the value is empty, it is set to the
                                        value of blocks dir.
  --blocks-archive-dir arg (="archive") the location of the blocks archive
                                        directory (absolute path or relative to
                                        blocks dir).
                                        If the value is empty, blocks files
                                        beyond the retained limit will be
                                        deleted.
                                        All files in the archive directory are
                                        completely under user's control, i.e.
                                        they won't be accessed by nodeos
                                        anymore.
  --fix-irreversible-blocks arg (=1)    When the existing block log is
                                        inconsistent with the index, allows
                                        fixing the block log and index files
                                        automatically - that is, it will take
                                        the highest indexed block if it is
                                        valid; otherwise it will repair the
                                        block log and reconstruct the index.
  --protocol-features-dir arg (="protocol_features")
                                        the location of the protocol_features
                                        directory (absolute path or relative to
                                        application config dir)
  --checkpoint arg                      Pairs of [BLOCK_NUM,BLOCK_ID] that
                                        should be enforced as checkpoints.
  --wasm-runtime runtime (=eos-vm-jit)  Override default WASM runtime (
                                        "eos-vm-jit", "eos-vm")
                                        "eos-vm-jit" : A WebAssembly runtime
                                        that compiles WebAssembly code to
                                        native x86 code prior to execution.
                                        "eos-vm" : A WebAssembly interpreter.

  --abi-serializer-max-time-ms arg (=15)
                                        Override default maximum ABI
                                        serialization time allowed in ms
  --chain-state-db-size-mb arg (=1024)  Maximum size (in MiB) of the chain
                                        state database
  --chain-state-db-guard-size-mb arg (=128)
                                        Safely shut down node when free space
                                        remaining in the chain state database
                                        drops below this size (in MiB).
  --backing-store arg (=chainbase)      The storage for state, chainbase or
                                        rocksdb
  --persistent-storage-num-threads arg (=1)
                                        Number of rocksdb threads for flush and
                                        compaction
  --persistent-storage-max-num-files arg (=-1)
                                        Max number of rocksdb files to keep
                                        open. -1 = unlimited.
  --persistent-storage-write-buffer-size-mb arg (=128)
                                        Size of a single rocksdb memtable (in
                                        MiB)
  --persistent-storage-bytes-per-sync arg (=1048576)
                                        Rocksdb write rate of flushes and
                                        compactions.
  --persistent-storage-mbytes-snapshot-batch arg (=50)
                                        Rocksdb batch size threshold before
                                        writing read in snapshot data to
                                        database.
  --reversible-blocks-db-size-mb arg (=340)
                                        Maximum size (in MiB) of the reversible
                                        blocks database
  --reversible-blocks-db-guard-size-mb arg (=2)
                                        Safely shut down node when free space
                                        remaining in the reverseible blocks
                                        database drops below this size (in
                                        MiB).
  --signature-cpu-billable-pct arg (=50)
                                        Percentage of actual signature recovery
                                        cpu to bill. Whole number percentages,
                                        e.g. 50 for 50%
  --chain-threads arg (=2)              Number of worker threads in controller
                                        thread pool
  --contracts-console                   print contract's output to console
  --deep-mind                           print deeper information about chain
                                        operations
  --telemetry-url arg                   Send Zipkin spans to url. e.g.
                                        http://127.0.0.1:9411/api/v2/spans
  --telemetry-service-name arg (=nodeos)
                                        Zipkin localEndpoint.serviceName sent
                                        with each span
  --telemetry-timeout-us arg (=200000)  Timeout for sending Zipkin span.
  --actor-whitelist arg                 Account added to actor whitelist (may
                                        specify multiple times)
  --actor-blacklist arg                 Account added to actor blacklist (may
                                        specify multiple times)
  --contract-whitelist arg              Contract account added to contract
                                        whitelist (may specify multiple times)
  --contract-blacklist arg              Contract account added to contract
                                        blacklist (may specify multiple times)
  --action-blacklist arg                Action (in the form code::action) added
                                        to action blacklist (may specify
                                        multiple times)
  --key-blacklist arg                   Public key added to blacklist of keys
                                        that should not be included in
                                        authorities (may specify multiple
                                        times)
  --sender-bypass-whiteblacklist arg    Deferred transactions sent by accounts
                                        in this list do not have any of the
                                        subjective whitelist/blacklist checks
                                        applied to them (may specify multiple
                                        times)
  --read-mode arg (=speculative)        Database read mode ("speculative",
                                        "head", "read-only", "irreversible").
                                        In "speculative" mode: database
                                        contains state changes by transactions
                                        in the blockchain up to the head block
                                        as well as some transactions not yet
                                        included in the blockchain.
                                        In "head" mode: database contains state
                                        changes by only transactions in the
                                        blockchain up to the head block;
                                        transactions received by the node are
                                        relayed if valid.
                                        In "read-only" mode: (DEPRECATED: see
                                        p2p-accept-transactions &
                                        api-accept-transactions) database
                                        contains state changes by only
                                        transactions in the blockchain up to
                                        the head block; transactions received
                                        via the P2P network are not relayed and
                                        transactions cannot be pushed via the
                                        chain API.
                                        In "irreversible" mode: database
                                        contains state changes by only
                                        transactions in the blockchain up to
                                        the last irreversible block;
                                        transactions received via the P2P
                                        network are not relayed and
                                        transactions cannot be pushed via the
                                        chain API.

  --api-accept-transactions arg (=1)    Allow API transactions to be evaluated
                                        and relayed if valid.
  --validation-mode arg (=full)         Chain validation mode ("full" or
                                        "light").
                                        In "full" mode all incoming blocks will
                                        be fully validated.
                                        In "light" mode all incoming blocks
                                        headers will be fully validated;
                                        transactions in those validated blocks
                                        will be trusted

  --disable-ram-billing-notify-checks   Disable the check which subjectively
                                        fails a transaction if a contract bills
                                        more RAM to another account within the
                                        context of a notification handler (i.e.
                                        when the receiver is not the code of
                                        the action).
  --maximum-variable-signature-length arg (=16384)
                                        Subjectively limit the maximum length
                                        of variable components in a variable
                                        legnth signature to this size in bytes
  --trusted-producer arg                Indicate a producer whose blocks
                                        headers signed by it will be fully
                                        validated, but transactions in those
                                        validated blocks will be trusted.
  --database-map-mode arg (=mapped)     Database map mode ("mapped", "heap", or
                                        "locked").
                                        In "mapped" mode database is memory
                                        mapped as a file.
                                        In "heap" mode database is preloaded in
                                        to swappable memory and will use huge
                                        pages if available.
                                        In "locked" mode database is preloaded,
                                        locked in to memory, and will use huge
                                        pages if available.

  --enable-account-queries arg (=0)     enable queries to find accounts by
                                        various metadata.
  --max-nonprivileged-inline-action-size arg (=4096)
                                        maximum allowed size (in bytes) of an
                                        inline action for a nonprivileged
                                        account

Dependencies

None