diff --git a/docs.json b/docs.json
index bc11d3956..8c877df6e 100644
--- a/docs.json
+++ b/docs.json
@@ -207,6 +207,7 @@
"pages": [
"ecosystem/node/overview",
"ecosystem/node/setup-mytonctrl",
+ "ecosystem/node/run-validator",
"ecosystem/node/setup-mylocalton",
{
"group": "MyTonCtrl Reference",
@@ -2105,4 +2106,4 @@
"permanent": true
}
]
-}
\ No newline at end of file
+}
diff --git a/ecosystem/node/run-validator.mdx b/ecosystem/node/run-validator.mdx
new file mode 100644
index 000000000..8d48cee0f
--- /dev/null
+++ b/ecosystem/node/run-validator.mdx
@@ -0,0 +1,401 @@
+---
+title: "Run a validator"
+description: "Run a validator node with MyTonCtrl"
+---
+
+import { Aside } from '/snippets/aside.jsx';
+import { Image } from '/snippets/image.jsx';
+
+## Prerequisites
+
+### Maintain costs and expanses
+
+- Validator node network fee spends up to 200 TON monthly.
+- Validator deposit stake 700 000 TON ~ 4 000 000 TON.
+- 100 TB/month traffic at a peak load.
+
+### Minimal hardware requirements
+
+- 16-core CPU
+- 128 GB RAM
+- 1TB NVMe SSD or provisioned 64+k IOPS storage
+- 1 Gbit/s network connectivity
+- Public IP address (fixed IP address)
+
+
+
+### Software requirements
+
+- Ubuntu 22.04 LTS or 24.04 LTS
+- Python 3.10
+- Clang 16.0.0
+
+
+
+
+```bash
+# Please check your clang version first
+clang --version
+# If it is of version 16 you don't need to do the below steps.
+
+# Required for Ubuntu 20.04 only.
+sudo apt update
+sudo apt install -y manpages-dev software-properties-common
+sudo add-apt-repository ppa:ubuntu-toolchain-r/test
+sudo apt update && sudo apt install gcc-11 g++-11
+
+# Required for Ubuntu 20.04 and 22.04. Update current clang to clang-16
+sudo apt install lsb-release wget software-properties-common gnupg
+sudo wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
+wget https://apt.llvm.org/llvm.sh
+chmod +x llvm.sh
+sudo ./llvm.sh 16 clang
+
+# change default clang
+sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 100
+sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 100
+```
+
+
+### Port forwarding for node
+
+
+
+Configure your network on server according the following:
+- All outgoing connections to be open.
+- A static external IP address.
+- One UDP port forwarded for incoming connections
+- Server must also be visible to the outside world over the NAT.
+
+To determine which UDP ports are open, use the following command:
+
+```bash
+netstat -tulpn
+```
+
+### Validator updates announcements
+
+Subscribe and follow instructions provided for validators with telegram channels
+
+
+
+| Channel | Network |
+|----------------------------------------------|---------|
+| [@tonstatus](https://t.me/tonstatus) | Mainnet |
+| [@testnetstatus](https://t.me/testnetstatus) | Testnet |
+
+### Prepare the validator account
+
+1. Create non-root user
+
+```bash create validator user
+sudo adduser
+sudo usermod -aG sudo
+```
+
+2. Switch to it with reconnecting to server via ssh
+
+```bash reconnect as the new user
+exit
+ssh @
+```
+
+## Validator node installation
+
+1. Download MyTonCtrl:
+
+```shell
+wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
+```
+
+
+1. Run validator installation, installation takes approximately 20 minutes:
+
+```shell install for Mainnet
+sudo bash install.sh -m single-nominator -n mainnet
+```
+
+
+
+
+
+```shell install for Testnet
+sudo bash install.sh -m single-nominator -n testnet
+```
+
+
+2. After installation, launch MyTonCtrl with command `mytonctrl`. Then, check synchronization status using the command:
+
+```sh
+mytonctrl
+MyTonCtrl> status
+```
+
+
+
+
+3. Make sure your ports allowed. Print your `engine.addr` port configuration `config.json` file:
+```bash
+grep -A5 '"addrs"' -n /var/ton-work/db/config.json | grep '"port"' | head -1
+```
+
+
+4. Make sure UDP `engine.addr` port allowed with following command:
+
+```bash
+sudo ufw status
+```
+
+
+5. If you find out port filtered (absent in allowed), open this port:
+
+```bash
+sudo ufw allow /udp
+```
+
+Then make sure with `sudo ufw status`.
+
+6. Disk latency is the common bottleneck. Benchmark storage with `benchmark` command:
+
+```sh
+MyTonCtrl> benchmark
+```
+
+7. Wait until the node is fully synchronized approximately 3 hours (depends on network connection). Check the field `Local validator initial sync status: x`, the value x should become less than 20.
+
+
+
+
+
+
+## Configure validator
+
+When installing, MyTonCtrl automatically creates a validator wallet for you. You need to top up and activate (deploy) this wallet so MyTonCtrl can operate Single nominator pool smart contract with it.
+
+
+1. Check a list of wallets:
+
+```sh
+MyTonCtrl> wl
+```
+You should see a wallet named `validator_wallet_001` and its address.
+
+
+
+2. Make back-up of your validator wallet secret key:
+
+```sh
+MyTonCtrl> ew validator_wallet_001
+```
+
+
+
+
+3. Explore your validator wallet by address with [Tonviewer](https://tonviewer.com/):
+
+
+
+
+3. Credit validator wallet. Ensure you have at least 200 TON/month in your validator wallet for operation fees.
+
+
+
+4. Activate the wallet:
+
+```sh
+MyTonCtrl> aw validator_wallet_001
+```
+
+
+That also reflect in Tonviewer, status will displayed as Active
+
+
+5. Create a [single nominator pool](https://docs.ton.org/v3/documentation/smart-contracts/contracts-specs/single-nominator-pool) for secure stake manegment.
+
+
+
+```bash
+MyTonCtrl> new_single_pool
+```
+
+
+
+
+
+If you've already created a pool, you can import it:
+
+```bash
+MyTonCtrl> import_pool
+```
+
+
+
+6. Display pool addresses using `pools_list`:
+
+```bash
+MyTonCtrl> pools_list
+```
+
+
+
+At the moment your pool didn't deployed yet, and explorer will display this as `Nonexist` status:
+
+
+
+7. Activate the pool:
+
+```bash
+MyTonCtrl> activate_single_pool
+```
+
+
+8. After successfully activating the pool check it again with `pools_list`:
+
+```bash
+MyTonCtrl> pools_list
+```
+
+
+
+Blockchain explorer also should display now deployed contract with `Active` status
+
+
+
+9. Test deposit and withdrawal process with owner wallet. You able to make deposit from any address with direct transfer.
+Credit decent sum around 10 TON:
+
+
+
+
+
+10. Send withdrawal request, a message with `w` comment from `owner` wallet to single nominator pool address:
+
+
+
+Once you restore your deposit (except 1 TON reserve on single nominator pool) to owner wallet, that means all system set securely and ready for real stake:
+
+
+
+## Set optimal stake for validator
+
+Now you can top up this pool with funds enough for validation. On the next elections MyTonCtrl will automatically use this pool for staking.
+
+
+
+1. Get `cycle_info.min_stake` and `cycle_info.max_stake` from API for two last cycles(WIP).
+2. Chose max within two `cycle_info.min_stake` and `cycle_info.max_stake`.
+
+```bash
+cycle_info.min_stake = 450 000
+cycle_info.min_stake = 500 000
+
+min_cycle_stake = 500 000
+```
+
+```bash
+cycle_info.max_stake = 2 200 000
+cycle_info.max_stake = 2 150 000
+
+max_cycle_stake = 2 200 000
+```
+
+3. Calculate expected effective stake by double `max_cycle_stake`and `min_cycle_stake`:
+
+```bash
+max_expected_effective_stake = max_cycle_stake * 2 = 2 200 000 * 2 = 2 400 000
+
+min_expected_effective_stake = min_cycle_stake * 2 = 500 000 * 2 = 1 000 000
+```
+
+Effective stake defined with: `min_expected_effective_stake <= effective stake <= max_expected_effective_stake`
+
+4. Deposit directly to single nominator pool address effective stake.
+5. Next election cycle (odd), mytonctrl will send half of stake from single nominator pool. Track this with browser.
+6. Next paired election cycle (even), mytonctrl will send second half of stake from single nominator pool. Track this with browser.
+7. Reward for odd validation cycle will return to single nominator pool united with stake. Track this with browser.
+8. Once you make sure you pair stakes circulated properly, you may focus on monitor validator health and updates.
+
+
+
+## Maintain validator
+
+1. Follow [@tonstatus](https://t.me/tonstatus), turn on notifications, and be prepared for urgent updates if needed.
+
+2. Create validator backup. Learn about [backups](https://old-docs.ton.org/v3/guidelines/nodes/maintenance-guidelines/mytonctrl-backup-restore).
+
+3. Set up alerting in MyTonCtrl to notify you of critical issues with your validator. For more information, see [MyTonCtrl private alerting bot](https://old-docs.ton.org/v3/guidelines/nodes/maintenance-guidelines/mytonctrl-private-alerting) or (and) check [MyTonCtrl public alerting bot](https://t.me/validators).
+
+4. Set up monitoring dashboards for RAM, disk, network, CPU usage and other metrics. See also [MyTonCtrl prometheus export](https://old-docs.ton.org/v3/guidelines/nodes/maintenance-guidelines/mytonctrl-prometheus). For technical assistance, please contact [@mytonctrl_help_bot](https://t.me/mytonctrl_help_bot).
+
+5. Monitor the efficiency of your validator with dashboards.
+
+ - Please verify with `MyTonCtrl` using the `check_ef` command.
+
+ - Check [Build dashboard with APIs](https://old-docs.ton.org/v3/guidelines/nodes/running-nodes/validator-node#validation-effectiveness-apis).
+
+`MyTonCtrl` enables you to evaluate the performance of validators using the command `check_ef`. This command provides efficiency data for both the last round and the current round. The data is retrieved by calling the `checkloadall` utility. Make sure that your efficiency is above 90% for the entire round period.
+
+If you encounter low efficiency, take action to resolve the issue. If necessary, contact technical support at [@mytonctrl_help_bot](https://t.me/mytonctrl_help_bot).
+
+### Learn slashing policy
+
+If a validator processes less than 90% of the expected blocks during a validation round, they will be fined by 101 TON.
+
+Learn more about the [slashing policy](https://old-docs.ton.org/v3/documentation/nodes/validation/staking-incentives#decentralized-system-of-penalties).
+
+
+## Validation effectiveness APIs
+
+Please set up dashboards to monitor your validators using the APIs provided below.
+
+### Penalized validators tracker
+
+You can track penalized validators on each round with [@tonstatus_notifications](https://t.me/tonstatus_notifications).
+
+#### Validation API
+
+You can use this [API](https://elections.toncenter.com/docs) to obtain information about current and past validation rounds (cycles) - including the timing of rounds, which validators participated, their stakes, and more. Information regarding current and past elections for each validation round is also available.
+
+#### Efficiency API
+
+You can use this [API](https://toncenter.com/api/qos/index.html#/) to obtain information about the efficiency of validators over time.
+
+This API analyzes data from the catchain to provide an estimate of a validator's efficiency. It serves as an alternative to the `checkloadall` utility.
+
+Unlike `checkloadall`, which only works on validation rounds, this API allows you to set any time interval to analyze a validator's efficiency.
+
+##### Workflow:
+
+1. To the API, provide the ADNL address of your validator along with a time interval (`from_ts`, `to_ts`). For accurate results, choose a sufficient interval, such as 18 hours ago to the present moment.
+
+2. Retrieve the result. If your efficiency percentage is below 80%, your validator is malfunctioning.
+
+3. Your validator must actively participate in validation and use the same ADNL address throughout the specified time period. For example, if a validator contributes to validation every second round, you should only indicate the intervals during which they participated. Failing to do so may result in an inaccurate underestimate. This requirement applies not only to MasterChain validators (with an index \< 100) but also to other validators (with an index > 100).
+
+## Support
+
+Contact technical support [@mytonctrl_help_bot](https://t.me/mytonctrl_help_bot). This bot is for validators only and will not assist with questions for regular nodes.
diff --git a/resources/images/nodes/run-validator/run-validator-1.png b/resources/images/nodes/run-validator/run-validator-1.png
new file mode 100644
index 000000000..6e1e53277
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-1.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-10.png b/resources/images/nodes/run-validator/run-validator-10.png
new file mode 100644
index 000000000..c30c3d1ac
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-10.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-11.png b/resources/images/nodes/run-validator/run-validator-11.png
new file mode 100644
index 000000000..e543fb378
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-11.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-12.png b/resources/images/nodes/run-validator/run-validator-12.png
new file mode 100644
index 000000000..f4a63301f
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-12.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-13.png b/resources/images/nodes/run-validator/run-validator-13.png
new file mode 100644
index 000000000..072e306b7
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-13.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-14.png b/resources/images/nodes/run-validator/run-validator-14.png
new file mode 100644
index 000000000..4141c1766
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-14.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-15.png b/resources/images/nodes/run-validator/run-validator-15.png
new file mode 100644
index 000000000..129ee27bf
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-15.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-16.png b/resources/images/nodes/run-validator/run-validator-16.png
new file mode 100644
index 000000000..c7b14d2fa
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-16.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-17.png b/resources/images/nodes/run-validator/run-validator-17.png
new file mode 100644
index 000000000..a64a8852e
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-17.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-18.png b/resources/images/nodes/run-validator/run-validator-18.png
new file mode 100644
index 000000000..6d469b570
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-18.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-19.png b/resources/images/nodes/run-validator/run-validator-19.png
new file mode 100644
index 000000000..70292bb0c
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-19.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-2.png b/resources/images/nodes/run-validator/run-validator-2.png
new file mode 100644
index 000000000..9586c7e30
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-2.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-20.png b/resources/images/nodes/run-validator/run-validator-20.png
new file mode 100644
index 000000000..cc891b72d
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-20.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-21.png b/resources/images/nodes/run-validator/run-validator-21.png
new file mode 100644
index 000000000..2f65cd022
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-21.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-22.png b/resources/images/nodes/run-validator/run-validator-22.png
new file mode 100644
index 000000000..b0ee65ccc
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-22.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-23.png b/resources/images/nodes/run-validator/run-validator-23.png
new file mode 100644
index 000000000..b143f8691
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-23.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-24.jpg b/resources/images/nodes/run-validator/run-validator-24.jpg
new file mode 100644
index 000000000..6dd99d008
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-24.jpg differ
diff --git a/resources/images/nodes/run-validator/run-validator-25.png b/resources/images/nodes/run-validator/run-validator-25.png
new file mode 100644
index 000000000..f359bbc5b
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-25.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-26.png b/resources/images/nodes/run-validator/run-validator-26.png
new file mode 100644
index 000000000..68f022ceb
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-26.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-27.png b/resources/images/nodes/run-validator/run-validator-27.png
new file mode 100644
index 000000000..30146f1e0
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-27.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-3.png b/resources/images/nodes/run-validator/run-validator-3.png
new file mode 100644
index 000000000..48be923cb
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-3.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-4.png b/resources/images/nodes/run-validator/run-validator-4.png
new file mode 100644
index 000000000..b63d15481
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-4.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-5.png b/resources/images/nodes/run-validator/run-validator-5.png
new file mode 100644
index 000000000..8ad5eae20
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-5.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-6.png b/resources/images/nodes/run-validator/run-validator-6.png
new file mode 100644
index 000000000..b8c5ad36f
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-6.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-7.png b/resources/images/nodes/run-validator/run-validator-7.png
new file mode 100644
index 000000000..2def8f124
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-7.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-8.png b/resources/images/nodes/run-validator/run-validator-8.png
new file mode 100644
index 000000000..da4c27a38
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-8.png differ
diff --git a/resources/images/nodes/run-validator/run-validator-9.png b/resources/images/nodes/run-validator/run-validator-9.png
new file mode 100644
index 000000000..aeef50c9f
Binary files /dev/null and b/resources/images/nodes/run-validator/run-validator-9.png differ