-
Notifications
You must be signed in to change notification settings - Fork 8
Сокращение объема монет
Если общий объем обещанных сумм стал меньше объема 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