Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/everstake/ton-validation
Small utility to automate TON validator requests for continious validation and getting rewards
https://github.com/everstake/ton-validation
blockchain
Last synced: 8 days ago
JSON representation
Small utility to automate TON validator requests for continious validation and getting rewards
- Host: GitHub
- URL: https://github.com/everstake/ton-validation
- Owner: everstake
- Created: 2019-11-04T15:32:11.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-26T10:47:48.000Z (about 1 year ago)
- Last Synced: 2024-08-25T22:45:31.553Z (4 months ago)
- Topics: blockchain
- Language: Python
- Size: 619 KB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-ton - ton-validation - Small utility to automate validator requests and get rewards written in Python by [Everstake](https://everstake.one/) (Block explorers & Dev-ops tools)
README
## Small utility to automate validator requests and get rewards
Please refer to [Validator HOWTO Guide](https://test.ton.org/Validator-HOWTO.txt)#### WARNING! Highly experimental. Use at your own risk!
Tested on Ubuntu 18.04, using [this commit](https://github.com/ton-blockchain/ton/commit/ba76f1404ef06b044fcbdc2d35a5ac7b7d01cad0).> Please backup and remove your db.json to start with a clean one before running v1.3
### Required:
* Python 3 (Tested on 3.6.8)
* working Full-node that completed sync
* configured lite-client and validator-engine-console
* default keys and wallet (as shown in *Validator HOWTO Guide*) stored along with executables
* executables (fift, lite-client, validator-engine-console)
* configured env variable $FIFTPATH
* recover-query.boc which you can obtain by running (`fift -s recover-stake.fif`)
* wallet smart contract in the masterchain (*-1 identifier*)
* sufficient amount of Grams for validation purposes (20k will result in continuous process of validation in testnet)
* [tonos-cli v0.1.29](https://github.com/tonlabs/tonos-cli/releases/tag/v0.1.29) - Tested to work### Installation steps:
```
#set env variable in .bashrc file using export, here user=ton
export FIFTPATH=/home/ton/ton-sources/ton/crypto/fift/lib:/home/ton/ton-sources/ton/crypto/smartcont
export BETTER_EXCEPTIONS=1
sudo apt install python3-pip
sudo apt install python3-venv
python3 -m venv env
if you use bash -> source env/bin/activate
#After that your promt will change
#Place requirements.txt and validator.py in directory with executables
pip install -r requirements.txt
#Run and check the output
python validator.py
#To exit run
deactivate
```
#### How to run:Place validator.py along with executables and run
***python validator.py***
### Important notes
Backup your node config because the script makes a lot of keys.
We recommend to check the output and the source code.
As seqno of your wallet smartcontracts changes - old *.boc* files are useless, so we don't keep them.
If everything is OK, these files will be periodically overwritten:
- return-stake.boc
- validator-to-sign.bin
- validator-query.boc
- finish.boc#### Current dir listing before running the script:
![DIR listing](img/dir_before.png)#### Running the script:
![DIR listing](img/script_run.png)#### Current dir listing after running the script:
![DIR listing](img/dir_after.png)#### Notes on automation
Run the script with *watch* for a couple of days to test it:
`(env) ton@server /m/o/T/b/950e2> watch -n 1800 -d "python validator.py"`
When you have checked everything you can proceed and configure running the script with cron:
`*/3 * * * * cd /path/to/DIR && env/bin/python validator.py > /dev/null 2>&1`
Refer to a good article about [cron and python](https://monicagranbois.com/blog/python/cron-and-python-virtualenv/).
#### Logs
Script logs the results of its works to **last.log** file and to separate directories regarding anything about current elections.
Also, it stores stats and keys in DB file.
#### DB file
The db file is a json generated by [TinyDB](https://github.com/msiemens/tinydb).
You can parse it by running `cat db.json | jq -r '._default' | jq '[.[]]'` to get readable output.
See how to get some graphs and good-looking charts at **[everstake/ton-helpers](https://github.com/everstake/ton-helpers)**