AntelopeIO / spring

C++ implementation of the Antelope protocol with Savanna consensus
Other
7 stars 3 forks source link

Unable to load snapshot recovery node #795

Closed YuXiaoCoder closed 1 week ago

YuXiaoCoder commented 1 week ago

OS Version:Ubuntu 22.04 Docker Spring Version: v1.0.1 Snapshot Version: v8

Download Snapshot:

wget -O /tmp/snapshot-v8-latest.bin https://snapshots.eosnation.io/eos-v8/latest

Config File:

# the location of the blocks directory (absolute path or relative to application data dir) (eosio::chain_plugin)
blocks-dir = "/mnt/eosmain/node"

# 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. (eosio::chain_plugin)
# blocks-log-stride =

# 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. (eosio::chain_plugin)
# max-retained-block-files =

# 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. (eosio::chain_plugin)
# blocks-retained-dir =

# 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. (eosio::chain_plugin)
# blocks-archive-dir =

# the location of the state directory (absolute path or relative to application data dir) (eosio::chain_plugin)
# state-dir = "state"

# the location of the finalizers safety data directory (absolute path or relative to application data dir)
finalizers-dir = "finalizers"

# the location of the protocol_features directory (absolute path or relative to application config dir) (eosio::chain_plugin)
# protocol-features-dir = "protocol_features"

# Pairs of [BLOCK_NUM,BLOCK_ID] that should be enforced as checkpoints. (eosio::chain_plugin)
# checkpoint =

# 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.
#  (eosio::chain_plugin)
wasm-runtime = eos-vm-jit

# The name of an account whose code will be profiled (eosio::chain_plugin)
# profile-account =

# Override default maximum ABI serialization time allowed in ms (eosio::chain_plugin)
abi-serializer-max-time-ms = 2000

# Maximum size (in MiB) of the chain state database (eosio::chain_plugin)
chain-state-db-size-mb = 163840

# Safely shut down node when free space remaining in the chain state database drops below this size (in MiB). (eosio::chain_plugin)
chain-state-db-guard-size-mb = 128

# Percentage of actual signature recovery cpu to bill. Whole number percentages, e.g. 50 for 50% (eosio::chain_plugin)
# signature-cpu-billable-pct = 50

# Number of worker threads in controller thread pool (eosio::chain_plugin)
chain-threads = 5

# print contract's output to console (eosio::chain_plugin)
contracts-console = true

# print deeper information about chain operations (eosio::chain_plugin)
# deep-mind = false

# Account added to actor whitelist (may specify multiple times) (eosio::chain_plugin)
# actor-whitelist =

# Account added to actor blacklist (may specify multiple times) (eosio::chain_plugin)
# actor-blacklist =

# Contract account added to contract whitelist (may specify multiple times) (eosio::chain_plugin)
# contract-whitelist =

# Contract account added to contract blacklist (may specify multiple times) (eosio::chain_plugin)
# contract-blacklist =

# Action (in the form code::action) added to action blacklist (may specify multiple times) (eosio::chain_plugin)
# action-blacklist =

# Public key added to blacklist of keys that should not be included in authorities (may specify multiple times) (eosio::chain_plugin)
# key-blacklist =

# 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) (eosio::chain_plugin)
# sender-bypass-whiteblacklist =

# Database read mode ("head", "irreversible", "speculative").
# In "head" mode: database contains state changes up to the head block; transactions received by the node are relayed if valid.
# In "irreversible" mode: database contains state changes up to the last irreversible block; transactions received via the P2P network are not relayed and transactions cannot be pushed via the chain API.
# 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; transactions received by the node are relayed if valid.
#  (eosio::chain_plugin)
read-mode = head

# Allow API transactions to be evaluated and relayed if valid. (eosio::chain_plugin)
# api-accept-transactions = true

# 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
#  (eosio::chain_plugin)
# validation-mode = full

# 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). (eosio::chain_plugin)
# disable-ram-billing-notify-checks = false

# Subjectively limit the maximum length of variable components in a variable legnth signature to this size in bytes (eosio::chain_plugin)
# maximum-variable-signature-length = 16384

# Indicate a producer whose blocks headers signed by it will be fully validated, but transactions in those validated blocks will be trusted. (eosio::chain_plugin)
# trusted-producer =

# Database map mode ("mapped", "mapped_private", "heap", or "locked").
# In "mapped" mode database is memory mapped as a file.
# In "mapped_private" mode database is memory mapped as a file using a private mapping (no disk writeback until program exit).
# 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.
#  (eosio::chain_plugin)
database-map-mode = mapped

# Maximum size (in MiB) of the EOS VM OC code cache (eosio::chain_plugin)
# eos-vm-oc-cache-size-mb = 1024

# Number of threads to use for EOS VM OC tier-up (eosio::chain_plugin)
# eos-vm-oc-compile-threads = 1

# Enable EOS VM OC tier-up runtime ('auto', 'all', 'none').
# 'auto' - EOS VM OC tier-up is enabled for eosio.* accounts, read-only trxs, and except on producers applying blocks.
# 'all'  - EOS VM OC tier-up is enabled for all contract execution.
# 'none' - EOS VM OC tier-up is completely disabled.
#  (eosio::chain_plugin)
eos-vm-oc-enable = auto

# enable queries to find accounts by various metadata. (eosio::chain_plugin)
# enable-account-queries = false

# Maximum size (in GiB) allowed to be allocated for the Transaction Retry feature. Setting above 0 enables this feature. (eosio::chain_plugin)
# transaction-retry-max-storage-size-gb =

# How often, in seconds, to resend an incoming transaction to network if not seen in a block.
# Needs to be at least twice as large as p2p-dedup-cache-expire-time-sec. (eosio::chain_plugin)
# transaction-retry-interval-sec = 20

# Maximum allowed transaction expiration for retry transactions, will retry transactions up to this value.
# Should be larger than transaction-retry-interval-sec. (eosio::chain_plugin)
# transaction-retry-max-expiration-sec = 120

# Maximum size (in GiB) allowed to be allocated for the Transaction Finality Status feature. Setting above 0 enables this feature. (eosio::chain_plugin)
# transaction-finality-status-max-storage-size-gb =

# Duration (in seconds) a successful transaction's Finality Status will remain available from being first identified. (eosio::chain_plugin)
# transaction-finality-status-success-duration-sec = 180

# Duration (in seconds) a failed transaction's Finality Status will remain available from being first identified. (eosio::chain_plugin)
# transaction-finality-status-failure-duration-sec = 180

# disable optimizations that specifically target replay (eosio::chain_plugin)
disable-replay-opts = true

# Log the state integrity hash on startup (eosio::chain_plugin)
# integrity-hash-on-start = false

# Log the state integrity hash on shutdown (eosio::chain_plugin)
# integrity-hash-on-stop = false

# If set to greater than 0, periodically prune the block log to store only configured number of most recent blocks.
# If set to 0, no blocks are be written to the block log; block log file is removed after startup. (eosio::chain_plugin)
block-log-retain-blocks = 6000000

# The filename (relative to data-dir) to create a unix socket for HTTP RPC; set blank to disable. (eosio::http_plugin)
# unix-socket-path =

# The local IP and port to listen for incoming http connections; set blank to disable. (eosio::http_plugin)
http-server-address = 0.0.0.0:8888

# The local IP and port to listen for incoming http category connections.  Syntax: category,address
#     Where the address can be <hostname>:port, <ipaddress>:port or unix socket path;
#     in addition, unix socket path must starts with '/', './' or '../'. When relative path
#     is used, it is relative to the data path.
#
#     Valid categories include chain_ro, chain_rw, db_size, net_ro, net_rw, producer_ro
#     producer_rw, snapshot, trace_api, prometheus, and test_control.
#
#     A single `hostname:port` specification can be used by multiple categories
#     However, two specifications having the same port with different hostname strings
#     are always considered as configuration error regardless of whether they can be resolved
#     into the same set of IP addresses.
#
#   Examples:
#     chain_ro,127.0.0.1:8080
#     chain_ro,127.0.0.1:8081
#     chain_rw,localhost:8081 # ERROR!, same port with different addresses
#     chain_rw,[::1]:8082
#     net_ro,localhost:8083
#     net_rw,server.domain.net:8084
#     producer_ro,/tmp/absolute_unix_path.sock
#     producer_rw,./relative_unix_path.sock
#     trace_api,:8086 # listen on all network interfaces
#
#   Notice that the behavior for `[::1]` is platform dependent. For system with IPv4 mapped IPv6 networking
#   is enabled, using `[::1]` will listen on both IPv4 and IPv6; other systems like FreeBSD, it will only
#   listen on IPv6. On the other hand, the specfications without hostnames like `:8086` will always listen on
#   both IPv4 and IPv6 on all platforms. (eosio::http_plugin)
# http-category-address =

