Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
24 июня 2012, 1:38:40 AM   # 1
 
 
Сообщения: 658
Цитировать по имени
цитировать ответ
по умолчанию Re: Помогите! Я получаю «Ошибка: создание транзакций не удалось»

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я тест с небольшим количеством (0,1 BTC) и сделками, созданных в порядке.

Когда я пытаюсь сделать полную сумму оплаты, я получил эту ошибку.

Я использую BitcoinQT0.6.2

Кто-то пожалуйста, объясните, в чем может быть проблема.

seriouscoin сейчас офлайн Пожаловаться на seriouscoin   Ответить с цитированием Мультицитирование сообщения от seriouscoin Быстрый ответ на сообщение seriouscoin


Как заработать Биткоины?
Без вложений. Не майнинг.


24 июня 2012, 7:11:13 PM   # 2
 
 
Сообщения: 1512
Цитировать по имени
цитировать ответ
по умолчанию Re: Помогите! Я получаю «Ошибка: создание транзакций не удалось»

Получил 1806 Биткоинов
Реальная история.





Была ошибка была написана в debug.log?

Я хотел бы закрыть и повторный запуск Bitcoin с опцией -rescan командной строки, так что вы можете быть уверены, что ваш баланс является правильным (они могут быть неправильными адреса изменения и т.д., вы можете не увидеть проблему баланса в Bitcoin-QT.

Вот код, который, кажется, генерировать ошибку, функция SendMoney:

wallet.cpp
Код:
Строка CWallet :: SendMoney (CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, BOOL fAskFee)
{
    CReserveKey reservekey (это);
    int64 nFeeRequired;

    если (IsLocked ())
    {
        Строка strError = _ ("Ошибка: Кошелек заблокирован, не может создавать транзакции  ");
        Е ("SendMoney ():% s", StrError.c_str ());
        вернуться strError;
    }
    если (! CreateTransaction (scriptPubKey, nValue, wtxNew, reservekey, nFeeRequired))
    {
        строка strError;
        если (nValue + nFeeRequired > GetBalance ())
            strError = strprintf (_ ("Ошибка: Эта сделка требует плату за транзакцию, по крайней мере,% s из-за его размера, сложности или использования недавно полученных средств  "), FormatMoney (nFeeRequired) .c_str ());
        еще
            strError = _ ("Ошибка: создание транзакций не удалось  ");
        Е ("SendMoney ():% s", StrError.c_str ());
        вернуться strError;
    }

    если (fAskFee && ! ThreadSafeAskFee (nFeeRequired, _ ("Посылка ...")))
        вернуть "ПРЕРВАНО";

    если (! CommitTransaction (wtxNew, reservekey))
        вернуть _("Ошибка: Сделка была отклонена. Это может произойти, если некоторые из монет в кошельке были уже потрачены, например, если вы использовали копию wallet.dat и монеты были потрачены в копии, но не помечены как провели здесь.");

    MainFrameRepaint ();
    вернуть "";
}

Это, кажется, ошибки-неоднородная, что функция CreateTransaction () не удалось, но не из-за баланса, проблемы плата или блокировки файлов.

Что-то пошло не так здесь и не вернулся истинным:

Код:

BOOL CWallet :: CreateTransaction (Const вектор<пара >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet)
{
    Int64 nValue = 0;
    BOOST_FOREACH (Const PAIRTYPE (CScript, Int64)& с, vecSend)
    {
        если (nValue < 0)
            вернуться ложным;
        nValue + = s.second;
    }
    если (vecSend.empty () || nValue < 0)
        вернуться ложным;

    wtxNew.BindWallet (это);

    {
        Lock2 (cs_main, cs_wallet);
        // txdb должен быть открыт до замка mapWallet
        CTxDB txdb ("р");
        {
            nFeeRet = nTransactionFee;
            петля
            {
                wtxNew.vin.clear ();
                wtxNew.vout.clear ();
                wtxNew.fFromMe = TRUE;

                Int64 nTotalValue = nValue + nFeeRet;
                двойная dPriority = 0;
                // vouts к ремитентам
                BOOST_FOREACH (Const PAIRTYPE (CScript, Int64)& с, vecSend)
                    wtxNew.vout.push_back (CTxOut (s.second, s.first));

                // Выбираем монеты для использования
                задавать<пара > setCoins;
                Int64 nValueIn = 0;
                если (! SelectCoins (nTotalValue, setCoins, nValueIn))
                    вернуться ложным;
                BOOST_FOREACH (PAIRTYPE (Const CWalletTx *, беззнаковое целое) pcoin, setCoins)
                {
                    Int64 nCredit = pcoin.first->Vout [pcoin.second] .nValue;
                    dPriority + = (дважды) nCredit * pcoin.first->GetDepthInMainChain ();
                }

                Int64 nChange = nValueIn - nValue - nFeeRet;
                // если требуется изменить суб-цент, плата должна быть увеличена по крайней мере MIN_TX_FEE
                // или пока nChange не станет равным нулю
                // Примечание: это зависит от конкретного поведения GetMinFee
                если (nFeeRet < MIN_TX_FEE && nChange > 0 && nChange < CENT)
                {
                    Int64 nMoveToFee = мин (nChange, MIN_TX_FEE - nFeeRet);
                    nChange - = nMoveToFee;
                    nFeeRet + = nMoveToFee;
                }

                если (nChange > 0)
                {
                    // Примечание: Мы используем новый ключ здесь, чтобы держать его не очевидно, какая сторона является изменение.
                    // Недостаток состоит в том, что, не повторное использование ранее ключ, то изменения могут быть потеряны, если
                    // восстановлении резервной копии, если резервная копия не имеет новый секретный ключ для изменения.
                    // Если мы повторно старый ключ, можно было бы добавить код для поиска и
                    // заново открыть неизвестные транзакции, которые были написаны с ключами нашего, чтобы восстановить
                    // после резервного копирования изменений.

                    // Резервного новая пара ключей от ключевого пула
                    вектор<неподписанные символ> vchPubKey = reservekey.GetReservedKey ();
                    // утверждают (mapKeys.count (vchPubKey));

                    // Заполнить Vout самим себе
                    // TODO: пройти в scriptChange вместо reservekey так
                    // сделка изменения не всегда обращает к Bitcoin-адрес
                    CScript scriptChange;
                    scriptChange.SetBitcoinAddress (vchPubKey);

                    // Вставка изменения TxN в случайном месте:
                    вектор:: позиция итератора = wtxNew.vout.begin () + GetRandInt (wtxNew.vout.size ());
                    wtxNew.vout.insert (положение, CTxOut (nChange, scriptChange));
                }
                еще
                    reservekey.ReturnKey ();

                // Заполнить ВИНА
                BOOST_FOREACH (Const PAIRTYPE (Const CWalletTx *, беззнаковое целое)& монета, setCoins)
                    wtxNew.vin.push_back (CTxIn (coin.first->GetHash (), coin.second));

                // Знак
                INT NIN = 0;
                BOOST_FOREACH (Const PAIRTYPE (Const CWalletTx *, беззнаковое целое)& монета, setCoins)
                    если (! SignSignature (* это * coin.first, wtxNew, NIN ++))
                        вернуться ложным;

                // Ограничить размер
                неподписанных INT = ::-байт GetSerializeSize (* (CTransaction *)&wtxNew, SER_NETWORK, protocol_version);
                если (число-байт >= MAX_BLOCK_SIZE_GEN / 5)
                    вернуться ложным;
                dPriority / = число-байт;

                // Проверка, что достаточно плату входит
                Int64 nPayFee = nTransactionFee * (1 + (Int64) число-байт / 1000);
                BOOL fAllowFree = CTransaction :: AllowFree (dPriority);
                Int64 nMinFee = wtxNew.GetMinFee (1, fAllowFree, GMF_SEND);
                если (nFeeRet < макс (nPayFee, nMinFee))
                {
                    nFeeRet = макс (nPayFee, nMinFee);
                    Продолжать;
                }

                // Заполнит vtxPrev путем копирования из предыдущих сделок vtxPrev
                wtxNew.AddSupportingTransactions (txdb);
                wtxNew.fTimeReceivedIsTxTime = TRUE;

                ломать;
            }
        }
    }
    возвращает истину;
}

Я хотел бы посмотреть на все "вернуться ложным" случаев выше, и выяснить, если что-то о вашей сделке (остатки, и т.д.) может установить от одного из них. Еще одна вещь, которую вы можете сделать, чтобы бросить случайные идеи на эту проблему создать больше резервных адресов, начиная Bitcoin с параметром командной строки bitcoin.exe -keypool = 150.

Другая возможность состоит в том, что есть большая плата требуется из-за текущий размер или размера входов, которые вы используете блок, но ошибка в клиенте не запрашивая, что вы могли бы ударяться добровольным взносом в клиенте .01 и посмотреть, если он идет.
deepceleron сейчас офлайн Пожаловаться на deepceleron   Ответить с цитированием Мультицитирование сообщения от deepceleron Быстрый ответ на сообщение deepceleron

24 июня 2012, 11:30:43 PM   # 3
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Помогите! Я получаю «Ошибка: создание транзакций не удалось»

Другая возможность состоит в том, что есть большая плата требуется из-за текущий размер блока

Код недопонимание обнаружено: Пошлины, используемые в генерации TXN не имеет абсолютно ничего общего с текущим размером блока.

Наиболее частая причина такого отказа, которую я видел в прошлом, когда бумажник загрязнена несметными очень маленьких входов и заканчивается выбор так много полученный TXN является >100KB, что она отказывается выдавать.

Litecoin несет патч Множества минимальное значение для входов, которые будут рассматриваться при выборе монет.

gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

25 июня 2012, 12:25:15 AM   # 4
 
 
Сообщения: 1512
Цитировать по имени
цитировать ответ
по умолчанию Re: Помогите! Я получаю «Ошибка: создание транзакций не удалось»

Другая возможность состоит в том, что есть большая плата требуется из-за текущий размер блока

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

deepceleron сейчас офлайн Пожаловаться на deepceleron   Ответить с цитированием Мультицитирование сообщения от deepceleron Быстрый ответ на сообщение deepceleron

4 мая 2013, 5:07:03 PM   # 5
 
 
Сообщения: 122
Цитировать по имени
цитировать ответ
по умолчанию Re: Помогите! Я получаю «Ошибка: создание транзакций не удалось»

я знаю, эта тема старая, но у меня есть такая же проблема "Ошибка: создание транзакций не удалось"

Seriouscoin сделал у menaged, чтобы решить эту проблему?

я хочу, чтобы отправить 0,5 BTC кому-то и я не могу, bcoz им получить эту ошибку
я пытался установить Diferent положения - 0,00025, 0,0005, 0,001, 0,01 и даже 0,1 (смеется)

им с помощью Bitcoin-кварт 0.8.1

Просьба помочь

OFC клиент синхронизирован и т.д.

я пытался с -keypool 1000, но до сих пор не работает
я также пытался отправить BTC 2 Diferent адресам


Редактирование: Проблема решена

экспорт и импорт privkeys в новый кошельке helpd
сейчас офлайн Ханты Пожаловаться на Ханты   Ответить с цитированием Мультицитирование сообщения от Ханты Быстрый ответ на сообщение Ханты

4 сентября 2013, 4:35:54 AM   # 6
 
 
Сообщения: 128
Цитировать по имени
цитировать ответ
по умолчанию Re: Помогите! Я получаю «Ошибка: создание транзакций не удалось»

я знаю, эта тема старая, но у меня есть такая же проблема "Ошибка: создание транзакций не удалось"

Редактирование: Проблема решена

экспорт и импорт privkeys в новый кошельке helpd

Как ты сделал это? У меня такая же проблема сейчас с клиентом 8.3
cdnbcguy сейчас офлайн Пожаловаться на cdnbcguy   Ответить с цитированием Мультицитирование сообщения от cdnbcguy Быстрый ответ на сообщение cdnbcguy

4 сентября 2013, 4:57:03 AM   # 7
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Помогите! Я получаю «Ошибка: создание транзакций не удалось»

Редактирование: Проблема решена
экспорт и импорт privkeys в новый кошельке helpd
Если отказ от пыли в вашем старом кошельке, могу я, пожалуйста, свой старый бумажник, так что я могу очистить данные из сети, поэтому сеть не должна хранить этот мусор навсегда? (Я бы также хотел бы попробовать фиксируя его так, что это не происходит так легко)
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW