avail-light
avail-light copied to clipboard
Setting config.yml in version 1.8.0 is not working
Hi devs,
avail-light --config /root/avail-light/config.yml --network goldberg --identity /root/avail-light/identity.toml
My problem is that the config file is not working. avail-light still load the old default config in v1.8.0
Here is the config.yml below which is from "avail.sh":
bootstraps=['/dns/bootnode.2.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWRCgfvaLSnQfkwGehrhSNpY7i5RenWKL2ARst6ZqgdZZd','/dns/bootnode.1.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWBkLsNGaD3SpMaRWtAmWVuiZg1afdNSPbtJ8M8r9ArGRT']
full_node_ws=['wss://rpc-testnet.avail.tools/ws','wss://avail-goldberg-rpc.lgns.xyz:443/ws','wss://rpc-goldberg.sandbox.avail.tools:443','wss://avail-goldberg.public.blastapi.io:443','wss://lc-rpc-goldberg.avail.tools:443/ws']
confidence=80.0
avail_path='/root/avail-light/avail_path'
kad_record_ttl=43200
ot_collector_endpoint='http://otelcol.lightclient.goldberg.avail.tools:4317'
genesis_hash='6f09966420b2608d1947ccfb0f2a362450d1fc7fd902c29b67c906eaa965a7ae'
block_processing_delay=100
@ianhomew can you kindly share the logs you are referring to?
Whenever you pass the network flag, some preset config related to that network is uploaded by default. if you are willing to override those network configuration parameters, you will have to pass them separately into the config file. An example configuration which we can use to override configuration parameters are shown below:-
log_level = "info"
# Light client HTTP server host name (default: 127.0.0.1)
http_server_host = "127.0.0.1"
# Light client HTTP server port (default: 7000).
http_server_port = 7000
# Secret key for libp2p keypair. Can be either set to `seed` or to `key`.
# If set to seed, keypair will be generated from that seed.
# If set to key, a valid ed25519 private key must be provided, else the client will fail
# If `secret_key` is not set, random seed will be used.
secret_key = { seed={seed} }
# P2P service port (default: 37000).
port = 37000
# Configures AutoNAT behaviour to reject probes as a server for clients that are observed at a non-global ip address (default: false)
autonat_only_global_ips = false
# AutoNat throttle period for re-using a peer as server for a dial-request. (default: 1s)
autonat_throttle = 2
# Interval in which the NAT status should be re-tried if it is currently unknown or max confidence was not reached yet. (default: 20s)
autonat_retry_interval = 20
# Interval in which the NAT should be tested again if max confidence was reached in a status. (default: 360s)
autonat_refresh_interval = 360
# AutoNat on init delay before starting the first probe. (default: 5s)
autonat_boot_delay = 10
# Vector of Light Client bootstrap nodes, used to bootstrap the DHT (mandatory field).
bootstraps=['/dns/bootnode.2.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWRCgfvaLSnQfkwGehrhSNpY7i5RenWKL2ARst6ZqgdZZd','/dns/bootnode.1.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWBkLsNGaD3SpMaRWtAmWVuiZg1afdNSPbtJ8M8r9ArGRT']
# Vector of Relay nodes, which are used for hole punching
relays = ["/ip4/13.49.44.246/tcp/39111/12D3KooWBETtE42fN7DZ5QsGgi7qfrN3jeYdXmBPL4peVTDmgG9b"]
# WebSocket endpoint of a full node for subscribing to the latest header, etc (default: ws://127.0.0.1:9944).
full_node_ws=['wss://rpc-testnet.avail.tools/ws','wss://avail-goldberg-rpc.lgns.xyz:443/ws','wss://rpc-goldberg.sandbox.avail.tools:443','wss://avail-goldberg.public.blastapi.io:443','wss://lc-rpc-goldberg.avail.tools:443/ws']
# Genesis hash of the network you are connecting to. The genesis hash will be checked upon connecting to the node(s) and will also be used to identify you on the p2p network. If you wish to skip the check for development purposes, entering DEV{suffix} instead will skip the check and create a separate p2p network with that identifier.
genesis_hash = "DEV123"
# ID of application used to start application client. If app_id is not set, or set to 0, application client is not started (default: 0).
app_id = 0
# Confidence threshold, used to calculate how many cells need to be sampled to achieve desired confidence (default: 99.9).
confidence = 99.9
# File system path where RocksDB used by light client, stores its data. (default: avail_path)
avail_path = "avail_path"
# OpenTelemetry Collector endpoint (default: `http://127.0.0.1:4317`)
ot_collector_endpoint = "http://127.0.0.1:4317"
# If set to true, logs are displayed in JSON format, which is used for structured logging. Otherwise, plain text format is used (default: false).
log_format_json = true
# Fraction and number of the block matrix part to fetch (e.g. 2/20 means second 1/20 part of a matrix). This is the parameter that determines whether the client behaves as fat client or light client (default: None)
block_matrix_partition = "1/20"
# Disables proof verification in general, if set to true, otherwise proof verification is performed. (default: false).
disable_proof_verification = false
# Disables fetching of cells from RPC, set to true if client expects cells to be available in DHT (default: false)
disable_rpc = false
# Number of parallel queries for cell fetching via RPC from node (default: 8).
query_proof_rpc_parallel_tasks = 8
# Maximum number of cells per request for proof queries (default: 30).
max_cells_per_rpc = 30
# Maximum number of parallel tasks spawned for GET and PUT operations on DHT (default: 20).
dht_parallelization_limit = 20
# Number of seconds to postpone block processing after the block finalized message arrives. (default: 0).
block_processing_delay = 0
# Starting block of the syncing process. Omitting it will disable syncing. (default: None).
sync_start_block = 0
# Enable or disable synchronizing finality. If disabled, finality is assumed to be verified until the
# starting block at the point the LC is started and is only checked for new blocks. (default: false)
sync_finality_enable = false
# Time-to-live for DHT entries in seconds (default: 24h).
# Default value is set for light clients. Due to the heavy duty nature of the fat clients, it is recommended to be set far below this value - not greater than 1hr.
# Record TTL, publication and replication intervals are co-dependent: TTL >> publication_interval >> replication_interval.
record_ttl = 86400
# Sets the (re-)publication interval of stored records, in seconds. This interval should be significantly shorter than the record TTL, ensure records do not expire prematurely. (default: 12h).
# Default value is set for light clients. Fat client value needs to be inferred from the TTL value.
# This interval should be significantly shorter than the record TTL, to ensure records do not expire prematurely.
publication_interval = 43200
# Sets the (re-)replication interval for stored records, in seconds. This interval should be significantly shorter than the publication interval, to ensure persistence between re-publications. (default: 3h).
# Default value is set for light clients. Fat client value needs to be inferred from the TTL and publication interval values.
# This interval should be significantly shorter than the publication interval, to ensure persistence between re-publications.
replication_interval = 10800
# The replication factor determines to how many closest peers a record is replicated. (default: 5).
replication_factor = 5
# Sets the amount of time to keep connections alive when they're idle. (default: 30s).
# NOTE: libp2p default value is 10s, but because of Avail block time of 20s the value has been increased
connection_idle_timeout = 30
# Sets the timeout for a single Kademlia query. (default: 10s).
query_timeout = 10
# Sets the allowed level of parallelism for iterative Kademlia queries. (default: 3).
query_parallelism = 3
# Sets the Kademlia caching strategy to use for successful lookups. If set to 0, caching is disabled. (default: 1).
caching_max_peers = 1
# Require iterative queries to use disjoint paths for increased resiliency in the presence of potentially adversarial nodes. (default: false).
disjoint_query_paths = false
# The maximum number of records. (default: 2400000).
max_kad_record_number = 2400000
# The maximum size of record values, in bytes. (default: 8192).
max_kad_record_size = 8192
# The maximum number of provider records for which the local node is the provider. (default: 1024).
max_kad_provided_keys = 1024
Closing this as the solution is in this comment.
Closing this as the solution is in this comment.
I copy your config but it not working.
nano ~/avail-light/config.yml
paste your config content.
nano /etc/systemd/system/avail-light.service
Content avail-light.service
[Unit]
Description=Avail Light Client
After=network.target
StartLimitIntervalSec=0
[Service]
User=root
ExecStart= /root/avail-light/target/release/avail-light --config '/root/avail-light/config.yml' --identity '/root/avail-light/target/release/identity.toml' --network goldberg
Restart=always
RestartSec=120
[Install]
WantedBy=multi-user.target
systemctl deamond-reload && systemctl start avail-light.service
Result:
Can you set this in your config
WorkingDirectory=/root
and the service file will be without the '' on config and identity
[Unit]
Description=Avail Light Client
After=network.target
StartLimitIntervalSec=0
[Service]
User=root
WorkingDirectory=/root
ExecStart= /root/avail-light/target/release/avail-light --config /root/avail-light/config.yml --identity /root/avail-light/target/release/identity.toml --network goldberg
Restart=always
RestartSec=120
[Install]
WantedBy=multi-user.target
It still not working. I'm using v1.7.10.
Why team don't update new rpc on source for user? RPC default can not connect.
Closing this as the solution is in this comment.
I copy your config but it not working.
nano ~/avail-light/config.yml
paste your config content.
nano /etc/systemd/system/avail-light.service
Content avail-light.service
[Unit] Description=Avail Light Client After=network.target StartLimitIntervalSec=0 [Service] User=root ExecStart= /root/avail-light/target/release/avail-light --config '/root/avail-light/config.yml' --identity '/root/avail-light/target/release/identity.toml' --network goldberg Restart=always RestartSec=120 [Install] WantedBy=multi-user.target
systemctl deamond-reload && systemctl start avail-light.service
Result:
Me too. Seems like team doesn't want users to connect to RPC. Lots of users face the same error.
Hi! First of all thanks for the issue. Yes one of the RPCs on the default network list are currently not operational and hence we can use the config flag instead to start the client instead of passing the network flag.
Also I noticed that the config I shared earlier from the docs is having the seed phrase as an input which needs to be updated as follows:-
`secret_key = { seed={seed} }`
An example would be
`secret_key = { seed="111" }`
And your service file now, will look like this
[Unit]
Description=Avail Light Client
After=network.target
StartLimitIntervalSec=0
[Service]
User=root
ExecStart= /root/avail-light/target/release/avail-light --config /root/avail-light/config.yml --identity /root/avail-light/target/release/identity.toml
Restart=always
RestartSec=120
[Install]
WantedBy=multi-user.target
You can use this config I have shared below and I could start the client with this:-
log_level = "info"
# Light client HTTP server host name (default: 127.0.0.1)
http_server_host = "127.0.0.1"
# Light client HTTP server port (default: 7000).
http_server_port = 7000
# Secret key for libp2p keypair. Can be either set to `seed` or to `key`.
# If set to seed, keypair will be generated from that seed.
# If set to key, a valid ed25519 private key must be provided, else the client will fail
# If `secret_key` is not set, random seed will be used.
secret_key = { seed="111" }
# P2P service port (default: 37000).
port = 37000
# Configures AutoNAT behaviour to reject probes as a server for clients that are observed at a non-global ip address (default: false)
autonat_only_global_ips = false
# AutoNat throttle period for re-using a peer as server for a dial-request. (default: 1s)
autonat_throttle = 2
# Interval in which the NAT status should be re-tried if it is currently unknown or max confidence was not reached yet. (default: 20s)
autonat_retry_interval = 20
# Interval in which the NAT should be tested again if max confidence was reached in a status. (default: 360s)
autonat_refresh_interval = 360
# AutoNat on init delay before starting the first probe. (default: 5s)
autonat_boot_delay = 10
# Vector of Light Client bootstrap nodes, used to bootstrap the DHT (mandatory field).
bootstraps=['/dns/bootnode.2.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWRCgfvaLSnQfkwGehrhSNpY7i5RenWKL2ARst6ZqgdZZd','/dns/bootnode.1.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWBkLsNGaD3SpMaRWtAmWVuiZg1afdNSPbtJ8M8r9ArGRT']
# WebSocket endpoint of a full node for subscribing to the latest header, etc (default: ws://127.0.0.1:9944).
full_node_ws=['wss://avail-goldberg-rpc.lgns.xyz:443/ws','wss://rpc-goldberg.sandbox.avail.tools:443','wss://avail-goldberg.public.blastapi.io:443','wss://lc-rpc-goldberg.avail.tools:443/ws']
# ID of application used to start application client. If app_id is not set, or set to 0, application client is not started (default: 0).
app_id = 0
# Confidence threshold, used to calculate how many cells need to be sampled to achieve desired confidence (default: 99.9).
confidence = 99.9
# File system path where RocksDB used by light client, stores its data. (default: avail_path)
avail_path = "avail_path"
# OpenTelemetry Collector endpoint (default: `http://127.0.0.1:4317`)
ot_collector_endpoint = "http://127.0.0.1:4317"
# If set to true, logs are displayed in JSON format, which is used for structured logging. Otherwise, plain text format is used (default: false).
log_format_json = true
# Disables proof verification in general, if set to true, otherwise proof verification is performed. (default: false).
disable_proof_verification = false
# Disables fetching of cells from RPC, set to true if client expects cells to be available in DHT (default: false)
disable_rpc = false
# Number of parallel queries for cell fetching via RPC from node (default: 8).
query_proof_rpc_parallel_tasks = 8
# Maximum number of cells per request for proof queries (default: 30).
max_cells_per_rpc = 30
# Maximum number of parallel tasks spawned for GET and PUT operations on DHT (default: 20).
dht_parallelization_limit = 20
# Number of seconds to postpone block processing after the block finalized message arrives. (default: 0).
block_processing_delay = 0
# Starting block of the syncing process. Omitting it will disable syncing. (default: None).
sync_start_block = 0
# Enable or disable synchronizing finality. If disabled, finality is assumed to be verified until the
# starting block at the point the LC is started and is only checked for new blocks. (default: false)
sync_finality_enable = false
# Time-to-live for DHT entries in seconds (default: 24h).
# Default value is set for light clients. Due to the heavy duty nature of the fat clients, it is recommended to be set far below this value - not greater than 1hr.
# Record TTL, publication and replication intervals are co-dependent: TTL >> publication_interval >> replication_interval.
record_ttl = 86400
# Sets the (re-)publication interval of stored records, in seconds. This interval should be significantly shorter than the record TTL, ensure records do not expire prematurely. (default: 12h).
# Default value is set for light clients. Fat client value needs to be inferred from the TTL value.
# This interval should be significantly shorter than the record TTL, to ensure records do not expire prematurely.
publication_interval = 43200
# Sets the (re-)replication interval for stored records, in seconds. This interval should be significantly shorter than the publication interval, to ensure persistence between re-publications. (default: 3h).
# Default value is set for light clients. Fat client value needs to be inferred from the TTL and publication interval values.
# This interval should be significantly shorter than the publication interval, to ensure persistence between re-publications.
replication_interval = 10800
# The replication factor determines to how many closest peers a record is replicated. (default: 5).
replication_factor = 5
# Sets the amount of time to keep connections alive when they're idle. (default: 30s).
# NOTE: libp2p default value is 10s, but because of Avail block time of 20s the value has been increased
connection_idle_timeout = 30
# Sets the timeout for a single Kademlia query. (default: 10s).
query_timeout = 10
# Sets the allowed level of parallelism for iterative Kademlia queries. (default: 3).
query_parallelism = 3
# Sets the Kademlia caching strategy to use for successful lookups. If set to 0, caching is disabled. (default: 1).
caching_max_peers = 1
# Require iterative queries to use disjoint paths for increased resiliency in the presence of potentially adversarial nodes. (default: false).
disjoint_query_paths = false
# The maximum number of records. (default: 2400000).
max_kad_record_number = 2400000
# The maximum size of record values, in bytes. (default: 8192).
max_kad_record_size = 8192
# The maximum number of provider records for which the local node is the provider. (default: 1024).
max_kad_provided_keys = 1024
Please ensure that the file paths on the service file are consistent with the location of the binary, config and identity.toml files. Would be happy to resolve any further issues if they arise.
It's working, isn't it? I'm not sure because there's a change of result which is not success status.
You have passed the seed error stage but from the logs, it seems like your service is still not picking up the config.
You can try the following:-
- Clean up your old
avail_path
artifacts and kill any existing processes usingpkill -9 avail-light
- Start the client manually from your shell to check for permission issues
/root/avail-light/target/release/avail-light --config /root/avail-light/config.yml --identity /root/avail- light/target/release/identity.toml
- I have a fresh set of RPC endpoints for you to try which you can replace on the
config.yaml
to make sure your client is not running into any connectivity issues.full_node_ws= ["wss://rpc-goldberg.sandbox.avail.tools:443", "wss://lc-rpc-goldberg.avail.tools:443/ws", "wss://avail2.polkadotters.com:443/ws", "wss://avail-goldberg-rpc.polka.p2p.world:443"]
The logs for a successful boot sequence will lead to an output like this
{"timestamp":"2024-04-09T14:45:21.774967Z","level":"INFO","fields":{"message":"Cells fetched from DHT","block_number":1430,"cells_total":8,"cells_fetched":0,"cells_verified":0,"fetch_elapsed":"984.412µs","proof_verification_elapsed":"1.249µs"},"target":"avail_light::network"}
{"timestamp":"2024-04-09T14:45:21.906991Z","level":"INFO","fields":{"message":"Cells fetched from RPC","block_number":649370,"cells_total":10,"cells_fetched":10,"cells_verified":10,"fetch_elapsed":"91.597716ms","proof_verification_elapsed":"45.340919ms"},"target":"avail_light::network"}
{"timestamp":"2024-04-09T14:45:21.907164Z","level":"INFO","fields":{"message":"Confidence factor: 99.90234375","block_number":649370,"confidence":99.90234375},"target":"avail_light::light_client"}
{"timestamp":"2024-04-09T14:45:21.907276Z","level":"INFO","fields":{"message":"Block available: Dimensions { rows: 4, cols: 256 }","block_number":649370},"target":"avail_light::app_client"}
{"timestamp":"2024-04-09T14:45:21.908368Z","level":"INFO","fields":{"message":"Message published to clients","topic":"ConfidenceAchieved","published":0,"failed":0},"target":"avail_light::api::v2"}
{"timestamp":"2024-04-09T14:45:21.908454Z","level":"INFO","fields":{"message":"Maintenance completed","block_number":649370,"map_size":10},"target":"avail_light::maintenance"}
{"timestamp":"2024-04-09T14:45:21.943147Z","level":"INFO","fields":{"message":"Cell upload success rate for block 649370: 0/10. Duration: 0"},"target":"avail_light::network::p2p::event_loop"}
You have passed the seed error stage but from the logs, it seems like your service is still not picking up the config.
You can try the following:-
- Clean up your old
avail_path
artifacts and kill any existing processes usingpkill -9 avail-light
- Start the client manually from your shell to check for permission issues
/root/avail-light/target/release/avail-light --config /root/avail-light/config.yml --identity /root/avail- light/target/release/identity.toml
- I have a fresh set of RPC endpoints for you to try which you can replace on the
config.yaml
to make sure your client is not running into any connectivity issues.full_node_ws= ["wss://rpc-goldberg.sandbox.avail.tools:443", "wss://lc-rpc-goldberg.avail.tools:443/ws", "wss://avail2.polkadotters.com:443/ws", "wss://avail-goldberg-rpc.polka.p2p.world:443"]
The logs for a successful boot sequence will lead to an output like this
{"timestamp":"2024-04-09T14:45:21.774967Z","level":"INFO","fields":{"message":"Cells fetched from DHT","block_number":1430,"cells_total":8,"cells_fetched":0,"cells_verified":0,"fetch_elapsed":"984.412µs","proof_verification_elapsed":"1.249µs"},"target":"avail_light::network"} {"timestamp":"2024-04-09T14:45:21.906991Z","level":"INFO","fields":{"message":"Cells fetched from RPC","block_number":649370,"cells_total":10,"cells_fetched":10,"cells_verified":10,"fetch_elapsed":"91.597716ms","proof_verification_elapsed":"45.340919ms"},"target":"avail_light::network"} {"timestamp":"2024-04-09T14:45:21.907164Z","level":"INFO","fields":{"message":"Confidence factor: 99.90234375","block_number":649370,"confidence":99.90234375},"target":"avail_light::light_client"} {"timestamp":"2024-04-09T14:45:21.907276Z","level":"INFO","fields":{"message":"Block available: Dimensions { rows: 4, cols: 256 }","block_number":649370},"target":"avail_light::app_client"} {"timestamp":"2024-04-09T14:45:21.908368Z","level":"INFO","fields":{"message":"Message published to clients","topic":"ConfidenceAchieved","published":0,"failed":0},"target":"avail_light::api::v2"} {"timestamp":"2024-04-09T14:45:21.908454Z","level":"INFO","fields":{"message":"Maintenance completed","block_number":649370,"map_size":10},"target":"avail_light::maintenance"} {"timestamp":"2024-04-09T14:45:21.943147Z","level":"INFO","fields":{"message":"Cell upload success rate for block 649370: 0/10. Duration: 0"},"target":"avail_light::network::p2p::event_loop"}
Many thanks for your support, I will try it and give feedback. I have a question, if I clean up the avail-path folder will this affect my reward points calculation? Because before that I ran early and had many success reports.
Nope you will have to maintain the identity.toml file to keep running with your old avail address. The avail_path simply stores artifacts from the run.
I would also recommend simply running this command behind the service file curl -sL1 avail.sh | bash
instead if you are performing this task for the LC challenge. This tool sets up everything for you to be able to run the LC on goldberg. For a newly set config you can follow the steps I mentioned above.
Admin. I think avail-light has received all of config. But there is still an error message. Is this an error from RPC? I checked the port 7000 response and it still failed to connect.
~/avail-light/config.yml
log_level = "info"
# Light client HTTP server host name (default: 127.0.0.1)
http_server_host = "127.0.0.1"
# Light client HTTP server port (default: 7000).
http_server_port = 7000
# Secret key for libp2p keypair. Can be either set to `seed` or to `key`.
# If set to seed, keypair will be generated from that seed.
# If set to key, a valid ed25519 private key must be provided, else the client will fail
# If `secret_key` is not set, random seed will be used.
secret_key = { seed="aaa" }
# P2P service port (default: 37000).
port = 37000
# Configures AutoNAT behaviour to reject probes as a server for clients that are observed at a non-global ip address (default: false)
autonat_only_global_ips = false
# AutoNat throttle period for re-using a peer as server for a dial-request. (default: 1s)
autonat_throttle = 2
# Interval in which the NAT status should be re-tried if it is currently unknown or max confidence was not reached yet. (default: 20s)
autonat_retry_interval = 20
# Interval in which the NAT should be tested again if max confidence was reached in a status. (default: 360s)
autonat_refresh_interval = 360
# AutoNat on init delay before starting the first probe. (default: 5s)
autonat_boot_delay = 10
# Vector of Light Client bootstrap nodes, used to bootstrap the DHT (mandatory field).
bootstraps = ['/dns/bootnode.2.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWRCgfvaLSnQfkwGehrhSNpY7i5RenWKL2ARst6ZqgdZZd','/dns/bootnode.1.lightclient.goldberg.avail.tools/tcp/37000/p2p/12D3KooWBkLsNGaD3SpMaRWtAmWVuiZg1afdNSPbtJ8M8r9ArGRT']
# WebSocket endpoint of a full node for subscribing to the latest header, etc (default: ws://127.0.0.1:9944).
full_node_ws = ["wss://rpc-goldberg.sandbox.avail.tools:443", "wss://lc-rpc-goldberg.avail.tools:443/ws", "wss://avail2.polkadotters.com:443/ws", "wss://avail-goldberg-rpc.polka.p2p.world:443"]
# ID of application used to start application client. If app_id is not set, or set to 0, application client is not started (default: 0).
app_id = 0
# Confidence threshold, used to calculate how many cells need to be sampled to achieve desired confidence (default: 99.9).
confidence = 99.9
# File system path where RocksDB used by light client, stores its data. (default: avail_path)
avail_path = "avail_path"
# OpenTelemetry Collector endpoint (default: `http://127.0.0.1:4317`)
ot_collector_endpoint = "http://otelcol.lightclient.goldberg.avail.tools:4317"
# If set to true, logs are displayed in JSON format, which is used for structured logging. Otherwise, plain text format is used (default: false).
log_format_json = true
# Disables proof verification in general, if set to true, otherwise proof verification is performed. (default: false).
disable_proof_verification = false
# Disables fetching of cells from RPC, set to true if client expects cells to be available in DHT (default: false)
disable_rpc = false
# Number of parallel queries for cell fetching via RPC from node (default: 8).
query_proof_rpc_parallel_tasks = 8
# Maximum number of cells per request for proof queries (default: 30).
max_cells_per_rpc = 30
# Maximum number of parallel tasks spawned for GET and PUT operations on DHT (default: 20).
dht_parallelization_limit = 20
# Number of seconds to postpone block processing after the block finalized message arrives. (default: 0).
block_processing_delay = 0
# Starting block of the syncing process. Omitting it will disable syncing. (default: None).
sync_start_block = 0
# Enable or disable synchronizing finality. If disabled, finality is assumed to be verified until the
# starting block at the point the LC is started and is only checked for new blocks. (default: false)
sync_finality_enable = false
# Time-to-live for DHT entries in seconds (default: 24h).
# Default value is set for light clients. Due to the heavy duty nature of the fat clients, it is recommended to be set far below this value - not greater than 1hr.
# Record TTL, publication and replication intervals are co-dependent: TTL >> publication_interval >> replication_interval.
record_ttl = 86400
# Sets the (re-)publication interval of stored records, in seconds. This interval should be significantly shorter than the record TTL, ensure records do not expire prematurely. (default: 12h).
# Default value is set for light clients. Fat client value needs to be inferred from the TTL value.
# This interval should be significantly shorter than the record TTL, to ensure records do not expire prematurely.
publication_interval = 43200
# Sets the (re-)replication interval for stored records, in seconds. This interval should be significantly shorter than the publication interval, to ensure persistence between re-publications. (default: 3h).
# Default value is set for light clients. Fat client value needs to be inferred from the TTL and publication interval values.
# This interval should be significantly shorter than the publication interval, to ensure persistence between re-publications.
replication_interval = 10800
# The replication factor determines to how many closest peers a record is replicated. (default: 5).
replication_factor = 5
# Sets the amount of time to keep connections alive when they're idle. (default: 30s).
# NOTE: libp2p default value is 10s, but because of Avail block time of 20s the value has been increased
connection_idle_timeout = 30
# Sets the timeout for a single Kademlia query. (default: 10s).
query_timeout = 10
# Sets the allowed level of parallelism for iterative Kademlia queries. (default: 3).
query_parallelism = 3
# Sets the Kademlia caching strategy to use for successful lookups. If set to 0, caching is disabled. (default: 1).
caching_max_peers = 1
# Require iterative queries to use disjoint paths for increased resiliency in the presence of potentially adversarial nodes. (default: false).
disjoint_query_paths = false
# The maximum number of records. (default: 2400000).
max_kad_record_number = 2400000
# The maximum size of record values, in bytes. (default: 8192).
max_kad_record_size = 8192
# The maximum number of provider records for which the local node is the provider. (default: 1024).
max_kad_provided_keys = 1024
unbelievable. avail-light.service
status had seed = 'aaa'
but full_node_ws
still connect to wss://goldberg.avail.tools:443/ws
. I have no idea, why?
You will have to remove the --network
flag from the command as now you are feeding a custom config. Currently the --network flag overrides the RPC URL fed from the config and replaces it with a server URL endpoint which is inactive.
kad_record_ttl=43200 ot_collector_endpoint='http://otelcol.lightclient.goldberg.avail.tools:4317' genesis_hash='6f09966420b2608d1947ccfb0f2a362450d1fc7fd902c29b67c906eaa965a7ae' block_processing_delay=100
It's working successfully. Thank U so much from the bottom of my heart. I have understood all of the matter.
Also please note that you are currently running the LC in client mode. Please do explore other modes and what they imply and how they operate. You can reach out to [email protected] for any queries.