14 июня 2012, 1:31:38 PM   # 1
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Кросс-постинг из списка Bitcoin-разработки:

вчера я подал заявку на тянущую, который реализует низкоуровневый "сырье" сделка, и я ищу обратную связь по API и помощь пытается проверить / сломать.

Дизайн док:  https://gist.github.com/2839617
Вытащите запрос: https://github.com/bitcoin/bitcoin/pull/1456
План тестирования: https://secure.bettermeans.com/projects/4180/wiki/Raw_Transaction_RPC_Test_Plan

Игра вокруг с этим API в командной строке я очень доволен уровнем абстракции и, как он взаимодействует с существующими командами RPC; например, "createrawtx" это так же, как "sendmany" на пути указаны выходы.

Метод signrawtx является ключом нового метода; он берет сырую сделку, признаки, как много входов, как он может, и возвращает ту же самую сырую сделку с подписями. Обычное использование:

Средства сидят в выходе multisignature сделки, и настало время, чтобы собрать подписи и тратить их.

Предположение: вы знаете, [TXID, outputNumber, сумма] по сделке multisignature в.

Создание сырой сделки, чтобы провести, используя createrawtx.
Используйте signrawtx, чтобы добавить свои подписи (после разблокировки бумажника, если это необходимо).
Дайте сделки к другому лицу (лицам), чтобы подписать.
Вы или они представляют сделку по сети с помощью sendrawtx.
Я не представляю никого, кроме очень-рано-усыновителей или ультра-выродки будут делать это, вызывая эти методы RPC в командной строке. Они действительно предназначены для людей, пишущих услуги поверх bitcoind. Служба должна быть осторожной, чтобы включить соответствующую плату за транзакцию, или sendrawtx метод, вероятно, не в состоянии.

