Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/everx-labs/ever-node-tools
Tools for Everscale/Venom node
https://github.com/everx-labs/ever-node-tools
blockchain everscale rust venom-blockchain venom-developer-program venom-tools
Last synced: about 1 month ago
JSON representation
Tools for Everscale/Venom node
- Host: GitHub
- URL: https://github.com/everx-labs/ever-node-tools
- Owner: everx-labs
- License: apache-2.0
- Created: 2020-06-29T07:55:44.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-21T06:54:25.000Z (8 months ago)
- Last Synced: 2024-04-21T21:40:07.839Z (8 months ago)
- Topics: blockchain, everscale, rust, venom-blockchain, venom-developer-program, venom-tools
- Language: Rust
- Homepage:
- Size: 592 KB
- Stars: 16
- Watchers: 13
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# WARNING! This repository is obsolete
Tools for Everscale/Venom blockchains were merged into Everscale/Venom node repository https://github.com/tonlabs/ever-node.git
# ever-node-tools
Tools for Everscale/Venom blockchains
## Table of Contents
- [About](#about)
- [Getting Started](#getting-started)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)## About
This repository contains a collection of tools used to manage the Everscale/Venom node.
## Getting Started
### Prerequisites
- Rust complier v1.65+.
- OpenSSL
```bash
sudo apt-get install libssl-dev (openssl-devel on Fedora)
sudo apt-get install pkg-config
```
### Installing```
git clone --recurse-submodules https://github.com/tonlabs/ever-rldp.git
cd ever-rldp
cargo build --release
```## Usage
# console
This tool serves the purpose of generating election requests for the Rust Node. The tool is compatible with [TONOS-CLI](https://github.com/tonlabs/tonos-cli) and allows to perform all actions necessary to obtain a signed election request.
### Command syntax
```bash
console -C console.json -c "commamd with parameters" -c "another command" -t timeout
```Where
`console.json` - path to configuration file
`commamd with parameters`/ `another command` – any of the supported console commands with necessary parameters
`timeout` – command timeout in seconds
Configuration file should be created manually and have the following format:
```json
{
"config": {
"server_address": "127.0.0.1:4924",
"server_key": {
"type_id": 1209251014,
"pub_key": "cujCRU4rQbSw48yHVHxQtRPhUlbo+BuZggFTQSu04Y8="
},
"client_key": {
"type_id": 1209251014,
"pvt_key": "oEivbTDjSOSCgooUM0DAS2z2hIdnLw/PT82A/OFLDmA="
}
},
"wallet_id": "-1:af17db43f40b6aa24e7203a9f8c8652310c88c125062d1129fe883eaa1bd6763",
"max_factor": 2.7
}
```Where
`server_address` – address and port of the node.
`server_key` – structure containing server public key. Can be generated with keygen tool.
`client_key` – structure containing client private key. Can be generated with keygen tool.
`type_id` – key type, indicating ed25519 is used. Should not be changed.
`wallet_id` – validator wallet address.
`max_factor` – [max_factor](https://docs.ton.dev/86757ecb2/p/456977-validator-elections) stake parameter (maximum ratio allowed between your stake and the minimal
validator stake in the elected validator group), should be ≥ 1
### Commands#### election-bid
**`election-bid`** - obtains required information from the blockchain, generates all the necessary keys for validator, prepares the message in predefined format, asks to sign it and sends to the blockchain.
params:
• `election-start` - unixtime of election start.
• `election-end` - unixtime of election end.
• `filename` - filename with path to save body of message ("validator-query.boc" by default)
Example:
```bash
console -c "election-bid 1608205174 1608288600"
```Command calls all other necessary subcommands automatically. Election request is written to file.
#### recover_stake
**`recover_stake`** – recovers all or part of the validator stake from elector.
params:
• `filename` - filename with path to save body of message ("recover-query.boc" by default)
Example:
```bash
console -c "recover_stake"
```#### newkey
**`newkey`** - generates new key pair on server.
Command has no parameters.
Returns ed25519 hash of public key in hex and base64 format.
Example:
```bash
console -c "newkey"
```#### exportpub
**`exportpub`** - exports public key by key hash.
params:
• `key_hash` - ed25519 hash of public key in hex or base64 format.
Returns public_key - ed25519 public key in hex and base64 format.
Example:
```bash
console -c "exportpub 4374376452376543"
```#### sign
**`sign`** - signs bytestring with private key.
params:
• `key_hash` - ed25519 hash of public key in hex or base64 format.
• `data` - data in hex or base64 format.
Example:
```bash
console -c "sign 4374376452376543 af17db43f40b6aa24e7203a9f8c8652310c88c125062d1129f"
```#### addpermkey
**`addpermkey`** - adds validator permanent key
params:
• `key_hash` - ed25519 hash of public key in hex or base64 format.
• `election-date` - election start in unixtime.
• `expire-at`- time the key expires and is deleted from node, in unixtime.
Example:
```bash
console -c "addpermkey 4374376452376543 1608205174 1608288600"
```#### addtempkey
**`addtempkey`** - adds validator temporary key.
params:
• `perm_key_hash` - ed25519 hash of permanent public key in hex or base64 format.
• `key_hash` - ed25519 hash of public key in hex or base64 format.
• `expire-at` - time the key expires and is deleted from node, in unixtime.
Example:
```bash
console -c "addtempkey 4374376452376543 6783978551824553 1608288600"
```#### addvalidatoraddr
**`addvalidatoraddr`** - adds validator ADNL address.
params:
• `perm_key_hash` - ed25519 hash of permanent public key in hex or base64 format.
• `key_hash` - ed25519 hash of public key in hex or base64 format.
• `expire-at`- time the ADNL address expires and is deleted from node, in unixtime.
Example:
```bash
console -c "addvalidatoraddr 4374376452376543 6783978551824553 1608288600"
```#### addadnl
**`addadnl`** – sets key as ADNL address.
params:
• `perm_key_hash` - ed25519 hash of permanent public key in hex or base64 format.
• `key_hash` - ed25519 hash of public key in hex or base64 format.
• `expire-at` - time the ADNL address expires and is deleted from node, in unixtime.
Example:
```bash
console -c "addadnl 4374376452376543 6783978551824553 1608288600"
```#### getstats
**`getstats`** - get node status, validation status (if node is validator) and other information.
Command has no parameters.
Returns node's information in JSON-format.
base json-fields:
• `sync_status` - synchronization status description;
• `masterchainblocktime` - field with time of last masterchain block, downloaded by node;
• `masterchainblocknumber` - field with number of last masterchain block, downloaded by node;
• `timediff` - field with time difference between now and last loaded masterchain block's time;
• `in_current_vset_p34` - true, if config param p34 contains this node's key;
• `in_current_vset_p36` - true, if config param p36 contains this node's key;
• `last applied masterchain block id` - field with information about last applied masterchain block's id;
• `processed workchain` - field with information about the processed workchain;
• `validation_stats` - field with information about validated workchains;
• `tps_10` - transactions per second average over 10 seconds;
• `tps_300` - transactions per second average over 300 seconds;
Example:
```bash
console -c "getstats"
```#### sendmessage
**`sendmessage`** - loads a serialized message from file and sends it to nodes as an external message.
params:
• `file_name` - serialized message file (in bag of cells format).
Example:
```bash
console -c "sendmessage message.boc"
```#### getaccountstate
**`getaccountstate`** - save account to the file (in bag of cells format).
params:
• `account_address` - is the account address.
• `file_name` - is the file's name to save account's boc.
Returns account's boc.
Example:
```bash
console -c "getaccountstate 0:000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F account.boc"
```#### getaccount
**`getaccount`** - load and save (optional) account information in json-format.
params:
• `account_address` - is the account address.
• `file_name` - is the file's name to save account information in json-format. This param is optional.
Returns json with account information.
Base json-fields:
• `acc_type` - account type description;
• `balance` - account balance;
• `last_trans_lt` - logical time of the last account's transaction;
• `data(boc)` - account`s boc.
Example:
```bash
console -c "getaccount 0:000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
```#### getconfig
**`getconfig`** - get current config param from masterchain state.
params:
• `param_number` - config parameter number.
Returns boc with current config param.
Example:
```bash
console -c "getconfig 15"
```#### getblockchainconfig
**`getblockchainconfig`** - get current config from masterchain state.
Returns boc with current config.
Example:
```bash
console -c "getblockchainconfig"
```# zerostate
This tool generates config and zerostate for network launch from json zerostate file.
### How to use
```bash
zerostate -i zerostate.json
```Where
`zerostate.json` – is the zerostate file.
# keygen
This tool generates an ed25519 key and prints it out in different formats.
### How to use
```bash
keygen
```Command has no parameters.
# gendht
This tool generates the node DHT record, for example, for the purposes of adding it to the global blockchain config.
### How to use
```bash
gendht ip:port pvt_key
```Where
`ip:port` – Node IP address and port.
`pvt_key` – Node private key.
Example:
```bash
gendht 51.210.114.123:30303 ABwHd2EavvLJk789BjSF3OJBfX6c26Uzx1tMbnLnRTM=
```# dhtscan
This tool scans DHT for node records.
### How to use
```bash
dhtscan [--jsonl] [--overlay] [--workchain0] path-to-global-config
```Where
`--jsonl` – optional flag that sets the output as single line json. Default output is multiline json.
`--overlay` – optional flag to search for overlay nodes.
`--workchain0` – optional flag to search both in masterchain and basechain. By default only masterchain is searched.
`path-to-global-config` – path to global config file.
This tool prints a state or block from the database.
### How to use
```bash
print -d path [-s state_id] [-b block_id] [--accounts]
```Where
`path` – path to node database.
`block_id` – id of the block to be printed.
`state_id` – id of the state to be printed.
`accounts` - short info of all accounts will be printed as json
## Contributing
Contribution to the project is expected to be done via pull requests submission.
## License
See the [LICENSE](LICENSE) file for details.
## Tags
`blockchain` `everscale` `rust` `venom-blockchain` `venom-developer-program` `venom-tools`