provisioning/taskservs/polkadot/solochain/default/polkadot-solochain.service.j2

77 lines
2.9 KiB
Plaintext
Raw Permalink Normal View History

[Unit]
Description=Polkadot Solochain Node with PVM Support
Documentation=https://docs.polkadot.com/
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User={{ polkadot_solochain.run_user.name }}
Group={{ polkadot_solochain.run_user.group }}
EnvironmentFile={{ polkadot_solochain.config_path }}/node.env
WorkingDirectory={{ polkadot_solochain.work_path }}
ExecStart={{ polkadot_solochain.bin_path }}/{{ polkadot_solochain.node_binary }} \
--base-path {{ polkadot_solochain.base_path }} \
--chain {{ polkadot_solochain.config_path }}/{{ polkadot_solochain.network.chain_id }}.json \
--name {{ polkadot_solochain.network.name }} \
--listen-addr {{ polkadot_solochain.network.listen_addr }} \
{% if polkadot_solochain.network.public_addr is defined %}
--public-addr {{ polkadot_solochain.network.public_addr }} \
{% endif %}
--rpc-port {{ polkadot_solochain.rpc.ws_port }} \
--rpc-bind-addr {{ polkadot_solochain.rpc.bind_addr }} \
--rpc-cors {{ polkadot_solochain.rpc.cors | join(',') }} \
--rpc-methods {{ polkadot_solochain.rpc.methods | join(',') }} \
--max-peers {{ polkadot_solochain.network.max_peers }} \
--execution {{ polkadot_solochain.execution_strategy }} \
--state-cache-size {{ polkadot_solochain.state_cache_size }} \
--pruning {{ polkadot_solochain.pruning }} \
{% if polkadot_solochain.runtime.pvm_enabled %}
--wasm-execution {{ polkadot_solochain.runtime.wasm_execution }} \
{% endif %}
{% if polkadot_solochain.validator.enabled %}
--validator \
{% endif %}
{% if polkadot_solochain.network.reserved_only %}
--reserved-only \
{% endif %}
{% if polkadot_solochain.network.bootnodes %}
{% for bootnode in polkadot_solochain.network.bootnodes %}
--bootnode {{ bootnode }} \
{% endfor %}
{% endif %}
{% if polkadot_solochain.network.reserved_nodes %}
{% for reserved in polkadot_solochain.network.reserved_nodes %}
--reserved-node {{ reserved }} \
{% endfor %}
{% endif %}
{% if polkadot_solochain.telemetry.enabled and polkadot_solochain.telemetry.url is defined %}
--telemetry-url "{{ polkadot_solochain.telemetry.url }} {{ polkadot_solochain.telemetry.verbosity }}" \
{% endif %}
{% if polkadot_solochain.dev_mode %}
--dev \
{% endif %}
--log {{ polkadot_solochain.log_level }}
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10
# Security settings
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths={{ polkadot_solochain.work_path }} {{ polkadot_solochain.base_path }} {{ polkadot_solochain.keystore_path }} {{ polkadot_solochain.config_path }}
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
# Resource limits
LimitNOFILE=65536
{% if polkadot_solochain.runtime.pvm_enabled %}
# Additional memory for PVM operations
MemoryMax=4G
{% endif %}
[Install]
WantedBy=multi-user.target