⚠️ WARNING: experimental software, not yet ready for production use
# use mainnet config
docker run -d -it -P ghcr.io/hacker-volodya/liteserver
# use testnet config
docker run -d -it -P ghcr.io/hacker-volodya/liteserver --testnet
# use custom config from url
docker run -d -it -P ghcr.io/hacker-volodya/liteserver --global-config-url https://example.com/global.config.json
# use local config
docker run -d -it -P -v $PWD/global.config.json:/global.config.json ghcr.io/hacker-volodya/liteserver --global-config-path /global.config.json
# specify custom node config (examples below)
docker run -d -it -P -v $PWD/config.yml:/config.yml ghcr.io/hacker-volodya/liteserver --config /config.yml
version: '2'
services:
liteserver:
image: ghcr.io/hacker-volodya/liteserver
ports:
- 30303:30303/udp # nodes p2p (host port and container port must be equal, container port is specified in config.yml)
- 3000:3000/tcp # web interface
- 3333:3333/tcp # liteapi
restart: always
Status |
Method |
Description |
|
impemented |
|
✅ |
WaitMasterchainSeqno |
|
✅ |
GetMasterchainInfo |
|
✅ |
GetMasterchainInfoExt |
|
✅ |
GetBlockHeader |
|
✅ |
GetAllShardsInfo |
|
✅ |
ListBlockTransactions |
|
✅ |
GetBlock |
|
✅ |
GetAccountState |
|
✅ |
GetTransactions |
|
✅ |
LookupBlock |
|
✅ |
GetConfigAll |
|
✅ |
GetMasterchainInfoExt |
|
✅ |
GetConfigParams |
|
✅ |
GetBlockProof |
|
✅ |
SendMessage |
|
✅ |
RunSmcMethod |
no proofs |
✅ |
GetLibraries |
|
|
high priority (toncenter) |
|
⚠️ |
GetShardBlockProof |
block proof research in progress |
|
medium priority |
|
🔜 |
GetOneTransaction |
|
🔜 |
GetShardInfo |
|
🔜 |
GetAccountStatePrunned |
|
🔜 |
ListBlockTransactionsExt |
|
🔜 |
GetLibrariesWithProof |
|
⚠️ |
LookupBlockWithProof |
block proof research in progress |
|
low priority |
|
🔜 |
GetTime |
|
🔜 |
GetVersion |
|
🔜 |
GetValidatorStats |
|
🔜 |
GetState |
|
🔜 |
GetOutMsgQueueSizes |
|
🔜 |
GetValidatorGroups |
|
🔜 |
GetCandidate |
|
indexer:
ip_address: 0.0.0.0:30303
rocks_db_path: /data/rocksdb
file_db_path: /data/file
state_gc_options: null
blocks_gc_options:
# - `before_previous_key_block` - on each new key block delete all blocks before the previous one
# - `before_previous_persistent_state` - on each new key block delete all blocks before the previous key block with persistent state
kind: before_previous_key_block
enable_for_sync: true # Whether to enable blocks GC during sync.
max_blocks_per_batch: 100000 # Max `WriteBatch` entries before apply
shard_state_cache_options:
ttl_sec: 120 # LRU cache item duration.
db_options:
rocksdb_lru_capacity: 1 GB
cells_cache_size: 2 GB
low_thread_pool_size: 8
high_thread_pool_size: 8
max_subcompactions: 8
archive_options:
gc_interval:
# - `manual` - Do not perform archives GC
# - `persistent_states` - Archives GC triggers on each persistent state
type: persistent_states
offset_sec: 300 # Remove archives after this interval after the new persistent state
sync_options:
old_blocks_policy: # Whether to sync very old blocks
type: ignore
# type: sync
# from_seqno: 100
parallel_archive_downloads: 16
save_to_disk_threshold: 1073741824
max_block_applier_depth: 32
force_use_get_next_block: false # Ignore archives
persistent_state_options:
prepare_persistent_states: false
persistent_state_parallelism: 1
remove_old_states: true
adnl_options:
query_min_timeout_ms: 500 # Minimal ADNL query timeout. Will override the used timeout if it is less.
query_default_timeout_ms: 5000 # Default ADNL query timeout. Will be used if no timeout is specified.
transfer_timeout_sec: 3 # ADNL multipart transfer timeout. It will drop the transfer if it is not completed within this timeout.
clock_tolerance_sec: 60 # Permissible time difference between remote and local clocks.
channel_reset_timeout_sec: 30 # Drop channels which had no response for this amount of time.
address_list_timeout_sec: 1000 # How much time address lists from packets should be valid.
packet_history_enabled: false # Whether to add additional duplicated packets check.
packet_signature_required: true # Whether handshake packets signature is mandatory.
force_use_priority_channels: false # Whether to use priority channels for queries.
use_loopback_for_neighbours: false # Whether to use loopback ip to communicate with nodes on the same ip
version: null # ADNL protocol version
rldp_options:
max_answer_size: 10485760 # Max allowed RLDP answer size in bytes. Query will be rejected if answer is bigger.
max_peer_queries: 16 # Max parallel RLDP queries per peer.
query_min_timeout_ms: 500 # Min RLDP query timeout.
query_max_timeout_ms: 10000 # Max RLDP query timeout
query_wave_len: 10 # Number of FEC messages to send in group. There will be a short delay between them.
query_wave_interval_ms: 10 # Interval between FEC broadcast waves.
force_compression: false # Whether requests will be compressed.
dht_options:
value_ttl_sec: 3600 # Default stored value timeout used for [`Node::store_overlay_node`] and [`Node::store_address`]
query_timeout_ms: 1000 # ADNL query timeout
default_value_batch_len: 5 # Amount of DHT peers, used for values search
bad_peer_threshold: 5 # Max peer penalty points. On each unsuccessful query every peer gains 2 points, and then they are reduced by one on each good action.
max_allowed_k: 20 # Max allowed `k` value for DHT `FindValue` query.
max_key_name_len: 127 # Max allowed key name length (in bytes). See [`everscale_network::proto::dht::Key`]
max_key_index: 15 # Max allowed key index
storage_gc_interval_ms: 10000 # Storage GC interval. Will remove all outdated entries
overlay_shard_options:
max_neighbours: 200 # More persistent list of peers. Used to distribute broadcasts.
max_broadcast_log: 1000 # Max simultaneous broadcasts.
broadcast_gc_interval_ms: 1000 # Broadcasts GC interval. Will leave at most `max_broadcast_log` each iteration.
overlay_peers_timeout_ms: 60000 # Neighbours or random peers update interval.
max_ordinary_broadcast_len: 768 # Packets with length bigger than this will be sent using FEC broadcast.
broadcast_target_count: 5 # Max number of peers to distribute broadcast to.
secondary_broadcast_target_count: 3 # Max number of peers to redistribute ordinary broadcast to.
secondary_fec_broadcast_target_count: 3 # Max number of peers to redistribute FEC broadcast to.
fec_broadcast_wave_len: 20 # Number of FEC messages to send in group. There will be a short delay between them.
fec_broadcast_wave_interval_ms: 10 # Interval between FEC broadcast waves.
broadcast_timeout_sec: 60 # Overlay broadcast timeout. It will be forcefully dropped if not received in this time.
force_compression: false # Whether requests will be compressed.
neighbours_options:
max_neighbours: 16
reloading_min_interval_sec: 10
reloading_max_interval_sec: 30
ping_interval_ms: 500
search_interval_ms: 1000
ping_min_timeout_ms: 10
ping_max_timeout_ms: 1000
default_rldp_roundtrip_ms: 2000
max_ping_tasks: 6
max_exchange_tasks: 6