Skip to content

Сокращение объема монет

c-darwin edited this page Dec 9, 2015 · 2 revisions

Если общий объем обещанных сумм стал меньше объема Dcoin какой-либо валюты или майнеры проголосовали за уменьшение объема монет, то все ноды становятся готовы принять транзакцию new_reductuon. И как только она попадает в очередной Блок, во всех локальных базах данных нодов происходит вызов следующих sql-запросов

UPDATE `wallets` 
SET `amount` = `amount`*{$k} 
WHERE `currency_id` = {$currency_id}
и
UPDATE `promised_amount` 
SET tdc_amount` = `tdc_amount`*{$k} 
WHERE `currency_id` = {$currency_id} 
где $k = (100 - $pct) / 100;

Автоматический запуск

Если объем обещанных сумм становится меньше объема Dcoin какой-либо валюты, тогда вызывается new_reductuon с 10% для данной валюты. При этом, если через 2-е суток ситуация не изменится, то произойдет новое сокращение на 10%, и так до тех пор, пока объем обещанных сумм не станет больше объема Dcoin.
Запрос для определения объема Dcoin:

SELECT SUM(`tdc_amount`) + (SELECT SUM(`amount`) FROM `wallets` WHERE `currency_id` = {$currency}) 
FROM `promised_amount` 
WHERE `currency_id` = {$currency}
Запрос для определения объема обещанных сумм:
SELECT  sum(`amount`)
FROM `promised_amount`
WHERE `status` = 'mining' AND
      `del_block_id` = 0 AND
      `del_mining_block_id` = 0 AND
      `currency_id` = {$currency} AND
     (`cash_request_out_time` = 0 OR `cash_request_out_time` > ".(time() - $this->variables['cash_request_time']).")
В кабинете в "Остальное"->"Статистика" можно увидеть общий объем Dcoin и объем обещанных сумм.

Запуск по результатам голосования

Если 50% всех майнеров, у которых в обещанных суммах добавлена данная валюта, проголосуют за сокращение её объема, тогда будет сгенерирована тр-ия new_reductuon, в которой будет указан тот %, за который проголосует большинство. Кол-во голосов хранится в таблице votes_reduction

См. также

Clone this wiki locally