Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
4 ноября 2016, 10:21:25 AM   # 1
 
 
Сообщения: 206
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

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


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

http://bitzuma.com/posts/how-to-clear-a-stuck-bitcoin-transaction/

Я хотел бы попробовать двойную расходы (в Bitcoin testnetwork).
Создание сделки и подписание его не было проблемой. Теперь я ищу способ, чтобы отправить вторую транзакцию (первый был послан с 0.00000000 плату), теперь я должен был бы обижаться сделку с платой, поэтому получить переработали в testnet сети Bitcoin.
Как представить теперь эту вторую транзакцию?

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


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


4 ноября 2016, 10:38:46 AM   # 2
 
 
Сообщения: 728
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

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





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

4 ноября 2016, 10:43:05 AM   # 3
 
 
Сообщения: 206
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

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

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

4 ноября 2016, 10:54:46 AM   # 4
 
 
Сообщения: 728
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

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

В случае, если я хочу, чтобы получить эту сделку появляется тоже в сети без первая сделка при падении / обрабатываются в сети, как я могу это сделать?

Неподтвержденные операции редко потеряется по всей сети. Там может быть более 1 идентичных неподтвержденные транзакции в сети, но не в mempool узлов. До тех пор пока узел не первая сделка, она может принять вторую транзакцию и попытается передать его к остальной части сети. Таким образом, чтобы ответить на ваш вопрос (заменив слово "сеть" с "узлы"), Вы не можете.

КСТАТИ RBF в значительной степени удалены от необходимости вручную двойной тратить сделку, потому что они застряли. Используйте вместо РФБ.
Jhanzo сейчас офлайн Пожаловаться на Jhanzo   Ответить с цитированием Мультицитирование сообщения от Jhanzo Быстрый ответ на сообщение Jhanzo

4 ноября 2016, 11:10:27 AM   # 5
 
 
Сообщения: 206
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

@Jhanzo

Прежде всего, спасибо за этот подробный ответ!

Позвольте мне, что я хотел бы сделать, пожалуйста, проверьте это видео:

https://www.youtube.com/watch?v=RtGzV_-agcI

Я хотел бы построил один и тот же, но с открытым исходным кодом код. Я бегу Bitcoin-классический демон на моем сервере Ubuntu. Теперь я ищу описание как "двойные израсходует" монеты, которые я получил от пользователя (первой транзакции без платы, второй сделки с небольшой платой, так что пользователь получает его depoisted суммы почти полные назад и двойные израсходуют было сделан). Я хотел бы использовать testnet для всего сценария.

Не могли бы вы объяснить мне, как обрабатывать транзакции (я знаю, как создать & подписать их), но, как отправить их сейчас?
Армина ван Брюгген сейчас офлайн Пожаловаться на Армин ван Брюгген   Ответить с цитированием Мультицитирование сообщения от Armin ван Брюгген Быстрый ответ на сообщение Армин ван Брюгген

6 ноября 2016, 6:25:09 AM   # 6
 
 
Сообщения: 1260
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

Не могли бы вы объяснить мне, как обрабатывать транзакции
(Я знаю, как создать & подписать их), но, как отправить их сейчас?

Это очень "грязный" кусок кода, но это работает.
Конечно, это один "только для образовательных целей"

Код:
#включают
#включают
#включают
#включают
#включают
#включают
#включают
#включают
#включают

#включают "Bitcoin.h"

#define _xtrace (Х) QDebug () << ( ИКС )
#define _xassert (Х) Q_ASSERT (Х)

#define MAGIC_ID 0x709110b

#define TYPE_VERSION ( "версия" "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_VERACK ( "verack"  "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_GETDATA ( "получить данные" "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_PING ( "пинг"    "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_PONG ( "понг"    "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_TX ( "Техас"      "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )

#define USER_AGENT          "/Satoshi:0.9.1/"
#define PROTO_VERSION 70002
#define PROTO_SERVICES (1) // может быть NODE_NETWORK

