Author

Topic: ***coin-qt и размер комиссий (Read 2041 times)

ri
full member
Activity: 140
Merit: 118
December 21, 2013, 03:06:51 PM
#12
Опа... Попробовал сегодня отправку стандартными средствами - и отправилось. Без комиссии.

Все чудесатее и чудесатее.
ri
full member
Activity: 140
Merit: 118
December 21, 2013, 01:57:40 PM
#11
Двойных кавычек действительно не было, но и ними не получилось... Попробовал даже отправить на два адреса одновременно (второй - один из моих адресов), предположив, что данная команда, предназначенная для рассылки по нескольким адресам не может все отправить на один, но результата все равно не добился - отвечает "Error: type mismatch". Возможно, разработчики bbqcoin случайно сломали механизм выполнения этой команды...
legendary
Activity: 1120
Merit: 1069
December 20, 2013, 04:18:00 AM
#10
да, да и по всем пунктам да.

Аккаунт в кошельке - это неудачная попытка сделать функционал внутренних аккаунтов на кошельке, до сих пор ни в одном форке так и не исправленная.
Аккаунт - это текстовая метка, которую вы устанавливаете адресу (можно нескольким адресам дать одну и ту же метку - они будут объедены в один аккаунт). Кошелек корректно учитывает баланс на этом аккаунте, когда вы используете rpc-запрос sendfrom или пополняете баланс аккаунта, переводя на один из его адресов монеты, но как только вы потратите монеты с общего аккаунта '' или воспользуетесь копией кошелька для отправки монет (т.е. информация будет принята кошельком по факту, без конкретизации, с какого аккаунта были сняты деньги), то тогда корректность учета баланса будет нарушена.
Проблема в том что когда вы делаете sendfrom монеты могут быть физически истрачены с любых адресов в кошельке, даже из других аккаунтов, а баланс будет подправлен тот что указан, отсюда и расхождение. Совершенно нормально в результате получить отрицательные балансы по аккаунтам или вообще неверный их расчет.
Я не рекомендовал бы пользоваться этим механизмом и он давно требует полной переделки.

Пример sendmany - именно этой командой я последний раз делал выплату дивидендов по своему groupbuy:
Quote
sendmany '' '{"1N6dM97LrbErjiPY1TCsq3hYegkoSvtMoB":0.29784303,"19oydV6emRs3NDDA5v1wcjc6i2EnfCyNYV":0.056732,"1GWHJRBXBTeY34JNqvcNGNBoUSoQrP5zEL":0.03939722}'

я думаю у вас адреса не заключены в двойные ковычки (формат json).
ri
full member
Activity: 140
Merit: 118
December 19, 2013, 04:47:56 PM
#9
Уважаемые форумчане, спасибо за ответы и простите, если испытываю ваше терпение ламерскими вопросами, но все же хотелось бы разобраться...

Т.е. для этой команды обязательно указывать - адрес, на который пришли монеты или что-то другое? Вообще, признаться, я не разобрался с синтаксисом подсказок, выводимых в консоли командой help - что означают различные виды скобок... В связи с чем три вопроса - для общего уяснения:

1. Судя по вышенаписанному, фигурные скобки {} - должны присутствовать в тексте команды, так?
2. Угловые скобки <> - в команде не используются, это просто указание на обязательный параметр?
3. Квадратные скобки [] - в команде не используются, указывают, что параметр в них заключенный необязателен и может быть опущен?

Общий вопрос - можно ли где-нибудь найти подробное описание команд консоли на русском языке?

По существу:
sendmoney '' '{куда:сколько}'
увы, тоже не сработала, выводит
Error: type mismatch

Попытался разобраться, что же такое , покопавшись в списке команд консоли нашел listaccounts, выводящую у меня следующее:

{
"" : 1.04769076,
"p2pool.org" : 0.00000000,
"p2pool.ru" : 0.00000000
}

Здесь p2pool.org и p2pool.ru - метки к адресам, которые я указывал при майнинге на соответствующих пулах. Я так понимаю, что раз там по нулям - получается, что все монеты, которые я намайнил на этих пулах были израсходованы либо при отправке на биржу, либо при отправке самому себе (были такие транзакции при моих экспериментах), либо вернулись на мой кошелек в качестве сдачи с этих транзакций. А раз аккаунт (вот тут физического смысла не понял - что есть аккаунт?) '' содержит все средства на кошельке, то по идее
sendmoney '' '{куда:сколько}'
должна была сработать...
legendary
Activity: 1120
Merit: 1069
December 19, 2013, 03:13:55 PM
#8
черт, написано же
sendmany {address:amount,...}
и я забыл указать

sendmoney '' '{куда:сколько}'

если у вас адреса получения монет были помечены чем то отличным от пустой строки, уберите пометку (или укажите ее в sendmany), это и есть название аккаунта.
ri
full member
Activity: 140
Merit: 118
December 19, 2013, 12:19:43 PM
#7
В общем, почти опустошил кошелек посредством уменьшения суммы платежей (т.е. из 19 с небольшим, за перевод которых требовалась комиссия в 3.8, 18 перевел вообще без комиссии, разделив на 4 платежа (5+5+4+4). Оставшийся 1 с копейками требует за вывод комиссию в 0.6. Попробовал sendmany с кавычками, в вариантах

sendmany {адрес_получателя:сумма_на_кошельке}
и соответственно
sendmany '{адрес_получателя:сумма_на_кошельке}'

В обоих случаях получил
{"code":-1,"message":"sendmany {address:amount,...} [minconf=1] [comment]\namounts are double-precision floating point numbers"}

На всякий случай попробовал в формате
sendmany один_из_моих_адресов {адрес_получателя:сумма_на_кошельке}
и
sendmany <один_из_моих_адресов> {адрес_получателя:сумма_на_кошельке}

На что получил (в обоих вариантах)
Error: type mismatch

Так как все-таки воспользоваться этой командой?

Конечно, сумма незначительная, можно о ней просто забыть, однако хотелось бы все-таки разобраться на будущее, наверняка еще столкнусь с таким вопросом... А то как-то неправильно создавать кучу лишних транзакций для экономии на комиссиях - и в блокчейне больше места расходуется, и мне мороки больше.
legendary
Activity: 1120
Merit: 1069
December 17, 2013, 03:19:32 PM
#6
скобки забыл
sendmany {адрес_получателя:сумма_на_кошельке}
или
sendmany '{адрес_получателя:сумма_на_кошельке}'

про settxfee, да, наверное это так.
ri
full member
Activity: 140
Merit: 118
December 16, 2013, 07:57:32 PM
#5
Спасибо за ответы, с момента написания первого поста произошло много нового...

Обнаружилось, что с течением времени размер комиссии имеет тенденцию к уменьшению, только вот как предсказать это уменьшение - непонятно.

Наверное, следует описать ситуацию подробнее - конкретно речь идет о bbqcoin, на кошельке входящих транзакций очень много (майнил через p2pool). Так вот - при попытке отправить намайненное на биржу выставлял очень большие комиссии. Через день-два сумел отправить большую часть суммы стандартным способом вообще без комиссий, однако небольшими порциями (по 10-20 bqc). А вот оставшуюся сумму ну никак - требует больших комиссий и все тут (конкретно 3,8 bqc за отправку чуть более 19).

По поводу sendmany - заморачиваться с отключением сети не стал, поскольку кошелек хочу опустошить - просто задал для отправки всю имеющуюся сумму. Увы, неудачно - возможно, не совсем понял, как пользоваться этой командой. Сначала попробовал запустить

sendmany адрес_получателя:сумма_на_кошельке

получил:

{"code":-1,"message":"sendmany {address:amount,...} [minconf=1] [comment]\namounts are double-precision floating point numbers"}

Предположив, что fromaccount в параметрах команды имеет статус обязательного, нашел, на каком из адресов у меня максимальный баланс (при помощи http://bbq.cryptocoinexplorer.com/ ) и запустил как

sendmany один_из_моих_адресов_далее_адрес1 адрес_получателя:сумма_пришедшая_на_адрес1_и_еще_не_ушедшая

Получил

Error: type mismatch

Что я не так делаю?

Далее - решил поэкспериментировать с settxfee . Выполнил в консоли settxfee 0.00000001, получил в ответ обнадеживающее true. Залез в настройки, обнаружил, что опция "Pay transaction fee" установилась в то же значение - наверное, выполнение команды эквивалентно установке этой опции? Далее, попробовав отправить всю сумму, лежащую на кошельке получил сообщение, что если будет добавлена комиссия в 0.00000001 - то сумма превысит мой баланс. Что ж, логично, сделал сумму отправки на 0.00000001 меньше, опять попытался отправить - получил сообщение, что если будет добавлена комиссия в 3.8 bqc - то сумма превысит мой баланс... Т.е. в итоге settxfee результата тоже не принес.

Так можно ли все-таки как-нибудь обмануть кошелек?
legendary
Activity: 1120
Merit: 1069
December 16, 2013, 12:23:06 AM
#4
Комиссия полностью зависит от количества входов, их которых состоит перевод (входы - это ваши входящие переводы в кошелек), не зависит от суммы напрямую и не может зависеть от времени (за исключением случаев, когда между попытками в кошельке появляются новые транзакции).
Еще более точно, комиссия прямо пропорциональна размеру транзакции в килобайтах, т.е. это плата за место в блокчейне. Коэффицент, от которого определяется эта комиссия, определяется в и исходниках, например litecoin в коде можно найти что то типа:
Code:
int64 nPayFee = nTransactionFee * (1 + (int64)nBytes / 1000);
и такие константы, для приблизительной оценки (раньше было просто одна константа, теперь код чуть чуть посложнее)
Code:
/** Dust Soft Limit, allowed with additional fee per output */
static const int64 DUST_SOFT_LIMIT = 1000000; // 0.01 LTC
/** Dust Hard Limit, ignored as wallet inputs (mininput default) */
static const int64 DUST_HARD_LIMIT = 10000;   // 0.0001 LTC mininput

кстати nTransactionFee можно напрямую установить через rpc
Quote
            settxfee
            is a real and is rounded to the nearest 0.00000001
legendary
Activity: 1386
Merit: 1010
December 15, 2013, 11:52:53 PM
#3
а есть ли вообще, какие либо правила, рекомендации по минимизации комиссии по отравке btc, ltc, nmc и т.д.? тема уж шибко интересная. Интерсно знать зависимости обьема и врнмени от комисссии.
legendary
Activity: 1120
Merit: 1069
December 15, 2013, 11:15:29 PM
#2
Например, пытаюсь сделать перевод в 10 койнов, жму "отправить" - предлагает комиссию в 0,9 койна. Отказываюсь, ничего не меняя нажимаю "отправить" еще раз - предлагает уже комиссию в 0,7. Опять отказываюсь, снова ничего не меняя жму "отправить" - предлагает уже 0,8. При следующей попытке - снова 0,9. Они что, размер транзакций рандомно генерируют Smiley ?
В нормальных криптовалютах такого не замечено.

Комиссия полностью зависит от количества входов, их которых состоит перевод (входы - это ваши входящие переводы в кошелек), не зависит от суммы напрямую и не может зависеть от времени (за исключением случаев, когда между попытками в кошельке появляются новые транзакции).

p.s. Какой бы форк не был, почти наверняка в нем есть rpc команда sendmany (создает транзакцию с указанием нескольких выходов). Недавно я заметил что в bitcoin эта транзакция создается без комиссии. Это не гарантирует что и в вашем форке так будет. Правда в этом случае вы не узнаете о комиссии и ее размере, пока не попробуете.
Самый простой способ провести эксперимент, сделайте копию вашего wallet.dat (всегда делайте кстати, например сейчас), запускаете кошелек, отключаете интернет, делаете транзакцию, смотрите что получилось, если не устраивает - закрываете кошелек и восстанавливаете из бакапа и возвращаете интернет, иначе просто возвращаете интернет (транзакция уйдет в сеть).

p.p.s. Есть форки, в которых без комиссии нельзя создавать транзакции, например novacoin, правда я не уверен, в каких пределах там можно эту комиссию менять.
ri
full member
Activity: 140
Merit: 118
December 13, 2013, 04:47:13 PM
#1
Доброго времени суток.

Как ни странно, не нашел на форуме раздела о кошельках, пришлось создать тему тут...

Вопрос в следующем - есть ли в ***coin-qt какой-нибудь способ отправить перевод с комиссией меньше рекомендуемой (кроме формирования raw transaction - ибо слишком муторно)? Просто иногда клиент требует совершенно неприличный размер комиссии (например, при переводе 40 койнов требует 4,4 койна комиссию, т.е. 11%), а хотелось бы отправлять с комиссией максимум 2-3%, в идеале - меньше 1.

Если в qt-клиенте это невозможно, то может ли в этом помочь ***coind?

Параллельный вопрос - как вообще кошелек определяет размер комиссии? Например, пытаюсь сделать перевод в 10 койнов, жму "отправить" - предлагает комиссию в 0,9 койна. Отказываюсь, ничего не меняя нажимаю "отправить" еще раз - предлагает уже комиссию в 0,7. Опять отказываюсь, снова ничего не меняя жму "отправить" - предлагает уже 0,8. При следующей попытке - снова 0,9. Они что, размер транзакций рандомно генерируют Smiley ?
Jump to: