Beam Node User Guide¶
General¶
Beam Node is an essential part of the Beam blockchain and is responsible for validating transactions and blocks. It runs on all platforms: Linux, Windows and Mac (for detalied list of supported and tested platforms please see user_supported_platforms)
Beam Node can be run in either Mining or Validating mode.
Mining mode¶
Beam Node supports External Miner via Statum Server API for mining Beam:
Beam Node provides built in support for Startum API allowing to connect multiple external mining clients to a single node. (see :ref: user_beam_stratum_server for more details). To start the node with stratum server use stratum_port and stratum_secrets_path parameters. Stratum clients can be run together with the Internal Miner
Mining keys management
In order for the mining node to be able to attribute mining rewards to your wallet, it needs a special secret mining key. The mining key is derived from the primary secret key by running export_miner_key command with –subkey=<node id> parameter in the Beam CLI Wallet (See user_cli_wallet_guide for more details). You can generate a multiple separate mining keys for different mining nodes.
Optionally, in order to allow each mining node to be able to see all rewards mined by all your mining nodes Beam provides an additional option called owner_key. Owner key is a secret view key, it can not be used to spend coins, just to identify your mining rewards regardless of which node was used to mine it. Owner key is derived from primary secret key as well using the same key_export command, but without additional parameters.
Both keys are protected using Wallet Password, which should also be provided
Validating mode¶
By default (without –miner_type flag) Beam Node is run in validating mode, meaning that mining is disabled. Validating nodes are still very important for the overall health and safety of the network since they:
- Help in propagating transactions and blocks through the network
- Relay SBBS messages to enable Wallet to Wallet communication.
- Serve as Dandelion Stem relays to improve P2P level security
If possible, always prefer running a local node either with or without mining!
Node Settings¶
Beam Node allows to provide the settings via command line or using a configuration file called beam-node.cfg and located in the same folder as Beam Node binary.
Command line parameters override configuration file settings
The configuration file is loaded automatically and sets all parameters that were not provided via command line. To reload configuration file after a change you should manually restart Beam Node
Parameter | Description & Example |
–port (or -p) | Port to start the server on port=10000
|
–log_level | Log level [info|debug|verbose] log_level=info
|
–file_log_level | File log level [info|debug|verbose] file_log_level=info
|
–log_cleanup_days | Old logfiles cleanup period(days) log_cleanup_days=5
|
There are some node options which can setup using the configuration file. You can also run this options in command line.
Parameter | Description & Example |
–storage | Path to node database file (defaults to node.db in the same folder) storage=node.db
|
–miner_key | Secret key to attribute mining rewards mined by the node to your wallet Created using CLI walelt export_miner_key command with –subkey=<miner id> parameter See user_cli_wallet_guide for more details |
–owner_key | Secret key allowing the node to monitor mining rewards mined by all mining nodes marked by this key. Created using CLI walelt export_owner_key command See user_cli_wallet_guide for more details |
–pass | Wallet password. It is required since both Miner Key and Owner Key are protected by walelt password |
–stratum_port | Port on which stratum server will listen to incoming connections. 0 if stratum server is disabled. stratum_port=0
|
–stratum_secrets_path | Path to folder containing stratum certificates stratum_secrets_path=.
|
–peer | nodes to connect to --peer=eu-nodes.mainnet.beam.mw:8100
|
Using CPU mining is not recommended
Beam uses Equihash mining algorith with (150,5) parameters and customized data path. It is efficiently mined on GPUs
Parameter | Description & Example |
-h (or –help) | list all available options and commands |
-v (or –version) | print project versio |
–git_commit_hash | print git commit hash value git_commit_hash
|
–fast_sync | Fast sync on/off (override horizons) fast_sync=on
|
–print_txo | Print TXO movements (create/spend) recognized by the owner key. print_txo=1
|
–peers_persistent | Keep persistent connection to the specified peers, regardless to ratings peers_persistent=1
|
–mining_threads | number of mining threads(there is no mining if 0). It works if FakePoW is enabled --mining_threads=1
|
–pow_solve_time | pow solve time. It works if FakePoW is enabled --pow_solve_time=15000
|
–verification_threads | number of threads for cryptographic verifications (0 = single thread, -1 = auto) --verification_threads=-1
|
–history_dir | Path to folder where compressed (cut-through) history files are stored. Defaults to same folder. history_dir=.
|
–temp_dir | Path to temp folder for compressed history files. Must be on the same volume as history_dir temp_dir=.
|
–stratum_use_tls | Enable TLS on startum server --stratum_use_tls=
|
–nonceprefix_digits | number of hex digits for nonce prefix for stratum client (0..6) --nonceprefix_digits=
|
–generate_recovery | Recovery file to generate immediately after start |
–recovery_auto_path | Path and file prefix for recovery auto-generation |
–recovery_auto_period | Period (in blocks) for recovery auto-generation |
To make it easier to run local node in fast sync mode you need to run the following command:
./beam-node --port=10000 --peer=eu-nodes.mainnet.beam.mw:8100,us-nodes.mainnet.beam.mw:8100,ap-nodes.mainnet.beam.mw:8100,ap-hk-nodes.mainnet.beam.mw:8100 --fast_sync=on

Operations with Node Database¶
Parameter | Description & Example |
–check_db | DB integrity check |
–vacuum | DB vacuum (compact) |
–reset_id | Reset self Node ID (used for network authentication). Must do if the node is cloned |
–erase_id | Reset self Node ID (used for network authentication) and stop before re-creating the new one. |