Я спросил несколько раз: почему не signrawtx обрабатывать BIP 0010 (https://en.bitcoin.it/wiki/BIP_0010) Формат транзакции?

Я рассматривал разборе / записи формата BIP 10 сырьевых сделок, но решил, что чтение / запись в формате BIP 10 должно происходить на более высоком уровне, а не в вызовах RPC низкого уровня. Таким образом, «сырые сделки» являются просто шестигранной кодируются в JSON строки, и кодирование / декодирование их всего лишь пару строк уже написанного-и-отлаженного кода.

------

Вот вывод справки и пример использования для всех новых вызовов RPC:

listunspent [minconf = 1] [maxconf = 999999]
Возвращает массив неизрасходованных выходов транзакциев
с между minconf и maxconf (включительно) подтверждениями.
Возвращает массив из 4-элементных массивов, каждый из которых является:
[Идентификатор транзакции, выход, сумма, подтверждение]

Например: listunspent 1 2
Возвращает:
[
    [
        "2881b33a8c0bbdb45b0a65b36aa6611a05201e316ea3ad718762d48ef9588fb3",
        0,
        40.00000000,
        2
    ],
    [
        "894a0fc535c7b49f434ceb633d8555ea24c8f9775144efb42da85b853280bcd7",
        0,
        50.00000000,
        1
    ]
]

getrawtx
Возвращает шестнадцатеричное-закодированы, сериализованную данные транзакции
для , Возвращает ошибку, если неизвестно.

Например .: getrawtx fce46ea2448820f7bb8091b5f5e3fd75b7b267e60b9a22af88a9eeabfb084233
Возвращает:
01000000016d40da062b6a0edcaf643b6e25b943baf103941589d287e39d6f425d84ae8b1c00000 0004847304402203fb648ff8381d8961e66ef61ab88afe52826a5179b8a7312742c8d93785ca563 02204240ea12de1211fffab49686f13ca0e78011d1985765be6e6aa8e747852f897d01ffffffff0 100f2052a0100000017a914f96e358e80e8b3660256b211a23ce3377d2f9cb18700000000


createrawtx [["TXID", П], ...] {адрес: сумма, ...}
Создание расходов транзакции, данные входы
(Массив (шестнадцатеричный идентификатор транзакции, номер выхода) пар),
отправка данного адреса (ов).
Возвращает ту же информацию, gettransaction, плюс
дополнительный "rawtx" ключ с шестигранными-закодированы транзакциями.
Обратите внимание, что входы сделки не подписаны, и
он не хранится в кошельке или передается в сеть.

Например .: createrawtx «[["fce46ea2448820f7bb8091b5f5e3fd75b7b267e60b9a22af88a9eeabfb084233", 0]]»«{"mqYmZSQQuAWNQcdwBrDwmtTXg2TLNz748L": 50}
Возвращает:
{
    "версия" : 1,
    "Locktime" : 0,
    "размер" : 85,
    "Vin" : [
        {
            "prevout" : {
                "гашиш" : "fce46ea2448820f7bb8091b5f5e3fd75b7b267e60b9a22af88a9eeabfb084233",
                "N" : 0
            },
            "scriptSig" : "",
            "последовательность" : 4294967295
        }
    ],
    "Vout" : [
        {
            "стоимость" : 50.00000000,
            "scriptPubKey" : "OP_DUP OP_HASH160 6e0920fc26383dc7e6101bc417cf87169d0cedbd OP_EQUALVERIFY OP_CHECKSIG"
        }
    ],
    "rawtx" : "0100000001334208fbabeea988af229a0be667b2b775fde3f5b59180bbf7208844a26ee4fc00000 00000ffffffff0100f2052a010000001976a9146e0920fc26383dc7e6101bc417cf87169d0cedbd 88ac00000000"
}

signrawtx <шестнадцатеричная строка> [,...]
Вход входы для сырой сделки (сериализации, шестнадцатеричной кодировке).
Второй аргумент является массивом исходных предыдущих сделок,
эта сделка зависит, но еще не в blockchain.
Возвращает объект JSON с ключами:
  rawtx: сырая сделка с подписью (ами) (гекс-закодированные строки)
  завершения: 1, если сделка имеет полный набор сигнатуры (0, если нет)

Например .: signrawtx "0100000001334208fbabeea988af229a0be667b2b775fde3f5b59180bbf7208844a26ee4fc00000 00000ffffffff0100f2052a010000001976a9146e0920fc26383dc7e6101bc417cf87169d0cedbd 88ac00000000" «["01000000016d40da062b6a0edcaf643b6e25b943baf103941589d287e39d6f425d84ae8b1c00000 0004847304402203fb648ff8381d8961e66ef61ab88afe52826a5179b8a7312742c8d93785ca563 02204240ea12de1211fffab49686f13ca0e78011d1985765be6e6aa8e747852f897d01ffffffff0 100f2052a0100000017a914f96e358e80e8b3660256b211a23ce3377d2f9cb18700000000"]»
Возвращает:
{
    "rawtx" : "0100000001334208fbabeea988af229a0be667b2b775fde3f5b59180bbf7208844a26ee4fc00000 0009100473044022007f3ba1b8bdc156f2340ef1222eb287c3f5481a8078a8dad43aa09fd289ba1 9002201cc72e97406d546dc918159978dc78aee8215a6418375956665ee44e6eacc115014752210 2894ca6e7a6483d0f8fa6110c77c431035e8d462e3a932255d9dda65e8fada55c2103c556ef01e8 9a07ee9ba61581658fa007bf442232daed8b465c47c278550d3dab52aeffffffff0100f2052a010 000001976a9146e0920fc26383dc7e6101bc417cf87169d0cedbd88ac00000000",
    "полный" : ложный
}

sendrawtx <шестнадцатеричная строка>
Передает сырую сделку (сериализовано, гекс-закодировано) на локальный узел и сеть.
Например .: sendrawtx 0100000001334208fbabeea988af229a0be667b2b775fde3f5b59180bbf7208844a26ee4fc00000 0009100473044022007f3ba1b8bdc156f2340ef1222eb287c3f5481a8078a8dad43aa09fd289ba1 9002201cc72e97406d546dc918159978dc78aee8215a6418375956665ee44e6eacc115014752210 2894ca6e7a6483d0f8fa6110c77c431035e8d462e3a932255d9dda65e8fada55c2103c556ef01e8 9a07ee9ba61581658fa007bf442232daed8b465c47c278550d3dab52aeffffffff0100f2052a010 000001976a9146e0920fc26383dc7e6101bc417cf87169d0cedbd88ac00000000
Возвращает:
ошибка: {"код": -22,"сообщение":"TX отвергнута"}

(Отклонено, так как он не имеет все необходимые подписи, если оно было принято, что бы вернуть идентификатор транзакции)
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен


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


14 июня 2012, 11:43:58 PM   # 2
 
 
Сообщения: 390
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

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





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

Я думаю, что разработчики могут справиться с этой проблемой, но и развлечение.

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

15 июня 2012, 8:33:49 PM   # 3
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

Наконец - спасибо!

Я жду функциональности импорта / экспорта сделки - или как вы назвали его: sendrawtx / getrawtx.
Я держу большинство моего Bitcoins в автономном ПК, и я должен был использовать свою собственную реализацию для этого.
Но теперь, когда он попадает в официальный клиент - я рад за это.

и "listunspent" + "createrawtx" - блестящая и простая идея. Качественный товар!
piotr_n сейчас офлайн Пожаловаться на piotr_n   Ответить с цитированием Мультицитирование сообщения от piotr_n Быстрый ответ на сообщение piotr_n

3 июля 2012, 9:11:12 AM   # 4
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

Любые идеи, когда это будет получить включены в основную сборку?
piotr_n сейчас офлайн Пожаловаться на piotr_n   Ответить с цитированием Мультицитирование сообщения от piotr_n Быстрый ответ на сообщение piotr_n

16 июля 2012, 8:07:10 PM   # 5
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

Любые идеи, когда это будет получить включены в основную сборку?
Он был разобран в то, что станет выпуск 0,7 некоторое время назад.

Документация теперь на вики:  https://en.bitcoin.it/wiki/Raw_Transactions

Я решил не сокращайте "сделка" - ни один из других RPC вызовов не использовать аббревиатуры. И особенности были переделаны немного.

Есть некоторые хорошие непреднамеренные но-полезные вещи, которые можно сделать с it-- как описано на странице вики:

Повторная трансляция транзакции
Если вы хотите, чтобы повторно транслировать сделку сразу же, вы можете использовать getrawtransaction и sendrawtransaction API требует, чтобы сделать это. В качестве оболочки Bash-скрипт однострочника было бы:
Код:
sendrawtransaction $ (getrawtransaction $ TXID)
(Обратите внимание, что Биткойн-Qt / bitcoind автоматически повторно передает бумажник транзакция периодически, пока они не будут приняты в блок).

Подтвердить сделку без его вещания
Если у вас есть сырая сделка и хотите, чтобы убедиться, что все это подписи правильно, вы можете использовать вызов signrawtransaction API. Проходим в шестнадцатеричной кодировке сырой транзакции, любые исходные данные, которые bitcoind еще не знают о том, и пустой массиве закрытых ключей, чтобы использовать, чтобы подписать сделку. Передача пустого массива закрытых ключей предотвратит signrawtransaction делать любое подписание; если она возвращает "полный": 1, то все существующие подписи являются действительными и нет подписи отсутствуют.
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

24 июля 2012, 10:06:02 AM   # 6
 
 
Сообщения: 565
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

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

Может кто-нибудь прокомментировать это?

Как же сделка никогда не будет подтвердить, если подписи правильны. Что мы можем сделать, если сделка попала в это состояние?
Эндрю Воробьева сейчас офлайн Пожаловаться на Эндрю Воробьёв   Ответить с цитированием Мультицитирование сообщения от Andrew Воробьёв Быстрый ответ на сообщение Andrew Воробьёв

25 июля 2012, 11:34:21 AM   # 7
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

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

Может кто-нибудь прокомментировать это?

Как же сделка никогда не будет подтвердить, если подписи правильны. Что мы можем сделать, если сделка попала в это состояние?
Как я понимаю, может быть две причины:
1) Узлы (в том числе самостоятельно) не будет принимать / передавать такую ​​сделку.
2) шахтеры не будет включать его в блоке.

Если сделка "попадает в это состояние" Вы можете это исправить, создав новую транзакцию (на этот раз с правильной платой), которая тратит те же монеты снова.
Хотя, если такая неподтвержденная транзакция уже хранится в вашем бумажнике, это может быть проблемой.
Так что всегда стоит держать старые резервные копии - то вы можете удалить такую ​​транзакцию из бумажника, просто восстановления резервной копии и запуска клиента с "-rescan" переключатель.
Кроме того, можно удалить транзакцию из существующего файла бумажника, но это требует некоторых дополнительных инструментов.

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

25 июля 2012, 2:48:50 PM   # 8
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Сырые транзакции RPC вызовов

Любые идеи, когда это будет получить включены в основную сборку?
Он был разобран в то, что станет выпуск 0,7 некоторое время назад.
Я люблю эту новую версию со встроенным в консоли. Это просто здорово.

Спасибо, ребята, за что делает его!
piotr_n сейчас офлайн Пожаловаться на piotr_n   Ответить с цитированием Мультицитирование сообщения от piotr_n Быстрый ответ на сообщение piotr_n



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW