Если это просто случайный выбор, я имею в виду, чтобы иметь два бумажников работают. Один принимать оплату и оставить там, другой для отправки платежей. После того, как в то время меняют свои функции.
это не случайно. Он разработан, чтобы максимизировать монетный возраст и снижение затрат.
Откуда этот мем происходит? Неправда. Официальный клиент будет использовать монеты с более чем 6 подтверждений, если он может, но кроме этого не делает никаких усилий, чтобы использовать старые монеты. Он пытается найти набор монет, который имеет наименьшее значение выше значение, которое вы пытаетесь отправить, что обычно приводит к небольшой «изменение» выход Оставшись в кошельке, который может иметь тенденцию к увеличению будущих сборов.
Идея использования двух кошельков является разумным и должен работать. Имейте в виду, что, чтобы избежать сборов, каждая монета вы проводите должны быть по крайней мере один "Bitcoin день" старый. то есть умножить ценность монеты в BTC от его возраста в дни, и это больше, чем примерно один, то вы, вероятно, можете провести его бесплатно. Это просто грубое эмпирическое правило, поскольку количество выходов также влияет на размер транзакции, но только около 20% больше, чем количество выходов делает. (Каждый вход добавляет 179-181 байт по размеру транзакций, в то время как каждый вход только добавляет 34 байт).
С другой стороны, если вы чувствуете себя комфортно строить клиент от источника, вы можете изменить его так, что он предпочитает старые монеты. Найти бит в wallet.cpp, который говорит:
Возвращение (SelectCoinsMinConf (nTargetValue, 1, 6, setCoinsRet, nValueRet) ||
SelectCoinsMinConf (nTargetValue, 1, 1, setCoinsRet, nValueRet) ||
SelectCoinsMinConf (nTargetValue, 0, 1, setCoinsRet, nValueRet));
и добавить несколько строк, поэтому он пытается самые старые монеты первым. Что-то, как это будет работать:
Возвращение (SelectCoinsMinConf (nTargetValue, 1, 6 * 24 * 30, setCoinsRet, nValueRet) || // Пытаемся только с помощью 30-дневных монет первых
SelectCoinsMinConf (nTargetValue, 1, 6 * 24 * 7, setCoinsRet, nValueRet) || // затем 7 дня назад
SelectCoinsMinConf (nTargetValue, 1, 6 * 24, setCoinsRet, nValueRet) || // затем 1 день назад
SelectCoinsMinConf (nTargetValue, 1, 6, setCoinsRet, nValueRet) || // затем 1 час старый
SelectCoinsMinConf (nTargetValue, 1, 1, setCoinsRet, nValueRet) ||
SelectCoinsMinConf (nTargetValue, 0, 1, setCoinsRet, nValueRet));
В зависимости, как «микро» ваши монеты, и сколько лет ваш кошелек, вы можете пойти еще дальше, но я уверен, что вы получите точку.