# Specify the Access-Control-Allow-Origin to be returned on each request (eosio::http_plugin)
access-control-allow-origin = *

# Specify the Access-Control-Allow-Headers to be returned on each request (eosio::http_plugin)
# access-control-allow-headers =

# Specify the Access-Control-Max-Age to be returned on each request. (eosio::http_plugin)
# access-control-max-age =

# Specify if Access-Control-Allow-Credentials: true should be returned on each request. (eosio::http_plugin)
# access-control-allow-credentials = false

# The maximum body size in bytes allowed for incoming RPC requests (eosio::http_plugin)
max-body-size = 8388608

# Maximum size in megabytes http_plugin should use for processing http requests. -1 for unlimited. 429 error response when exceeded. (eosio::http_plugin)
http-max-bytes-in-flight-mb = 500

# Maximum number of requests http_plugin should use for processing http requests. 429 error response when exceeded. (eosio::http_plugin)
# http-max-in-flight-requests = -1

# Maximum time on main thread for processing a request, -1 for unlimited (eosio::http_plugin)
http-max-response-time-ms = -1

# Append the error log to HTTP responses (eosio::http_plugin)
verbose-http-errors = true

# If set to false, then any incoming "Host" header is considered valid (eosio::http_plugin)
http-validate-host = false

# Additionally acceptable values for the "Host" header of incoming HTTP requests, can be specified multiple times.  Includes http/s_server_address by default. (eosio::http_plugin)
# http-alias =

# Number of worker threads in http thread pool (eosio::http_plugin)
http-threads = 8

# If set to false, do not keep HTTP connections alive, even if client requests. (eosio::http_plugin)
# http-keep-alive = true

# The actual host:port[:<rate-cap>] used to listen for incoming p2p connections. May be used multiple times.   The optional rate cap will limit per connection block sync bandwidth to the specified rate.  Total   allowed bandwidth is the rate-cap multiplied by the connection count limit.  A number alone will be   interpreted as bytes per second.  The number may be suffixed with units.  Supported units are:   'B/s', 'KB/s', 'MB/s, 'GB/s', 'TB/s', 'KiB/s', 'MiB/s', 'GiB/s', 'TiB/s'.  Transactions and blocks outside of sync mode are not throttled.  Examples:
#     192.168.0.100:9876:1MiB/s
#     node.eos.io:9876:1512KB/s
#     node.eos.io:9876:0.5GB/s
#     [2001:db8:85a3:8d3:1319:8a2e:370:7348]:9876:250KB/s (eosio::net_plugin)
p2p-listen-endpoint = 0.0.0.0:9876:0

# An externally accessible host:port for identifying this node. Defaults to p2p-listen-endpoint. May be used as many times as p2p-listen-endpoint. If provided, the first address will be used in handshakes with other nodes. Otherwise the default is used. (eosio::net_plugin)
# p2p-server-address =

# The public endpoint of a peer node to connect to. Use multiple p2p-peer-address options as needed to compose a network.
#   Syntax: host:port[:<trx>|<blk>]
#   The optional 'trx' and 'blk' indicates to node that only transactions 'trx' or blocks 'blk' should be sent.  Examples:
#     p2p.eos.io:9876
#     p2p.trx.eos.io:9876:trx
#     p2p.blk.eos.io:9876:blk
#  (eosio::net_plugin)
# p2p-peer-address =

# Maximum number of client nodes from any single IP address (eosio::net_plugin)
p2p-max-nodes-per-host = 10

# Allow transactions received over p2p network to be evaluated and relayed if valid. (eosio::net_plugin)
# p2p-accept-transactions = true

# The account and public p2p endpoint of a block producer node to automatically connect to when the it is in producer schedule proximity
# .   Syntax: account,host:port
#    Example,
#      eosproducer1,p2p.eos.io:9876
#      eosproducer2,p2p.trx.eos.io:9876:trx
#      eosproducer3,p2p.blk.eos.io:9876:blk
#  (eosio::net_plugin)
# p2p-auto-bp-peer =

# The name supplied to identify this node amongst the peers. (eosio::net_plugin)
agent-name = "NodeHub-EOS"

# Can be 'any' or 'producers' or 'specified' or 'none'. If 'specified', peer-key must be specified at least once. If only 'producers', peer-key is not required. 'producers' and 'specified' may be combined. (eosio::net_plugin)
allowed-connection = any

# Optional public key of peer allowed to connect.  May be used multiple times. (eosio::net_plugin)
# peer-key =

# Tuple of [PublicKey, WIF private key] (may specify multiple times) (eosio::net_plugin)
# peer-private-key =

# Maximum number of clients from which connections are accepted, use 0 for no limit (eosio::net_plugin)
max-clients = 0

# number of seconds to wait before cleaning up dead connections (eosio::net_plugin)
connection-cleanup-period = 30

# max connection cleanup time per cleanup call in milliseconds (eosio::net_plugin)
# max-cleanup-time-msec = 10

# Maximum time to track transaction for duplicate optimization (eosio::net_plugin)
# p2p-dedup-cache-expire-time-sec = 10

# Number of worker threads in net_plugin thread pool (eosio::net_plugin)
net-threads = 6

# Number of blocks to retrieve in a chunk from any individual peer during synchronization (eosio::net_plugin)
sync-fetch-span = 1000

# Number of peers to sync from (eosio::net_plugin)
sync-peer-limit = 5

# Enable experimental socket read watermark optimization (eosio::net_plugin)
# use-socket-read-watermark = false

# The string used to format peers when logging messages about them.  Variables are escaped with ${<variable name>}.
# Available Variables:
#    _name      self-reported name
#
#    _cid       assigned connection id
#
#    _id        self-reported ID (64 hex characters)
#
#    _sid       first 8 characters of _peer.id
#
#    _ip        remote IP address of peer
#
#    _port      remote port number of peer
#
#    _lip       local IP address connected to peer
#
#    _lport     local port number connected to peer
#
#  (eosio::net_plugin)
# peer-log-format = ["${_name}" - ${_cid} ${_ip}:${_port}]

# peer heartbeat keepalive message interval in milliseconds (eosio::net_plugin)
# p2p-keepalive-interval-ms = 10000

# Enable block production, even if the chain is stale. (eosio::producer_plugin)
enable-stale-production = false

# Start this node in a state where production is paused (eosio::producer_plugin)
# pause-on-startup = false

# Setting this value (in milliseconds) will restrict the allowed transaction execution time to a value potentially lower than the on-chain consensus max_transaction_cpu_usage value. (eosio::producer_plugin)
# max-transaction-time = 499

# Limits the maximum age (in seconds) of the DPOS Irreversible Block for a chain this node will produce blocks on (use negative value to indicate unlimited) (eosio::producer_plugin)
max-irreversible-block-age = -1

# ID of producer controlled by this node (e.g. inita; may specify multiple times) (eosio::producer_plugin)
# producer-name =

# Key=Value pairs in the form <public-key>=<provider-spec>
# Where:
#    <public-key>       is a string form of a vaild EOSIO public key
#
#    <provider-spec>    is a string in the form <provider-type>:<data>
#
#    <provider-type>    is KEY, KEOSD, or SE
#
#    KEY:<data>         is a string form of a valid EOSIO private key which maps to the provided public key
#
#    KEOSD:<data>       is the URL where keosd is available and the approptiate wallet(s) are unlocked
#
#  (eosio::producer_plugin)
# signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

# account that can not access to extended CPU/NET virtual resources (eosio::producer_plugin)
greylist-account = blocktwitter
greylist-account = chaintwitter
greylist-account = eidosonecoin

# Limit (between 1 and 1000) on the multiple that CPU/NET virtual resources can extend during low usage (only enforced subjectively; use 1000 to not enforce any limit) (eosio::producer_plugin)
# greylist-limit = 1000

# The minimum time to reserve at the end of a production round for blocks to propagate to the next block producer. (eosio::producer_plugin)
# produce-block-offset-ms = 450

# Threshold of CPU block production to consider block full; when within threshold of max-block-cpu-usage block can be produced immediately (eosio::producer_plugin)
# max-block-cpu-usage-threshold-us = 5000

# Threshold of NET block production to consider block full; when within threshold of max-block-net-usage block can be produced immediately (eosio::producer_plugin)
# max-block-net-usage-threshold-bytes = 1024

# Time in microseconds allowed for a transaction that starts with insufficient CPU quota to complete and cover its CPU usage. (eosio::producer_plugin)
# subjective-cpu-leeway-us = 31000

# Sets the maximum amount of failures that are allowed for a given account per window size. (eosio::producer_plugin)
# subjective-account-max-failures = 3

# Sets the window size in number of blocks for subjective-account-max-failures. (eosio::producer_plugin)
# subjective-account-max-failures-window-size = 1

# Sets the time to return full subjective cpu for accounts (eosio::producer_plugin)
# subjective-account-decay-time-minutes = 1440

# Maximum size (in MiB) of the incoming transaction queue. Exceeding this value will subjectively drop transaction with resource exhaustion. (eosio::producer_plugin)
# incoming-transaction-queue-size-mb = 1024

# Account which is excluded from subjective CPU billing (eosio::producer_plugin)
# disable-subjective-account-billing =

# Disable subjective CPU billing for P2P transactions (eosio::producer_plugin)
# disable-subjective-p2p-billing = true

# Disable subjective CPU billing for API transactions (eosio::producer_plugin)
# disable-subjective-api-billing = true

# Number of worker threads in producer thread pool (eosio::producer_plugin)
# producer-threads = 2

# the location of the snapshots directory (absolute path or relative to application data dir) (eosio::producer_plugin)
# snapshots-dir = "snapshots"

# Number of worker threads in read-only execution thread pool. Max 8. (eosio::producer_plugin)
# read-only-threads =

# Time in microseconds the write window lasts. (eosio::producer_plugin)
# read-only-write-window-time-us = 200000

# Time in microseconds the read window lasts. (eosio::producer_plugin)
read-only-read-window-time-us = 165000

# Time in seconds between two consecutive checks of resource usage. Should be between 1 and 300 (eosio::resource_monitor_plugin)
# resource-monitor-interval-seconds = 2

# Threshold in terms of percentage of used space vs total space. If used space is above (threshold - 5%), a warning is generated. Unless resource-monitor-not-shutdown-on-threshold-exceeded is enabled, a graceful shutdown is initiated if used space is above the threshold. The value should be between 6 and 99 (eosio::resource_monitor_plugin)
# resource-monitor-space-threshold = 90

# Absolute threshold in gibibytes of remaining space; applied to each monitored directory. If remaining space is less than value for any monitored directories then threshold is considered exceeded.Overrides resource-monitor-space-threshold value. (eosio::resource_monitor_plugin)
# resource-monitor-space-absolute-gb =

# Used to indicate nodeos will not shutdown when threshold is exceeded. (eosio::resource_monitor_plugin)
resource-monitor-not-shutdown-on-threshold-exceeded = false

# Number of resource monitor intervals between two consecutive warnings when the threshold is hit. Should be between 1 and 450 (eosio::resource_monitor_plugin)
# resource-monitor-warning-interval = 30

# Limits the maximum time (in milliseconds) that is allowed for sending requests to a keosd provider for signing (eosio::signature_provider_plugin)
# keosd-provider-timeout = 5

# the location of the state-history directory (absolute path or relative to application data dir) (eosio::state_history_plugin)
state-history-dir = "/mnt/eosmain/node/state-history"

# the location of the state history retained directory (absolute path or relative to state-history dir). (eosio::state_history_plugin)
# state-history-retained-dir =

# the location of the state history archive directory (absolute path or relative to state-history dir).
# If the value is empty string, 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. (eosio::state_history_plugin)
# state-history-archive-dir =

# split the state history log files when the block number is the multiple of the stride
# When the stride is reached, the current history log and index will be renamed '*-history-<start num>-<end num>.log/index'
# and a new current history log and index will be created with the most recent blocks. All files following
# this format will be used to construct an extended history log. (eosio::state_history_plugin)
# state-history-stride =

# the maximum number of history file groups to retain so that the blocks in those files can be queried.
# When the number is reached, the oldest history file would be moved to archive dir or deleted if the archive dir is empty.
# The retained history log files should not be manipulated by users. (eosio::state_history_plugin)
# max-retained-history-files =

# enable trace history (eosio::state_history_plugin)
trace-history = true

# enable chain state history (eosio::state_history_plugin)
chain-state-history = true

# enable finality data history
finality-data-history = true

# the endpoint upon which to listen for incoming connections. Caution: only expose this port to your internal network. (eosio::state_history_plugin)
state-history-endpoint = 127.0.0.1:8080

# the path (relative to data-dir) to create a unix socket upon which to listen for incoming connections. (eosio::state_history_plugin)
# state-history-unix-socket-path =

# enable debug mode for trace history (eosio::state_history_plugin)
# trace-history-debug-mode = false

# if set, periodically prune the state history files to store only configured number of most recent blocks (eosio::state_history_plugin)
state-history-log-retain-blocks = 1500000

# the location of the trace directory (absolute path or relative to application data dir) (eosio::trace_api_plugin)
trace-dir = "/mnt/eosmain/node/traces"

# the number of blocks each "slice" of trace data will contain on the filesystem (eosio::trace_api_plugin)
trace-slice-stride = 10000

# Number of blocks to ensure are kept past LIB for retrieval before "slice" files can be automatically removed.
# A value of -1 indicates that automatic removal of "slice" files will be turned off. (eosio::trace_api_plugin)
trace-minimum-irreversible-history-blocks = -1

# Number of blocks to ensure are uncompressed past LIB. Compressed "slice" files are still accessible but may carry a performance loss on retrieval
# A value of -1 indicates that automatic compression of "slice" files will be turned off. (eosio::trace_api_plugin)
trace-minimum-uncompressed-irreversible-history-blocks = -1

# ABIs used when decoding trace RPC responses.
# There must be at least one ABI specified OR the flag trace-no-abis must be used.
# ABIs are specified as "Key=Value" pairs in the form <account-name>=<abi-def>
# Where <abi-def> can be:
#    an absolute path to a file containing a valid JSON-encoded ABI
#    a relative path from `data-dir` to a file containing a valid JSON-encoded ABI
#  (eosio::trace_api_plugin)
# trace-rpc-abi =

# Use to indicate that the RPC responses will not use ABIs.
# Failure to specify this option when there are no trace-rpc-abi configuations will result in an Error.
# This option is mutually exclusive with trace-rpc-api (eosio::trace_api_plugin)
trace-no-abis = true

# Plugin(s) to enable, may be specified multiple times
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin
plugin = eosio::http_plugin
plugin = eosio::chain_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::producer_plugin
plugin = eosio::producer_api_plugin
plugin = eosio::state_history_plugin
plugin = eosio::trace_api_plugin

# The public endpoint of a peer node to connect to. Use multiple p2p-peer-address options as needed to compose a network.
#   Syntax: host:port[:<trx>|<blk>]
#   The optional 'trx' and 'blk' indicates to node that only transactions 'trx' or blocks 'blk' should be sent.  Examples:
#     p2p.eos.io:9876
#     p2p.trx.eos.io:9876:trx
#     p2p.blk.eos.io:9876:blk
#  (eosio::net_plugin)
# https://mainnet.eosio.online/endpoints
p2p-peer-address = p2p.genereos.io:9876
p2p-peer-address = p2p2.eoseoul.io:30333
p2p-peer-address = p2p.bitmars.one:8080
p2p-peer-address = eos.seed.eosnation.io:9876
p2p-peer-address = peer.eosio.sg:9876
p2p-peer-address = eosbp-0.atticlab.net:9876
p2p-peer-address = eos.p2p.eosusa.io:9882
p2p-peer-address = mainnet.eoslaomao.com:443
p2p-peer-address = peer1.eosphere.io:9876
p2p-peer-address = seed.greymass.com:9876
p2p-peer-address = p2p.eos.wiki:39876
p2p-peer-address = p2p.eos42.io:9876
p2p-peer-address = p2p.eosflare.io:9876
p2p-peer-address = p2p.mainnet.eosrio.io:9876
p2p-peer-address = peer.main.alohaeos.com:9876
p2p-peer-address = p2p.eos.detroitledger.tech:1337
p2p-peer-address = mainnet.eosamsterdam.net:9876
p2p-peer-address = p2p.eos.cryptolions.io:9876
p2p-peer-address = p2p.eossweden.org:9876
p2p-peer-address = p2p.eosargentina.io:9876
p2p-peer-address = eos.edenia.cloud:9876
p2p-peer-address = 34.96.75.100:8099
p2p-peer-address = eos.caleos.io:9881
p2p-peer-address = mainnet.eosarabia.net:3571

Service run command:

./nodeos --data-dir=/mnt/eosmain/node --config-dir=/conf --snapshot=/tmp/snapshot-v8-latest.bin

error log:

info  2024-09-18T03:22:15.342 nodeos    protocol_feature_manag:924    operator()           ] Support for builtin protocol feature 'FIX_LINKAUTH_RESTRICTION' (with digest of 'e0fb64b1085cc5538970158d05a009c24e276fb94e1a0bf6a528b48fbc4ff526') is enabled with preactivation required
info  2024-09-18T03:22:15.342 nodeos    protocol_feature_manag:924    operator()           ] Support for builtin protocol feature 'GET_SENDER' (with digest of 'f0af56d2c5a48d60a4a5b5c903edfb7db3a736a94ed589d0b797df33ff9d3e1d') is enabled with preactivation required
info  2024-09-18T03:22:15.342 nodeos    protocol_feature_manag:924    operator()           ] Support for builtin protocol feature 'SAVANNA' (with digest of 'cbe0fafc8fcc6cc998395e9b6de6ebd94644467b1b4a97ec126005df07013c52') is enabled with preactivation required
warn  2024-09-18T03:22:15.343 nodeos    snapshot.cpp:270              validate             ] 3240000 snapshot_exception: Snapshot exception
Binary snapshot has unexpected magic number!
    {}
    nodeos  snapshot.cpp:259 validate

warn  2024-09-18T03:22:15.343 nodeos    chain_plugin.cpp:1109         plugin_initialize    ] 3240000 snapshot_exception: Snapshot exception
Binary snapshot has unexpected magic number!
    {}
    nodeos  snapshot.cpp:259 validate
rethrow
    {}
    nodeos  snapshot.cpp:270 validate

appbase: exception thrown during plugin "eosio::chain_plugin" initialization.
Snapshot exception
info  2024-09-18T03:22:15.343 nodeos    main.cpp:165                  operator()           ] nodeos version v1.0.1 v1.0.1-574650744460373f635d48cac9aa6dee67dcbfdb
info  2024-09-18T03:22:15.343 nodeos    main.cpp:69                   log_non_default_opti ] Non-default options: data-dir = /mnt/eosmain/node, config-dir = /mnt/eosmain/conf, snapshot = /mnt/eosmain/snapshot/snapshot-v8-latest.bin
error 2024-09-18T03:22:15.344 nodeos    main.cpp:224                  main                 ] 3240000 snapshot_exception: Snapshot exception
Binary snapshot has unexpected magic number!
    {}
    nodeos  snapshot.cpp:259 validate
rethrow
    {}
    nodeos  snapshot.cpp:270 validate
rethrow
    {}
    nodeos  chain_plugin.cpp:1109 plugin_initialize
linh2931 commented 1 week ago

The snapshot file from the wget you used is corrupted. It should have started with 5005 5130 (the snapshot magic number) but it starts with 28b5 2ffd instead.

linh2931 commented 1 week ago

Oha, the snapshot file you downloaded was in zst format. unzstd it and you should be fine.

I have verified it.

Please let us know if it works after unzstd.

YuXiaoCoder commented 1 week ago

Thank you. Problem solved.