Skip to content

Commit

Permalink
v1.2.0 (#5)
Browse files Browse the repository at this point in the history
* multirule

* doc ext

* fdtab

* check 100%

* cfg
  • Loading branch information
dkodnik authored Nov 5, 2019
1 parent 7b42ec4 commit 1bb05ed
Show file tree
Hide file tree
Showing 4 changed files with 380 additions and 209 deletions.
202 changes: 142 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,143 +1,225 @@
Автоделегирование для блокчейна Minter
## Настройка
``adlg.toml`` файл настройки автоделегатора в формате [Toml v0.5.0](https://github.com/mojombo/toml/blob/master/versions/en/toml-v0.5.0.md). Для изменения его в операционно системе Windows, лучше использовать редактор [Notepad++](https://notepad-plus-plus.org/download/).
``adlg.toml`` файл настройки автоделегатора в формате [Toml v0.5.0](https://github.com/mojombo/toml/blob/master/versions/en/toml-v0.5.0.md). Для изменения его в операционной системе Windows, лучше использовать редактор [Notepad++](https://notepad-plus-plus.org/download/).

Можно указать при запуске другой файл конфигурации: ``adlg.exe adlg_2.toml``

### Пример настройки для 1 аккаунта в 1 валидатора
Для генерации приватного ключа аккаунта можно воспользоваться:

* API сервера авторизации http://api.validator.center/v1/authSeed?sp=сид-фраза
* Поднять свой сервер авторизации https://github.com/ValidatorCenter/sauth/releases
* Программой "seed_info.exe" из пакета утилит https://github.com/ValidatorCenter/generator_txoff/releases

### Пример настройки для 1 аккаунта с 1 правилом в 1 валидатора

Для аккаунта(кошелька) выполняются операции:

* В валидатора "Mp...валидатор" происходит делегирование 1 раз: основной монетой (100% от суммы делегирования).
* Минимальная сумма делегирования - 1000 основных монет.
* Готовы оплатить двойную комиссию за транзакцию.

```toml
# Адрес мастерноды с открытым доступом к API, по умолчанию - мастернода разработчиков Minter
address = "https://api.minter.stakeholder.space"
# Публичные ключи мастернод и процентное соотношение, суммарно 100, без знака % и только целое число
nodes = [ ["Mp...валидатор", "100"] ]

# Адреса аккаунтов в виде "Mx..." и приватные ключи аккаунтов
accounts = [ ["Mx...аккаунт","приватный-ключ-аккаунта"] ]

# Монета сети (в тестовой MNT, в рабочей BIP)
coin_net = "BIP"
nodes = [
["rule1", "Mp...валидатор", "100"]
]
# Приватные ключи аккаунтов
accounts = [
["приватный-ключ-аккаунта", "rule1"]
]
# Минимальная сумма делегирования
min_amount = [
["1000", "rule1"]
]
# Время ожидания между делегированием (в минутах)
timeout = 11
# Минимальная сумма делегирования
min_amount = 1000
# Тип сети main или test
chain = "main"
# Максимальный коэф. оплаты комиссии
max_gas = 2
```

### Пример настройки для 1 аккаунта в 2 валидатора
### Пример настройки для 1 аккаунта с 1 правилом в 2 валидатора

Для аккаунта(кошелька) выполняются операции:

* В валидатора "Mp...валидатор-1" происходит делегирование 1 раз: основной монетой (60% от суммы делегирования).
* В валидатора "Mp...валидатор-2" происходит делегирование 1 раз: основной монетой (40% от суммы делегирования).
* Минимальная сумма делегирования - 1000 основных монет.
* Готовы оплатить двойную комиссию за транзакцию.

```toml
# Адрес мастерноды с открытым доступом к API, по умолчанию - мастернода разработчиков Minter
address = "https://api.minter.stakeholder.space"
# Публичные ключи мастернод и процентное соотношение, суммарно 100, без знака % и только целое число
nodes = [ ["Mp...валидатор-1", "60"],
["Mp...валидатор-2", "40"] ]

# Адреса аккаунтов в виде "Mx..." и приватные ключи аккаунтов
accounts = [ ["Mx...аккаунт","приватный-ключ-аккаунта"] ]

# Монета сети (в тестовой MNT, в рабочей BIP)
coin_net = "BIP"
nodes = [
["rule1", "Mp...валидатор-1", "60"],
["rule1", "Mp...валидатор-2", "40"]
]
# Приватные ключи аккаунтов
accounts = [
["приватный-ключ-аккаунта", "rule1"]
]
# Минимальная сумма делегирования
min_amount = [
["1000", "rule1"]
]
# Время ожидания между делегированием (в минутах)
timeout = 11
# Минимальная сумма делегирования
min_amount = 1000
# Тип сети main или test
chain = "main"
# Максимальный коэф. оплаты комиссии
max_gas = 2
```

### Пример настройки для 2 аккаунта в 3 валидатора
### Пример настройки для 2 аккаунта с 1 правилом в 3 валидатора

Для каждого аккаунта(кошелька) выполняются операции:

* В валидатора "Mp...валидатор-1" происходит делегирование 1 раз: основной монетой (60% от суммы делегирования).
* В валидатора "Mp...валидатор-2" происходит делегирование 1 раз: основной монетой (30% от суммы делегирования).
* В валидатора "Mp...валидатор-3" происходит делегирование 1 раз: основной монетой (10% от суммы делегирования).
* Минимальная сумма делегирования - 1000 основных монет.
* Готовы оплатить двойную комиссию за транзакцию.

```toml
# Адрес мастерноды с открытым доступом к API, по умолчанию - мастернода разработчиков Minter
address = "https://api.minter.stakeholder.space"
# Публичные ключи мастернод и процентное соотношение, суммарно 100, без знака % и только целое число
nodes = [ ["Mp...валидатор-1", "60"],
["Mp...валидатор-2", "30"],
["Mp...валидатор-3", "10"] ]

# Адреса аккаунтов в виде "Mx..." и приватные ключи аккаунтов
accounts = [ ["Mx...аккаунт-1","приватный-ключ-аккаунта-1"],
["Mx...аккаунт-2", "приватный-ключ-аккаунта-2"] ]

# Монета сети (в тестовой MNT, в рабочей BIP)
coin_net = "BIP"
nodes = [
["rule1", "Mp...валидатор-1", "60"],
["rule1", "Mp...валидатор-2", "30"],
["rule1", "Mp...валидатор-3", "10"]
]
# Приватные ключи аккаунтов
accounts = [
["приватный-ключ-аккаунта-1", "rule1"],
["приватный-ключ-аккаунта-2", "rule1"]
]
# Минимальная сумма делегирования
min_amount = [
["1000", "rule1"]
]
# Время ожидания между делегированием (в минутах)
timeout = 11
# Минимальная сумма делегирования
min_amount = 1000
# Тип сети main или test
chain = "main"
# Максимальный коэф. оплаты комиссии
max_gas = 2
```

### Пример настройки для 2 аккаунта в 2 валидатора и 2 кастомные монеты
### Пример настройки для 2 аккаунта с 1 правилом в 2 валидатора и 2 кастомные монеты

Для каждого аккаунта(кошелька) выполняются операции:

* В валидатора "Mp...валидатор-1" происходит делегирование 2 раза: первый раз - основной монетой (60% от суммы делегирования) и второй раз - кастомной монетой (на 30% от суммы делегирования закупается кастомная монета и делегируется).
* В валидатора "Mp...валидатор-2" происходит делегирование 1 раз: кастомной монетой (на 10% от суммы делегирования закупается кастомная монета и делегируется).
* Минимальная сумма делегирования - 1000 основных монет.
* Готовы оплатить двойную комиссию за транзакцию.

```toml
# Адрес мастерноды с открытым доступом к API, по умолчанию - мастернода разработчиков Minter
address = "https://api.minter.stakeholder.space"
# Публичные ключи мастернод и процентное соотношение, суммарно 100, без знака % и только целое число
nodes = [ ["Mp...валидатор-1", "60"],
["Mp...валидатор-1", "30", "VALIDATOR"],
["Mp...валидатор-2", "10", "ROYALTY"] ]
nodes = [
["rule1", "Mp...валидатор-1", "60"],
["rule1", "Mp...валидатор-1", "30", "VALIDATOR"],
["rule1", "Mp...валидатор-2", "10", "ROYALTY"]
]
# Приватные ключи аккаунтов
accounts = [
["приватный-ключ-аккаунта-1", "rule1"],
["приватный-ключ-аккаунта-2", "rule1"]
]
# Минимальная сумма делегирования
min_amount = [
["1000", "rule1"]
]
# Время ожидания между делегированием (в минутах)
timeout = 11
# Тип сети main или test
chain = "main"
# Максимальный коэф. оплаты комиссии
max_gas = 2
```

### Пример настройки для 2 аккаунта с 2 правилами

# Адреса аккаунтов в виде "Mx..." и приватные ключи аккаунтов
accounts = [ ["Mx...аккаунт-1","приватный-ключ-аккаунта-1"],
["Mx...аккаунт-2", "приватный-ключ-аккаунта-2"] ]
Для первого аккаунта(кошелька) выполняются операции по правилу №1 - "rule1":

# Монета сети (в тестовой MNT, в рабочей BIP)
coin_net = "BIP"
* В валидатора "Mp...валидатор-1" происходит делегирование 2 раза: первый раз - основной монетой (60% от суммы делегирования) и второй раз - кастомной монетой (на 30% от суммы делегирования закупается кастомная монета и делегируется).
* В валидатора "Mp...валидатор-2" происходит делегирование 1 раз: кастомной монетой (на 10% от суммы делегирования закупается кастомная монета и делегируется).
* Минимальная сумма делегирования - 1000 основных монет.
* Готовы оплатить двойную комиссию за транзакцию.

Для второго аккаунта(кошелька) выполняются операции по правилу №2 - "rule2":

* В валидатора "Mp...валидатор-3" происходит делегирование 1 раз: кастомной монетой (на 100% от суммы делегирования закупается кастомная монета и делегируется).
* Минимальная сумма делегирования - 100 основных монет.
* Готовы оплатить двойную комиссию за транзакцию.

```toml
# Адрес мастерноды с открытым доступом к API, по умолчанию - мастернода разработчиков Minter
address = "https://api.minter.stakeholder.space"
# Публичные ключи мастернод и процентное соотношение, суммарно 100, без знака % и только целое число
nodes = [
["rule1", "Mp...валидатор-1", "60"],
["rule1", "Mp...валидатор-1", "30", "VALIDATOR"],
["rule1", "Mp...валидатор-2", "10", "ROYALTY"],
["rule2", "Mp...валидатор-3", "100", "ROYALTY"]
]
# Приватные ключи аккаунтов
accounts = [
["приватный-ключ-аккаунта-1", "rule1"],
["приватный-ключ-аккаунта-2", "rule2"]
]
# Минимальная сумма делегирования
min_amount = [
["1000", "rule1"],
["100", "rule2"]
]
# Время ожидания между делегированием (в минутах)
timeout = 11
# Минимальная сумма делегирования
min_amount = 1000
# Тип сети main или test
chain = "main"
# Максимальный коэф. оплаты комиссии
max_gas = 2
```


### Пример настройки для делегирования 2 аккаунта в 1 валидатора и 1 кастомные монеты, а также закупка 1 кастомной монеты без делегирования
### Пример настройки для делегирования 2 аккаунта с 1 правилом в 1 валидатора и 1 кастомные монеты, а также закупка 1 кастомной монеты без делегирования

Для каждого аккаунта(кошелька) выполняются операции:

* В валидатора "Mp...валидатор-1" происходит делегирование 2 раза: первый раз - основной монетой (60% от суммы делегирования) и второй раз - кастомной монетой (на 30% от суммы делегирования закупается кастомная монета и делегируется).
* Закупка: кастомной монетой (на 10% от суммы делегирования закупается кастомная монета).
* Минимальная сумма делегирования - 1000 основных монет.
* Готовы оплатить двойную комиссию за транзакцию.

```toml
# Адрес мастерноды с открытым доступом к API, по умолчанию - мастернода разработчиков Minter
address = "https://api.minter.stakeholder.space"
# Публичные ключи мастернод и процентное соотношение, суммарно 100, без знака % и только целое число
nodes = [ ["Mp...валидатор-1", "60"],
["Mp...валидатор-1", "30", "VALIDATOR"],
["", "10", "ROYALTY"] ]

# Адреса аккаунтов в виде "Mx..." и приватные ключи аккаунтов
accounts = [ ["Mx...аккаунт-1","приватный-ключ-аккаунта-1"],
["Mx...аккаунт-2", "приватный-ключ-аккаунта-2"] ]

# Монета сети (в тестовой MNT, в рабочей BIP)
coin_net = "BIP"
nodes = [
["rule1", "Mp...валидатор-1", "60"],
["rule1", "Mp...валидатор-1", "30", "VALIDATOR"],
["rule1", "", "10", "ROYALTY"]
]
# Приватные ключи аккаунтов
accounts = [
["приватный-ключ-аккаунта-1", "rule1"],
["приватный-ключ-аккаунта-2", "rule1"]
]
# Минимальная сумма делегирования
min_amount = [
["1000", "rule1"]
]
# Время ожидания между делегированием (в минутах)
timeout = 11
# Минимальная сумма делегирования
min_amount = 1000
# Тип сети main или test
chain = "main"
# Максимальный коэф. оплаты комиссии
max_gas = 2
```
```
31 changes: 18 additions & 13 deletions adlg.toml
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
# Адрес мастерноды с открытым доступом к API, по умолчанию - мастернода разработчиков Minter
address = "https://minter-nodes-1.mainnet.minter.network"
# Публичные ключи мастернод и процентное соотношение, суммарно 100, без знака % и только целое число
nodes = [ ["Mp77774337c2212ce5a9b57b9392daf5e11639f7fd38e1a16a584291ed3a98b777", "60"],
["Mp77774337c2212ce5a9b57b9392daf5e11639f7fd38e1a16a584291ed3a98b777", "30", "VALIDATOR"],
["", "10", "ROYALTY"] ]
address = "https://api.minter.stakeholder.space"
# Правила для аккаунтов по нодам, в которых - публичные ключи мастернод и процентное соотношение,
# суммарно 100, без знака % и только целое число
nodes = [
["rule1", "Mp77774337c2212ce5a9b57b9392daf5e11639f7fd38e1a16a584291ed3a98b777", "60"],
["rule1", "Mp77774337c2212ce5a9b57b9392daf5e11639f7fd38e1a16a584291ed3a98b777", "30", "VALIDATOR"],
["rule1", "", "10", "ROYALTY"]
]

# Адреса аккаунтов в виде "Mx..." и приватные ключи аккаунтов
accounts = [ ["Mx...","..."],
["Mx...","..."],
["Mx...","..."] ]
# Монета сети (в тестовой MNT, в рабочей BIP)
coin_net = "BIP"
# Приватные ключи аккаунтов с правилами делегирования
accounts = [
["...", "rule1"],
["...", "rule1"],
["...", "rule1"]
]
# Минимальная сумма делегирования для правил
min_amount = [
["100", "rule1"]
]
# Время ожидания между делегированием (в минутах)
timeout = 10
# Минимальная сумма делегирования
min_amount = 100
# Тип сети main или test
chain = "main"
# Максимальный коэф. оплаты комиссии
Expand Down
4 changes: 4 additions & 0 deletions compile.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
#!/bin/sh

rm ./adlg_win64.exe
rm ./adlg_lin64
rm ./adlg_mac64

GOOS=windows GOARCH=amd64 go build -ldflags "-s" -o adlg_win64.exe deleg.go
GOOS=linux GOARCH=amd64 go build -ldflags "-s" -o adlg_lin64 deleg.go
GOOS=darwin GOARCH=amd64 go build -ldflags "-s" -o adlg_mac64 deleg.go
Loading

0 comments on commit 1bb05ed

Please sign in to comment.