Bitcoin :: Bitcoin (Const QByteArray& ТХ, QObject * родитель): QObject (родитель)
{
  это -> дети = 0;
  это -> ТХ = ТХ;
  QTimer :: SingleShot (10, это, SLOT (старт ()));
}
// ------------------------------------------------ --------------
аннулированию Bitcoin :: заводится ()
{
  QFile конф ( "PushTxTool.conf" );
  _xassert (conf.open (QIODevice :: ReadOnly));
  Данные QByteArray (conf.readAll ());
  data.replace ( '\ п', '');
  data.replace ( '\ г', '');
  data.replace ( '\ т', '');
  Const QList Список (data.split ( ''));
  для (INT I (0); я < list.size (); я ++)
    если (! list.at (я) .isEmpty ())
    {
      статическая QSet задавать;
      если (! set.contains (list.at (я)))
      {
        новый NetSocket (list.at (я), ТХ, это);
        дети ++;
        set.insert (list.at (я));
      }
      еще
        _xtrace (QString ( "заблуждаться% 1 ..." ) .arg (list.at (я) .constData ()));
    }
}
// ------------------------------------------------ --------------
аннулируются Bitcoin :: законченный ()
{
  если (--Детские == 0)
    QTimer :: SingleShot (10, это, SLOT (сделано ()));
}
// ------------------------------------------------ --------------
аннулируются Bitcoin :: сделано ()
{
  _xtrace ( "-----------сделанный------------" );
  QCoreApplication :: Выход ();
}
// ================================================ ==============
NetSocket :: NetSocket (Const QByteArray& хозяин, Const QByteArray& ТХ, QObject * родитель): QObject (родитель)
{
  это -> Host = хост;
  _xtrace (QString ( "% 1 ..." ) .arg (host.constData ()));
  это -> ТХ = ТХ;
  это -> Гнездо = ​​новый QTcpSocket (это);
  подключить (это, СИГНАЛ (уничтожен ()), родитель, SLOT (законченный ()));
  QTimer :: SingleShot (1, это, SLOT (старт ()));
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: заводится ()
{
  _xtrace (QString ( "% 1 начало ..." ) .arg (host.constData ()));
  подключить (розетка, СИГНАЛ (подключен ()), то это, SLOT (onConnected ()));
  подключить (розетка, СИГНАЛ (readyRead ()), то это, SLOT (onReadyRead ()));
  подключения (разъем, SIGNAL (ошибка (QAbstractSocket :: SocketError)), это, SLOT (OnError (QAbstractSocket :: SocketError)));
  разъем -> connectToHost (host.constData (), 18333);
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: onConnected ()
{
  _xtrace (QString ( "% 1 подключен" ) .arg (host.constData ()));
  запись (пакет (TYPE_VERSION, versionPacket (600000, USER_AGENT)));
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: onReadyRead ()
{
  QDataStream в (гнездо);
  для (длина qint64; (длина = розетка -> bytesAvailable ()) >= 0; )
  {
    символьные данные [длина];
    Const INT чтения (in.readRawData (данные, длина));
    если (читай > 0)
      buf.append (данные, чтение);
    еще
      ломать;
  }
  для (QByteArray б; buf.readPacket (б);)
    Proc (б);
  buf.squeeze ();
}
// ------------------------------------------------ --------------
аннулируются NetSocket :: прок (Const QByteArray& данные )
{
  Const символ * Тип = data.constData () + 4;
  если (! зЬгстр (тип, "версия" )) {procVersionPacket (данные); вернуть; }
  если (! зЬгстр (тип, "verack"  )) {procVerackPacket (данные); вернуть; }
}
// ------------------------------------------------ --------------
аннулируются NetSocket :: OnError (QAbstractSocket :: SocketError код)
{
  _xtrace (QString ( "% 1: ошибка% 2" ) .arg (host.constData ()) .arg (код));
  deleteLater ();
}
// ------------------------------------------------ --------------
Const QByteArray :: NetSocket пакет (Const символ * тип, Const QByteArray& полезная нагрузка)
{
  вернуться MyByteArray ()
    .putInt32 (MAGIC_ID)
    .putAscii_12 (тип)
    .putInt32 (payload.size ())
    .добавление (MyKey32 (payload.constData (), payload.size ()) .constData (), 4)
    .добавление (полезная нагрузка);
}
// ------------------------------------------------ --------------
Const QByteArray NetSocket :: versionPacket (Const ИНТ известно, Const символ * иа) сопзЬ
{
  вернуться MyByteArray ()
    .putInt32 (PROTO_VERSION)
    .putInt64 (PROTO_SERVICES)
    .putInt64 (QDateTime :: currentMSecsSinceEpoch () / 1000)
    .putInt64 (PROTO_SERVICES)
    .putInt64 (0) // дата
    .putInt32 (0xFFFF0000)
    .putInt32_be (розетка -> peerAddress () .toIPv4Address ())
    .putInt16_be (розетка -> PeerPort ())
    .putInt64 (0)
    .putInt64 (0)
    .putInt32 (0xFFFF0000)
    .putInt32 (0)
    .putInt16_be (18333)
    .putInt64 ((quint64) qrand () ^ QDateTime :: currentMSecsSinceEpoch ())
    .putVarAscii (UA)
    .putInt32 (известный)
    .putInt8 (1);
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: procVersionPacket (константный QByteArray& )
{
  запись (пакет (TYPE_VERACK, verackPacket ()));
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: procVerackPacket (константный QByteArray& )
{
  написать (пакет (TYPE_TX, txPacket (TX)));
  _xtrace (QString ( "% 1% 2 отправлено" ) .arg (host.constData ()) .arg (MyKey32 (tx.constData (), tx.size ()) .ToString ()));
  QTimer :: SingleShot (0, это, SLOT (deleteLater ()));
}
// ------------------------------------------------ --------------
MyByteArray& MyByteArray :: putVarInt (Уст значение без знака)
{
  возврат (значение < 0xFD)? putInt8 (значение):
         ( стоимость <= 0xFFFF)? putInt8 (0xFD) .putInt16 (значение):
                               putInt8 (0xFE) .putInt32 (значение);
}
// ------------------------------------------------ --------------
BOOL MyByteArray :: readPacket (QByteArray& ЬиЕ)
{
  если (размер () > 20)
  {
    _xassert (* (quint32 *) (constData ()) == MAGIC_ID);
    Const INT SZ (* (qint32 *) (constData () + 16));
    если (размер () >= (24 + SZ))
    {
      ЬиЕ = QByteArray (constData (), 24 + SZ);
      удалить (0, 24 + SZ);
      возвращает истину;
    }
  }
  вернуться ложным;
}
amaclin сейчас офлайн Пожаловаться на amaclin   Ответить с цитированием Мультицитирование сообщения от amaclin Быстрый ответ на сообщение amaclin

6 ноября 2016, 6:00:25 PM   # 7
 
 
Сообщения: 206
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

Не могли бы вы объяснить мне, как обрабатывать транзакции
(Я знаю, как создать & подписать их), но, как отправить их сейчас?

Это очень "грязный" кусок кода, но это работает.
Конечно, это один "только для образовательных целей"

Код:
#включают
#включают
#включают
#включают
#включают
#включают
#включают
#включают
#включают

#включают "Bitcoin.h"

#define _xtrace (Х) QDebug () << ( ИКС )
#define _xassert (Х) Q_ASSERT (Х)

#define MAGIC_ID 0x709110b

#define TYPE_VERSION ( "версия" "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_VERACK ( "verack"  "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_GETDATA ( "получить данные" "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_PING ( "пинг"    "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_PONG ( "понг"    "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )
#define TYPE_TX ( "Техас"      "\ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" "\ 0 \ 0 \ 0 \ 0" )

#define USER_AGENT          "/Satoshi:0.9.1/"
#define PROTO_VERSION 70002
#define PROTO_SERVICES (1) // может быть NODE_NETWORK

Bitcoin :: Bitcoin (Const QByteArray& ТХ, QObject * родитель): QObject (родитель)
{
  это -> дети = 0;
  это -> ТХ = ТХ;
  QTimer :: SingleShot (10, это, SLOT (старт ()));
}
// ------------------------------------------------ --------------
аннулированию Bitcoin :: заводится ()
{
  QFile конф ( "PushTxTool.conf" );
  _xassert (conf.open (QIODevice :: ReadOnly));
  Данные QByteArray (conf.readAll ());
  data.replace ( '\ п', '');
  data.replace ( '\ г', '');
  data.replace ( '\ т', '');
  Const QList Список (data.split ( ''));
  для (INT I (0); я < list.size (); я ++)
    если (! list.at (я) .isEmpty ())
    {
      статическая QSet задавать;
      если (! set.contains (list.at (я)))
      {
        новый NetSocket (list.at (я), ТХ, это);
        дети ++;
        set.insert (list.at (я));
      }
      еще
        _xtrace (QString ( "заблуждаться% 1 ..." ) .arg (list.at (я) .constData ()));
    }
}
// ------------------------------------------------ --------------
аннулируются Bitcoin :: законченный ()
{
  если (--Детские == 0)
    QTimer :: SingleShot (10, это, SLOT (сделано ()));
}
// ------------------------------------------------ --------------
аннулируются Bitcoin :: сделано ()
{
  _xtrace ( "-----------сделанный------------" );
  QCoreApplication :: Выход ();
}
// ================================================ ==============
NetSocket :: NetSocket (Const QByteArray& хозяин, Const QByteArray& ТХ, QObject * родитель): QObject (родитель)
{
  это -> Host = хост;
  _xtrace (QString ( "% 1 ..." ) .arg (host.constData ()));
  это -> ТХ = ТХ;
  это -> Гнездо = ​​новый QTcpSocket (это);
  подключить (это, СИГНАЛ (уничтожен ()), родитель, SLOT (законченный ()));
  QTimer :: SingleShot (1, это, SLOT (старт ()));
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: заводится ()
{
  _xtrace (QString ( "% 1 начало ..." ) .arg (host.constData ()));
  подключить (розетка, СИГНАЛ (подключен ()), то это, SLOT (onConnected ()));
  подключить (розетка, СИГНАЛ (readyRead ()), то это, SLOT (onReadyRead ()));
  подключения (разъем, SIGNAL (ошибка (QAbstractSocket :: SocketError)), это, SLOT (OnError (QAbstractSocket :: SocketError)));
  разъем -> connectToHost (host.constData (), 18333);
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: onConnected ()
{
  _xtrace (QString ( "% 1 подключен" ) .arg (host.constData ()));
  запись (пакет (TYPE_VERSION, versionPacket (600000, USER_AGENT)));
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: onReadyRead ()
{
  QDataStream в (гнездо);
  для (длина qint64; (длина = розетка -> bytesAvailable ()) >= 0; )
  {
    символьные данные [длина];
    Const INT чтения (in.readRawData (данные, длина));
    если (читай > 0)
      buf.append (данные, чтение);
    еще
      ломать;
  }
  для (QByteArray б; buf.readPacket (б);)
    Proc (б);
  buf.squeeze ();
}
// ------------------------------------------------ --------------
аннулируются NetSocket :: прок (Const QByteArray& данные )
{
  Const символ * Тип = data.constData () + 4;
  если (! зЬгстр (тип, "версия" )) {procVersionPacket (данные); вернуть; }
  если (! зЬгстр (тип, "verack"  )) {procVerackPacket (данные); вернуть; }
}
// ------------------------------------------------ --------------
аннулируются NetSocket :: OnError (QAbstractSocket :: SocketError код)
{
  _xtrace (QString ( "% 1: ошибка% 2" ) .arg (host.constData ()) .arg (код));
  deleteLater ();
}
// ------------------------------------------------ --------------
Const QByteArray :: NetSocket пакет (Const символ * тип, Const QByteArray& полезная нагрузка)
{
  вернуться MyByteArray ()
    .putInt32 (MAGIC_ID)
    .putAscii_12 (тип)
    .putInt32 (payload.size ())
    .добавление (MyKey32 (payload.constData (), payload.size ()) .constData (), 4)
    .добавление (полезная нагрузка);
}
// ------------------------------------------------ --------------
Const QByteArray NetSocket :: versionPacket (Const ИНТ известно, Const символ * иа) сопзЬ
{
  вернуться MyByteArray ()
    .putInt32 (PROTO_VERSION)
    .putInt64 (PROTO_SERVICES)
    .putInt64 (QDateTime :: currentMSecsSinceEpoch () / 1000)
    .putInt64 (PROTO_SERVICES)
    .putInt64 (0) // дата
    .putInt32 (0xFFFF0000)
    .putInt32_be (розетка -> peerAddress () .toIPv4Address ())
    .putInt16_be (розетка -> PeerPort ())
    .putInt64 (0)
    .putInt64 (0)
    .putInt32 (0xFFFF0000)
    .putInt32 (0)
    .putInt16_be (18333)
    .putInt64 ((quint64) qrand () ^ QDateTime :: currentMSecsSinceEpoch ())
    .putVarAscii (UA)
    .putInt32 (известный)
    .putInt8 (1);
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: procVersionPacket (константный QByteArray& )
{
  запись (пакет (TYPE_VERACK, verackPacket ()));
}
// ------------------------------------------------ --------------
аннулированию NetSocket :: procVerackPacket (константный QByteArray& )
{
  написать (пакет (TYPE_TX, txPacket (TX)));
  _xtrace (QString ( "% 1% 2 отправлено" ) .arg (host.constData ()) .arg (MyKey32 (tx.constData (), tx.size ()) .ToString ()));
  QTimer :: SingleShot (0, это, SLOT (deleteLater ()));
}
// ------------------------------------------------ --------------
MyByteArray& MyByteArray :: putVarInt (Уст значение без знака)
{
  возврат (значение < 0xFD)? putInt8 (значение):
         ( стоимость <= 0xFFFF)? putInt8 (0xFD) .putInt16 (значение):
                               putInt8 (0xFE) .putInt32 (значение);
}
// ------------------------------------------------ --------------
BOOL MyByteArray :: readPacket (QByteArray& ЬиЕ)
{
  если (размер () > 20)
  {
    _xassert (* (quint32 *) (constData ()) == MAGIC_ID);
    Const INT SZ (* (qint32 *) (constData () + 16));
    если (размер () >= (24 + SZ))
    {
      ЬиЕ = QByteArray (constData (), 24 + SZ);
      удалить (0, 24 + SZ);
      возвращает истину;
    }
  }
  вернуться ложным;
}

Не есть ли способ использовать Bitcoin демон я бегу на сервере в testnetmode отправить двойную сделку потратить?
Армина ван Брюгген сейчас офлайн Пожаловаться на Армин ван Брюгген   Ответить с цитированием Мультицитирование сообщения от Armin ван Брюгген Быстрый ответ на сообщение Армин ван Брюгген

6 ноября 2016, 6:34:24 PM   # 8
 
 
Сообщения: 1260
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

Не есть ли способ использовать Bitcoin демон я бегу на сервере в testnetmode отправить двойную сделку потратить?

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

6 ноября 2016, 6:39:56 PM   # 9
 
 
Сообщения: 206
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

Не есть ли способ использовать Bitcoin демон я бегу на сервере в testnetmode отправить двойную сделку потратить?

Сожалею.
Я думал, что вы просите "как отправить противоречивую сделку?"
не "как отправить противоречивую сделку с пользовательскими Bitcoin клиентом?"

Было бы хорошо, если вы могли бы показать мне, как это сделать с помощью bitcoind набор команд:

https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

Сбросит вам совет, если работать, конечно,
Армина ван Брюгген сейчас офлайн Пожаловаться на Армин ван Брюгген   Ответить с цитированием Мультицитирование сообщения от Armin ван Брюгген Быстрый ответ на сообщение Армин ван Брюгген

6 ноября 2016, 8:02:34 PM   # 10
 
 
Сообщения: 1260
Цитировать по имени
цитировать ответ
по умолчанию Re: отправка rawtransaction в Bitcoin testnet (двойной расходы)

Было бы хорошо, если вы могли бы показать мне, как это сделать с помощью bitcoind набор команд:
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
Сбросит вам совет, если работать, конечно,
Я не могу. я никогда используется Bitcoin клиент для отправки транзакций.
Я дал вам программу, написанную на C ++ для трансляции необработанных транзакций для ряда узлов.
(К сожалению, я havent't посмотрел на источники пару лет - программа работает, и нет никаких причин, чтобы вспомнить, как)
amaclin сейчас офлайн Пожаловаться на amaclin   Ответить с цитированием Мультицитирование сообщения от amaclin Быстрый ответ на сообщение amaclin



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW