Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
10 июня 2013, 3:12:33 PM   # 1
 
 
Сообщения: 994
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Как доказательство концепции, я пытаюсь сделать измененный клиент, который делает генезис блок расходуемым. Я знаю, что это может быть сделано с addUnchecked, отправив его на TX и блок-хэш. Я начал, пытаясь воссоздать генезис блок TX, потянув этот код из InitBlockIndex:

Код:
        // Генезис блок
        Const символ * pszTimestamp = "The Times 03 / Jan / 2009 Канцлер на грани второго катапультирования для банков";
        CTransaction txNew;
        txNew.vin.resize (1);
        txNew.vout.resize (1);
        txNew.vin [0] = .scriptSig CScript () << 486604799 << CBigNum (4) << вектор<неподписанные символ>((Const символ без знака *) pszTimestamp, (Const символ без знака *) pszTimestamp + StrLen (pszTimestamp));
        txNew.vout [0] .nValue = 50 * МОНЕТКА;
        txNew.vout [0] = .scriptPubKey CScript () << ParseHex ("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3 8c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;

Но это не работает. Мысли?
Hazard сейчас офлайн Пожаловаться на опасности   Ответить с цитированием Мультицитирование сообщения от Hazard Быстрый ответ на сообщение об опасности


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


10 июня 2013, 8:31:29 PM   # 2
 
 
Сообщения: 686
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

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





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

10 июня 2013, 8:55:31 PM   # 3
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

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

10 июня 2013, 9:07:48 PM   # 4
 
 
Сообщения: 994
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Пробовали ли вы положить его на линии 57?
Да, та же ошибка там тоже
Hazard сейчас офлайн Пожаловаться на опасности   Ответить с цитированием Мультицитирование сообщения от Hazard Быстрый ответ на сообщение об опасности

10 июня 2013, 9:13:14 PM   # 5
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Могли бы вы вставить точную ошибку?
Я хотел бы знать, если "CTransaction txNew;" идет хорошо
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

10 июня 2013, 9:18:27 PM   # 6
 
 
Сообщения: 994
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

CTransaction txNew;  работает просто отлично.

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

10 июня 2013, 9:21:23 PM   # 7
 
 
Сообщения: 144
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Вы должны поместить этот код внутри функции. Исполняемые утверждения не могут быть в области видимости файла.

Я не уверен, когда вы хотите запускать код, но, например, если вы пытаетесь запустить его при запуске, вы можете поместить его в конце AppInit2 в init.cpp (до оператора возврата).
twobitcoins сейчас офлайн Пожаловаться на twobitcoins   Ответить с цитированием Мультицитирование сообщения от twobitcoins Быстрый ответ на сообщение twobitcoins

10 июня 2013, 9:36:23 PM   # 8
 
 
Сообщения: 994
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Да, я хочу, чтобы запустить на старте. Я попытался запустить его из init.cpp, и, казалось, зафиксировать, по крайней мере часть проблемы. Он появляется TX получает сейчас создается. Я создал функцию-член в main.cpp

Код:
аннулируются CTxMemPool :: addGenesis (Const uint256& хэш, CTransaction &txNew)
{
{
        БЛОКИРОВКА (CS);
addUnchecked (хэш, txNew);
    }
}
Если хэш генезис блок хэш. Но пытаться называть его CTxMemPool :: addGenesis (хэш, txNew) выдает ошибку:

ЦСИ \ init.cpp: В функции 'BOOL AppInit2 ()':
ЦСИ \ init.cpp: 781: 39: ошибка: не может вызвать функцию-член «недействительным CTxMemPool :: addGenesis (Const uint256&, CTransaction&)»Без объекта


Есть идеи? Также разместим ваш адрес, спасибо.

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

10 июня 2013, 9:55:58 PM   # 9
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Как вы называете addGenesis?
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

10 июня 2013, 9:57:56 PM   # 10
 
 
Сообщения: 994
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Вот что я использую. Это в init.cpp:

Код:
          // Генезис блок
        Const символ * pszTimestamp = "The Times 03 / Jan / 2009 Канцлер на грани второго катапультирования для банков";
        CTransaction txNew;
        txNew.vin.resize (1);
        txNew.vout.resize (1);
        txNew.vin [0] = .scriptSig CScript () << 486604799 << CBigNum (4) << вектор<неподписанные символ>((Const символ без знака *) pszTimestamp, (Const символ без знака *) pszTimestamp + StrLen (pszTimestamp));
        txNew.vout [0] .nValue = 50 * МОНЕТКА;
        txNew.vout [0] = .scriptPubKey CScript () << ParseHex ("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3 8c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;

        uint256 хэш ("0x0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");

        CTxMemPool :: addUnchecked (хэш, txNew);
Hazard сейчас офлайн Пожаловаться на опасности   Ответить с цитированием Мультицитирование сообщения от Hazard Быстрый ответ на сообщение об опасности

10 июня 2013, 9:59:37 PM   # 11
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Я не очень много знаний в Bitcoin-кварте коды, но я хотел бы сделать ваш addGenesis статическим:
Код:
недействительным статический CTxMemPool :: addGenesis (Const uint256& хэш, CTransaction &txNew)


Подождите
Похоже, что есть глобальная переменная mempool ...
Попробуйте, что вместо того, чтобы потом:
Код:
        mempool.addUnchecked (хэш, txNew);
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

10 июня 2013, 10:03:27 PM   # 12
 
 
Сообщения: 994
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Ведет к увеличению количества ошибок, то эта функция не может быть статичной.

Также, БЛОКИРОВКА (CS); должен быть вызван, прежде чем пытаться добавить его в пул памяти, поэтому я создал новую функцию члена. Просто работает addunchecked сама по себе будет приводит к ошибкам.
Hazard сейчас офлайн Пожаловаться на опасности   Ответить с цитированием Мультицитирование сообщения от Hazard Быстрый ответ на сообщение об опасности

10 июня 2013, 11:01:12 PM   # 13
 
 
Сообщения: 144
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Я не рекомендовал бы пропустить блокировку. Замки предотвращение конфликтов между несколькими потоками. Такого рода вещи не будут обнаружены компилятором, но может создать очень трудно проблем отладки.

Если вы не хотите, чтобы добавить функцию-член в CTxMemPool, вы можете сделать что-то вроде этого непосредственно в AppInit2:

Код:
    {
        БЛОКИРОВКА (mempool.cs);
        mempool.addUnchecked (хэш, txNew);
    }

Или если у вас есть не статическая функция-члена в CTxMemPool, вы можете назвать это так:

Код:
    mempool.addGenesis (хэш, txNew);

Что касается того, является ли добавление coinbase транзакции генезис блок в пуле памяти правильный путь, чтобы решить вашу проблему, я скептически, но я не достаточно знакомы с "правильный" способ сделать это, чтобы дать лучший совет.

Вот адрес, который вы можете отправить монеты: [удалено]
twobitcoins сейчас офлайн Пожаловаться на twobitcoins   Ответить с цитированием Мультицитирование сообщения от twobitcoins Быстрый ответ на сообщение twobitcoins

11 июня 2013, 1:04:57 AM   # 14
 
 
Сообщения: 994
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Интересное поведение теперь ... Я могу послать монеты из блока генеза, но они никогда не подтверждают.
Hazard сейчас офлайн Пожаловаться на опасности   Ответить с цитированием Мультицитирование сообщения от Hazard Быстрый ответ на сообщение об опасности

11 июня 2013, 3:11:01 AM   # 15
 
 
Сообщения: 144
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Интересное поведение теперь ... Я могу послать монеты из блока генеза, но они никогда не подтверждают.

Да, я не думаю, что добавление к пулу памяти собирается помочь с тем, что вы пытаетесь сделать.

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

Вам нужно добавить транзакцию к набору неизрасходованных выходов транзакций. Я не знаю точно, как сделать это правильно, но критический фрагмент кода, кажется, вызов SetCoins в CTransaction :: UpdateCoins (). Вы могли бы быть в состоянии сделать это следующим образом:

Код:
    вид CCoinsViewCache (* pcoinsTip, правда);
    view.SetCoins (txNew.GetHash (), CCoins (txNew, 0));
    view.Flush ();

Я рекомендовал бы поставить этот код там, где создается блок генеза: в main.cpp, в InitBlockIndex (), внутри "если (! fReindex)", В самом конце. Я не могу гарантировать, что он будет работать, но это могло бы. Убедитесь, что вы начинаете с новой директории данных.

Для того, чтобы сделать работу индексированиями этого, я думаю, вы также должны будете делать то же самое в CBlock :: ConnectBlock в этом особом случае для блока генеза:

Код:
    // Особый случай для блока генеза, пропуская соединение своих операций
    // (его coinbase является unspendable)
    если (GetHash () == hashGenesisBlock) {
        CCoinsViewCache viewTmp (вид, правда);
        viewTmp.SetCoins (VTX [0] .GetHash (), CCoins (VTX [0], 0));
        viewTmp.Flush ();

        view.SetBestBlock (pindex);
        pindexGenesisBlock = pindex;
        возвращает истину;
    }

Или, может быть, вы можете просто удалить частный случай, и пусть остальные функции запуска, но я не знаю, если какие-либо из остальной части коды в этой функции будет создавать проблемы.
twobitcoins сейчас офлайн Пожаловаться на twobitcoins   Ответить с цитированием Мультицитирование сообщения от twobitcoins Быстрый ответ на сообщение twobitcoins

11 июня 2013, 4:37:13 AM   # 16
 
 
Сообщения: 144
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Ох ... код был совсем другим тогда. Я думаю, что путь, чтобы продолжить в целом извлечь части ConnectBlock, которые необходимы, чтобы добавить транзакцию к индексу. Я думаю, что это будет выглядеть примерно так (без проверки ошибок):

Код:
{
    CTxDB txdb;
    txdb.TxnBegin ();
    CBlockIndex * pindex = mapBlockIndex.find (hashGenesisBlock) ->второй;
    неподписанных INT nTxPos = pindex->nBlockPos + :: GetSerializeSize (CBlock (), SER_DISK, CLIENT_VERSION) - 1 + GetSizeOfCompactSize (block.vtx.size ());
    CDiskTxPos posThisTx (pindex->nFile, pindex->nBlockPos, nTxPos);
    txdb.UpdateTxIndex (txNew.GetHash (), CTxIndex (posThisTx, txNew.vout.size ()));
    txdb.TxnCommit ();
}

Вы могли бы попытаться положить, что в LoadBlockIndex внутри "если (mapBlockIndex.empty ())" в самом конце. Опять же, я просто скопировать биты кода из здесь и там, так что никаких гарантий, что не будет работать. Спасибо за монеты, хотя!
twobitcoins сейчас офлайн Пожаловаться на twobitcoins   Ответить с цитированием Мультицитирование сообщения от twobitcoins Быстрый ответ на сообщение twobitcoins

11 июня 2013, 4:51:53 AM   # 17
 
 
Сообщения: 448
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Интересное поведение теперь ... Я могу послать монеты из блока генеза, но они никогда не подтверждают.

Смысл подтверждения в том, что шахтер проверил вашу сделку и соглашается с тем, что это действует.

Я понимаю, что генезис блок coinbase ТХ unspendable, потому что он не индексируется, поскольку twobitcoins говорит. (Я могу ошибаться на этот счет.) Таким образом, вы никогда не получите подтверждение, потому что никакие шахтеры не изменили своего клиента, как у вас. Когда они видят ваши попытки провести его, они даже не будут знать, что сделка вы говорите, потому что это не в их индексе, поэтому они никогда не подтвердят.

Кроме того, если вы не сломали ключ Satoshi послал свою награду генезиса блока не, вы не будете в состоянии произвести правильную подпись, чтобы провести его, не больше, чем вы можете украсть любого чужой монеты путем взлома вашего клиента. Таким образом, даже если шахтеры знали, что операция, которую вы говорили о том, что они не согласятся, что вы сделали правильную подпись для него.
scintill сейчас офлайн Пожаловаться на scintill   Ответить с цитированием Мультицитирование сообщения от scintill Быстрый ответ на сообщение scintill

11 июня 2013, 5:52:57 AM   # 18
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Интересное поведение теперь ... Я могу послать монеты из блока генеза, но они никогда не подтверждают.

Смысл подтверждения в том, что шахтер проверил вашу сделку и соглашается с тем, что это действует.

Я понимаю, что генезис блок coinbase ТХ unspendable, потому что он не индексируется, поскольку twobitcoins говорит. (Я могу ошибаться на этот счет.) Таким образом, вы никогда не получите подтверждение, потому что никакие шахтеры не изменили своего клиента, как у вас. Когда они видят ваши попытки провести его, они даже не будут знать, что сделка вы говорите, потому что это не в их индексе, поэтому они никогда не подтвердят.

Кроме того, если вы не сломали ключ Satoshi послал свою награду генезиса блока не, вы не будете в состоянии произвести правильную подпись, чтобы провести его, не больше, чем вы можете украсть любого чужой монеты путем взлома вашего клиента. Таким образом, даже если шахтеры знали, что операция, которую вы говорили о том, что они не согласятся, что вы сделали правильную подпись для него.

Первоначально он был unspendable из причуда в индексации. Это причуда было обнаружено, учился, по имени, и теперь должны быть точно воспроизводится. Если я правильно помню, текущий клиент теперь имеет специальный случай код специально, чтобы сделать эти монеты unspendable.

Конечно, он не работает на Bitcoin, но на litecoin. Litecoin Гонорар выбрать любые правила, они хотят, чтобы следовать и обеспечивать. Litecoin уже не-Bitcoin, поэтому правила Bitcoin в не применяются. Кроме того, я подозреваю, что он работает на testnet, возможно, даже его собственный testnet, со своим собственным генеза блоком. (Или, возможно, он парень, который имеет ключ litecoin генезис блок. Было бы просто посмотреть его имя, но уже поздно, и я ленив.)
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

11 июня 2013, 6:25:11 AM   # 19
 
 
Сообщения: 448
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Первоначально он был unspendable из причуда в индексации. Это причуда было обнаружено, учился, по имени, и теперь должны быть точно воспроизводится. Если я правильно помню, текущий клиент теперь имеет специальный случай код специально, чтобы сделать эти монеты unspendable.

Конечно, он не работает на Bitcoin, но на litecoin. Litecoin Гонорар выбрать любые правила, они хотят, чтобы следовать и обеспечивать. Litecoin уже не-Bitcoin, поэтому правила Bitcoin в не применяются. Кроме того, я подозреваю, что он работает на testnet, возможно, даже его собственный testnet, со своим собственным генеза блоком. (Или, возможно, он парень, который имеет ключ litecoin генезис блок. Было бы просто посмотреть его имя, но уже поздно, и я ленив.)

Спасибо за информацию. Я запутался, почему он использует говорить о генезисе блоке Bitcoin (или, по меньшей мере, отметка времени сообщение Bitcoin генеза), если он использует litecoin. В любом случае, если блок litecoin генезис также unspendable, то же самое относится - вы не можете провести его без жесткого запускающим изменения остальной части кода в сети клиентов, а также зная секретный ключ для Публичных награда блок пошел.
scintill сейчас офлайн Пожаловаться на scintill   Ответить с цитированием Мультицитирование сообщения от scintill Быстрый ответ на сообщение scintill

11 июня 2013, 7:33:45 AM   # 20
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: ошибка: txNew делает имя не тип (.1 BTC вознаграждения для решения)

Первоначально он был unspendable из причуда в индексации. Это причуда было обнаружено, учился, по имени, и теперь должны быть точно воспроизводится. Если я правильно помню, текущий клиент теперь имеет специальный случай код специально, чтобы сделать эти монеты unspendable.

Конечно, он не работает на Bitcoin, но на litecoin. Litecoin Гонорар выбрать любые правила, они хотят, чтобы следовать и обеспечивать. Litecoin уже не-Bitcoin, поэтому правила Bitcoin в не применяются. Кроме того, я подозреваю, что он работает на testnet, возможно, даже его собственный testnet, со своим собственным генеза блоком. (Или, возможно, он парень, который имеет ключ litecoin генезис блок. Было бы просто посмотреть его имя, но уже поздно, и я ленив.)

Спасибо за информацию. Я запутался, почему он использует говорить о генезисе блоке Bitcoin (или, по меньшей мере, отметка времени сообщение Bitcoin генеза), если он использует litecoin. В любом случае, если блок litecoin генезис также unspendable, то же самое относится - вы не можете провести его без жесткого запускающим изменения остальной части кода в сети клиентов, а также зная секретный ключ для Публичных награда блок пошел.
Это не точка резьбы, но опасность работает на своих blockchains
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW