'Узел не находится в состоянии ошибки связаны' при попытке выполнить транзакцию OP_RETURN с NBitcoin

Это мой первый раз, пробуя NBitcoin библиотека для создания сделки. Я пытаюсь создать OP_RETURN сделки, но каждый раз, когда я пытаюсь запустить версию рукопожатие с узлом, я получаю ошибку: узел не находится в подключенном состоянии.

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

Я предполагаю, что это четыре части вопрос:

  1. При попытке OP_RETURN сделки в NBitcoin, нужно добавить шахтерском сборов в TransactionBuilder вручную?

  2. Есть ли способ, чтобы использовать узел.Подключить так это будет просто поиск доступных узлов, а не указание конкретного узла?

  3. Это вопрос, который я имею OP_RETURN и не что-нибудь еще? Нужно ли мне создавать еще один выход без значения и добавить сборов минера для того, чтобы отправить его? Есть библиотеки в PHP, Python и JavaScript для этого, но я пытаюсь выяснить, как сделать это с NBitcoin.

  4. Если я хотел сохранить входящие хеш в скрипте OP_RETURN, я делаю это правильно? Байтовый поток, кажется, слишком долго.

Heres мой код, который находится в .Чистая MVC4 с действия контроллера:

[Протоколы HttpPost]
NewTransaction общественного ActionResult(строка хэша)
{
 ВАР paymentSecret = новый BitcoinSecret("//закрытый ключ");
 // Пример хэш "45e114a7f2c6122c9c1dabbd4df187e66545c17ca0bd28de732499dbee476811"
 ВАР сообщение = хэш;
 ВАР байт = кодировка.В utf8.Метод getbytes(сообщение);
 ВАР blockr = новый BlockrTransactionRepository();
 ВАР fundingTransaction = blockr.Сделать("60db94bfb43dd0d98ba7fdfbbg4f29a850f7s5ea7d79a32c4r954096f2945b04");
 оплата ВАР = новую транзакцию();

 оплаты.Входы.Добавить(новый TxIn()
{
 PrevOut = новый минус(fundingTransaction.GetHash(), 1)
});

 оплаты.Выходы.Добавить(новый TxOut()
{
 Ценность = Деньги.Ноль,
 ScriptPubKey = TxNullDataTemplate.Экземпляр.GenerateScriptPubKey(байт)
});

 оплаты.Входы[0].ScriptSig = paymentSecret.ScriptPubKey;
 оплаты.Знак(paymentSecret, ложь);

 используя (ВАР узел = Узел.Подключения(Сеть.Главное, "67.221.193.55", новый NodeConnectionParameters()
{
 IsTrusted = истина,
 IsRelay = ложь
}))
{
 // Всегда терпит неудачу на рукопожатие
узел.VersionHandshake();
 узел.Метод SendMessage(новый InvPayload(InventoryType.MSG_TX, оплаты.GetHash()));
 узел.Метод SendMessage(новый TxPayload(оплата));
Нить.Сон(500);
}
 обратный вид (индекс"");
}

Редактировать

Я пытался использовать TransactionBuilder, но все же придумали одну и ту же ошибку. В этот раз я на самом деле установление размера платы. Я также использовать другой узел и указание порта. Вот попытка:

ВАР paymentSecret = новый BitcoinSecret("//закрытый ключ");
// Пример хэш "45e114a7f2c6122c9c1dabbd4df187e66545c17ca0bd28de732499dbee476811"
ВАР сообщение = хэш;
ВАР байт = кодировка.В utf8.Метод getbytes(сообщение);

финансирование ВАР = новую транзакцию()
{
 Выходов =
{
 новый TxOut("0.01", paymentSecret.GetAddress())
}
};

монеты ВАР = финансирование
.Выходы
 .Выберите((О, я) => новая монета(новый минус(финансирование.GetHash(), и), о))
.Метод toArray();

ВАР txBuilder = новый TransactionBuilder();
ВАР ТХ = txBuilder
.AddCoins(монеты)
.AddKeys(paymentSecret.Закрытый ключ)
 .Отправить(TxNullDataTemplate.Экземпляр.GenerateScriptPubKey(байт), деньги.Ноль)
.SendFees("0.00001")
.SetChange(paymentSecret.Умолчанию)
.BuildTransaction(истина);

txBuilder.Проверить(Техас);

используя (ВАР узел = Узел.Подключения(Сеть.Главное, "67.221.193.55:8333", новый NodeConnectionParameters()
{
 IsTrusted = истина,
 IsRelay = ложь
}))
{
узел.VersionHandshake();
 узел.Метод SendMessage(новый InvPayload(InventoryType.MSG_TX, Техас.GetHash()));
 узел.Метод SendMessage(новый TxPayload(Техас));
Нить.Сон(500);
}

Может кто-нибудь помочь. Отсутствует документация с указанием как провести OP_RETURN сделки. Спасибо.

+957
Stephen Valenta 27 мая 2015 г., 17:24:14
21 ответов

Биткоин Биткоин, поэтому вы должны проверять сделки самостоятельно. Шахтер вознаграждены за защиту сети, работая на специальной хэш. Шахтер, что бы выпустить блок с недействительной сделке будут отклонены все узлы и не будет работать... потому что все форумчане все.

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

+972
dscTobi 03 февр. '09 в 4:24

Эффект будет сделать оставшиеся биткоины стоит больше с течением времени, как другие остаются неизрасходованными, как я понимаю.

+803
Te Haupai Paul 18 февр. 2018 г., 23:40:57

я могу настроить мой адрес начнется через getnewaddress?

например, вместо начального адреса с 1asdjIOAWJRA

я пишу getnewaddress 1xxxx далее как хотите

также в чем разница между адресами, начиная с 1 и адресов, начиная с 3?

я могу выбрать из Bitcoin-CLI, чтобы получить мой адрес, начиная с 1 или он должен быть случайным и может быть запущена на 3, пока я не желаю, что?

причину нужно подгонять адреса, чтобы убедиться, что это действительно создает этот оффлайн адресам мгновенно и не в скрытую базу данных, установленных при установке биткоин-Кинк

+801
Tau9 8 июл. 2014 г., 4:16:40

кто-нибудь знает, сколько стоит BlockCypher плата при выполнении микро-Техас? Я читал здесь (https://www.blockcypher.com/dev/bitcoin/#microtx) и он говорит, что это автоматически (вычитается из источника). Мне нужна конкретика, как это в % или фиксированное значение, но не могут ее найти.

+711
eric chew 16 апр. 2017 г., 23:27:43

Так у меня Ubuntu 16х работает Bitcoin сердечника. Его полный узел и полностью синхронизированы. Работать с bitcoind --демон предложил. Используя определенный адрес из моего кошелька, когда я отправить деньги на адрес getblanace работает отлично (биткоин-CLI и метода getbalance ХХХХ 1). Всякий раз, когда я отправить деньги из адрес, (на совершенно другую систему через веб-кошелек), это показывает, что биткоины приехать, когда ожидается, но моя метода getbalance моего правильного адреса не заходит. Я даже попытался отправить все деньги в 10 разных операций, и увидел, что это был сбой, когда счета должны были быть ноль бы выйти, все время всегда сообщая, что у меня высокий первоначальный баланс.

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

+691
Alexalder 21 авг. 2012 г., 3:46:54

Есть ли возможность установить биткоин ядра на Raspberry Pi с 3, так как я попробовал его один раз и из этого ничего не вышло и у меня внешний диск для данных биткоин за это?

Операционные системы: raspbian (8 ГБ дискового пространства с 1TB внешний диск HDD)

Если это не работает, вы можете объяснить его подробности мне, почему он не может?

Если это не работает, можете ли вы сказать мне правильный путь, чтобы установить его?

+652
Hemant kumar arya 9 апр. 2013 г., 16:26:33

Вам не нужен интернет или приложение. На самом деле, машина может сканировать бумажный QR-код или мобильного телефона.

Проблема может быть в том, что QR-код кодирует различную информацию, чем то, что вы думали, что он делает, или то, что сканер банкомата не распознает QR-код на экране. То, что вам нужно, чтобы показать это биткоин-адрес.

Попробуйте установить ваш экран на полную яркость, будьте уверены, чтобы не заблокировать любой части экрана, когда вы представляете его, и проверить, является ли QR-код содержит фактически биткоин-адрес, а не что-то другое, например закрытый ключ и запрос на оплату.

+642
garondal 23 сент. 2016 г., 16:02:08

В честной узел - это узел, который не пытается изменить историю. Это не атакующий узел , который пытается изменить прошлое блок в Blockchain предположительно в интересах их материально.

Обратите внимание, что поскольку сделки являются криптографически подписаны, "злоумышленник может попытаться изменить одну из своих сделок, чтобы вернуть деньги," Биткоин документе.

+616
The destroyer 23 нояб. 2019 г., 22:16:15

https://www.reddit.com/r/btc/comments/bq8cqo/btctop_currently_has_51_hashing_power/eo2p4md?utm_source=share&utm_medium=web2x

Последние комментарии от пользователя Reddit в ответ на BTC.топ-приобретение 54 биткоин Наличка ненавижу отметил, что блок развития доработки удаляет угрозы 51% атаки.

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

Это действительное развитие? Есть ли ограничения на это?

+576
RMWCO 17 окт. 2016 г., 0:40:39

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

Одна из причин розничный магазин или частное лицо может дождаться дополнительных подтверждений для доставки время; оно только принимает один час для 6 подтверждений для прохождения, которые незначительно времени для доставки товара, но могут предоставить гарантии продавцу.

+576
d3llafr33 24 сент. 2016 г., 19:38:11

Когда криптовалют изменения алгоритма (например. алгоритме Scrypt и X11), как добиться слияния двух блокчейнами?

Я предполагаю, что они не могут быть напрямую совместимы, основанные на совершенно различных алгоритмов, это может вызвать loadBlock() ошибка. Они же не могли просто сделать два блокчейнами, как и все скрипт добывают монеты будут unspendable на Х11 Blockchain и наоборот.

Я видел экземпляры разработчиков крипто имея v1 до V2 бирже (обычно на какое-то соотношение, как 0.8:1), однако это потребует V2 в блокчейне есть премайн для распределения преобразования.

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

Я должен указать, что путем слияния я не имею в виду запуск обоих алгоритмов на одну монету (шафран-стиль), я имею в виду как чего-то вдоль линий

если blockNumber <= (maxScryptBlock) делать
{блок.readHash(скрипт);
}
еще если blockNumber >= (maxScryptBlock) делать
{блок.readhash(Х11);
}

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

+483
Uendel Quintela 13 февр. 2013 г., 17:05:17

Я пытаюсь построить команду nodejs с командиром, bitcoinjs-Либ bitcoincashjs, blocktrail-СДК. В настоящее время у меня есть проблема, когда пытаются провести биткоин наличные адреса segwit.

Пример:

  • В адрес segwit БТЦ
  • B, С является биткоин наличных адреса
  • Б отправлять Bitcoin наличными

=> Как отправить биткоины наличными В С?

Я пробовал этот код, но не удалось.

ВСН.Сетей.defaultNetwork = ВСН.Сетей.тестовом режиме;

вар для = "ХХХХ";

ВАР blocktrail_client = blocktrail.BlocktrailSDK({
 значение apiKey: "ХХХХ",
 apiSecret: "ХХХХ",
 сеть: "КБК",
 тестовом режиме: правда
});

ВАР привчной = "ХХХХ";
ВАР закрытый ключ = новый МПБ.Закрытый ключ(привчной);
ВАР-адрес = закрытый ключ.для().метод toString();

blocktrail_client
.addressUnspentOutputs(адрес)
 .затем(асинхронные (РЭС ошибка) => {
 если (ошибка) {
 консоль вернуться.журнал(ошибка);
}
 если (рез.данных.длина == 0) {
 консоль вернуться.лог("ошибка. Нечего послать".)
}

 ВАР ТХ = РЭС.данные[0];

 utxo = {
 txId: Техас.хэш,
 outputIndex: 0,
адрес
 сценарий: Техас.script_hex,
 Сатоши: Техас.значение
};

 сделки с const = новый МПБ.Сделки()
.из(utxo)
 .для(для, Техас.стоимость - 1000)
.сбор(1000)
.знак(закрытый ключ);

blocktrail_client.sendRawTransaction(
сделки.метод toString(),
 (ошибка, хэш) => {
 если (ошибка) {
 консоль вернуться.журнал(ошибка);
}
 консоль вернуться.журнала(хеш);
}
);
})
.поймать(ошибка = консоль>.журнал(ошибка));
+414
Truthseeker 30 апр. 2016 г., 3:34:52

Я проверил с моим поставщиком электроэнергии, и мне сказали следующее:

Тариф за единицу (за кВт) = 0.1399 долларов США
Стандартная стоимость (в сутки) = 0.1645 долларов США

В то время как добыча, если мой компьютер использует 100Вт (который читает мой электрический монитор у меня).

Как мне работать, сколько этот шахтер обходится мне в час с точки зрения потребления электроэнергии?

+371
Rik Tonnard 27 мая 2012 г., 20:25:20

Как из ядра биткоин 0.7.1 (19 октября 2012), Вы можете работать как mainnet и Testnet, просто начиная с Bitcoin Core с соответствующими флагами:

bitcoind -демон mainnet#, - демон заставит его раскошелиться на задний план
bitcoind -демон -тестовом режиме # тестовом режиме

Как из ядра биткоин 0.9.0 (19 марта 2014), вы можете легко использовать биткоин-интерфейса командной строки для отправки команд на обоих узлах:

биткоин-Кинк getinfo # mainnet, использует порт 8332 для RPC-JSON с
биткоин-Кинк -тестовом режиме getinfo # тестовом режиме, использует порт 18332 для RPC-JSON с

Также, как и Биткоин основных 0.9.0, отмечается регресс тестовом режиме ("регтест"), что может ускорить разработку и тестирование приложения почти мгновенно генерировать альтернативную цепочку блоков с супер-низкой сложности.

По умолчанию, регтест режиме работает на тех же портах в тестовом режиме (18333 для биткоин Р2Р, 18332 для КРМ-с JSON/HTTP и остальное), но использует другой каталог с тестовом режиме. Это означает, что две команды будут решать тестовом режиме по умолчанию или регтест узла:

биткоин-Кинк -тестовом режиме getinfo ## посылает команду в порт 18332
биткоин-Кинк -регтест getinfo ## также отправляет команду в порт 18332

Этот ответ имеет некоторые базовые примеры кода, показывающие запуск двух регтест узлов на одной машине, но вы также можете сделать что-то подобное, если вы хотите работать в тестовом режиме, узлов и регтест узел одновременно.


Пост скрипт: принято отвечать Питера Wuille это меня смущает. Он говорит, что написал его на 9 декабря 2012 года, но этого слияния Питера говорит, что он добавил код (написан @kjj2) изменение тестовом режиме, порта 18332 28 сентября 2012---за два месяца раньше. Кроме того, что код был включен в ядро биткоин 0.7.1 вышла в октябре 2012 года, еще почти два месяца раньше, чем ответ Петра.

Плечами. Я думаю, может быть, он просто забыл про сдачу.

+215
cool bobrik 27 февр. 2017 г., 13:28:23

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

Bitcoin является анонимным, что означает, что трассировка-это только так легко, как личности прослеживается позволяет.

Bitcoin-это не заменимая, смысл основной, что "монета" не является однозначно идентифицируемым. Скорее всего, это распределенная система Леже, с значения вычитаются с одного счета и добавить к другой в каждой сделке.

Таким образом, только отслеживаемые лиц на счетах получение и отправка, и только в отношении физического мира в каждой сделке-это IP-адрес. Учитывая занятость анонимизирующего услуг, таких как Тор или нижнего анонимности прокси-сервера, трассировку этого IP-адреса к физическому местоположению с человека маловероятно (если вы выяснить, как, бьюсь об заклад, вы могли бы сделать много денег от правительства!)

Если вы все еще, BlockViewer может помочь в отслеживании.

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

+213
Avalanchis 30 окт. 2011 г., 17:38:08

ID транзакции: 6a1d9ab775f6b028a037deef37723fbf506947103f2c2f6e9c32149e0dffca34

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

Если я отправил его на другой кошелек мой, они по-прежнему там, а я не потратил их.

Когда я иду, чтобы: https://blockchain.info/tree/267511038

Я вижу, что биткоины перешли к 1Lw536Fvjg6KkCeAYetn7wopF3XEWbrY9y и 32Vh3B83zoaRUsTahWTxpmcgnNXG727u7n

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

amiright?

+182
Eddy DX Edilebert 19 сент. 2016 г., 13:29:20

Не channel_announcement сообщение достаточно для канала рекламы? Почему announcement_signatures сообщение требуется?

Ссылка болт #7

+115
DeBedenHasen 15 авг. 2015 г., 16:16:22

В "51% атаки", то есть известные уязвимости, влияющие доказательством правильности работы цифровых валют, как биткоин имеет дело с 51% от объема добычи, а не 51% в валюте.

Есть такое понятие называется "экономической большинством", но описывает как тех, кто держит монеты и покупайте новые добытой монеты партий, которые по сути есть последнее слово о том, были ли изменения в протоколе будут приняты.

Насколько вечеринку с большим количеством монет, имеющих возможность оказывать влияние на валютный курс, это правда. Это верно, хотя будь товар биткоины, золото, свинину, или любой другой товар. С возможностью открыть короткую позицию (биткоинов заимствования и их продажа), курс можно манипулировать даже владея биткоины. Теперь, является ли эта деятельность является прибыльной или нет-это совершенно другой вопрос и имеет отношение к ликвидности, сроки, отношение к риску и другие факторы, характерные для спекулянта(ы) попытка манипуляции.

+106
ThomasH 1 авг. 2014 г., 7:58:00

В настоящее время ее дешевле создать Техас, что увеличить набор, так был хороший стимул для бумажника для создания пыли. После Segwit, это не дешевле больше, если увеличить набор.

Так что я думаю, что много кошельков уже обновили свои алгоритмы создания TX для Segwit.

+68
darrell wilson 18 янв. 2018 г., 6:08:17

Биткоин понятие не имеет никакого способа что-либо ограничивать в единое целое. Мне один человек еще в сети bitcon у меня есть несколько адресов, у меня есть несколько кошельков, которые содержат несколько адресов, я делаю несколько узлов, у меня есть несколько установок с несколькими ГПУ каждого, я использую несколько IP-адресов.

Все о сети bitcon была разработана, чтобы позволить такой сценарий пройдет. электронного голосования требует несколько концепций, которые несовместимы с текущей сети Bitcoin

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

электронного голосования не решается "легко" купить биткоин сети. Я бы сказал eVoating не может быть решена "легко" период. Есть несколько очень нетривиальных вопросов с комбинацией указанных выше требований.

Сеть Bitcoin не поможет, чтобы гарантировать, что любой из 4 принципы выше.

+52
hms123 3 апр. 2014 г., 20:00:48

Вы изменили параметр MAX_MONEY, значит нужно менять тесты, которые зависят от него.

Представляется, что это ошибочная файл.

П. С. изменение MAX_MONEY не изменится максимальное количество монет. См.: Почему не меняется MAX_MONEY изменить максимальное количество монет?

+37
tanya9711 2 сент. 2012 г., 9:33:02

Показать вопросы с тегом