0.905
This commit is contained in:
@@ -204,47 +204,6 @@ pm2 start run-test.js
|
||||
|
||||
## Описание принципа хранения монет
|
||||
Монеты хранятся на счетах, по аналогии с банковскими счетами. Счета нумеруются с 0 по порядку. Нулевой номер счета имеет системный аккаунт, на который первоначально эмитировано 1 млрд монет. Для создания нового счета нужно в сеть отправить спец. транзакцию с кодом 100, в которой указывается публичный ключ владельца счета и необязательный параметр название счета (строка до 40 байт длины). Название желательно для проверки правильности ввода номера счета при отправке платежа.
|
||||
Минимальный размер транзакции перевода монет со счета на счет равен 114 байтам. Такой размер получается в том случае, если указан один получатель и нет описания назначения платежа.
|
||||
Транзакция в текстовом в формате JSON выглядит так:
|
||||
```js
|
||||
{
|
||||
"Type": 110,
|
||||
"Version": 2,
|
||||
"Currency": 0,
|
||||
"FromID": 1,
|
||||
"OperationID": 40167,
|
||||
"To":
|
||||
[
|
||||
{
|
||||
"ID": 2,
|
||||
"SumTER": 100,
|
||||
"SumCENT": 0
|
||||
}
|
||||
],
|
||||
"Description": "test",
|
||||
"Sign": "B39C39D91136E92C5B9530ABC683D9A1AF51E27382AFC69EA3B1F14AD7C4CDBE46D36BD743F2B4AE7760F8DDE706D81FB8201ABBF27DABF6F1EC658FE432C141"
|
||||
}
|
||||
```
|
||||
* Примечание: транзакция в примере выше имеет длину 118 байт
|
||||
|
||||
Version = 0 - цифровая подпись содержимого транзакции
|
||||
Version = 2 - цифровая подпись содержимого транзакции + список 33 байтных публичных ключей получателей. Применяется для защиты от мутабельности аккаунтов при маленьком времени подтверждении. Например создается аккаунт и в следующий блок отправляется транзакция на перевод монет на этот счет. Потом транзакция из первого блока исчезает вследствии мутабельности блокчейн сети, в вместо нее создается другая транзакция создания счета - от неизвестной третьей стороны. В этом случае монеты не переведутся на неизвестный счет и они не будут потеряны, т.к. произойдет проверка соответствия публичного кошелька получателя требуемому значению.
|
||||
Version = 3 - поддержка переводов на счета со смарт-контрактами
|
||||
|
||||
Текстовое представление запаковывается в бинарный формат + добавляется 12 байт POW (для защиты от ДДОС).
|
||||
Назначение платежа допускается до 200 байт. Вообще размер ограничен 65535 байтами, но 200 байт это размер который видят кошельки пользователей, большую длину они обрезают.
|
||||
Чем больше длина транзакции, тем больше нужно выполнить расчет POW, чтобы транзакция была конкурентоспособна и попала в блок.
|
||||
|
||||
|
||||
При каждом изменении таблицы счетов в блокчейн записывается хеш. Это реализуется с помощью специального типа транзакций с кодом 117. Они запускаются системным DApp Accounts, который обслуживает таблицу счетов.
|
||||
Транзакция имеет формат:
|
||||
```js
|
||||
{
|
||||
"Type": 119,
|
||||
"BlockNum": 1500000,
|
||||
"Hash": "AB1429BC0FE5B28DB218F30D46AE9F953DC34059EA1A65A15775D73389A4EB51"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Майнинг возможен только при наличии публичного IP
|
||||
|
||||
Reference in New Issue
Block a user